'suite_version': Cache(lambda x: '%s_%s' % (x['source'], x['suite'])),
}
+ self.prepared_statements = {}
+
+ def prepare(self,name,statement):
+ if not self.prepared_statements.has_key(name):
+ c = self.cursor()
+ c.execute(statement)
+ self.prepared_statements[name] = statement
+
def clear_caches(self):
self.__init_caches()
@return: the database id for the given suite
"""
- return self.__get_id('id', 'suite', 'suite_name', suite)
+ return int(self.__get_id('id', 'suite', 'suite_name', suite))
def get_section_id(self, section):
"""
c.execute("BEGIN WORK")
try:
+ arch_id = self.get_architecture_id(package['Architecture'])
# Remove any already existing recorded files for this package
c.execute("""DELETE FROM pending_content_associations
WHERE package=%(Package)s
- AND version=%(Version)s""", package )
+ AND version=%(Version)s
+ AND arch_id=%d""" % arch_id, package )
for fullpath in fullpaths:
(path, file) = os.path.split(fullpath)
+ if path.startswith( "./" ):
+ path = path[2:]
# Get the necessary IDs ...
file_id = self.get_or_set_contents_file_id(file)
path_id = self.get_or_set_contents_path_id(path)
c.execute("""INSERT INTO pending_content_associations
- (package, version, filepath, filename)
- VALUES (%%(Package)s, %%(Version)s, '%d', '%d')""" % (path_id, file_id),
- package )
+ (package, version, architecture, filepath, filename)
+ VALUES (%%(Package)s, %%(Version)s, '%d', '%d', '%d')"""
+ % (arch_id, path_id, file_id), package )
+
c.execute("COMMIT")
return True
except: