diff --git a/arkindex/documents/deletion.py b/arkindex/documents/deletion.py index e330d7db21c19843b2a381b58353177b2f5931c8..d31de8cfd45f71092a3da7efec7ef1f0002e461e 100644 --- a/arkindex/documents/deletion.py +++ b/arkindex/documents/deletion.py @@ -70,6 +70,35 @@ def delete_element(element_id: UUID) -> None: """, {'id': element_id}) logger.info(f"Deleted {cursor.rowcount} usage from process as element") + # Set folders references on training processes to None + cursor.execute(""" + UPDATE process_process + SET train_folder_id = NULL + WHERE train_folder_id = %(id)s + OR train_folder_id IN ( + SELECT element_id FROM documents_elementpath WHERE path && ARRAY[%(id)s] + ) + """, {'id': element_id}) + logger.info(f"Deleted {cursor.rowcount} usage from process as train folder") + cursor.execute(""" + UPDATE process_process + SET validation_folder_id = NULL + WHERE validation_folder_id = %(id)s + OR validation_folder_id IN ( + SELECT element_id FROM documents_elementpath WHERE path && ARRAY[%(id)s] + ) + """, {'id': element_id}) + logger.info(f"Deleted {cursor.rowcount} usage from process as validation folder") + cursor.execute(""" + UPDATE process_process + SET test_folder_id = NULL + WHERE test_folder_id = %(id)s + OR test_folder_id IN ( + SELECT element_id FROM documents_elementpath WHERE path && ARRAY[%(id)s] + ) + """, {'id': element_id}) + logger.info(f"Deleted {cursor.rowcount} usage from process as test folder") + # Remove user selections cursor.execute(""" DELETE FROM documents_selection selection diff --git a/arkindex/documents/managers.py b/arkindex/documents/managers.py index c33b3861c82ea0fb6096b4742456d0fb574d0128..7dae21c3e3d1ac0d4f02e499c1abe8a15a83bed9 100644 --- a/arkindex/documents/managers.py +++ b/arkindex/documents/managers.py @@ -80,6 +80,11 @@ class ElementQuerySet(models.QuerySet): # This may cause workers processes to target a different set of elements Process.objects.filter(element_id__in=ids).update(element_id=None) + # Set folder references on training processes to None + Process.objects.filter(train_folder_id__in=ids).update(train_folder_id=None) + Process.objects.filter(validation_folder_id__in=ids).update(validation_folder_id=None) + Process.objects.filter(test_folder_id__in=ids).update(test_folder_id=None) + # This is where it gets really ugly: in order to delete all the children # without losing their reference, we need to inject the generated SQL query # directly into an SQL DELETE statement for paths diff --git a/arkindex/sql_validation/element_dot_delete.sql b/arkindex/sql_validation/element_dot_delete.sql index 31722f6a59efd51b8306722e36224174ad02f723..9c6c90403811b14becf4f877f43cbf0389f61823 100644 --- a/arkindex/sql_validation/element_dot_delete.sql +++ b/arkindex/sql_validation/element_dot_delete.sql @@ -35,6 +35,30 @@ OR element_id IN ( SELECT element_id FROM documents_elementpath WHERE path && ARRAY['{id}'::uuid] ) ; +UPDATE process_process +SET train_folder_id = NULL +WHERE train_folder_id = '{id}'::uuid + OR train_folder_id IN + (SELECT element_id + FROM documents_elementpath + WHERE path && ARRAY['{id}'::uuid] ) ; + +UPDATE process_process +SET validation_folder_id = NULL +WHERE validation_folder_id = '{id}'::uuid + OR validation_folder_id IN + (SELECT element_id + FROM documents_elementpath + WHERE path && ARRAY['{id}'::uuid] ) ; + +UPDATE process_process +SET test_folder_id = NULL +WHERE test_folder_id = '{id}'::uuid + OR test_folder_id IN + (SELECT element_id + FROM documents_elementpath + WHERE path && ARRAY['{id}'::uuid] ) ; + DELETE FROM documents_selection selection WHERE element_id = '{id}'::uuid OR element_id IN ( diff --git a/arkindex/sql_validation/element_trash_children.sql b/arkindex/sql_validation/element_trash_children.sql index 0ad34d8158a14e83173c689578007cae862219be..e287cfddceb56af0c3eeb93d23c17d88591b78ea 100644 --- a/arkindex/sql_validation/element_trash_children.sql +++ b/arkindex/sql_validation/element_trash_children.sql @@ -100,6 +100,39 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -215,6 +248,39 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[1] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[1] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[1] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -298,6 +364,27 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/element_trash_deep.sql b/arkindex/sql_validation/element_trash_deep.sql index b63124f7c229b37bf6460ea2202a729b9f785f9d..fa4bc690ff89261a9328b719584c487f0df79492 100644 --- a/arkindex/sql_validation/element_trash_deep.sql +++ b/arkindex/sql_validation/element_trash_deep.sql @@ -100,6 +100,39 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[4] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[4] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[4] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -215,6 +248,39 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[3] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[3] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[3] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -330,6 +396,39 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -445,6 +544,39 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[1] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[1] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[1] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -528,6 +660,27 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/element_trash_ml_class.sql b/arkindex/sql_validation/element_trash_ml_class.sql index f8d72615855a09982e74956399d2a610398db8cd..67a951b60b6047eeabe2a199d18cfa6c5f625b02 100644 --- a/arkindex/sql_validation/element_trash_ml_class.sql +++ b/arkindex/sql_validation/element_trash_ml_class.sql @@ -109,6 +109,42 @@ WHERE "process_process"."element_id" IN INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") WHERE U1."id" IS NOT NULL)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") + WHERE U1."id" IS NOT NULL)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") + WHERE U1."id" IS NOT NULL)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") + WHERE U1."id" IS NOT NULL)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -202,6 +238,30 @@ WHERE "process_process"."element_id" IN INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") WHERE U1."id" IS NOT NULL); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") + WHERE U1."id" IS NOT NULL); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") + WHERE U1."id" IS NOT NULL); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_classification" U1 ON (U0."id" = U1."element_id") + WHERE U1."id" IS NOT NULL); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/element_trash_no_children.sql b/arkindex/sql_validation/element_trash_no_children.sql index 7bce1a2be531e680881bb61d6cb968e2ee6727c7..bbbb84246b4f4ba415464ce570802ebd77dc77db 100644 --- a/arkindex/sql_validation/element_trash_no_children.sql +++ b/arkindex/sql_validation/element_trash_no_children.sql @@ -58,6 +58,27 @@ WHERE "process_process"."element_id" IN FROM "documents_element" U0 WHERE U0."id" = '{id}'::uuid); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE U0."id" = '{id}'::uuid); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/worker_results_delete_all_versions.sql b/arkindex/sql_validation/worker_results_delete_all_versions.sql index fdc4a049dd8e8dd7de245aba2fb5e0c888bf6dc6..efecadf9abbc0fee363e466ccf6d58c9f6851ea8 100644 --- a/arkindex/sql_validation/worker_results_delete_all_versions.sql +++ b/arkindex/sql_validation/worker_results_delete_all_versions.sql @@ -109,6 +109,42 @@ WHERE "process_process"."element_id" IN WHERE (U0."corpus_id" = '{corpus_id}'::uuid AND NOT (U0."worker_version_id" IS NULL)))); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND NOT (U0."worker_version_id" IS NULL)))); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND NOT (U0."worker_version_id" IS NULL)))); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND NOT (U0."worker_version_id" IS NULL)))); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -202,6 +238,30 @@ WHERE "process_process"."element_id" IN WHERE (U0."corpus_id" = '{corpus_id}'::uuid AND NOT (U0."worker_version_id" IS NULL))); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND NOT (U0."worker_version_id" IS NULL))); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND NOT (U0."worker_version_id" IS NULL))); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND NOT (U0."worker_version_id" IS NULL))); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/worker_results_delete_in_corpus.sql b/arkindex/sql_validation/worker_results_delete_in_corpus.sql index 1f7a8878f002212c850049203263228230e49233..8a34274fd67deff3d37366c09466cec418f5a6b9 100644 --- a/arkindex/sql_validation/worker_results_delete_in_corpus.sql +++ b/arkindex/sql_validation/worker_results_delete_in_corpus.sql @@ -109,6 +109,42 @@ WHERE "process_process"."element_id" IN WHERE (U0."corpus_id" = '{corpus_id}'::uuid AND U0."worker_version_id" = '{version_id}'::uuid))); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid))); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid))); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid))); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -202,6 +238,30 @@ WHERE "process_process"."element_id" IN WHERE (U0."corpus_id" = '{corpus_id}'::uuid AND U0."worker_version_id" = '{version_id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/worker_results_delete_under_parent.sql b/arkindex/sql_validation/worker_results_delete_under_parent.sql index b807c4b91575d09f9721104aaaa73f95c0afe239..eb04b0085c0848d5c9cd463763d8a73987ec9010 100644 --- a/arkindex/sql_validation/worker_results_delete_under_parent.sql +++ b/arkindex/sql_validation/worker_results_delete_under_parent.sql @@ -95,6 +95,36 @@ WHERE "process_process"."element_id" IN AND U0."worker_version_id" = '{version_id}'::uuid AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_elementpath" U3 ON (U0."id" = U3."element_id") + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_elementpath" U3 ON (U0."id" = U3."element_id") + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_elementpath" U3 ON (U0."id" = U3."element_id") + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -274,6 +304,33 @@ WHERE "process_process"."element_id" IN AND U0."worker_version_id" = '{version_id}'::uuid AND U0."id" = '{element_id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath diff --git a/arkindex/sql_validation/worker_results_delete_under_parent_included.sql b/arkindex/sql_validation/worker_results_delete_under_parent_included.sql index 91623264d44c5dc3b5f08eb0425bc69ee0b36aae..fcd97940917c0ba80c09e976598cb7fb3fa55027 100644 --- a/arkindex/sql_validation/worker_results_delete_under_parent_included.sql +++ b/arkindex/sql_validation/worker_results_delete_under_parent_included.sql @@ -95,6 +95,36 @@ WHERE "process_process"."element_id" IN AND U0."worker_version_id" = '{version_id}'::uuid AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_elementpath" U3 ON (U0."id" = U3."element_id") + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_elementpath" U3 ON (U0."id" = U3."element_id") + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + INNER JOIN "documents_elementpath" U3 ON (U0."id" = U3."element_id") + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[])); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -306,6 +336,45 @@ WHERE "process_process"."element_id" IN AND U0."worker_version_id" = '{version_id}'::uuid AND U0."id" = '{element_id}'::uuid))); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid))); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid))); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT V0."id" + FROM "documents_element" V0 + INNER JOIN "documents_elementpath" V1 ON (V0."id" = V1."element_id") + WHERE V1."path"[2] IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid))); + WITH element_ids (id) AS (DELETE FROM documents_elementpath @@ -409,6 +478,33 @@ WHERE "process_process"."element_id" IN AND U0."worker_version_id" = '{version_id}'::uuid AND U0."id" = '{element_id}'::uuid)); +UPDATE "process_process" +SET "train_folder_id" = NULL +WHERE "process_process"."train_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid)); + +UPDATE "process_process" +SET "validation_folder_id" = NULL +WHERE "process_process"."validation_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid)); + +UPDATE "process_process" +SET "test_folder_id" = NULL +WHERE "process_process"."test_folder_id" IN + (SELECT U0."id" + FROM "documents_element" U0 + WHERE (U0."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND U0."id" = '{element_id}'::uuid)); + WITH element_ids (id) AS (DELETE FROM documents_elementpath