X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=97b76e0aff970ba2275e428c0e0ef22783e2166a;hb=d5e281a9a28d2b2762fc8636863035538cc5703d;hp=e1e21d2b2b1f10a386dd42c50460287d7e6c8f4d;hpb=221c511735a22974ac5ee9e1d2d5d52bf29e263e;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index e1e21d2b..97b76e0a 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -472,24 +472,16 @@ def get_suites_binary_in(package, session=None): __all__.append('get_suites_binary_in') @session_wrapper -def get_binary_from_name_suite(package, suitename, session=None): +def get_component_by_package_suite(package, suite_list, session=None): ### For dak examine-package - ### XXX: Doesn't use object API yet - - sql = """SELECT DISTINCT(b.package), b.version, c.name, su.suite_name - FROM binaries b, files fi, location l, component c, bin_associations ba, suite su - WHERE b.package='%(package)s' - AND b.file = fi.id - AND fi.location = l.id - AND l.component = c.id - AND ba.bin=b.id - AND ba.suite = su.id - AND su.suite_name %(suitename)s - ORDER BY b.version DESC""" - - return session.execute(sql % {'package': package, 'suitename': suitename}) - -__all__.append('get_binary_from_name_suite') + + return session.query(Component.component_name). \ + join(Component.location, Location.files, PoolFile.binary). \ + filter_by(package = package). \ + join(DBBinary.suites).filter(Suite.suite_name.in_(suite_list)). \ + limit(1).scalar() + +__all__.append('get_component_by_package_suite') @session_wrapper def get_binary_components(package, suitename, arch, session=None):