From 3f879ddb3d56122d08c4314ed0e280b6fe225827 Mon Sep 17 00:00:00 2001 From: Matt Turnbull Date: Sat, 21 Mar 2009 21:38:32 +0000 Subject: [PATCH] psql drop fk hang: seemed to be caused by having more than one connection to the db open. Made GuiBulkImport use the importer's connection instead of its own. It still has the one given to it by fpdb.py. I really don't know. Perhaps it needed a commit. --- pyfpdb/GuiBulkImport.py | 8 ++++---- pyfpdb/fpdb_import.py | 1 - pyfpdb/fpdb_simple.py | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index 84ef4645..2b1fe500 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -197,8 +197,8 @@ class GuiBulkImport(): self.load_button.show() # see how many hands are in the db and adjust accordingly - tcursor = db.db.cursor() - tcursor.execute("Select count(1) from Hands;") + tcursor = self.importer.fdb.db.cursor() + tcursor.execute("Select count(1) from Hands") row = tcursor.fetchone() tcursor.close() self.n_hands_in_db = row[0] @@ -233,8 +233,8 @@ def main(argv=None): (options, sys.argv) = parser.parse_args(args = argv) config = Configuration.Config() - db = fpdb_db.fpdb_db() - + db = None + settings = {} settings['minPrint'] = options.minPrint if os.name == 'nt': settings['os'] = 'windows' diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 5d04a1f9..2c33a841 100644 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -178,7 +178,6 @@ class Importer: tmpcursor = self.fdb.db.cursor() tmpcursor.execute("Select count(1) from Hands;") self.settings['handsInDB'] = tmpcursor.fetchone()[0] - tmpcursor.close() except: pass # if this fails we're probably doomed anyway if self.settings['handsInDB'] < 5000: return "drop" diff --git a/pyfpdb/fpdb_simple.py b/pyfpdb/fpdb_simple.py index e39fabd5..aaf2d1d2 100644 --- a/pyfpdb/fpdb_simple.py +++ b/pyfpdb/fpdb_simple.py @@ -53,7 +53,7 @@ indexes = [ , [ # indexes for postgres (list index 3) {'tab':'Boardcards', 'col':'handId', 'drop':0} , {'tab':'Gametypes', 'col':'siteId', 'drop':0} - , {'tab':'Hands', 'col':'gametypeId', 'drop':1} + , {'tab':'Hands', 'col':'gametypeId', 'drop':1} # todo :1 by sqlcoder , but this is needed for all duplicate checks. test 0 , {'tab':'Hands', 'col':'siteHandNo', 'drop':0} , {'tab':'HandsActions', 'col':'handplayerId', 'drop':0} , {'tab':'HandsPlayers', 'col':'handId', 'drop':1} @@ -164,8 +164,8 @@ def prepareBulkImport(fdb): # DON'T FORGET TO RECREATE THEM!! #print "dropping pg fk", fk['fktab'], fk['fkcol'] try: - fdb.cursor.execute("alter table " + fk['fktab'] + " drop constraint " - + fk['fktab'] + '_' + fk['fkcol'] + '_fkey') + #print "alter table %s drop constraint %s_%s_fkey" % (fk['fktab'], fk['fktab'], fk['fkcol']) + fdb.cursor.execute("alter table %s drop constraint %s_%s_fkey" % (fk['fktab'], fk['fktab'], fk['fkcol'])) print "dropped pg fk pg fk %s_%s_fkey" % (fk['fktab'], fk['fkcol']) except: print "! failed drop pg fk %s_%s_fkey" % (fk['fktab'], fk['fkcol'])