from multiprocessing import Pool
from sqlalchemy import desc, or_
+from sqlalchemy.exc import IntegrityError
from subprocess import Popen, PIPE, call
import os.path
where o.suite = :overridesuite and o.type = :type_id and o.section = s.id and
o.component = :component)
-select bc.file, substring(o.section from position('/' in o.section) + 1) || '/' || b.package as package
+select bc.file, o.section || '/' || b.package as package
from newest_binaries b, bin_contents bc, unique_override o
where b.id = bc.binary_id and o.package = b.package
order by bc.file, b.package'''
where o.suite = :overridesuite and o.type = :type_id and o.section = s.id
order by o.package, s.section, o.modified desc)
-select bc.file, substring(o.section from position('/' in o.section) + 1) || '/' || b.package as package
+select bc.file, o.section || '/' || b.package as package
from newest_binaries b, bin_contents bc, unique_override o
where b.id = bc.binary_id and o.package = b.package
order by bc.file, b.package'''
'''
session = DBConn().session()
binary = session.query(DBBinary).get(self.binary_id)
+ empty_package = True
for filename in binary.scan_contents():
binary.contents.append(BinContents(file = filename))
- session.commit()
+ empty_package = False
+ if empty_package:
+ binary.contents.append(BinContents(file = 'EMPTY_PACKAGE'))
+ try:
+ session.commit()
+ except IntegrityError:
+ session.rollback()
+ binary.contents.append(BinContents(file = 'DUPLICATE_FILENAMES'))
+ session.commit()
session.close()
@classmethod