From b9fdf674308394da488ac1df153356588c899766 Mon Sep 17 00:00:00 2001 From: Valentin Rigal <rigal@teklia.com> Date: Wed, 14 Jun 2023 11:26:32 +0000 Subject: [PATCH] Delete training links upon element deletion --- arkindex/documents/deletion.py | 29 ++++ arkindex/documents/managers.py | 5 + .../sql_validation/element_dot_delete.sql | 24 +++ .../sql_validation/element_trash_children.sql | 87 ++++++++++ .../sql_validation/element_trash_deep.sql | 153 ++++++++++++++++++ .../sql_validation/element_trash_ml_class.sql | 60 +++++++ .../element_trash_no_children.sql | 21 +++ .../worker_results_delete_all_versions.sql | 60 +++++++ .../worker_results_delete_in_corpus.sql | 60 +++++++ .../worker_results_delete_under_parent.sql | 57 +++++++ ...r_results_delete_under_parent_included.sql | 96 +++++++++++ 11 files changed, 652 insertions(+) diff --git a/arkindex/documents/deletion.py b/arkindex/documents/deletion.py index e330d7db21..d31de8cfd4 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 c33b3861c8..7dae21c3e3 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 31722f6a59..9c6c904038 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 0ad34d8158..e287cfddce 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 b63124f7c2..fa4bc690ff 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 f8d7261585..67a951b60b 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 7bce1a2be5..bbbb84246b 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 fdc4a049dd..efecadf9ab 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 1f7a8878f0..8a34274fd6 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 b807c4b915..eb04b0085c 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 91623264d4..fcd9794091 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 -- GitLab