From 670ab6b7d534a6b49c4d7a73b90b092ce070f0f3 Mon Sep 17 00:00:00 2001 From: Rajat Ahuja Date: Wed, 14 Jan 2026 14:43:09 -0500 Subject: [PATCH] fix: delete syntax --- .../119a52b73c60_support_external_embeddings.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/migrations/versions/119a52b73c60_support_external_embeddings.py b/migrations/versions/119a52b73c60_support_external_embeddings.py index ab3dc431..23a688a6 100644 --- a/migrations/versions/119a52b73c60_support_external_embeddings.py +++ b/migrations/versions/119a52b73c60_support_external_embeddings.py @@ -231,16 +231,18 @@ def downgrade() -> None: batch_size = 5000 # Delete active_queue_sessions for queue items with NULL workspace_name + # Use CTE-based delete since PostgreSQL doesn't support DELETE ... LIMIT while True: result = conn.execute( sa.text( f""" - DELETE FROM "{schema}".active_queue_sessions - WHERE work_unit_key IN ( + WITH del AS ( SELECT work_unit_key FROM "{schema}".queue WHERE workspace_name IS NULL + LIMIT :batch_size ) - LIMIT :batch_size + DELETE FROM "{schema}".active_queue_sessions + WHERE work_unit_key IN (SELECT work_unit_key FROM del) """ ), {"batch_size": batch_size}, @@ -249,13 +251,18 @@ def downgrade() -> None: break # Delete queue items with NULL workspace_name + # Use CTE with ctid for safe batched delete in PostgreSQL while True: result = conn.execute( sa.text( f""" + WITH del AS ( + SELECT ctid FROM "{schema}".queue + WHERE workspace_name IS NULL + LIMIT :batch_size + ) DELETE FROM "{schema}".queue - WHERE workspace_name IS NULL - LIMIT :batch_size + WHERE ctid IN (SELECT ctid FROM del) """ ), {"batch_size": batch_size},