X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdakdb%2Fupdate28.py;h=c899831ca527784008d29a6ddaf7051e54a9608c;hb=27e00376e81d1c37ff327ee0d39670b266418869;hp=042a6ac493454cd437f05a561f8c08b58e7b5a50;hpb=fffe7d0517f4d1ab8a15b9e444bcb2fb92b2bd46;p=dak.git diff --git a/dak/dakdb/update28.py b/dak/dakdb/update28.py index 042a6ac4..c899831c 100755 --- a/dak/dakdb/update28.py +++ b/dak/dakdb/update28.py @@ -31,18 +31,16 @@ keep contents of binary packages in tables so we can generate contents.gz files import psycopg2 import time from daklib.dak_exceptions import DBUpdateError +from daklib.config import Config +import string ################################################################################ -def suites(): +def _suites(): """ return a list of suites to operate on """ - if Config().has_key( "%s::%s" %(options_prefix,"Suite")): - suites = utils.split_args(Config()[ "%s::%s" %(options_prefix,"Suite")]) - else: - suites = Config().SubTree("Suite").List() - + suites = Config().SubTree("Suite").List() return suites def arches(cursor, suite): @@ -53,7 +51,7 @@ def arches(cursor, suite): cursor.execute("""SELECT s.architecture, a.arch_string FROM suite_architectures s JOIN architecture a ON (s.architecture=a.id) - WHERE suite = :suite""", {'suite' : suite }) + WHERE suite = '%s'""" % suite) while True: r = cursor.fetchone() @@ -141,20 +139,24 @@ def do_update(self): c.execute("""CREATE INDEX ind_deb_contents_binary ON deb_contents(binary_id);""" ) - - suites = self.suites() + suites = _suites() for suite in [i.lower() for i in suites]: - suite_id = DBConn().get_suite_id(suite) + + c.execute("SELECT id FROM suite WHERE suite_name ='%s'" % suite ) + suiterow = c.fetchone() + suite_id = suiterow[0] arch_list = arches(c, suite_id) arch_list = arches(c, suite_id) + suitestr=string.replace(suite,'-','_'); for (arch_id,arch_str) in arch_list: - c.execute( "CREATE INDEX ind_deb_contents_%s_%s ON deb_contents (arch,suite) WHERE (arch=2 OR arch=%d) AND suite=$d"%(arch_str,suite,arch_id,suite_id) ) + arch_str = string.replace(arch_str,"-", "_") + c.execute( "CREATE INDEX ind_deb_contents_%s_%s ON deb_contents (arch,suite) WHERE (arch=2 OR arch=%s) AND suite='%s'"%(arch_str,suitestr,arch_id,suite_id) ) for section, sname in [("debian-installer","main"), ("non-free/debian-installer", "nonfree")]: - c.execute( "CREATE INDEX ind_udeb_contents_%s_%s ON udeb_contents (section,suite) WHERE section=%s AND suite=$d"%(sname,suite,section,suite_id) ) + c.execute( "CREATE INDEX ind_udeb_contents_%s_%s ON udeb_contents (section,suite) WHERE section='%s' AND suite='%s'"%(sname,suitestr,section,suite_id) ) c.execute( """CREATE OR REPLACE FUNCTION update_contents_for_bin_a() RETURNS trigger AS $$ @@ -263,7 +265,7 @@ $$ LANGUAGE plpythonu VOLATILE;""") self.db.commit() - except psycopg2.ProgrammingError, msg: + except psycopg2.ProgrammingError as msg: self.db.rollback() raise DBUpdateError, "Unable to apply process-new update 28, rollback issued. Error message : %s" % (str(msg))