From a37b2dbc32650287de929ed39690e2375d0ee07d Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 5 Mar 2024 11:42:58 +0100 Subject: [PATCH 1/7] RED-8561: added sql query to create entities for dossier dictionaries --- .../resources/db/changelog/db.changelog-tenant.yaml | 2 ++ .../sql/205-add-dossier-dictionaries-as-entity.sql | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index 8c8ee04bc..963e3e9be 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -183,3 +183,5 @@ databaseChangeLog: file: db/changelog/tenant/119-set-add-to-all-dossiers-correctly-in-manual-redaction-table.yaml - include: file: db/changelog/tenant/120-add-legal-basis-change-to-manual-recategorization.yaml + - include: + file: db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql new file mode 100644 index 000000000..0beacee5f --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -0,0 +1,12 @@ +-- SELECT * FROM entity WHERE id NOT LIKE ALL (SELECT e.id || '%' FROM entity e WHERE e.dossier_id IS NULL) AND dossier_id IS NOT NULL; +-- +-- INSERT INTO entity + +INSERT INTO entity (id, add_to_dictionary_action, description, dossier_id, dossier_template_id, hex_color, is_case_insensitive, is_hint, is_recommendation, + label, rank, type, version, recommendation_hex_color, has_dictionary, system_managed, auto_hide_skipped, soft_deleted_time, skipped_hex_color, + dossier_dictionary_only) +SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e.add_to_dictionary_action, e.description, e.dossier_id, e.dossier_template_id, e.hex_color, e.is_case_insensitive, e.is_hint, e.is_recommendation, + e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, + e.dossier_dictionary_only +FROM entity e +WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL; \ No newline at end of file -- 2.47.2 From 7b6af5bf3b63f01d37c9d2bce673b9262dcf55ca Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 5 Mar 2024 12:49:13 +0100 Subject: [PATCH 2/7] RED-8561: updated sql query to avoid conflicts with primary key in table entity --- .../tenant/sql/205-add-dossier-dictionaries-as-entity.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql index 0beacee5f..058431630 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -9,4 +9,4 @@ SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, e.dossier_dictionary_only FROM entity e -WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL; \ No newline at end of file +WHERE (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE OR NOT NULL; \ No newline at end of file -- 2.47.2 From 96be1ba52e6ed788c137e20452ecd7707ceb2f31 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 5 Mar 2024 14:17:14 +0100 Subject: [PATCH 3/7] RED-8561: updated sql query to avoid conflicts with primary key in table entity --- .../tenant/sql/205-add-dossier-dictionaries-as-entity.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql index 058431630..93bbf9864 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -9,4 +9,4 @@ SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, e.dossier_dictionary_only FROM entity e -WHERE (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE OR NOT NULL; \ No newline at end of file +WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL AND (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE; \ No newline at end of file -- 2.47.2 From 01f857fcef504aa86394d8b3aae422a6256e9015 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 5 Mar 2024 15:39:07 +0100 Subject: [PATCH 4/7] RED-8561: updated sql query to avoid conflicts with primary key in table entity --- .../tenant/sql/205-add-dossier-dictionaries-as-entity.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql index 93bbf9864..e974b6760 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -5,7 +5,7 @@ INSERT INTO entity (id, add_to_dictionary_action, description, dossier_id, dossier_template_id, hex_color, is_case_insensitive, is_hint, is_recommendation, label, rank, type, version, recommendation_hex_color, has_dictionary, system_managed, auto_hide_skipped, soft_deleted_time, skipped_hex_color, dossier_dictionary_only) -SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e.add_to_dictionary_action, e.description, e.dossier_id, e.dossier_template_id, e.hex_color, e.is_case_insensitive, e.is_hint, e.is_recommendation, +SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e.add_to_dictionary_action, e.description, NULL, e.dossier_template_id, e.hex_color, e.is_case_insensitive, e.is_hint, e.is_recommendation, e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, e.dossier_dictionary_only FROM entity e -- 2.47.2 From 6bb3c93b843e46f2a40c3ce19d5c75ef9f47edd0 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 5 Mar 2024 17:58:46 +0100 Subject: [PATCH 5/7] RED-8561: updated sql query to avoid conflicts with primary key in table entity --- .../tenant/sql/205-add-dossier-dictionaries-as-entity.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql index e974b6760..f68e1fb90 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -7,6 +7,6 @@ INSERT INTO entity (id, add_to_dictionary_action, description, dossier_id, dossi dossier_dictionary_only) SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e.add_to_dictionary_action, e.description, NULL, e.dossier_template_id, e.hex_color, e.is_case_insensitive, e.is_hint, e.is_recommendation, e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, - e.dossier_dictionary_only + TRUE FROM entity e WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL AND (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE; \ No newline at end of file -- 2.47.2 From a98cc0a6f2da66aa069a21fb72715551599e1de8 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 5 Mar 2024 20:20:10 +0100 Subject: [PATCH 6/7] RED-8561: updated sql query to update existing dossier dictionaries with dossier_dictionary_only=true --- .../sql/205-add-dossier-dictionaries-as-entity.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql index f68e1fb90..35290190e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -1,7 +1,3 @@ --- SELECT * FROM entity WHERE id NOT LIKE ALL (SELECT e.id || '%' FROM entity e WHERE e.dossier_id IS NULL) AND dossier_id IS NOT NULL; --- --- INSERT INTO entity - INSERT INTO entity (id, add_to_dictionary_action, description, dossier_id, dossier_template_id, hex_color, is_case_insensitive, is_hint, is_recommendation, label, rank, type, version, recommendation_hex_color, has_dictionary, system_managed, auto_hide_skipped, soft_deleted_time, skipped_hex_color, dossier_dictionary_only) @@ -9,4 +5,8 @@ SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, TRUE FROM entity e -WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL AND (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE; \ No newline at end of file +WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL AND (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE; + +UPDATE entity +SET dossier_dictionary_only = TRUE +WHERE starts_with(id, (SELECT trim(trailing ':' from trim(trailing dossier_id from id)))); \ No newline at end of file -- 2.47.2 From 333fd40449bb64fc1d50bcfd4bf169041f4d0611 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Wed, 6 Mar 2024 10:41:51 +0100 Subject: [PATCH 7/7] RED-8561: flag for add to dictionary action was set to false in 3.6, but has to be true in 4.0 --- .../tenant/sql/205-add-dossier-dictionaries-as-entity.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql index 35290190e..180f15fcf 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/205-add-dossier-dictionaries-as-entity.sql @@ -1,12 +1,12 @@ INSERT INTO entity (id, add_to_dictionary_action, description, dossier_id, dossier_template_id, hex_color, is_case_insensitive, is_hint, is_recommendation, label, rank, type, version, recommendation_hex_color, has_dictionary, system_managed, auto_hide_skipped, soft_deleted_time, skipped_hex_color, dossier_dictionary_only) -SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), e.add_to_dictionary_action, e.description, NULL, e.dossier_template_id, e.hex_color, e.is_case_insensitive, e.is_hint, e.is_recommendation, +SELECT (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))), TRUE, e.description, NULL, e.dossier_template_id, e.hex_color, e.is_case_insensitive, e.is_hint, e.is_recommendation, e.label, e.rank, e.type, e.version, e.recommendation_hex_color, e.has_dictionary, e.system_managed, e.auto_hide_skipped, e.soft_deleted_time, e.skipped_hex_color, TRUE FROM entity e WHERE (SELECT trim(trailing ':' from trim(trailing e.dossier_id from e.id))) IS NOT NULL AND (SELECT substr(e.id, POSITION(':' IN e.id) + POSITION(':' IN substr(e.id, POSITION(':' IN e.id) + 1)) + 1)) = '' IS FALSE; UPDATE entity -SET dossier_dictionary_only = TRUE +SET dossier_dictionary_only = TRUE, add_to_dictionary_action = TRUE WHERE starts_with(id, (SELECT trim(trailing ':' from trim(trailing dossier_id from id)))); \ No newline at end of file -- 2.47.2