Index: includes/database.pgsql.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/database.pgsql.inc,v retrieving revision 1.68 diff -u -p -r1.68 database.pgsql.inc --- includes/database.pgsql.inc 4 Jan 2008 09:31:48 -0000 1.68 +++ includes/database.pgsql.inc 17 Jan 2008 13:16:06 -0000 @@ -52,8 +52,11 @@ function db_connect($url) { $url = parse_url($url); $conn_string = ''; + $schema = ''; // Decode url-encoded information in the db connection string + // Syntax is 'pgsql://username:password@localhost/databasename' + // or 'pgsql://username:password@localhost/databasename/schema' if (isset($url['user'])) { $conn_string .= ' user='. urldecode($url['user']); } @@ -64,7 +67,9 @@ function db_connect($url) { $conn_string .= ' host='. urldecode($url['host']); } if (isset($url['path'])) { - $conn_string .= ' dbname='. substr(urldecode($url['path']), 1); + $conn_string .= ' dbname='. strtok(urldecode($url['path']), '/'); + // Check for additional schema information if required + $schema = strtok('/'); } if (isset($url['port'])) { $conn_string .= ' port='. urldecode($url['port']); @@ -85,6 +90,10 @@ function db_connect($url) { // Restore error tracking setting ini_set('track_errors', $track_errors_previous); + if ($schema != '') { + @pg_query($connection, 'SET search_path TO '. $schema); + } + return $connection; } Index: sites/default/default.settings.php =================================================================== RCS file: /cvs/drupal/drupal/sites/default/default.settings.php,v retrieving revision 1.8 diff -u -p -r1.8 default.settings.php --- sites/default/default.settings.php 20 Dec 2007 09:35:10 -0000 1.8 +++ sites/default/default.settings.php 17 Jan 2008 13:17:31 -0000 @@ -89,6 +89,7 @@ * $db_url = 'mysql://username:password@localhost/databasename'; * $db_url = 'mysqli://username:password@localhost/databasename'; * $db_url = 'pgsql://username:password@localhost/databasename'; + * $db_url = 'pgsql://username:password@localhost/databasename/schemaname'; */ $db_url = 'mysql://username:password@localhost/databasename'; $db_prefix = '';