X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=db_access.py;h=45ce1c1f3b377ac4a0a163831ea0409ff59686a8;hb=155a2a479011874c09351074f2970cce66275b82;hp=64113baaa31ddcdac5c298742c74d4740be15e1b;hpb=d6252d1241c638c36ea7789f6bc85edc90baba41;p=dak.git diff --git a/db_access.py b/db_access.py index 64113baa..45ce1c1f 100644 --- a/db_access.py +++ b/db_access.py @@ -1,8 +1,8 @@ #!/usr/bin/env python # DB access fucntions -# Copyright (C) 2000, 2001, 2002, 2003 James Troup -# $Id: db_access.py,v 1.15 2003-02-11 18:09:59 troup Exp $ +# Copyright (C) 2000, 2001, 2002, 2003, 2004 James Troup +# $Id: db_access.py,v 1.17 2005-12-05 03:45:12 ajt Exp $ # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ ################################################################################ -import sys, time; +import sys, time, types; ################################################################################ @@ -39,6 +39,7 @@ source_id_cache = {}; files_id_cache = {}; maintainer_cache = {}; fingerprint_id_cache = {}; +queue_id_cache = {}; uid_id_cache = {}; ################################################################################ @@ -56,6 +57,12 @@ def do_query(q): r = projectB.query(q); time_diff = time.time()-before; sys.stderr.write("took %.3f seconds.\n" % (time_diff)); + if type(r) is int: + sys.stderr.write("int result: %s\n" % (r)); + elif type(r) is types.NoneType: + sys.stderr.write("result: None\n"); + else: + sys.stderr.write("pgresult: %s\n" % (r.getresult())); return r; ################################################################################ @@ -293,6 +300,21 @@ def get_files_id (filename, size, md5sum, location_id): else: return None +################################################################################ + +def get_or_set_queue_id (queue): + global queue_id_cache + if queue_id_cache.has_key(queue): + return queue_id_cache[queue] + + q = projectB.query("SELECT id FROM queue WHERE queue_name = '%s'" % (queue)) + if not q.getresult(): + projectB.query("INSERT INTO queue (queue_name) VALUES ('%s')" % (queue)) + q = projectB.query("SELECT id FROM queue WHERE queue_name = '%s'" % (queue)) + queue_id = q.getresult()[0][0] + queue_id_cache[queue] = queue_id + + return queue_id ################################################################################