? .buildpath
? .cache
? .project
? .settings
? test.php
? modules/synerger
? profiles/synerger
? sites/d6ec4
? sites/d6idg
? sites/profiletest
? sites/secure.synerger.com
? sites/synchrocli
? sites/all/modules
Index: includes/database.pgsql.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/Attic/database.pgsql.inc,v
retrieving revision 1.68.2.2
diff -u -r1.68.2.2 database.pgsql.inc
--- includes/database.pgsql.inc	8 Jul 2008 09:50:03 -0000	1.68.2.2
+++ includes/database.pgsql.inc	19 Jan 2009 04:36:38 -0000
@@ -775,7 +775,10 @@
  *   The table to be altered.
  */
 function db_drop_primary_key(&$ret, $table) {
-  $ret[] = update_sql('ALTER TABLE {'. $table .'} DROP CONSTRAINT {'. $table .'}_pkey');
+  $name = '{'. $table. '}_pkey';
+  if (_db_index_exists($name)) {
+    $ret[] = update_sql('ALTER TABLE {'. $table .'} DROP CONSTRAINT '.$name);
+  }
 }
 
 /**
@@ -808,7 +811,9 @@
  */
 function db_drop_unique_key(&$ret, $table, $name) {
   $name = '{'. $table .'}_'. $name .'_key';
-  $ret[] = update_sql('ALTER TABLE {'. $table .'} DROP CONSTRAINT '. $name);
+  if (_db_index_exists($name)) {
+    $ret[] = update_sql('ALTER TABLE {'. $table .'} DROP CONSTRAINT '. $name);
+  }
 }
 
 /**
@@ -839,7 +844,16 @@
  */
 function db_drop_index(&$ret, $table, $name) {
   $name = '{'. $table .'}_'. $name .'_idx';
-  $ret[] = update_sql('DROP INDEX '. $name);
+  if (version_compare(db_version(), '8.2') < 0) {
+    $ret[] = update_sql('DROP INDEX IF EXISTS '. $name);
+  }
+  else if (_db_index_exists($name)) {
+    $ret[] = update_sql('DROP INDEX '. $name);
+  }
+}
+
+function _db_index_exists($name) {
+  return db_result(db_query("SELECT COUNT(indexname) FROM pg_indexes WHERE indexname = '%s'", $name));
 }
 
 /**
