Skip to content

Commit 1d8625a

Browse files
committed
feat (FTS3DB): avoid "not in " queries
1 parent 1c418b4 commit 1d8625a

File tree

3 files changed

+4
-171
lines changed

3 files changed

+4
-171
lines changed

src/DIRAC/DataManagementSystem/Client/FTS3Job.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ class FTS3Job(JSerializable):
4545
]
4646

4747
FINAL_STATES = ["Canceled", "Failed", "Finished", "Finisheddirty"]
48+
49+
# This field is only used for optimizing sql queries (`in`` instead of `not in`)
50+
NON_FINAL_STATES = list(set(ALL_STATES) - set(FINAL_STATES))
4851
INIT_STATE = "Submitted"
4952

5053
# END states

src/DIRAC/DataManagementSystem/DB/FTS3DB.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ def getActiveJobs(self, limit=20, lastMonitor=None, jobAssignmentTag="Assigned")
310310
ftsJobsQuery = (
311311
session.query(FTS3Job)
312312
.join(FTS3Operation)
313-
.filter(~FTS3Job.status.in_(FTS3Job.FINAL_STATES))
313+
.filter(FTS3Job.status.in_(FTS3Job.NON_FINAL_STATES))
314314
.filter(FTS3Job.assignment.is_(None))
315315
.filter(FTS3Operation.assignment.is_(None))
316316
)

testSQL.py

Lines changed: 0 additions & 170 deletions
This file was deleted.

0 commit comments

Comments
 (0)