diff --git a/dak/manage_build_queues.py b/dak/manage_build_queues.py index 6d5b34880b8f2f24c460928e242015e24973ef6b..f69ed5e80f732f2a1ea64dfa79aae305e57b916c 100755 --- a/dak/manage_build_queues.py +++ b/dak/manage_build_queues.py @@ -28,6 +28,7 @@ import apt_pkg from datetime import datetime, timedelta import sys +import sqlalchemy.sql as sql from daklib import daklog from daklib.archive import ArchiveTransaction @@ -65,7 +66,7 @@ def clean(build_queue, transaction, now=None): # 1. Keep binaries that are in policy queues. # 2. Remove binaries that are not in suites. # 3. Remove binaries that have been in the build queue for some time. - query = """ + query = sql.text(""" SELECT b.* FROM binaries b JOIN bin_associations ba ON b.id = ba.bin @@ -82,7 +83,7 @@ def clean(build_queue, transaction, now=None): OR NOT EXISTS (SELECT 1 FROM bin_associations ba2 JOIN suite_build_queue_copy sbqc ON sbqc.suite = ba2.suite - WHERE ba2.bin = ba.bin AND sbqc.build_queue_id = :build_queue_id))""" + WHERE ba2.bin = ba.bin AND sbqc.build_queue_id = :build_queue_id))""") binaries = session.query(DBBinary).from_statement(query) \ .params({'build_queue_id': build_queue.queue_id, 'suite_id': suite.suite_id, 'delete_before': delete_before}) for binary in binaries: @@ -92,7 +93,7 @@ def clean(build_queue, transaction, now=None): # Remove sources # Conditions are similar as for binaries, but we also keep sources # if there is a binary in the build queue that uses it. - query = """ + query = sql.text(""" SELECT s.* FROM source s JOIN src_associations sa ON s.id = sa.source @@ -114,7 +115,7 @@ def clean(build_queue, transaction, now=None): (SELECT 1 FROM bin_associations ba JOIN binaries b ON ba.bin = b.id WHERE ba.suite = :suite_id - AND b.source = s.id)""" + AND b.source = s.id)""") sources = session.query(DBSource).from_statement(query) \ .params({'build_queue_id': build_queue.queue_id, 'suite_id': suite.suite_id, 'delete_before': delete_before}) for source in sources: diff --git a/dak/update_suite.py b/dak/update_suite.py index 6043dd2ccb9403b148ca6b3f73035c0dfce0a890..2690025620cfed369534aa5d4b0608d8ec04d308 100644 --- a/dak/update_suite.py +++ b/dak/update_suite.py @@ -22,6 +22,7 @@ import daklib.daklog import daklib.utils from sqlalchemy.orm.exc import NoResultFound +import sqlalchemy.sql as sql import sys """ @@ -134,7 +135,7 @@ class SuiteUpdater(object): 'additional_sources': additional_sources, } - return self.transaction.session.query(DBBinary).from_statement(query).params(params) + return self.transaction.session.query(DBBinary).from_statement(sql.text(query)).params(params) def query_new_sources(self): # Candidates are source packages in the origin suite, and optionally in its policy queue. @@ -177,7 +178,7 @@ class SuiteUpdater(object): params = {'origin': self.origin.suite_id, 'target': self.target.suite_id} - return self.transaction.session.query(DBSource).from_statement(query).params(params) + return self.transaction.session.query(DBSource).from_statement(sql.text(query)).params(params) def _components_for_binary(self, binary, suite): session = self.transaction.session