diff --git a/openbis/source/sql/postgresql/076/function-076.sql b/openbis/source/sql/postgresql/076/function-076.sql index ebca1a7d7432143328f03e032f08542ff68a935b..269c6412a3f16251adc41428450744dffbbaef90 100644 --- a/openbis/source/sql/postgresql/076/function-076.sql +++ b/openbis/source/sql/postgresql/076/function-076.sql @@ -275,6 +275,23 @@ CREATE TRIGGER DATA_SET_PROPERTY_WITH_MATERIAL_DATA_TYPE_CHECK BEFORE INSERT OR ---------------------------------------------------------------------------------------------------- -- Purpose: Create DEFERRED triggers for checking consistency of deletion state. +---------------------------------------------------------------------------------------------------- +-- utility function describing a deletion + +CREATE OR REPLACE FUNCTION deletion_description(del_id TECH_ID) RETURNS VARCHAR AS $$ +DECLARE + del_person VARCHAR; + del_date VARCHAR; + del_reason VARCHAR; +BEGIN + SELECT p.last_name || ' ' || p.first_name || ' (' || p.email || ')', + to_char(d.registration_timestamp, 'YYYY-MM-DD HH:MM:SS'), d.reason + INTO del_person, del_date, del_reason FROM deletions d, persons p + WHERE d.pers_id_registerer = p.id AND d.id = del_id; + RETURN 'deleted by ' || del_person || ' on ' || del_date || ' with reason: "' || del_reason || '"'; +END; +$$ LANGUAGE 'plpgsql'; + ---------------------------------------------------------------------------------------------------- -- 1. data set --- on insert/update - experiment, sample can't be deleted unless the data set is delete @@ -291,7 +308,8 @@ BEGIN FROM samples WHERE id = NEW.samp_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Sample (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to a Sample (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; -- check experiment @@ -299,7 +317,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; RETURN NEW; END; @@ -329,7 +348,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Sample (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Sample (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; RETURN NEW; diff --git a/openbis/source/sql/postgresql/077/function-077.sql b/openbis/source/sql/postgresql/077/function-077.sql index ebca1a7d7432143328f03e032f08542ff68a935b..269c6412a3f16251adc41428450744dffbbaef90 100644 --- a/openbis/source/sql/postgresql/077/function-077.sql +++ b/openbis/source/sql/postgresql/077/function-077.sql @@ -275,6 +275,23 @@ CREATE TRIGGER DATA_SET_PROPERTY_WITH_MATERIAL_DATA_TYPE_CHECK BEFORE INSERT OR ---------------------------------------------------------------------------------------------------- -- Purpose: Create DEFERRED triggers for checking consistency of deletion state. +---------------------------------------------------------------------------------------------------- +-- utility function describing a deletion + +CREATE OR REPLACE FUNCTION deletion_description(del_id TECH_ID) RETURNS VARCHAR AS $$ +DECLARE + del_person VARCHAR; + del_date VARCHAR; + del_reason VARCHAR; +BEGIN + SELECT p.last_name || ' ' || p.first_name || ' (' || p.email || ')', + to_char(d.registration_timestamp, 'YYYY-MM-DD HH:MM:SS'), d.reason + INTO del_person, del_date, del_reason FROM deletions d, persons p + WHERE d.pers_id_registerer = p.id AND d.id = del_id; + RETURN 'deleted by ' || del_person || ' on ' || del_date || ' with reason: "' || del_reason || '"'; +END; +$$ LANGUAGE 'plpgsql'; + ---------------------------------------------------------------------------------------------------- -- 1. data set --- on insert/update - experiment, sample can't be deleted unless the data set is delete @@ -291,7 +308,8 @@ BEGIN FROM samples WHERE id = NEW.samp_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Sample (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to a Sample (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; -- check experiment @@ -299,7 +317,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; RETURN NEW; END; @@ -329,7 +348,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Sample (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Sample (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; RETURN NEW; diff --git a/openbis/source/sql/postgresql/migration/migration-075-076.sql b/openbis/source/sql/postgresql/migration/migration-075-076.sql index 745cc5b7edadf77511c09d0e4c6a6d24fb24a470..8444c87eec230c9e8c0c09b68bd49f9d97834b06 100644 --- a/openbis/source/sql/postgresql/migration/migration-075-076.sql +++ b/openbis/source/sql/postgresql/migration/migration-075-076.sql @@ -2,6 +2,23 @@ ---------------------------------------------------------------------------------------------------- -- Purpose: Create DEFERRED triggers for checking consistency of deletion state. +---------------------------------------------------------------------------------------------------- +-- utility function describing a deletion + +CREATE OR REPLACE FUNCTION deletion_description(del_id TECH_ID) RETURNS VARCHAR AS $$ +DECLARE + del_person VARCHAR; + del_date VARCHAR; + del_reason VARCHAR; +BEGIN + SELECT p.last_name || ' ' || p.first_name || ' (' || p.email || ')', + to_char(d.registration_timestamp, 'YYYY-MM-DD HH:MM:SS'), d.reason + INTO del_person, del_date, del_reason FROM deletions d, persons p + WHERE d.pers_id_registerer = p.id AND d.id = del_id; + RETURN 'deleted by ' || del_person || ' on ' || del_date || ' with reason: "' || del_reason || '"'; +END; +$$ LANGUAGE 'plpgsql'; + ---------------------------------------------------------------------------------------------------- -- 1. data set --- on insert/update - experiment, sample can't be deleted unless the data set is delete @@ -18,7 +35,8 @@ BEGIN FROM samples WHERE id = NEW.samp_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Sample (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to a Sample (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; -- check experiment @@ -26,7 +44,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; RETURN NEW; END; @@ -56,7 +75,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Sample (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Sample (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; RETURN NEW; diff --git a/openbis/sourceTest/sql/postgresql/076/017=database_version_logs.tsv b/openbis/sourceTest/sql/postgresql/076/017=database_version_logs.tsv index 2946728b68475d35ad0168929d563e0555bdf94a..3723d34a75873857d4bab5c4eeee738252829892 100644 --- a/openbis/sourceTest/sql/postgresql/076/017=database_version_logs.tsv +++ b/openbis/sourceTest/sql/postgresql/076/017=database_version_logs.tsv @@ -49,4 +49,4 @@ 073 source/sql/postgresql/migration/migration-072-073.sql SUCCESS 2011-06-20 16:13:32.686 \\x2d2d204d6967726174696f6e2066726f6d2030373220746f203037330a0a414c544552205441424c4520444154412041444420434f4c554d4e20494e56415f494420544543485f49443b0a414c544552205441424c4520444154412041444420434f4e53545241494e5420444154415f494e56415f464b20464f524549474e204b45592028494e56415f494429205245464552454e43455320494e56414c49444154494f4e53284944293b0a43524541544520494e44455820444154415f494e56415f464b5f49204f4e20444154412028494e56415f4944293b0a \N 074 source/sql/postgresql/migration/migration-073-074.sql SUCCESS 2011-06-30 15:21:41.123 \\x2d2d20446f6573206e6f7468696e6720627574206d6967726174696f6e20686173206265656e20726571756573746564206279207375622070726f6a6563742073637265656e696e670a \N 075 source/sql/postgresql/migration/migration-074-075.sql SUCCESS 2011-07-12 08:27:40.478 \\x2d2d204d6967726174696f6e2066726f6d2030373420746f203037350a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2052656e616d6520696e76616c69646174696f6e20746f2064656c6574696f6e202d2d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d2072656e616d696e67733a0a2d2d207461626c6520494e56414c49444154494f4e53202d3e2044454c4554494f4e5320200a414c544552205441424c4520696e76616c69646174696f6e732052454e414d4520544f2064656c6574696f6e733b0a2d2d2073657175656e636520494e56414c49444154494f4e5f49445f534551202d3e2044454c4554494f4e5f49445f5345510a53454c4543542052454e414d455f53455155454e43452827494e56414c49444154494f4e5f49445f534551272c202744454c4554494f4e5f49445f53455127293b0a2d2d20636f6c756d6e7320494e56415f4944202d3e2044454c5f49440a414c544552205441424c4520646174612052454e414d4520696e76615f696420544f2064656c5f69643b0a414c544552205441424c452073616d706c65732052454e414d4520696e76615f696420544f2064656c5f69643b0a414c544552205441424c45206578706572696d656e74732052454e414d4520696e76615f696420544f2064656c5f69643b0a2d2d20696e64657865730a414c54455220494e44455820646174615f696e76615f666b5f692052454e414d4520544f20646174615f64656c5f666b5f693b0a414c54455220494e44455820657870655f696e76615f666b5f692052454e414d4520544f20657870655f64656c5f666b5f693b0a414c54455220494e44455820696e76615f706572735f666b5f692052454e414d4520544f2064656c5f706572735f666b5f693b0a414c54455220494e4445582073616d705f696e76615f666b5f692052454e414d4520544f2073616d705f64656c5f666b5f693b0a2d2d0a2d2d20726563726561746520636f6e73747261696e74732077697468206e6577206e616d6573202872656e616d696e67206973206e6f7420706f737369626c65290a2d2d0a414c544552205441424c452064617461200a202044524f5020434f4e53545241494e5420646174615f696e76615f666b3b0a414c544552205441424c45206578706572696d656e74730a202044524f5020434f4e53545241494e5420657870655f696e76615f666b3b0a414c544552205441424c452073616d706c65730a202044524f5020434f4e53545241494e542073616d705f696e76615f666b3b0a414c544552205441424c452064656c6574696f6e73200a202044524f5020434f4e53545241494e5420696e76615f706b3b0a20200a414c544552205441424c452064656c6574696f6e73200a202041444420434f4e53545241494e542064656c5f706b205052494d415259204b4559286964293b0a414c544552205441424c452064617461200a202041444420434f4e53545241494e5420646174615f64656c5f666b20464f524549474e204b4559202864656c5f696429205245464552454e4345532064656c6574696f6e73286964293b0a414c544552205441424c45206578706572696d656e7473200a202041444420434f4e53545241494e5420657870655f64656c5f666b20464f524549474e204b4559202864656c5f696429205245464552454e4345532064656c6574696f6e73286964293b0a414c544552205441424c452073616d706c6573200a202041444420434f4e53545241494e542073616d705f64656c5f666b20464f524549474e204b4559202864656c5f696429205245464552454e4345532064656c6574696f6e73286964293b0a20200a414c544552205441424c452064656c6574696f6e73200a202044524f5020434f4e53545241494e5420696e76615f706572735f666b3b0a414c544552205441424c452064656c6574696f6e73200a202041444420434f4e53545241494e542064656c5f706572735f666b20464f524549474e204b45592028706572735f69645f7265676973746572657229205245464552454e43455320706572736f6e73286964293b0a2d2d0a2d2d2072656d6f76652027494e56414c49444154494f4e272066726f6d204556454e545f5459504520646f6d61696e2028776520646f6e27742073746f7265206f722068616e646c652073756368206576656e7473290a2d2d0a44454c4554452046524f4d206576656e7473205748455245206576656e745f74797065203d2027494e56414c49444154494f4e273b0a414c54455220444f4d41494e206576656e745f747970652044524f5020434f4e53545241494e54206576656e745f747970655f636865636b3b0a414c54455220444f4d41494e206576656e745f747970652041444420434f4e53545241494e54206576656e745f747970655f636865636b20434845434b202856414c554520494e20282744454c4554494f4e272c20274d4f56454d454e542729293b0a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2052656d6f766520616c6c2064656c6574696f6e732e0a2d2d20526561736f6e696e673a0a2d2d2d20746865792077657265206f6e6c7920746573742064656c6574696f6e7320616e642070726f6261626c792063757272656e7420444220737461746520646f65736e2774207361746973667920636f6e73697374656e63792072756c6573200a2d2d2020696e74726f6475636564207769746820747269676765727320696e206e657874206d6967726174696f6e2c0a2d2d2d2069742069732065617369657220746f2064656c657465207468656d207468616e20746f2066697820696e636f6e73697374656e636965732e0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a2d2d5550444154452064617461205345542064656c5f6964203d204e554c4c3b0a2d2d5550444154452073616d706c6573205345542064656c5f6964203d204e554c4c3b0a2d2d555044415445206578706572696d656e7473205345542064656c5f6964203d204e554c4c3b0a2d2d44454c4554452046524f4d2064656c6574696f6e733b0a \N -076 source/sql/postgresql/migration/migration-075-076.sql SUCCESS 2011-07-12 08:28:48.062 \\x2d2d204d6967726174696f6e2066726f6d2030373520746f203037360a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2043726561746520444546455252454420747269676765727320666f7220636865636b696e6720636f6e73697374656e6379206f662064656c6574696f6e2073746174652e0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20312e2064617461207365740a2d2d2d206f6e20696e736572742f757064617465202d206578706572696d656e742c2073616d706c652063616e27742062652064656c6574656420756e6c657373207468652064617461207365742069732064656c6574650a2d2d2d2020202020202020202020202020202020202d20706172656e74732f6368696c6472656e2072656c6174696f6e7368697020737461797320756e6368616e676564200a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c69766528292052455455524e5320747269676765722041532024240a4445434c4152450a096f776e65725f636f646509434f44453b0a096f776e65725f64656c5f696409544543485f49443b0a424547494e0a20202d2d20636865636b2073616d706c650a2020494620284e45572e73616d705f6964204953204e4f54204e554c4c29205448454e0a20200953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a202009202046524f4d2073616d706c6573200a20200920205748455245206964203d204e45572e73616d705f69643b0a202009494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a090909524149534520455843455054494f4e2027496e736572742f557064617465206f662044617461205365742028436f64653a202529206661696c656420626563617573652069742063616e6e6f7420626520636f6e6e656374656420746f20612064656c657465642053616d706c652028436f64653a2025292e272c204e45572e636f64652c206f776e65725f636f64653b0a0909454e442049463b0a09454e442049463b0a092d2d20636865636b206578706572696d656e740a0953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a2020202046524f4d206578706572696d656e7473200a202020205748455245206964203d204e45572e657870655f69643b0a2020494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a0909524149534520455843455054494f4e2027496e736572742f557064617465206f662044617461205365742028436f64653a202529206661696c656420626563617573652069742063616e6e6f7420626520636f6e6e656374656420746f20612064656c65746564204578706572696d656e742028436f64653a2025292e272c204e45572e636f64652c206f776e65725f636f64653b0a09454e442049463b090a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c697665200a09414654455220494e53455254204f5220555044415445204f4e20646174610a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e554c4c290a09455845435554452050524f43454455524520636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c69766528293b0a090a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20322e2073616d706c650a2d2d2d206f6e20696e736572742f757064617465202d3e206578706572696d656e742063616e27742062652064656c6574656420756e6c657373207468652073616d706c652069732064656c657465640a2d2d2d2064656c6574696f6e200a2d2d2d2d3e20616c6c206469726563746c7920636f6e6e656374656420646174612073657473206e65656420746f2062652064656c657465640a2d2d2d2d3e20616c6c20636f6d706f6e656e747320616e64206368696c6472656e206e65656420746f2062652064656c657465640a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c69766528292052455455524e5320747269676765722041532024240a4445434c4152450a096f776e65725f636f646509434f44453b0a096f776e65725f64656c5f696409544543485f49443b0a424547494e0a20202d2d20636865636b206578706572696d656e74202863616e27742062652064656c65746564290a2020494620284e45572e657870655f6964204953204e4f54204e554c4c29205448454e0a20200953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a202009202046524f4d206578706572696d656e7473200a20200920205748455245206964203d204e45572e657870655f69643b0a202009494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a090909524149534520455843455054494f4e2027496e736572742f557064617465206f662053616d706c652028436f64653a202529206661696c656420626563617573652069742063616e6e6f7420626520636f6e6e656374656420746f20612064656c65746564204578706572696d656e742028436f64653a2025292e272c204e45572e636f64652c206f776e65725f636f64653b0a0909454e442049463b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c697665200a2020414654455220494e53455254204f5220555044415445204f4e2073616d706c65730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e554c4c290a09455845435554452050524f43454455524520636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c69766528293b0a090a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020636f756e7465722020494e54454745523b0a424547494e0a20202d2d20616c6c206469726563746c7920636f6e6e656374656420646174612073657473206e65656420746f2062652064656c657465640a20202d2d20636865636b2064617461736574730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d20646174610a092020574845524520646174612e73616d705f6964203d204e45572e696420414e4420646174612e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320646174612073657473206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a20202d2d20616c6c20636f6d706f6e656e7473206e65656420746f2062652064656c657465640a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d2073616d706c6573200a09202057484552452073616d706c65732e73616d705f69645f706172745f6f66203d204e45572e696420414e442073616d706c65732e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320636f6d706f6e656e742073616d706c6573206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a092d2d20616c6c206368696c6472656e206e65656420746f2062652064656c657465640a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a090946524f4d2073616d706c655f72656c6174696f6e73686970732073722c2073616d706c65732073630a090957484552452073616d706c655f69645f706172656e74203d204e45572e696420414e442073632e6964203d2073722e73616d706c655f69645f6368696c6420414e442073632e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a0909524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f6620697473206368696c642073616d706c6573206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e200a2020414654455220555044415445204f4e2073616d706c65730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57200a095748454e20284f4c442e64656c5f6964204953204e554c4c20414e44204e45572e64656c5f6964204953204e4f54204e554c4c290a09455845435554452050524f43454455524520636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e28293b090a090a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20332e206578706572696d656e740a2d2d2d2064656c6574696f6e202d3e20616c6c206469726563746c7920636f6e6e65637465642073616d706c657320616e6420646174612073657473206e65656420746f2062652064656c657465640a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020636f756e7465722020494e54454745523b0a424547494e0a20202d2d20636865636b2064617461736574730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d20646174610a092020574845524520646174612e657870655f6964203d204e45572e696420414e4420646174612e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e20274578706572696d656e742028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320646174612073657473206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a092d2d20636865636b2073616d706c65730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d2073616d706c6573200a09202057484552452073616d706c65732e657870655f6964203d204e45572e696420414e442073616d706c65732e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e20274578706572696d656e742028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f66206974732073616d706c6573206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e200a2020414654455220555044415445204f4e206578706572696d656e74730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57200a095748454e20284f4c442e64656c5f6964204953204e554c4c20414e44204e45572e64656c5f6964204953204e4f54204e554c4c290a09455845435554452050524f43454455524520636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e28293b0a \N +076 source/sql/postgresql/migration/migration-075-076.sql SUCCESS 2011-07-19 11:50:00.07 \\x2d2d204d6967726174696f6e2066726f6d2030373520746f203037360a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2043726561746520444546455252454420747269676765727320666f7220636865636b696e6720636f6e73697374656e6379206f662064656c6574696f6e2073746174652e0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d207574696c6974792066756e6374696f6e2064657363726962696e6720612064656c6574696f6e0a0a435245415445204f52205245504c4143452046554e4354494f4e2064656c6574696f6e5f6465736372697074696f6e2864656c5f696420544543485f4944292052455455524e5320564152434841522041532024240a4445434c4152450a202064656c5f706572736f6e20564152434841523b0a202064656c5f6461746520564152434841523b0a202064656c5f726561736f6e20564152434841523b0a424547494e0a202053454c45435420702e6c6173745f6e616d65207c7c20272027207c7c20702e66697273745f6e616d65207c7c2027202827207c7c20702e656d61696c207c7c202729272c200a202020202020202020746f5f6368617228642e726567697374726174696f6e5f74696d657374616d702c2027595959592d4d4d2d44442048483a4d4d3a535327292c20642e726561736f6e200a20202020494e544f2064656c5f706572736f6e2c2064656c5f646174652c2064656c5f726561736f6e2046524f4d2064656c6574696f6e7320642c20706572736f6e732070200a20202020574845524520642e706572735f69645f72656769737465726572203d20702e696420414e4420642e6964203d2064656c5f69643b0a202052455455524e202764656c657465642062792027207c7c2064656c5f706572736f6e207c7c2027206f6e2027207c7c2064656c5f64617465207c7c2027207769746820726561736f6e3a202227207c7c2064656c5f726561736f6e207c7c202722273b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20312e2064617461207365740a2d2d2d206f6e20696e736572742f757064617465202d206578706572696d656e742c2073616d706c652063616e27742062652064656c6574656420756e6c657373207468652064617461207365742069732064656c6574650a2d2d2d2020202020202020202020202020202020202d20706172656e74732f6368696c6472656e2072656c6174696f6e7368697020737461797320756e6368616e676564200a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c69766528292052455455524e5320747269676765722041532024240a4445434c4152450a096f776e65725f636f646509434f44453b0a096f776e65725f64656c5f696409544543485f49443b0a424547494e0a20202d2d20636865636b2073616d706c650a2020494620284e45572e73616d705f6964204953204e4f54204e554c4c29205448454e0a20200953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a202009202046524f4d2073616d706c6573200a20200920205748455245206964203d204e45572e73616d705f69643b0a202009494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a090909524149534520455843455054494f4e202744617461205365742028436f64653a2025292063616e6e6f7420626520636f6e6e656374656420746f20612053616d706c652028436f64653a20252920252e272c200a090909202020202020202020202020202020204e45572e636f64652c206f776e65725f636f64652c2064656c6574696f6e5f6465736372697074696f6e286f776e65725f64656c5f6964293b0a0909454e442049463b0a09454e442049463b0a092d2d20636865636b206578706572696d656e740a0953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a2020202046524f4d206578706572696d656e7473200a202020205748455245206964203d204e45572e657870655f69643b0a2020494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a0909524149534520455843455054494f4e202744617461205365742028436f64653a2025292063616e6e6f7420626520636f6e6e656374656420746f20616e204578706572696d656e742028436f64653a20252920252e272c200a0909202020202020202020202020202020204e45572e636f64652c206f776e65725f636f64652c2064656c6574696f6e5f6465736372697074696f6e286f776e65725f64656c5f6964293b0a09454e442049463b090a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c697665200a09414654455220494e53455254204f5220555044415445204f4e20646174610a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e554c4c290a09455845435554452050524f43454455524520636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c69766528293b0a090a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20322e2073616d706c650a2d2d2d206f6e20696e736572742f757064617465202d3e206578706572696d656e742063616e27742062652064656c6574656420756e6c657373207468652073616d706c652069732064656c657465640a2d2d2d2064656c6574696f6e200a2d2d2d2d3e20616c6c206469726563746c7920636f6e6e656374656420646174612073657473206e65656420746f2062652064656c657465640a2d2d2d2d3e20616c6c20636f6d706f6e656e747320616e64206368696c6472656e206e65656420746f2062652064656c657465640a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c69766528292052455455524e5320747269676765722041532024240a4445434c4152450a096f776e65725f636f646509434f44453b0a096f776e65725f64656c5f696409544543485f49443b0a424547494e0a20202d2d20636865636b206578706572696d656e74202863616e27742062652064656c65746564290a2020494620284e45572e657870655f6964204953204e4f54204e554c4c29205448454e0a20200953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a202009202046524f4d206578706572696d656e7473200a20200920205748455245206964203d204e45572e657870655f69643b0a202009494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a090909524149534520455843455054494f4e202753616d706c652028436f64653a2025292063616e6e6f7420626520636f6e6e656374656420746f20616e204578706572696d656e742028436f64653a20252920252e272c200a2020200909202020202020202020202020202020204e45572e636f64652c206f776e65725f636f64652c2064656c6574696f6e5f6465736372697074696f6e286f776e65725f64656c5f6964293b0a0909454e442049463b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c697665200a2020414654455220494e53455254204f5220555044415445204f4e2073616d706c65730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e554c4c290a09455845435554452050524f43454455524520636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c69766528293b0a090a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020636f756e7465722020494e54454745523b0a424547494e0a20202d2d20616c6c206469726563746c7920636f6e6e656374656420646174612073657473206e65656420746f2062652064656c657465640a20202d2d20636865636b2064617461736574730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d20646174610a092020574845524520646174612e73616d705f6964203d204e45572e696420414e4420646174612e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f66206974732064617461207365747320776173206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a20202d2d20616c6c20636f6d706f6e656e7473206e65656420746f2062652064656c657465640a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d2073616d706c6573200a09202057484552452073616d706c65732e73616d705f69645f706172745f6f66203d204e45572e696420414e442073616d706c65732e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320636f6d706f6e656e742073616d706c657320776173206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a092d2d20616c6c206368696c6472656e206e65656420746f2062652064656c657465640a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a090946524f4d2073616d706c655f72656c6174696f6e73686970732073722c2073616d706c65732073630a090957484552452073616d706c655f69645f706172656e74203d204e45572e696420414e442073632e6964203d2073722e73616d706c655f69645f6368696c6420414e442073632e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a0909524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f6620697473206368696c642073616d706c657320776173206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e200a2020414654455220555044415445204f4e2073616d706c65730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57200a095748454e20284f4c442e64656c5f6964204953204e554c4c20414e44204e45572e64656c5f6964204953204e4f54204e554c4c290a09455845435554452050524f43454455524520636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e28293b090a090a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20332e206578706572696d656e740a2d2d2d2064656c6574696f6e202d3e20616c6c206469726563746c7920636f6e6e65637465642073616d706c657320616e6420646174612073657473206e65656420746f2062652064656c657465640a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020636f756e7465722020494e54454745523b0a424547494e0a20202d2d20636865636b2064617461736574730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d20646174610a092020574845524520646174612e657870655f6964203d204e45572e696420414e4420646174612e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e20274578706572696d656e742028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f66206974732064617461207365747320776173206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a092d2d20636865636b2073616d706c65730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d2073616d706c6573200a09202057484552452073616d706c65732e657870655f6964203d204e45572e696420414e442073616d706c65732e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e20274578706572696d656e742028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f66206974732073616d706c657320776173206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e200a2020414654455220555044415445204f4e206578706572696d656e74730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57200a095748454e20284f4c442e64656c5f6964204953204e554c4c20414e44204e45572e64656c5f6964204953204e4f54204e554c4c290a09455845435554452050524f43454455524520636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e28293b0a \N diff --git a/openbis/sourceTest/sql/postgresql/076/schema-076.sql b/openbis/sourceTest/sql/postgresql/076/schema-076.sql index 32648c6e754fa4637f46b227957d3339a9cd39db..7efddde3dfdccb5036385411e8b70716cf270e53 100644 --- a/openbis/sourceTest/sql/postgresql/076/schema-076.sql +++ b/openbis/sourceTest/sql/postgresql/076/schema-076.sql @@ -53,7 +53,8 @@ BEGIN FROM samples WHERE id = NEW.samp_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Sample (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to a Sample (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; -- check experiment @@ -61,7 +62,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; RETURN NEW; END; @@ -79,7 +81,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Sample (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Sample (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; RETURN NEW; @@ -182,6 +185,21 @@ BEGIN RETURN NEW; END; $$; +CREATE FUNCTION deletion_description(del_id tech_id) RETURNS character varying + LANGUAGE plpgsql + AS $$ +DECLARE + del_person VARCHAR; + del_date VARCHAR; + del_reason VARCHAR; +BEGIN + SELECT p.last_name || ' ' || p.first_name || ' (' || p.email || ')', + to_char(d.registration_timestamp, 'YYYY-MM-DD HH:MM:SS'), d.reason + INTO del_person, del_date, del_reason FROM deletions d, persons p + WHERE d.pers_id_registerer = p.id AND d.id = del_id; + RETURN 'deleted by ' || del_person || ' on ' || del_date || ' with reason: "' || del_reason || '"'; +END; +$$; CREATE FUNCTION experiment_property_with_material_data_type_check() RETURNS trigger LANGUAGE plpgsql AS $$ diff --git a/openbis/sourceTest/sql/postgresql/077/017=database_version_logs.tsv b/openbis/sourceTest/sql/postgresql/077/017=database_version_logs.tsv index abeacbbce33317efafaa65ee32d5243481e7aef9..495bee777da73a21212830afdee34cecb9fd8fb3 100644 --- a/openbis/sourceTest/sql/postgresql/077/017=database_version_logs.tsv +++ b/openbis/sourceTest/sql/postgresql/077/017=database_version_logs.tsv @@ -50,4 +50,4 @@ 074 source/sql/postgresql/migration/migration-073-074.sql SUCCESS 2011-06-30 15:21:41.123 \\x2d2d20446f6573206e6f7468696e6720627574206d6967726174696f6e20686173206265656e20726571756573746564206279207375622070726f6a6563742073637265656e696e670a \N 075 source/sql/postgresql/migration/migration-074-075.sql SUCCESS 2011-07-12 08:27:40.478 \\x2d2d204d6967726174696f6e2066726f6d2030373420746f203037350a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2052656e616d6520696e76616c69646174696f6e20746f2064656c6574696f6e202d2d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d2072656e616d696e67733a0a2d2d207461626c6520494e56414c49444154494f4e53202d3e2044454c4554494f4e5320200a414c544552205441424c4520696e76616c69646174696f6e732052454e414d4520544f2064656c6574696f6e733b0a2d2d2073657175656e636520494e56414c49444154494f4e5f49445f534551202d3e2044454c4554494f4e5f49445f5345510a53454c4543542052454e414d455f53455155454e43452827494e56414c49444154494f4e5f49445f534551272c202744454c4554494f4e5f49445f53455127293b0a2d2d20636f6c756d6e7320494e56415f4944202d3e2044454c5f49440a414c544552205441424c4520646174612052454e414d4520696e76615f696420544f2064656c5f69643b0a414c544552205441424c452073616d706c65732052454e414d4520696e76615f696420544f2064656c5f69643b0a414c544552205441424c45206578706572696d656e74732052454e414d4520696e76615f696420544f2064656c5f69643b0a2d2d20696e64657865730a414c54455220494e44455820646174615f696e76615f666b5f692052454e414d4520544f20646174615f64656c5f666b5f693b0a414c54455220494e44455820657870655f696e76615f666b5f692052454e414d4520544f20657870655f64656c5f666b5f693b0a414c54455220494e44455820696e76615f706572735f666b5f692052454e414d4520544f2064656c5f706572735f666b5f693b0a414c54455220494e4445582073616d705f696e76615f666b5f692052454e414d4520544f2073616d705f64656c5f666b5f693b0a2d2d0a2d2d20726563726561746520636f6e73747261696e74732077697468206e6577206e616d6573202872656e616d696e67206973206e6f7420706f737369626c65290a2d2d0a414c544552205441424c452064617461200a202044524f5020434f4e53545241494e5420646174615f696e76615f666b3b0a414c544552205441424c45206578706572696d656e74730a202044524f5020434f4e53545241494e5420657870655f696e76615f666b3b0a414c544552205441424c452073616d706c65730a202044524f5020434f4e53545241494e542073616d705f696e76615f666b3b0a414c544552205441424c452064656c6574696f6e73200a202044524f5020434f4e53545241494e5420696e76615f706b3b0a20200a414c544552205441424c452064656c6574696f6e73200a202041444420434f4e53545241494e542064656c5f706b205052494d415259204b4559286964293b0a414c544552205441424c452064617461200a202041444420434f4e53545241494e5420646174615f64656c5f666b20464f524549474e204b4559202864656c5f696429205245464552454e4345532064656c6574696f6e73286964293b0a414c544552205441424c45206578706572696d656e7473200a202041444420434f4e53545241494e5420657870655f64656c5f666b20464f524549474e204b4559202864656c5f696429205245464552454e4345532064656c6574696f6e73286964293b0a414c544552205441424c452073616d706c6573200a202041444420434f4e53545241494e542073616d705f64656c5f666b20464f524549474e204b4559202864656c5f696429205245464552454e4345532064656c6574696f6e73286964293b0a20200a414c544552205441424c452064656c6574696f6e73200a202044524f5020434f4e53545241494e5420696e76615f706572735f666b3b0a414c544552205441424c452064656c6574696f6e73200a202041444420434f4e53545241494e542064656c5f706572735f666b20464f524549474e204b45592028706572735f69645f7265676973746572657229205245464552454e43455320706572736f6e73286964293b0a2d2d0a2d2d2072656d6f76652027494e56414c49444154494f4e272066726f6d204556454e545f5459504520646f6d61696e2028776520646f6e27742073746f7265206f722068616e646c652073756368206576656e7473290a2d2d0a44454c4554452046524f4d206576656e7473205748455245206576656e745f74797065203d2027494e56414c49444154494f4e273b0a414c54455220444f4d41494e206576656e745f747970652044524f5020434f4e53545241494e54206576656e745f747970655f636865636b3b0a414c54455220444f4d41494e206576656e745f747970652041444420434f4e53545241494e54206576656e745f747970655f636865636b20434845434b202856414c554520494e20282744454c4554494f4e272c20274d4f56454d454e542729293b0a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2052656d6f766520616c6c2064656c6574696f6e732e0a2d2d20526561736f6e696e673a0a2d2d2d20746865792077657265206f6e6c7920746573742064656c6574696f6e7320616e642070726f6261626c792063757272656e7420444220737461746520646f65736e2774207361746973667920636f6e73697374656e63792072756c6573200a2d2d2020696e74726f6475636564207769746820747269676765727320696e206e657874206d6967726174696f6e2c0a2d2d2d2069742069732065617369657220746f2064656c657465207468656d207468616e20746f2066697820696e636f6e73697374656e636965732e0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a2d2d5550444154452064617461205345542064656c5f6964203d204e554c4c3b0a2d2d5550444154452073616d706c6573205345542064656c5f6964203d204e554c4c3b0a2d2d555044415445206578706572696d656e7473205345542064656c5f6964203d204e554c4c3b0a2d2d44454c4554452046524f4d2064656c6574696f6e733b0a \N 076 source/sql/postgresql/migration/migration-075-076.sql SUCCESS 2011-07-12 08:28:48.062 \\x2d2d204d6967726174696f6e2066726f6d2030373520746f203037360a0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20507572706f73653a2043726561746520444546455252454420747269676765727320666f7220636865636b696e6720636f6e73697374656e6379206f662064656c6574696f6e2073746174652e0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20312e2064617461207365740a2d2d2d206f6e20696e736572742f757064617465202d206578706572696d656e742c2073616d706c652063616e27742062652064656c6574656420756e6c657373207468652064617461207365742069732064656c6574650a2d2d2d2020202020202020202020202020202020202d20706172656e74732f6368696c6472656e2072656c6174696f6e7368697020737461797320756e6368616e676564200a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c69766528292052455455524e5320747269676765722041532024240a4445434c4152450a096f776e65725f636f646509434f44453b0a096f776e65725f64656c5f696409544543485f49443b0a424547494e0a20202d2d20636865636b2073616d706c650a2020494620284e45572e73616d705f6964204953204e4f54204e554c4c29205448454e0a20200953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a202009202046524f4d2073616d706c6573200a20200920205748455245206964203d204e45572e73616d705f69643b0a202009494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a090909524149534520455843455054494f4e2027496e736572742f557064617465206f662044617461205365742028436f64653a202529206661696c656420626563617573652069742063616e6e6f7420626520636f6e6e656374656420746f20612064656c657465642053616d706c652028436f64653a2025292e272c204e45572e636f64652c206f776e65725f636f64653b0a0909454e442049463b0a09454e442049463b0a092d2d20636865636b206578706572696d656e740a0953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a2020202046524f4d206578706572696d656e7473200a202020205748455245206964203d204e45572e657870655f69643b0a2020494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a0909524149534520455843455054494f4e2027496e736572742f557064617465206f662044617461205365742028436f64653a202529206661696c656420626563617573652069742063616e6e6f7420626520636f6e6e656374656420746f20612064656c65746564204578706572696d656e742028436f64653a2025292e272c204e45572e636f64652c206f776e65725f636f64653b0a09454e442049463b090a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c697665200a09414654455220494e53455254204f5220555044415445204f4e20646174610a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e554c4c290a09455845435554452050524f43454455524520636865636b5f637265617465645f6f725f6d6f6469666965645f646174615f7365745f6f776e65725f69735f616c69766528293b0a090a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20322e2073616d706c650a2d2d2d206f6e20696e736572742f757064617465202d3e206578706572696d656e742063616e27742062652064656c6574656420756e6c657373207468652073616d706c652069732064656c657465640a2d2d2d2064656c6574696f6e200a2d2d2d2d3e20616c6c206469726563746c7920636f6e6e656374656420646174612073657473206e65656420746f2062652064656c657465640a2d2d2d2d3e20616c6c20636f6d706f6e656e747320616e64206368696c6472656e206e65656420746f2062652064656c657465640a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c69766528292052455455524e5320747269676765722041532024240a4445434c4152450a096f776e65725f636f646509434f44453b0a096f776e65725f64656c5f696409544543485f49443b0a424547494e0a20202d2d20636865636b206578706572696d656e74202863616e27742062652064656c65746564290a2020494620284e45572e657870655f6964204953204e4f54204e554c4c29205448454e0a20200953454c4543542064656c5f69642c20636f646520494e544f206f776e65725f64656c5f69642c206f776e65725f636f64650a202009202046524f4d206578706572696d656e7473200a20200920205748455245206964203d204e45572e657870655f69643b0a202009494620286f776e65725f64656c5f6964204953204e4f54204e554c4c29205448454e200a090909524149534520455843455054494f4e2027496e736572742f557064617465206f662053616d706c652028436f64653a202529206661696c656420626563617573652069742063616e6e6f7420626520636f6e6e656374656420746f20612064656c65746564204578706572696d656e742028436f64653a2025292e272c204e45572e636f64652c206f776e65725f636f64653b0a0909454e442049463b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c697665200a2020414654455220494e53455254204f5220555044415445204f4e2073616d706c65730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e554c4c290a09455845435554452050524f43454455524520636865636b5f637265617465645f6f725f6d6f6469666965645f73616d706c655f6f776e65725f69735f616c69766528293b0a090a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020636f756e7465722020494e54454745523b0a424547494e0a20202d2d20616c6c206469726563746c7920636f6e6e656374656420646174612073657473206e65656420746f2062652064656c657465640a20202d2d20636865636b2064617461736574730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d20646174610a092020574845524520646174612e73616d705f6964203d204e45572e696420414e4420646174612e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320646174612073657473206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a20202d2d20616c6c20636f6d706f6e656e7473206e65656420746f2062652064656c657465640a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d2073616d706c6573200a09202057484552452073616d706c65732e73616d705f69645f706172745f6f66203d204e45572e696420414e442073616d706c65732e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320636f6d706f6e656e742073616d706c6573206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a092d2d20616c6c206368696c6472656e206e65656420746f2062652064656c657465640a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a090946524f4d2073616d706c655f72656c6174696f6e73686970732073722c2073616d706c65732073630a090957484552452073616d706c655f69645f706172656e74203d204e45572e696420414e442073632e6964203d2073722e73616d706c655f69645f6368696c6420414e442073632e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a0909524149534520455843455054494f4e202753616d706c652028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f6620697473206368696c642073616d706c6573206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e200a2020414654455220555044415445204f4e2073616d706c65730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57200a095748454e20284f4c442e64656c5f6964204953204e554c4c20414e44204e45572e64656c5f6964204953204e4f54204e554c4c290a09455845435554452050524f43454455524520636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f73616d706c655f64656c6574696f6e28293b090a090a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2d2d20332e206578706572696d656e740a2d2d2d2064656c6574696f6e202d3e20616c6c206469726563746c7920636f6e6e65637465642073616d706c657320616e6420646174612073657473206e65656420746f2062652064656c657465640a0a435245415445204f52205245504c4143452046554e4354494f4e20636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020636f756e7465722020494e54454745523b0a424547494e0a20202d2d20636865636b2064617461736574730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d20646174610a092020574845524520646174612e657870655f6964203d204e45572e696420414e4420646174612e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e20274578706572696d656e742028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f662069747320646174612073657473206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a092d2d20636865636b2073616d706c65730a0953454c45435420636f756e74282a2920494e544f20636f756e746572200a09202046524f4d2073616d706c6573200a09202057484552452073616d706c65732e657870655f6964203d204e45572e696420414e442073616d706c65732e64656c5f6964204953204e554c4c3b0a0949462028636f756e746572203e203029205448454e0a092020524149534520455843455054494f4e20274578706572696d656e742028436f64653a2025292064656c6574696f6e206661696c65642062656361757365206174206c65617374206f6e65206f66206974732073616d706c6573206973206e6f742064656c657465642e272c204e45572e636f64653b0a09454e442049463b0a0952455455524e204e45573b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a20200a43524541544520434f4e53545241494e54205452494747455220636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e200a2020414654455220555044415445204f4e206578706572696d656e74730a0944454645525241424c4520494e495449414c4c592044454645525245440a09464f52204541434820524f57200a095748454e20284f4c442e64656c5f6964204953204e554c4c20414e44204e45572e64656c5f6964204953204e4f54204e554c4c290a09455845435554452050524f43454455524520636865636b5f64656c6574696f6e5f636f6e73697374656e63795f6f6e5f6578706572696d656e745f64656c6574696f6e28293b0a \N -077 source/sql/postgresql/migration/migration-076-077.sql SUCCESS 2011-07-12 13:11:16.555 \\x2d2d204b65657020746869732066696c6520656d707479202d206d6967726174696f6e20697320706572666f726d656420696e207375622070726f6a6563742073637265656e696e670a \N +077 source/sql/postgresql/migration/migration-076-077.sql SUCCESS 2011-07-19 11:46:43.977 \\x2d2d204b65657020746869732066696c6520656d707479202d206d6967726174696f6e20697320706572666f726d656420696e207375622070726f6a6563742073637265656e696e670a \N diff --git a/openbis/sourceTest/sql/postgresql/077/schema-077.sql b/openbis/sourceTest/sql/postgresql/077/schema-077.sql index 26b0758b53294296e70f9a80ca12c0b79be219a1..5a48c13cbf56b396219c91ca7e9dc22a31cdf45c 100644 --- a/openbis/sourceTest/sql/postgresql/077/schema-077.sql +++ b/openbis/sourceTest/sql/postgresql/077/schema-077.sql @@ -52,7 +52,8 @@ BEGIN FROM samples WHERE id = NEW.samp_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Sample (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to a Sample (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; -- check experiment @@ -60,7 +61,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Data Set (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Data Set (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; RETURN NEW; END; @@ -78,7 +80,8 @@ BEGIN FROM experiments WHERE id = NEW.expe_id; IF (owner_del_id IS NOT NULL) THEN - RAISE EXCEPTION 'Insert/Update of Sample (Code: %) failed because it cannot be connected to a deleted Experiment (Code: %).', NEW.code, owner_code; + RAISE EXCEPTION 'Sample (Code: %) cannot be connected to an Experiment (Code: %) %.', + NEW.code, owner_code, deletion_description(owner_del_id); END IF; END IF; RETURN NEW; @@ -181,6 +184,21 @@ BEGIN RETURN NEW; END; $$; +CREATE FUNCTION deletion_description(del_id tech_id) RETURNS character varying + LANGUAGE plpgsql + AS $$ +DECLARE + del_person VARCHAR; + del_date VARCHAR; + del_reason VARCHAR; +BEGIN + SELECT p.last_name || ' ' || p.first_name || ' (' || p.email || ')', + to_char(d.registration_timestamp, 'YYYY-MM-DD HH:MM:SS'), d.reason + INTO del_person, del_date, del_reason FROM deletions d, persons p + WHERE d.pers_id_registerer = p.id AND d.id = del_id; + RETURN 'deleted by ' || del_person || ' on ' || del_date || ' with reason: "' || del_reason || '"'; +END; +$$; CREATE FUNCTION experiment_property_with_material_data_type_check() RETURNS trigger LANGUAGE plpgsql AS $$