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 = '';
