From a628a11712c998acc6790229f10a47ffd416c457 Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Tue, 29 Sep 2020 07:13:24 +0200 Subject: [PATCH] SSDM-10274: migration scripts fixed by switching *_frozen_check_on_change_property triggers off before calculating tsvector_document and switching on after. --- .../sql/postgresql/migration/migration-179-180.sql | 12 ++++++++++++ .../sql/postgresql/migration/migration-181-182.sql | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/openbis/source/sql/postgresql/migration/migration-179-180.sql b/openbis/source/sql/postgresql/migration/migration-179-180.sql index 7733df3ec0d..8c009ca88aa 100644 --- a/openbis/source/sql/postgresql/migration/migration-179-180.sql +++ b/openbis/source/sql/postgresql/migration/migration-179-180.sql @@ -114,7 +114,11 @@ CREATE TRIGGER sample_properties_tsvector_document BEFORE INSERT OR UPDATE ON sample_properties FOR EACH ROW EXECUTE PROCEDURE properties_tsvector_document_trigger(); +DROP TRIGGER IF EXISTS SAMPLE_FROZEN_CHECK_ON_CHANGE_PROPERTY ON SAMPLE_PROPERTIES; UPDATE sample_properties SET value = value; +CREATE TRIGGER SAMPLE_FROZEN_CHECK_ON_CHANGE_PROPERTY BEFORE UPDATE ON SAMPLE_PROPERTIES + FOR EACH ROW WHEN (OLD.SAMP_FROZEN AND NEW.SAMP_FROZEN) + EXECUTE PROCEDURE RAISE_EXCEPTION_FROZEN_SAMPLE('PROPERTY'); ALTER TABLE sample_properties ALTER COLUMN tsvector_document SET NOT NULL; @@ -163,7 +167,11 @@ CREATE TRIGGER experiment_properties_tsvector_document BEFORE INSERT OR UPDATE ON experiment_properties FOR EACH ROW EXECUTE PROCEDURE properties_tsvector_document_trigger(); +DROP TRIGGER IF EXISTS EXPERIMENT_FROZEN_CHECK_ON_CHANGE_PROPERTY ON EXPERIMENT_PROPERTIES; UPDATE experiment_properties SET value = value; +CREATE TRIGGER EXPERIMENT_FROZEN_CHECK_ON_CHANGE_PROPERTY BEFORE UPDATE ON EXPERIMENT_PROPERTIES + FOR EACH ROW WHEN (OLD.EXPE_FROZEN AND NEW.EXPE_FROZEN) + EXECUTE PROCEDURE RAISE_EXCEPTION_FROZEN_EXPERIMENT('PROPERTY'); ALTER TABLE experiment_properties ALTER COLUMN tsvector_document SET NOT NULL; @@ -210,7 +218,11 @@ CREATE TRIGGER data_set_properties_tsvector_document BEFORE INSERT OR UPDATE ON data_set_properties FOR EACH ROW EXECUTE PROCEDURE properties_tsvector_document_trigger(); +DROP TRIGGER IF EXISTS DATA_SET_FROZEN_CHECK_ON_CHANGE_PROPERTY ON DATA_SET_PROPERTIES; UPDATE data_set_properties SET value = value; +CREATE TRIGGER DATA_SET_FROZEN_CHECK_ON_CHANGE_PROPERTY BEFORE UPDATE ON DATA_SET_PROPERTIES + FOR EACH ROW WHEN (OLD.DASE_FROZEN AND NEW.DASE_FROZEN) + EXECUTE PROCEDURE RAISE_EXCEPTION_FROZEN_DATA_SET('PROPERTY'); ALTER TABLE data_set_properties ALTER COLUMN tsvector_document SET NOT NULL; diff --git a/openbis/source/sql/postgresql/migration/migration-181-182.sql b/openbis/source/sql/postgresql/migration/migration-181-182.sql index 3a13c9ca6f9..467469841de 100644 --- a/openbis/source/sql/postgresql/migration/migration-181-182.sql +++ b/openbis/source/sql/postgresql/migration/migration-181-182.sql @@ -63,7 +63,11 @@ CREATE TRIGGER sample_properties_tsvector_document BEFORE INSERT OR UPDATE ON sample_properties FOR EACH ROW EXECUTE PROCEDURE properties_tsvector_document_trigger(); +DROP TRIGGER IF EXISTS SAMPLE_FROZEN_CHECK_ON_CHANGE_PROPERTY ON SAMPLE_PROPERTIES; UPDATE sample_properties SET value = value; +CREATE TRIGGER SAMPLE_FROZEN_CHECK_ON_CHANGE_PROPERTY BEFORE UPDATE ON SAMPLE_PROPERTIES + FOR EACH ROW WHEN (OLD.SAMP_FROZEN AND NEW.SAMP_FROZEN) + EXECUTE PROCEDURE RAISE_EXCEPTION_FROZEN_SAMPLE('PROPERTY'); -- ALTER TABLE sample_properties -- ALTER COLUMN tsvector_document SET NOT NULL; @@ -72,13 +76,21 @@ CREATE TRIGGER experiment_properties_tsvector_document BEFORE INSERT OR UPDATE ON experiment_properties FOR EACH ROW EXECUTE PROCEDURE properties_tsvector_document_trigger(); +DROP TRIGGER IF EXISTS EXPERIMENT_FROZEN_CHECK_ON_CHANGE_PROPERTY ON EXPERIMENT_PROPERTIES; UPDATE experiment_properties SET value = value; +CREATE TRIGGER EXPERIMENT_FROZEN_CHECK_ON_CHANGE_PROPERTY BEFORE UPDATE ON EXPERIMENT_PROPERTIES + FOR EACH ROW WHEN (OLD.EXPE_FROZEN AND NEW.EXPE_FROZEN) + EXECUTE PROCEDURE RAISE_EXCEPTION_FROZEN_EXPERIMENT('PROPERTY'); CREATE TRIGGER data_set_properties_tsvector_document BEFORE INSERT OR UPDATE ON data_set_properties FOR EACH ROW EXECUTE PROCEDURE properties_tsvector_document_trigger(); +DROP TRIGGER IF EXISTS DATA_SET_FROZEN_CHECK_ON_CHANGE_PROPERTY ON DATA_SET_PROPERTIES; UPDATE data_set_properties SET value = value; +CREATE TRIGGER DATA_SET_FROZEN_CHECK_ON_CHANGE_PROPERTY BEFORE UPDATE ON DATA_SET_PROPERTIES + FOR EACH ROW WHEN (OLD.DASE_FROZEN AND NEW.DASE_FROZEN) + EXECUTE PROCEDURE RAISE_EXCEPTION_FROZEN_DATA_SET('PROPERTY'); CREATE TRIGGER material_properties_tsvector_document BEFORE INSERT OR UPDATE ON material_properties FOR EACH ROW EXECUTE PROCEDURE -- GitLab