[Checkins] SVN: relstorage/trunk/relstorage/adapters/postgresql.py PostgreSQL 8.1 does not support "IF EXISTS" after "DROP TABLE"

Shane Hathaway shane at hathawaymix.org
Sun Jan 25 01:24:37 EST 2009


Log message for revision 94998:
  PostgreSQL 8.1 does not support "IF EXISTS" after "DROP TABLE"
  

Changed:
  U   relstorage/trunk/relstorage/adapters/postgresql.py

-=-
Modified: relstorage/trunk/relstorage/adapters/postgresql.py
===================================================================
--- relstorage/trunk/relstorage/adapters/postgresql.py	2009-01-25 02:43:49 UTC (rev 94997)
+++ relstorage/trunk/relstorage/adapters/postgresql.py	2009-01-25 06:24:36 UTC (rev 94998)
@@ -191,11 +191,14 @@
         conn, cursor = self.open()
         try:
             try:
+                cursor.execute("SELECT tablename FROM pg_tables")
+                existent = set([name for (name,) in cursor])
                 for tablename in ('pack_state_tid', 'pack_state',
                         'pack_object', 'object_refs_added', 'object_ref',
                         'current_object', 'object_state', 'transaction',
                         'commit_lock', 'pack_lock'):
-                    cursor.execute("DROP TABLE IF EXISTS %s" % tablename)
+                    if tablename in existent:
+                        cursor.execute("DROP TABLE %s" % tablename)
                 cursor.execute("DROP SEQUENCE zoid_seq")
             except:
                 conn.rollback()



More information about the Checkins mailing list