diff --git a/openbis/source/sql/generic/180/data-180.sql b/openbis/source/sql/generic/180/data-180.sql index 70f1d9a143dda053410fd0672a9ced2a6d71d3f3..afd17c4c4ecabd5345b8eab4a8c172b79fc2a2df 100644 --- a/openbis/source/sql/generic/180/data-180.sql +++ b/openbis/source/sql/generic/180/data-180.sql @@ -437,7 +437,8 @@ perm_id, code, proj_id, exty_id, -pers_id_registerer) +pers_id_registerer, +tsvector_document) values ( currval('EXPERIMENT_ID_SEQ'), @@ -445,7 +446,9 @@ to_char(now(), 'YYYYMMDDHH24MISSMS')||'-'||currval('EXPERIMENT_ID_SEQ'), 'DEFAULT', (select id from projects where code = 'DEFAULT'), (select id from experiment_types where code = 'UNKNOWN'), -(select id from persons where user_id ='system') +(select id from persons where user_id ='system'), +(to_char(now(), 'YYYYMMDDHH24MISSMS')||'-'||currval('EXPERIMENT_ID_SEQ') || ':1')::tsvector || + 'DEFAULT:1'::tsvector || '/DEFAULT/DEFAULT/DEFAULT:1'::tsvector ); --------------------------------------------------------------------- @@ -460,7 +463,8 @@ code, expe_id, space_id, saty_id, -pers_id_registerer) +pers_id_registerer, +tsvector_document) values ( currval('SAMPLE_ID_SEQ'), @@ -469,6 +473,8 @@ to_char(now(), 'YYYYMMDDHH24MISSMS')||'-'||currval('SAMPLE_ID_SEQ'), (select id from experiments where code = 'DEFAULT'), (select id from spaces where code = 'DEFAULT'), (select id from sample_types where code = 'UNKNOWN'), -(select id from persons where user_id ='system') +(select id from persons where user_id ='system'), +(to_char(now(), 'YYYYMMDDHH24MISSMS')||'-'||currval('SAMPLE_ID_SEQ') || ':1')::tsvector || + 'DEFAULT:1'::tsvector || '/DEFAULT/DEFAULT:1'::tsvector ); diff --git a/openbis/source/sql/generic/180/schema-180.sql b/openbis/source/sql/generic/180/schema-180.sql index 924a3f1e835a6cb7678f13c5455ad74d6138799a..9e1768a5fb1e592d8c95af7888f1c19b0b98660e 100644 --- a/openbis/source/sql/generic/180/schema-180.sql +++ b/openbis/source/sql/generic/180/schema-180.sql @@ -12,7 +12,7 @@ CREATE TABLE EVENTS (ID TECH_ID NOT NULL,EVENT_TYPE EVENT_TYPE NOT NULL,DESCRIPT CREATE TABLE EXPERIMENTS_ALL (ID TECH_ID NOT NULL,PERM_ID CODE NOT NULL,CODE CODE NOT NULL,EXTY_ID TECH_ID NOT NULL,PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, PROJ_ID TECH_ID NOT NULL,DEL_ID TECH_ID, ORIG_DEL TECH_ID, IS_PUBLIC BOOLEAN_CHAR NOT NULL DEFAULT 'F', PERS_ID_MODIFIER TECH_ID, VERSION INTEGER DEFAULT 0, FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', FROZEN_FOR_SAMP BOOLEAN_CHAR NOT NULL DEFAULT 'F', FROZEN_FOR_DATA BOOLEAN_CHAR NOT NULL DEFAULT 'F', PROJ_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', TSVECTOR_DOCUMENT TSVECTOR NOT NULL); CREATE TABLE ATTACHMENTS (ID TECH_ID NOT NULL,EXPE_ID TECH_ID,SAMP_ID TECH_ID,PROJ_ID TECH_ID,EXAC_ID TECH_ID NOT NULL,FILE_NAME FILE_NAME NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP,VERSION INTEGER NOT NULL,PERS_ID_REGISTERER TECH_ID NOT NULL, title TITLE_100, description DESCRIPTION_2000, PROJ_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', EXPE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', SAMP_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F'); CREATE TABLE ATTACHMENT_CONTENTS (ID TECH_ID NOT NULL,VALUE FILE NOT NULL); -CREATE TABLE EXPERIMENT_PROPERTIES (ID TECH_ID NOT NULL,EXPE_ID TECH_ID NOT NULL,ETPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,CVTE_ID TECH_ID, MATE_PROP_ID TECH_ID, SAMP_PROP_ID TECH_ID, PERS_ID_REGISTERER TECH_ID NOT NULL, REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, EXPE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F'); +CREATE TABLE EXPERIMENT_PROPERTIES (ID TECH_ID NOT NULL,EXPE_ID TECH_ID NOT NULL,ETPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,CVTE_ID TECH_ID, MATE_PROP_ID TECH_ID, SAMP_PROP_ID TECH_ID, PERS_ID_REGISTERER TECH_ID NOT NULL, REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, EXPE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', TSVECTOR_DOCUMENT TSVECTOR NOT NULL); CREATE TABLE EXPERIMENT_PROPERTIES_HISTORY (ID TECH_ID NOT NULL, EXPE_ID TECH_ID NOT NULL, ETPT_ID TECH_ID NOT NULL, VALUE TEXT_VALUE, VOCABULARY_TERM IDENTIFIER, MATERIAL IDENTIFIER, SAMPLE IDENTIFIER, PERS_ID_AUTHOR TECH_ID NOT NULL, VALID_FROM_TIMESTAMP TIME_STAMP NOT NULL, VALID_UNTIL_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP); CREATE TABLE EXPERIMENT_TYPES (ID TECH_ID NOT NULL,CODE CODE NOT NULL,DESCRIPTION DESCRIPTION_2000, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, VALIDATION_SCRIPT_ID TECH_ID); CREATE TABLE EXPERIMENT_TYPE_PROPERTY_TYPES (ID TECH_ID NOT NULL,EXTY_ID TECH_ID NOT NULL,PRTY_ID TECH_ID NOT NULL,IS_MANDATORY BOOLEAN_CHAR NOT NULL DEFAULT 'F',IS_MANAGED_INTERNALLY BOOLEAN_CHAR NOT NULL DEFAULT 'F',PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, ORDINAL ORDINAL_INT NOT NULL, SECTION DESCRIPTION_2000,SCRIPT_ID TECH_ID,IS_SHOWN_EDIT BOOLEAN_CHAR NOT NULL DEFAULT 'T',SHOW_RAW_VALUE BOOLEAN_CHAR NOT NULL DEFAULT 'F'); @@ -23,7 +23,7 @@ CREATE TABLE SPACES (ID TECH_ID NOT NULL,CODE CODE NOT NULL,DESCRIPTION DESCRIPT CREATE TABLE DELETIONS (ID TECH_ID NOT NULL,PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP,REASON DESCRIPTION_2000 NOT NULL); CREATE TABLE LOCATOR_TYPES (ID TECH_ID NOT NULL,CODE CODE NOT NULL,DESCRIPTION DESCRIPTION_2000); CREATE TABLE MATERIALS (ID TECH_ID NOT NULL,CODE CODE NOT NULL,MATY_ID TECH_ID NOT NULL,PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, TSVECTOR_DOCUMENT TSVECTOR NOT NULL); -CREATE TABLE MATERIAL_PROPERTIES (ID TECH_ID NOT NULL,MATE_ID TECH_ID NOT NULL,MTPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, PERS_ID_REGISTERER TECH_ID NOT NULL,CVTE_ID TECH_ID, MATE_PROP_ID TECH_ID); +CREATE TABLE MATERIAL_PROPERTIES (ID TECH_ID NOT NULL,MATE_ID TECH_ID NOT NULL,MTPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, PERS_ID_REGISTERER TECH_ID NOT NULL,CVTE_ID TECH_ID, MATE_PROP_ID TECH_ID, TSVECTOR_DOCUMENT TSVECTOR NOT NULL); CREATE TABLE MATERIAL_PROPERTIES_HISTORY (ID TECH_ID NOT NULL, MATE_ID TECH_ID NOT NULL, MTPT_ID TECH_ID NOT NULL, VALUE TEXT_VALUE, VOCABULARY_TERM IDENTIFIER, MATERIAL IDENTIFIER, PERS_ID_AUTHOR TECH_ID NOT NULL, VALID_FROM_TIMESTAMP TIME_STAMP NOT NULL, VALID_UNTIL_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP); CREATE TABLE MATERIAL_TYPES (ID TECH_ID NOT NULL,CODE CODE NOT NULL,DESCRIPTION DESCRIPTION_2000, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, VALIDATION_SCRIPT_ID TECH_ID); CREATE TABLE MATERIAL_TYPE_PROPERTY_TYPES (ID TECH_ID NOT NULL,MATY_ID TECH_ID NOT NULL,PRTY_ID TECH_ID NOT NULL,IS_MANDATORY BOOLEAN_CHAR NOT NULL DEFAULT 'F',IS_MANAGED_INTERNALLY BOOLEAN_CHAR NOT NULL DEFAULT 'F',REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP,PERS_ID_REGISTERER TECH_ID NOT NULL, ORDINAL ORDINAL_INT NOT NULL, SECTION DESCRIPTION_2000,SCRIPT_ID TECH_ID,IS_SHOWN_EDIT BOOLEAN_CHAR NOT NULL DEFAULT 'T',SHOW_RAW_VALUE BOOLEAN_CHAR NOT NULL DEFAULT 'F'); @@ -33,12 +33,12 @@ CREATE TABLE PROJECTS (ID TECH_ID NOT NULL,PERM_ID CODE NOT NULL,CODE CODE NOT N CREATE TABLE PROPERTY_TYPES (ID TECH_ID NOT NULL,CODE CODE NOT NULL,DESCRIPTION DESCRIPTION_2000 NOT NULL,LABEL COLUMN_LABEL NOT NULL,DATY_ID TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP,PERS_ID_REGISTERER TECH_ID NOT NULL,COVO_ID TECH_ID,IS_MANAGED_INTERNALLY BOOLEAN_CHAR NOT NULL DEFAULT 'F',IS_INTERNAL_NAMESPACE BOOLEAN_CHAR NOT NULL DEFAULT 'F', MATY_PROP_ID TECH_ID, SATY_PROP_ID TECH_ID, SCHEMA TEXT_VALUE, TRANSFORMATION TEXT_VALUE, META_DATA JSONB); CREATE TABLE ROLE_ASSIGNMENTS (ID TECH_ID NOT NULL,ROLE_CODE AUTHORIZATION_ROLE NOT NULL,SPACE_ID TECH_ID, PROJECT_ID TECH_ID, PERS_ID_GRANTEE TECH_ID, AG_ID_GRANTEE TECH_ID, PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP); CREATE TABLE SAMPLES_ALL (ID TECH_ID NOT NULL,PERM_ID CODE NOT NULL,CODE CODE NOT NULL, EXPE_ID TECH_ID,SATY_ID TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP,MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP,PERS_ID_REGISTERER TECH_ID NOT NULL,DEL_ID TECH_ID, ORIG_DEL TECH_ID, SPACE_ID TECH_ID, SAMP_ID_PART_OF TECH_ID, PERS_ID_MODIFIER TECH_ID, code_unique_check character varying(300), subcode_unique_check character varying(300), VERSION INTEGER DEFAULT 0, PROJ_ID TECH_ID, FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', FROZEN_FOR_COMP BOOLEAN_CHAR NOT NULL DEFAULT 'F', FROZEN_FOR_CHILDREN BOOLEAN_CHAR NOT NULL DEFAULT 'F', FROZEN_FOR_PARENTS BOOLEAN_CHAR NOT NULL DEFAULT 'F', FROZEN_FOR_DATA BOOLEAN_CHAR NOT NULL DEFAULT 'F', SPACE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', PROJ_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', EXPE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', CONT_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', TSVECTOR_DOCUMENT TSVECTOR NOT NULL); -CREATE TABLE SAMPLE_PROPERTIES (ID TECH_ID NOT NULL,SAMP_ID TECH_ID NOT NULL,STPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,CVTE_ID TECH_ID,MATE_PROP_ID TECH_ID,SAMP_PROP_ID TECH_ID,PERS_ID_REGISTERER TECH_ID NOT NULL, REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, SAMP_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F'); +CREATE TABLE SAMPLE_PROPERTIES (ID TECH_ID NOT NULL,SAMP_ID TECH_ID NOT NULL,STPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,CVTE_ID TECH_ID,MATE_PROP_ID TECH_ID,SAMP_PROP_ID TECH_ID,PERS_ID_REGISTERER TECH_ID NOT NULL, REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, SAMP_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', TSVECTOR_DOCUMENT TSVECTOR NOT NULL); CREATE TABLE SAMPLE_PROPERTIES_HISTORY (ID TECH_ID NOT NULL, SAMP_ID TECH_ID NOT NULL, STPT_ID TECH_ID NOT NULL, VALUE TEXT_VALUE, VOCABULARY_TERM IDENTIFIER, MATERIAL IDENTIFIER, SAMPLE IDENTIFIER, PERS_ID_AUTHOR TECH_ID NOT NULL, VALID_FROM_TIMESTAMP TIME_STAMP NOT NULL, VALID_UNTIL_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP); CREATE TABLE SAMPLE_TYPES (ID TECH_ID NOT NULL,CODE CODE NOT NULL,DESCRIPTION DESCRIPTION_2000, IS_LISTABLE BOOLEAN_CHAR NOT NULL DEFAULT 'T', GENERATED_FROM_DEPTH INTEGER NOT NULL DEFAULT 0, PART_OF_DEPTH INTEGER NOT NULL DEFAULT 0, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, is_auto_generated_code BOOLEAN_CHAR NOT NULL DEFAULT 'F', generated_code_prefix CODE NOT NULL DEFAULT 'S', is_subcode_unique BOOLEAN_CHAR NOT NULL DEFAULT 'F', INHERIT_PROPERTIES BOOLEAN_CHAR NOT NULL DEFAULT 'F', VALIDATION_SCRIPT_ID TECH_ID, SHOW_PARENT_METADATA BOOLEAN_CHAR NOT NULL DEFAULT 'F'); CREATE TABLE SAMPLE_TYPE_PROPERTY_TYPES (ID TECH_ID NOT NULL,SATY_ID TECH_ID NOT NULL,PRTY_ID TECH_ID NOT NULL,IS_MANDATORY BOOLEAN_CHAR NOT NULL DEFAULT 'F',IS_MANAGED_INTERNALLY BOOLEAN_CHAR NOT NULL DEFAULT 'F',PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, IS_DISPLAYED BOOLEAN_CHAR NOT NULL DEFAULT 'T', ORDINAL ORDINAL_INT NOT NULL, SECTION DESCRIPTION_2000,SCRIPT_ID TECH_ID,IS_SHOWN_EDIT BOOLEAN_CHAR NOT NULL DEFAULT 'T',SHOW_RAW_VALUE BOOLEAN_CHAR NOT NULL DEFAULT 'F'); -CREATE TABLE DATA_SET_PROPERTIES (ID TECH_ID NOT NULL,DS_ID TECH_ID NOT NULL,DSTPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,CVTE_ID TECH_ID, MATE_PROP_ID TECH_ID, SAMP_PROP_ID TECH_ID, PERS_ID_REGISTERER TECH_ID NOT NULL, REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, DASE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F'); +CREATE TABLE DATA_SET_PROPERTIES (ID TECH_ID NOT NULL,DS_ID TECH_ID NOT NULL,DSTPT_ID TECH_ID NOT NULL,VALUE TEXT_VALUE,CVTE_ID TECH_ID, MATE_PROP_ID TECH_ID, SAMP_PROP_ID TECH_ID, PERS_ID_REGISTERER TECH_ID NOT NULL, REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, PERS_ID_AUTHOR TECH_ID NOT NULL, MODIFICATION_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP, DASE_FROZEN BOOLEAN_CHAR NOT NULL DEFAULT 'F', TSVECTOR_DOCUMENT TSVECTOR NOT NULL); CREATE TABLE DATA_SET_PROPERTIES_HISTORY (ID TECH_ID NOT NULL, DS_ID TECH_ID NOT NULL, DSTPT_ID TECH_ID NOT NULL, VALUE TEXT_VALUE, VOCABULARY_TERM IDENTIFIER, MATERIAL IDENTIFIER, SAMPLE IDENTIFIER, PERS_ID_AUTHOR TECH_ID NOT NULL, VALID_FROM_TIMESTAMP TIME_STAMP NOT NULL, VALID_UNTIL_TIMESTAMP TIME_STAMP DEFAULT CURRENT_TIMESTAMP); CREATE TABLE DATA_SET_TYPE_PROPERTY_TYPES (ID TECH_ID NOT NULL,DSTY_ID TECH_ID NOT NULL,PRTY_ID TECH_ID NOT NULL,IS_MANDATORY BOOLEAN_CHAR NOT NULL DEFAULT 'F',IS_MANAGED_INTERNALLY BOOLEAN_CHAR NOT NULL DEFAULT 'F',PERS_ID_REGISTERER TECH_ID NOT NULL,REGISTRATION_TIMESTAMP TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP, ORDINAL ORDINAL_INT NOT NULL, SECTION DESCRIPTION_2000,SCRIPT_ID TECH_ID, IS_SHOWN_EDIT BOOLEAN_CHAR NOT NULL DEFAULT 'T',SHOW_RAW_VALUE BOOLEAN_CHAR NOT NULL DEFAULT 'F'); @@ -975,7 +975,6 @@ CREATE INDEX SEMANTIC_ANNOTATIONS_SATY_ID_I ON SEMANTIC_ANNOTATIONS (SATY_ID); CREATE INDEX SEMANTIC_ANNOTATIONS_STPT_ID_I ON SEMANTIC_ANNOTATIONS (STPT_ID); CREATE INDEX SEMANTIC_ANNOTATIONS_PRTY_ID_I ON SEMANTIC_ANNOTATIONS (PRTY_ID); -CREATE INDEX controlled_vocabulary_terms_search_index ON controlled_vocabulary_terms USING gin(tsvector_document); CREATE INDEX sample_properties_search_index ON sample_properties USING gin(tsvector_document); CREATE INDEX experiment_properties_search_index ON experiment_properties USING gin(tsvector_document); CREATE INDEX data_set_properties_search_index ON data_set_properties USING gin(tsvector_document); diff --git a/openbis/source/sql/postgresql/180/function-180.sql b/openbis/source/sql/postgresql/180/function-180.sql index 7ad941babcfc205b31b99690bb3acb7323a7a9e6..d5f91b388ca616e0edaa1e81c2a4085bb4ca9c4b 100644 --- a/openbis/source/sql/postgresql/180/function-180.sql +++ b/openbis/source/sql/postgresql/180/function-180.sql @@ -998,7 +998,8 @@ CREATE OR REPLACE RULE experiment_properties_update AS WHERE (OLD.VALUE IS NOT NULL AND decode(replace(substring(OLD.value from 1 for 1), '\', '\\'), 'escape') != E'\\xefbfbd' AND OLD.VALUE != NEW.VALUE) OR (OLD.CVTE_ID IS NOT NULL AND OLD.CVTE_ID != NEW.CVTE_ID) OR (OLD.MATE_PROP_ID IS NOT NULL AND OLD.MATE_PROP_ID != NEW.MATE_PROP_ID) - DO ALSO + OR (OLD.SAMP_PROP_ID IS NOT NULL AND OLD.SAMP_PROP_ID != NEW.SAMP_PROP_ID) + DO ALSO INSERT INTO experiment_properties_history ( ID, EXPE_ID, @@ -1006,6 +1007,7 @@ CREATE OR REPLACE RULE experiment_properties_update AS VALUE, VOCABULARY_TERM, MATERIAL, + SAMPLE, PERS_ID_AUTHOR, VALID_FROM_TIMESTAMP, VALID_UNTIL_TIMESTAMP @@ -1016,6 +1018,7 @@ CREATE OR REPLACE RULE experiment_properties_update AS OLD.VALUE, (select (t.code || ' [' || v.code || ']') from controlled_vocabulary_terms as t join controlled_vocabularies as v on t.covo_id = v.id where t.id = OLD.CVTE_ID), (select (m.code || ' [' || mt.code || ']') from materials as m join material_types as mt on m.maty_id = mt.id where m.id = OLD.MATE_PROP_ID), + (select perm_id from samples_all where id = OLD.SAMP_PROP_ID), OLD.PERS_ID_AUTHOR, OLD.MODIFICATION_TIMESTAMP, NEW.MODIFICATION_TIMESTAMP @@ -1026,7 +1029,8 @@ CREATE OR REPLACE RULE experiment_properties_delete AS WHERE (OLD.VALUE IS NOT NULL AND decode(replace(substring(OLD.value from 1 for 1), '\', '\\'), 'escape') != E'\\xefbfbd') OR OLD.CVTE_ID IS NOT NULL OR OLD.MATE_PROP_ID IS NOT NULL - DO ALSO + OR OLD.SAMP_PROP_ID IS NOT NULL + DO ALSO INSERT INTO experiment_properties_history ( ID, EXPE_ID, @@ -1034,6 +1038,7 @@ CREATE OR REPLACE RULE experiment_properties_delete AS VALUE, VOCABULARY_TERM, MATERIAL, + SAMPLE, PERS_ID_AUTHOR, VALID_FROM_TIMESTAMP, VALID_UNTIL_TIMESTAMP @@ -1044,6 +1049,7 @@ CREATE OR REPLACE RULE experiment_properties_delete AS OLD.VALUE, (select (t.code || ' [' || v.code || ']') from controlled_vocabulary_terms as t join controlled_vocabularies as v on t.covo_id = v.id where t.id = OLD.CVTE_ID), (select (m.code || ' [' || mt.code || ']') from materials as m join material_types as mt on m.maty_id = mt.id where m.id = OLD.MATE_PROP_ID), + (select perm_id from samples_all where id = OLD.SAMP_PROP_ID), OLD.PERS_ID_AUTHOR, OLD.MODIFICATION_TIMESTAMP, current_timestamp @@ -1122,6 +1128,7 @@ CREATE OR REPLACE RULE data_set_properties_update AS WHERE (OLD.VALUE IS NOT NULL AND decode(replace(substring(OLD.value from 1 for 1), '\', '\\'), 'escape') != E'\\xefbfbd' AND OLD.VALUE != NEW.VALUE) OR (OLD.CVTE_ID IS NOT NULL AND OLD.CVTE_ID != NEW.CVTE_ID) OR (OLD.MATE_PROP_ID IS NOT NULL AND OLD.MATE_PROP_ID != NEW.MATE_PROP_ID) + OR (OLD.SAMP_PROP_ID IS NOT NULL AND OLD.SAMP_PROP_ID != NEW.SAMP_PROP_ID) DO ALSO INSERT INTO data_set_properties_history ( ID, @@ -1130,6 +1137,7 @@ CREATE OR REPLACE RULE data_set_properties_update AS VALUE, VOCABULARY_TERM, MATERIAL, + SAMPLE, PERS_ID_AUTHOR, VALID_FROM_TIMESTAMP, VALID_UNTIL_TIMESTAMP @@ -1140,6 +1148,7 @@ CREATE OR REPLACE RULE data_set_properties_update AS OLD.VALUE, (select (t.code || ' [' || v.code || ']') from controlled_vocabulary_terms as t join controlled_vocabularies as v on t.covo_id = v.id where t.id = OLD.CVTE_ID), (select (m.code || ' [' || mt.code || ']') from materials as m join material_types as mt on m.maty_id = mt.id where m.id = OLD.MATE_PROP_ID), + (select perm_id from samples_all where id = OLD.SAMP_PROP_ID), OLD.PERS_ID_AUTHOR, OLD.MODIFICATION_TIMESTAMP, NEW.MODIFICATION_TIMESTAMP @@ -1149,7 +1158,8 @@ CREATE OR REPLACE RULE data_set_properties_delete AS ON DELETE TO data_set_properties WHERE ((OLD.VALUE IS NOT NULL AND decode(replace(substring(OLD.value from 1 for 1), '\', '\\'), 'escape') != E'\\xefbfbd') OR OLD.CVTE_ID IS NOT NULL - OR OLD.MATE_PROP_ID IS NOT NULL) + OR OLD.MATE_PROP_ID IS NOT NULL + OR OLD.SAMP_PROP_ID IS NOT NULL) AND (SELECT DEL_ID FROM DATA_ALL WHERE ID = OLD.DS_ID) IS NULL DO ALSO INSERT INTO data_set_properties_history ( @@ -1159,6 +1169,7 @@ CREATE OR REPLACE RULE data_set_properties_delete AS VALUE, VOCABULARY_TERM, MATERIAL, + SAMPLE, PERS_ID_AUTHOR, VALID_FROM_TIMESTAMP, VALID_UNTIL_TIMESTAMP @@ -1169,6 +1180,7 @@ CREATE OR REPLACE RULE data_set_properties_delete AS OLD.VALUE, (select (t.code || ' [' || v.code || ']') from controlled_vocabulary_terms as t join controlled_vocabularies as v on t.covo_id = v.id where t.id = OLD.CVTE_ID), (select (m.code || ' [' || mt.code || ']') from materials as m join material_types as mt on m.maty_id = mt.id where m.id = OLD.MATE_PROP_ID), + (select perm_id from samples_all where id = OLD.SAMP_PROP_ID), OLD.PERS_ID_AUTHOR, OLD.MODIFICATION_TIMESTAMP, current_timestamp @@ -3274,7 +3286,7 @@ DECLARE proj_code VARCHAR; space_code VARCHAR; BEGIN SELECT p.code, s.code INTO STRICT proj_code, space_code FROM projects p - INNER JOIN spaces s ON p.space_id = s.id WHERE p.id = NEW.proj_id; + INNER JOIN spaces s ON p.space_id = s.id WHERE p.id = NEW.proj_id; NEW.tsvector_document := (NEW.perm_id || ':1')::tsvector || (NEW.code || ':1')::tsvector || ('/' || space_code || '/' || proj_code || '/' || NEW.code || ':1')::tsvector; RETURN NEW; @@ -3299,11 +3311,6 @@ BEGIN END $$ LANGUAGE plpgsql; -DROP TRIGGER IF EXISTS controlled_vocabulary_terms_tsvector_document ON controlled_vocabulary_terms; -CREATE TRIGGER controlled_vocabulary_terms_tsvector_document BEFORE INSERT OR UPDATE - ON controlled_vocabulary_terms FOR EACH ROW EXECUTE PROCEDURE - properties_tsvector_document_trigger(); - DROP TRIGGER IF EXISTS samples_all_tsvector_document ON samples_all; CREATE TRIGGER samples_all_tsvector_document BEFORE INSERT OR UPDATE ON samples_all FOR EACH ROW EXECUTE FUNCTION diff --git a/openbis/source/sql/postgresql/migration/migration-179-180.sql b/openbis/source/sql/postgresql/migration/migration-179-180.sql index 46975d952ed0dee01227666012c970a924385008..fe334a12b153ab3ce9c39b7f3eba8a0b6d3052e2 100644 --- a/openbis/source/sql/postgresql/migration/migration-179-180.sql +++ b/openbis/source/sql/postgresql/migration/migration-179-180.sql @@ -2,9 +2,6 @@ -- Controlled Vocabularies -ALTER TABLE controlled_vocabulary_terms - ADD COLUMN tsvector_document TSVECTOR; - CREATE FUNCTION properties_tsvector_document_trigger() RETURNS trigger AS $$ DECLARE cvt RECORD; BEGIN @@ -75,11 +72,16 @@ CREATE OR REPLACE VIEW samples_deleted AS FROM samples_all WHERE del_id IS NOT NULL; -CREATE TRIGGER samples_all_tsvector_document BEFORE INSERT OR UPDATE - ON samples_all FOR EACH ROW EXECUTE FUNCTION - samples_all_tsvector_document_trigger(); +BEGIN; + CREATE TRIGGER samples_all_tsvector_document BEFORE INSERT OR UPDATE + ON samples_all FOR EACH ROW EXECUTE FUNCTION + samples_all_tsvector_document_trigger(); -UPDATE samples_all SET code = code; + UPDATE samples_all SET code = code; +COMMIT; + +ALTER TABLE samples_all + ALTER COLUMN tsvector_document SET NOT NULL; ALTER TABLE sample_properties ADD COLUMN tsvector_document TSVECTOR; @@ -124,11 +126,16 @@ CREATE OR REPLACE VIEW experiments_deleted AS FROM experiments_all WHERE del_id IS NOT NULL; -CREATE TRIGGER experiments_all_tsvector_document BEFORE INSERT OR UPDATE - ON experiments_all FOR EACH ROW EXECUTE FUNCTION - experiments_all_tsvector_document_trigger(); +BEGIN; + CREATE TRIGGER experiments_all_tsvector_document BEFORE INSERT OR UPDATE + ON experiments_all FOR EACH ROW EXECUTE FUNCTION + experiments_all_tsvector_document_trigger(); -UPDATE experiments_all SET code = code; + UPDATE experiments_all SET code = code; +COMMIT; + +ALTER TABLE experiments_all + ALTER COLUMN tsvector_document SET NOT NULL; ALTER TABLE experiment_properties ADD COLUMN tsvector_document TSVECTOR; @@ -172,11 +179,16 @@ CREATE OR REPLACE VIEW data_deleted AS FROM data_all WHERE del_id IS NOT NULL; -CREATE TRIGGER data_all_tsvector_document BEFORE INSERT OR UPDATE - ON data_all FOR EACH ROW EXECUTE FUNCTION - data_all_tsvector_document_trigger(); +BEGIN; + CREATE TRIGGER data_all_tsvector_document BEFORE INSERT OR UPDATE + ON data_all FOR EACH ROW EXECUTE FUNCTION + data_all_tsvector_document_trigger(); + + UPDATE data_all SET code = code; +COMMIT; -UPDATE data_all SET code = code; +ALTER TABLE data_all + ALTER COLUMN tsvector_document SET NOT NULL; ALTER TABLE data_set_properties ADD COLUMN tsvector_document TSVECTOR; @@ -206,11 +218,16 @@ $$ LANGUAGE plpgsql; ALTER TABLE materials ADD COLUMN tsvector_document TSVECTOR; -CREATE TRIGGER materials_tsvector_document BEFORE INSERT OR UPDATE - ON materials FOR EACH ROW EXECUTE PROCEDURE - materials_tsvector_document_trigger(); +BEGIN; + CREATE TRIGGER materials_tsvector_document BEFORE INSERT OR UPDATE + ON materials FOR EACH ROW EXECUTE PROCEDURE + materials_tsvector_document_trigger(); + + UPDATE materials SET code = code; +COMMIT; -UPDATE materials SET code = code; +ALTER TABLE materials + ALTER COLUMN tsvector_document SET NOT NULL; ALTER TABLE material_properties ADD COLUMN tsvector_document TSVECTOR; diff --git a/openbis/sourceTest/sql/postgresql/180/007=controlled_vocabulary_terms.tsv b/openbis/sourceTest/sql/postgresql/180/007=controlled_vocabulary_terms.tsv index f0a0ee57d9c44c682df04791974f8d11b7e48c62..1eb11c3289f7660169b51a5a015f41b37ef750e2 100644 --- a/openbis/sourceTest/sql/postgresql/180/007=controlled_vocabulary_terms.tsv +++ b/openbis/sourceTest/sql/postgresql/180/007=controlled_vocabulary_terms.tsv @@ -1,17 +1,17 @@ -1 96_WELLS_8X12 2008-11-05 09:18:00.622+01 1 1 \N \N 1 t \N -2 384_WELLS_16X24 2008-11-05 09:18:00.622+01 1 1 \N \N 2 t \N -3 1536_WELLS_32X48 2008-11-05 09:18:00.622+01 1 1 \N \N 3 t \N -4 PROPRIETARY 2008-11-05 09:18:00.622+01 2 1 proprietary label proprietary description 1 t \N -5 BDS_DIRECTORY 2008-11-05 09:18:00.622+01 2 1 \N \N 2 t \N -6 RAT 2008-11-05 09:18:30.327+01 3 2 \N the rat 1 t \N -7 DOG 2008-11-05 09:18:30.327+01 3 2 \N doggy 2 t \N -8 HUMAN 2008-11-05 09:18:30.327+01 3 2 \N a human 3 t \N -9 GORILLA 2008-11-05 09:18:30.327+01 3 2 \N a gorilla is a gorilla 4 t \N -10 FLY 2008-11-05 09:18:30.327+01 3 2 \N a fly flies 5 t \N -11 MALE 2008-11-05 09:18:30.421+01 4 2 \N \N 1 t \N -12 FEMALE 2008-11-05 09:18:30.421+01 4 2 \N \N 2 t \N -13 MAN 2008-11-05 09:18:30.983+01 5 2 \N \N 1 t \N -14 WOMAN 2008-11-05 09:18:30.983+01 5 2 \N \N 2 t \N -15 CHILD 2008-11-05 09:18:31.061+01 5 2 \N \N 3 t \N -16 TEST_TERM_A 2008-11-05 09:18:31.061+01 6 2 \N \N 1 t \N -17 TEST_TERM_B 2008-11-05 09:18:31.061+01 6 2 \N \N 2 t \N +1 96_WELLS_8X12 2008-11-05 09:18:00.622+01 1 1 \N \N 1 t +2 384_WELLS_16X24 2008-11-05 09:18:00.622+01 1 1 \N \N 2 t +3 1536_WELLS_32X48 2008-11-05 09:18:00.622+01 1 1 \N \N 3 t +4 PROPRIETARY 2008-11-05 09:18:00.622+01 2 1 proprietary label proprietary description 1 t +5 BDS_DIRECTORY 2008-11-05 09:18:00.622+01 2 1 \N \N 2 t +6 RAT 2008-11-05 09:18:30.327+01 3 2 \N the rat 1 t +7 DOG 2008-11-05 09:18:30.327+01 3 2 \N doggy 2 t +8 HUMAN 2008-11-05 09:18:30.327+01 3 2 \N a human 3 t +9 GORILLA 2008-11-05 09:18:30.327+01 3 2 \N a gorilla is a gorilla 4 t +10 FLY 2008-11-05 09:18:30.327+01 3 2 \N a fly flies 5 t +11 MALE 2008-11-05 09:18:30.421+01 4 2 \N \N 1 t +12 FEMALE 2008-11-05 09:18:30.421+01 4 2 \N \N 2 t +13 MAN 2008-11-05 09:18:30.983+01 5 2 \N \N 1 t +14 WOMAN 2008-11-05 09:18:30.983+01 5 2 \N \N 2 t +15 CHILD 2008-11-05 09:18:31.061+01 5 2 \N \N 3 t +16 TEST_TERM_A 2008-11-05 09:18:31.061+01 6 2 \N \N 1 t +17 TEST_TERM_B 2008-11-05 09:18:31.061+01 6 2 \N \N 2 t diff --git a/openbis/sourceTest/sql/postgresql/180/021=database_version_logs.tsv b/openbis/sourceTest/sql/postgresql/180/021=database_version_logs.tsv index 8415026a00876fe344cae9305f9327cb06e51ae8..2ec32ac2e9ab3475d4cddb7972674226e93ce541 100644 --- a/openbis/sourceTest/sql/postgresql/180/021=database_version_logs.tsv +++ b/openbis/sourceTest/sql/postgresql/180/021=database_version_logs.tsv @@ -153,4 +153,4 @@ 177 source/sql/postgresql/migration/migration-176-177.sql SUCCESS 2019-03-26 08:53:23.204 \\x414c544552205441424c452050524f50455254595f54595045532041444420434f4c554d4e204d4554415f44415441204a534f4e423b0a \N 178 source/sql/postgresql/migration/migration-177-178.sql SUCCESS 2019-06-25 12:12:33.084 \\x2d2d20467265657a696e6720636865636b7320666f722064656c6574696f6e0a2d2d2066726f6d207370616365202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a435245415445204f52205245504c4143452046554e4354494f4e2052414953455f44454c4554455f46524f4d5f53504143455f455843455054494f4e28292052455455524e5320747269676765722041532024240a424547494e0a20202020524149534520455843455054494f4e20274f7065726174696f6e2044454c4554452025206973206e6f7420616c6c6f776564206265636175736520737061636520252069732066726f7a656e2e272c2054475f415247565b305d2c200a20202020202020202873656c65637420636f64652066726f6d20737061636573207768657265206964203d206f6c642e73706163655f6964293b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a0a2d2d2050726f6a6563742066726f6d2073706163652064656c6574696f6e0a44524f502054524947474552204946204558495354532044454c4554455f50524f4a4543545f46524f4d5f53504143455f434845434b204f4e2050524f4a454354533b0a43524541544520545249474745522044454c4554455f50524f4a4543545f46524f4d5f53504143455f434845434b2041465445522044454c455445204f4e2050524f4a454354530a20202020464f52204541434820524f57205748454e20284f4c442e53504143455f46524f5a454e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53504143455f455843455054494f4e282750524f4a45435427293b0a0a2d2d2053616d706c652066726f6d2073706163652064656c6574696e670a44524f502054524947474552204946204558495354532054524153485f53414d504c455f46524f4d5f53504143455f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522054524153485f53414d504c455f46524f4d5f53504143455f434845434b20414654455220555044415445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e73706163655f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53504143455f455843455054494f4e282753414d504c4527293b0a0a44524f502054524947474552204946204558495354532044454c4554455f53414d504c455f46524f4d5f53504143455f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522044454c4554455f53414d504c455f46524f4d5f53504143455f434845434b2041465445522044454c455445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e73706163655f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53504143455f455843455054494f4e282753414d504c4527293b0a0a2d2d2066726f6d2070726f6a656374202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a435245415445204f52205245504c4143452046554e4354494f4e2052414953455f44454c4554455f46524f4d5f50524f4a4543545f455843455054494f4e28292052455455524e5320747269676765722041532024240a424547494e0a20202020524149534520455843455054494f4e20274f7065726174696f6e2044454c4554452025206973206e6f7420616c6c6f77656420626563617573652070726f6a65637420252069732066726f7a656e2e272c2054475f415247565b305d2c200a20202020202020202873656c65637420636f64652066726f6d2070726f6a65637473207768657265206964203d206f6c642e70726f6a5f6964293b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a0a2d2d204578706572696d656e742066726f6d2070726f6a6563742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f4558504552494d454e545f46524f4d5f50524f4a4543545f434845434b204f4e204558504552494d454e54535f414c4c3b0a43524541544520545249474745522054524153485f4558504552494d454e545f46524f4d5f50524f4a4543545f434845434b20414654455220555044415445204f4e204558504552494d454e54535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e70726f6a5f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f50524f4a4543545f455843455054494f4e28274558504552494d454e5427293b0a0a44524f502054524947474552204946204558495354532044454c4554455f4558504552494d454e545f46524f4d5f50524f4a4543545f434845434b204f4e204558504552494d454e54535f414c4c3b0a43524541544520545249474745522044454c4554455f4558504552494d454e545f46524f4d5f50524f4a4543545f434845434b2041465445522044454c455445204f4e204558504552494d454e54535f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e70726f6a5f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f50524f4a4543545f455843455054494f4e28274558504552494d454e5427293b0a0a2d2d2053616d706c652066726f6d2070726f6a6563742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f53414d504c455f46524f4d5f50524f4a4543545f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522054524153485f53414d504c455f46524f4d5f50524f4a4543545f434845434b20414654455220555044415445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e70726f6a5f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f50524f4a4543545f455843455054494f4e282753414d504c4527293b0a0a44524f502054524947474552204946204558495354532044454c4554455f53414d504c455f46524f4d5f50524f4a4543545f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522044454c4554455f53414d504c455f46524f4d5f50524f4a4543545f434845434b2041465445522044454c455445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e70726f6a5f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f50524f4a4543545f455843455054494f4e282753414d504c4527293b0a0a2d2d2066726f6d206578706572696d656e74202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a435245415445204f52205245504c4143452046554e4354494f4e2052414953455f44454c4554455f46524f4d5f4558504552494d454e545f455843455054494f4e28292052455455524e5320747269676765722041532024240a424547494e0a20202020524149534520455843455054494f4e20274f7065726174696f6e2044454c4554452025206973206e6f7420616c6c6f7765642062656361757365206578706572696d656e7420252069732066726f7a656e2e272c2054475f415247565b305d2c200a20202020202020202873656c65637420636f64652066726f6d206578706572696d656e74735f616c6c207768657265206964203d206f6c642e657870655f6964293b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a0a2d2d2053616d706c652066726f6d206578706572696d656e742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f53414d504c455f46524f4d5f4558504552494d454e545f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522054524153485f53414d504c455f46524f4d5f4558504552494d454e545f434845434b20414654455220555044415445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e657870655f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f4558504552494d454e545f455843455054494f4e282753414d504c4527293b0a0a44524f502054524947474552204946204558495354532044454c4554455f53414d504c455f46524f4d5f4558504552494d454e545f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522044454c4554455f53414d504c455f46524f4d5f4558504552494d454e545f434845434b2041465445522044454c455445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e657870655f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f4558504552494d454e545f455843455054494f4e282753414d504c4527293b0a0a2d2d2044617461207365742066726f6d206578706572696d656e742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f444154415f5345545f46524f4d5f4558504552494d454e545f434845434b204f4e20444154415f414c4c3b0a43524541544520545249474745522054524153485f444154415f5345545f46524f4d5f4558504552494d454e545f434845434b20414654455220555044415445204f4e20444154415f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e657870655f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f4558504552494d454e545f455843455054494f4e2827444154412053455427293b0a0a44524f502054524947474552204946204558495354532044454c4554455f444154415f5345545f46524f4d5f4558504552494d454e545f434845434b204f4e20444154415f414c4c3b0a43524541544520545249474745522044454c4554455f444154415f5345545f46524f4d5f4558504552494d454e545f434845434b2041465445522044454c455445204f4e20444154415f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e657870655f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f4558504552494d454e545f455843455054494f4e2827444154412053455427293b0a0a2d2d2066726f6d2073616d706c65202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a435245415445204f52205245504c4143452046554e4354494f4e2052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e28292052455455524e5320747269676765722041532024240a4445434c4152450a2020202073616d705f696420544543485f49443b0a424547494e0a202020204946202854475f415247565b305d203d202753414d504c45204348494c442729205448454e0a202020202020202073616d705f6964203d206f6c642e73616d706c655f69645f706172656e743b0a20202020454c53454946202854475f415247565b305d203d202753414d504c4520504152454e542729205448454e0a202020202020202073616d705f6964203d206f6c642e73616d706c655f69645f6368696c643b0a20202020454c53450a202020202020202073616d705f6964203d206f6c642e73616d705f69643b0a20202020454e442049463b0a20202020524149534520455843455054494f4e20274f7065726174696f6e2044454c4554452025206973206e6f7420616c6c6f77656420626563617573652073616d706c6520252069732066726f7a656e2e272c2054475f415247565b305d2c200a20202020202020202873656c65637420636f64652066726f6d2073616d706c65735f616c6c207768657265206964203d2073616d705f6964293b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a0a2d2d2053616d706c652066726f6d20636f6e7461696e65722064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f53414d504c455f46524f4d5f434f4e5441494e45525f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522054524153485f53414d504c455f46524f4d5f434f4e5441494e45525f434845434b20414654455220555044415445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e636f6e745f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e282753414d504c4520434f4d504f4e454e5427293b0a0a44524f502054524947474552204946204558495354532044454c4554455f53414d504c455f46524f4d5f434f4e5441494e45525f434845434b204f4e2053414d504c45535f414c4c3b0a43524541544520545249474745522044454c4554455f53414d504c455f46524f4d5f434f4e5441494e45525f434845434b2041465445522044454c455445204f4e2053414d504c45535f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e636f6e745f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e282753414d504c4520434f4d504f4e454e5427293b0a0a2d2d2053616d706c652066726f6d20706172656e742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f53414d504c455f46524f4d5f504152454e545f434845434b204f4e2053414d504c455f52454c4154494f4e53484950535f414c4c3b0a43524541544520545249474745522054524153485f53414d504c455f46524f4d5f504152454e545f434845434b20414654455220555044415445204f4e2053414d504c455f52454c4154494f4e53484950535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e706172656e745f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e282753414d504c45204348494c4427293b0a0a2d2d2053616d706c652066726f6d206368696c642064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f53414d504c455f46524f4d5f4348494c445f434845434b204f4e2053414d504c455f52454c4154494f4e53484950535f414c4c3b0a43524541544520545249474745522054524153485f53414d504c455f46524f4d5f4348494c445f434845434b20414654455220555044415445204f4e2053414d504c455f52454c4154494f4e53484950535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e6368696c645f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e282753414d504c4520504152454e5427293b0a0a2d2d2044617461207365742066726f6d2073616d706c652064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f444154415f5345545f46524f4d5f53414d504c455f434845434b204f4e20444154415f414c4c3b0a43524541544520545249474745522054524153485f444154415f5345545f46524f4d5f53414d504c455f434845434b20414654455220555044415445204f4e20444154415f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e73616d705f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e2827444154412053455427293b0a0a44524f502054524947474552204946204558495354532044454c4554455f444154415f5345545f46524f4d5f53414d504c455f434845434b204f4e20444154415f414c4c3b0a43524541544520545249474745522044454c4554455f444154415f5345545f46524f4d5f53414d504c455f434845434b2041465445522044454c455445204f4e20444154415f414c4c0a20202020464f52204541434820524f57205748454e20284f4c442e73616d705f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f53414d504c455f455843455054494f4e2827444154412053455427293b0a0a2d2d2066726f6d206461746120736574202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a435245415445204f52205245504c4143452046554e4354494f4e2052414953455f44454c4554455f46524f4d5f444154415f5345545f455843455054494f4e28292052455455524e5320747269676765722041532024240a4445434c4152450a20202020646174615f696420544543485f49443b0a424547494e0a202020204946202854475f415247565b305d203d20274441544120534554204348494c442729205448454e0a2020202020202020646174615f6964203d206f6c642e646174615f69645f706172656e743b0a20202020454c53454946202854475f415247565b305d203d2027444154412053455420504152454e542729205448454e0a2020202020202020646174615f6964203d206f6c642e646174615f69645f6368696c643b0a20202020454c53454946202854475f415247565b305d203d2027444154412053455420434f4d504f4e454e542729205448454e0a2020202020202020646174615f6964203d206f6c642e646174615f69645f706172656e743b0a20202020454c53454946202854475f415247565b305d203d2027444154412053455420434f4e5441494e45522729205448454e0a2020202020202020646174615f6964203d206f6c642e646174615f69645f6368696c643b0a20202020454e442049463b0a20202020524149534520455843455054494f4e20274f7065726174696f6e2044454c4554452025206973206e6f7420616c6c6f776564206265636175736520646174612073657420252069732066726f7a656e2e272c2054475f415247565b305d2c200a20202020202020202873656c65637420636f64652066726f6d20646174615f616c6c207768657265206964203d20646174615f6964293b0a454e443b0a2424204c414e47554147452027706c706773716c273b0a0a2d2d2044617461207365742066726f6d20706172656e742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f444154415f5345545f46524f4d5f504152454e545f434845434b204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c3b0a43524541544520545249474745522054524153485f444154415f5345545f46524f4d5f504152454e545f434845434b20414654455220555044415445204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e706172656e745f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f444154415f5345545f455843455054494f4e28274441544120534554204348494c4427293b0a0a2d2d2044617461207365742066726f6d206368696c642064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f444154415f5345545f46524f4d5f4348494c445f434845434b204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c3b0a43524541544520545249474745522054524153485f444154415f5345545f46524f4d5f4348494c445f434845434b20414654455220555044415445204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e6368696c645f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f444154415f5345545f455843455054494f4e2827444154412053455420504152454e5427293b0a0a2d2d2044617461207365742066726f6d20636f6e7461696e65722064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f444154415f5345545f46524f4d5f434f4e5441494e45525f434845434b204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c3b0a43524541544520545249474745522054524153485f444154415f5345545f46524f4d5f434f4e5441494e45525f434845434b20414654455220555044415445204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e636f6e745f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f444154415f5345545f455843455054494f4e2827444154412053455420434f4d504f4e454e5427293b0a0a2d2d2044617461207365742066726f6d20636f6d706f6e656e742064656c6574696f6e0a44524f502054524947474552204946204558495354532054524153485f444154415f5345545f46524f4d5f434f4d504f4e454e545f434845434b204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c3b0a43524541544520545249474745522054524153485f444154415f5345545f46524f4d5f434f4d504f4e454e545f434845434b20414654455220555044415445204f4e20444154415f5345545f52454c4154494f4e53484950535f414c4c0a20202020464f52204541434820524f57205748454e20284e45572e64656c5f6964204953204e4f54204e554c4c20414e44204f4c442e64656c5f6964204953204e554c4c20414e44204f4c442e636f6d705f66726f7a656e290a20202020455845435554452050524f4345445552452052414953455f44454c4554455f46524f4d5f444154415f5345545f455843455054494f4e2827444154412053455420434f4e5441494e455227293b0a0a \N 179 source/sql/postgresql/migration/migration-178-179.sql SUCCESS 2020-03-26 13:17:00.153 \\x2d2d20616464206461746120747970652053414d504c450a696e7365727420696e746f20646174615f74797065730a2869640a202c636f64650a202c6465736372697074696f6e290a2076616c756573200a20286e65787476616c2827444154415f545950455f49445f53455127290a202c2753414d504c45270a202c275265666572656e636520746f20612073616d706c65270a293b0a0a2d2d206164642073616d706c65207479706520464b20746f2070726f70657274792074797065730a616c746572207461626c652050524f50455254595f54595045532061646420636f6c756d6e20534154595f50524f505f494420544543485f49443b0a414c544552205441424c452050524f50455254595f54595045532041444420434f4e53545241494e5420505254595f534154595f464b20464f524549474e204b45592028534154595f50524f505f494429205245464552454e4345532053414d504c455f545950455328494429204f4e2044454c45544520434153434144453b0a0a2d2d206164642073616d706c6520464b20746f2044415441205345542070726f706572746965730a616c746572207461626c6520444154415f5345545f50524f504552544945532061646420636f6c756d6e2053414d505f50524f505f494420544543485f49443b0a616c746572207461626c6520444154415f5345545f50524f504552544945532064726f7020636f6e73747261696e7420445350525f434b3b0a414c544552205441424c4520444154415f5345545f50524f504552544945532041444420434f4e53545241494e5420445350525f434b20434845434b0a20202020282856414c5545204953204e4f54204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f52200a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e4f54204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e4f54204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e4f54204e554c4c290a20202020293b0a43524541544520494e44455820445350525f534150525f464b5f49204f4e20444154415f5345545f50524f50455254494553202853414d505f50524f505f4944293b0a0a2d2d206164642073616d706c65206964656e74696669657220746f2044415441205345542070726f7065727469657320686973746f72790a616c746572207461626c6520444154415f5345545f50524f504552544945535f484953544f52592061646420636f6c756d6e2053414d504c45204944454e5449464945523b0a616c746572207461626c6520444154415f5345545f50524f504552544945535f484953544f52592064726f7020636f6e73747261696e742044535052485f434b3b0a414c544552205441424c4520444154415f5345545f50524f504552544945535f484953544f52592041444420434f4e53545241494e542044535052485f434b20434845434b0a20202020282856414c5545204953204e4f54204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e554c4c29204f52200a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e4f54204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e4f54204e554c4c20414e442053414d504c45204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e4f54204e554c4c290a20202020293b0a0a64726f70207669657720646174615f7365745f686973746f72795f766965773b0a435245415445205649455720646174615f7365745f686973746f72795f7669657720415320280a202053454c4543540a20202020332a69642061732069642c0a202020206d61696e5f646174615f69642c0a2020202072656c6174696f6e5f747970652c0a202020206f7264696e616c2c0a20202020657870655f69642c0a2020202073616d705f69642c0a20202020646174615f69642c0a20202020656e746974795f7065726d5f69642c0a202020206e756c6c2061732064737470745f69642c0a202020206e756c6c2061732076616c75652c0a202020206e756c6c20617320766f636162756c6172795f7465726d2c0a202020206e756c6c206173206d6174657269616c2c0a202020206e756c6c2061732073616d706c652c0a202020206e756c6c2061732065787465726e616c5f636f64652c0a202020206e756c6c20617320706174682c0a202020206e756c6c206173206769745f636f6d6d69745f686173682c0a202020206e756c6c206173206769745f7265706f7369746f72795f69642c0a202020206e756c6c3a3a544543485f49442061732065646d735f69642c0a202020206e756c6c2061732065646d735f636f64652c0a202020206e756c6c2061732065646d735f6c6162656c2c0a202020206e756c6c2061732065646d735f616464726573732c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a20202020646174615f7365745f72656c6174696f6e73686970735f686973746f72790a202057484552450a2020202076616c69645f756e74696c5f74696d657374616d70204953204e4f54204e554c4c290a554e494f4e0a202053454c4543540a20202020332a69642b312061732069642c0a2020202064735f6964206173206d61696e5f646174615f69642c0a202020206e756c6c2061732072656c6174696f6e5f747970652c0a202020206e756c6c206173206f7264696e616c2c0a202020206e756c6c20617320657870655f69642c0a202020206e756c6c2061732073616d705f69642c0a202020206e756c6c20617320646174615f69642c0a202020206e756c6c20617320656e746974795f7065726d5f69642c0a2020202064737470745f69642c0a2020202076616c75652c0a20202020766f636162756c6172795f7465726d2c0a202020206d6174657269616c2c0a2020202073616d706c652c0a202020206e756c6c2061732065787465726e616c5f636f64652c0a202020206e756c6c20617320706174682c0a202020206e756c6c206173206769745f636f6d6d69745f686173682c0a202020206e756c6c206173206769745f7265706f7369746f72795f69642c0a202020206e756c6c2061732065646d735f69642c0a202020206e756c6c2061732065646d735f636f64652c0a202020206e756c6c2061732065646d735f6c6162656c2c0a202020206e756c6c2061732065646d735f616464726573732c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a20202020646174615f7365745f70726f706572746965735f686973746f72790a20554e494f4e0a20202853454c4543540a202020332a69642b322061732069642c0a20202020646174615f6964206173206d61696e5f646174615f69642c0a202020206e756c6c2061732072656c6174696f6e5f747970652c0a202020206e756c6c206173206f7264696e616c2c0a202020206e756c6c20617320657870655f69642c0a202020206e756c6c2061732073616d705f69642c0a202020206e756c6c20617320646174615f69642c0a202020206e756c6c20617320656e746974795f7065726d5f69642c0a202020206e756c6c2061732064737470745f69642c0a202020206e756c6c2061732076616c75652c0a202020206e756c6c20617320766f636162756c6172795f7465726d2c0a202020206e756c6c206173206d6174657269616c2c0a202020206e756c6c2061732073616d706c652c0a2020202065787465726e616c5f636f64652c0a20202020706174682c0a202020206769745f636f6d6d69745f686173682c0a202020206769745f7265706f7369746f72795f69642c0a2020202065646d735f69642c0a2020202065646d735f636f64652c0a2020202065646d735f6c6162656c2c0a2020202065646d735f616464726573732c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a20202020646174615f7365745f636f706965735f686973746f72790a202057484552450a2020202076616c69645f756e74696c5f74696d657374616d70204953204e4f54204e554c4c293b0a0a435245415445204f52205245504c4143452052554c4520646174615f7365745f70726f706572746965735f7570646174652041530a202020204f4e2055504441544520544f20646174615f7365745f70726f70657274696573200a20202020574845524520284f4c442e56414c5545204953204e4f54204e554c4c20414e44206465636f6465287265706c61636528737562737472696e67284f4c442e76616c75652066726f6d203120666f722031292c20275c272c20275c5c27292c2027657363617065272920213d2045275c5c786566626662642720414e44204f4c442e56414c554520213d204e45572e56414c554529200a20202020202020204f5220284f4c442e435654455f4944204953204e4f54204e554c4c20414e44204f4c442e435654455f494420213d204e45572e435654455f494429200a20202020202020204f5220284f4c442e4d4154455f50524f505f4944204953204e4f54204e554c4c20414e44204f4c442e4d4154455f50524f505f494420213d204e45572e4d4154455f50524f505f4944290a20202020202020204f5220284f4c442e53414d505f50524f505f4944204953204e4f54204e554c4c20414e44204f4c442e53414d505f50524f505f494420213d204e45572e53414d505f50524f505f4944290a20202020444f20414c534f0a20202020202020494e5345525420494e544f20646174615f7365745f70726f706572746965735f686973746f727920280a20202020202020202049442c200a20202020202020202044535f49442c0a20202020202020202044535450545f49442c200a20202020202020202056414c55452c200a202020202020202020564f434142554c4152595f5445524d2c0a2020202020202020204d4154455249414c2c200a20202020202020202053414d504c452c200a202020202020202020504552535f49445f415554484f522c0a20202020202020202056414c49445f46524f4d5f54494d455354414d502c0a20202020202020202056414c49445f554e54494c5f54494d455354414d50200a20202020202020292056414c55455320280a2020202020202020206e65787476616c2827444154415f5345545f50524f50455254595f49445f53455127292c200a2020202020202020204f4c442e44535f49442c200a2020202020202020204f4c442e44535450545f49442c200a2020202020202020204f4c442e56414c55452c200a2020202020202020202873656c6563742028742e636f6465207c7c2027205b27207c7c20762e636f6465207c7c20275d27292066726f6d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d732061732074206a6f696e20636f6e74726f6c6c65645f766f636162756c61726965732061732076206f6e20742e636f766f5f6964203d20762e696420776865726520742e6964203d204f4c442e435654455f4944292c0a2020202020202020202873656c65637420286d2e636f6465207c7c2027205b27207c7c206d742e636f6465207c7c20275d27292066726f6d206d6174657269616c73206173206d206a6f696e206d6174657269616c5f7479706573206173206d74206f6e206d2e6d6174795f6964203d206d742e6964207768657265206d2e6964203d204f4c442e4d4154455f50524f505f4944292c0a2020202020202020202873656c656374207065726d5f69642066726f6d2073616d706c65735f616c6c207768657265206964203d204f4c442e53414d505f50524f505f4944292c0a2020202020202020204f4c442e504552535f49445f415554484f522c0a2020202020202020204f4c442e4d4f44494649434154494f4e5f54494d455354414d502c0a2020202020202020204e45572e4d4f44494649434154494f4e5f54494d455354414d500a20202020202020293b0a0a435245415445204f52205245504c4143452052554c4520646174615f7365745f70726f706572746965735f64656c6574652041530a202020204f4e2044454c45544520544f20646174615f7365745f70726f70657274696573200a2020202057484552452028284f4c442e56414c5545204953204e4f54204e554c4c20414e44206465636f6465287265706c61636528737562737472696e67284f4c442e76616c75652066726f6d203120666f722031292c20275c272c20275c5c27292c2027657363617065272920213d2045275c5c7865666266626427290a20202020202020204f52204f4c442e435654455f4944204953204e4f54204e554c4c200a20202020202020204f52204f4c442e4d4154455f50524f505f4944204953204e4f54204e554c4c0a20202020202020204f52204f4c442e53414d505f50524f505f4944204953204e4f54204e554c4c290a20202020202020414e44202853454c4543542044454c5f49442046524f4d20444154415f414c4c205748455245204944203d204f4c442e44535f494429204953204e554c4c0a20202020444f20414c534f0a20202020202020494e5345525420494e544f20646174615f7365745f70726f706572746965735f686973746f727920280a20202020202020202049442c200a20202020202020202044535f49442c0a20202020202020202044535450545f49442c200a20202020202020202056414c55452c200a202020202020202020564f434142554c4152595f5445524d2c0a2020202020202020204d4154455249414c2c200a20202020202020202053414d504c452c200a202020202020202020504552535f49445f415554484f522c0a20202020202020202056414c49445f46524f4d5f54494d455354414d502c0a20202020202020202056414c49445f554e54494c5f54494d455354414d50200a20202020202020292056414c55455320280a2020202020202020206e65787476616c2827444154415f5345545f50524f50455254595f49445f53455127292c200a2020202020202020204f4c442e44535f49442c200a2020202020202020204f4c442e44535450545f49442c200a2020202020202020204f4c442e56414c55452c200a2020202020202020202873656c6563742028742e636f6465207c7c2027205b27207c7c20762e636f6465207c7c20275d27292066726f6d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d732061732074206a6f696e20636f6e74726f6c6c65645f766f636162756c61726965732061732076206f6e20742e636f766f5f6964203d20762e696420776865726520742e6964203d204f4c442e435654455f4944292c0a2020202020202020202873656c65637420286d2e636f6465207c7c2027205b27207c7c206d742e636f6465207c7c20275d27292066726f6d206d6174657269616c73206173206d206a6f696e206d6174657269616c5f7479706573206173206d74206f6e206d2e6d6174795f6964203d206d742e6964207768657265206d2e6964203d204f4c442e4d4154455f50524f505f4944292c0a2020202020202020202873656c656374207065726d5f69642066726f6d2073616d706c65735f616c6c207768657265206964203d204f4c442e53414d505f50524f505f4944292c0a2020202020202020204f4c442e504552535f49445f415554484f522c0a2020202020202020204f4c442e4d4f44494649434154494f4e5f54494d455354414d502c0a20202020202020202063757272656e745f74696d657374616d700a20202020202020293b0a0a2d2d206164642073616d706c6520464b20746f204558504552494d454e542070726f706572746965730a616c746572207461626c65204558504552494d454e545f50524f504552544945532061646420636f6c756d6e2053414d505f50524f505f494420544543485f49443b0a616c746572207461626c65204558504552494d454e545f50524f504552544945532064726f7020636f6e73747261696e7420455850525f434b3b0a414c544552205441424c45204558504552494d454e545f50524f504552544945532041444420434f4e53545241494e5420455850525f434b20434845434b0a20202020282856414c5545204953204e4f54204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f52200a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e4f54204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e4f54204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e4f54204e554c4c290a20202020293b0a43524541544520494e44455820455850525f534150525f464b5f49204f4e204558504552494d454e545f50524f50455254494553202853414d505f50524f505f4944293b0a0a2d2d206164642073616d706c65206964656e74696669657220746f204558504552494d454e542070726f7065727469657320686973746f72790a616c746572207461626c65204558504552494d454e545f50524f504552544945535f484953544f52592061646420636f6c756d6e2053414d504c45204944454e5449464945523b0a616c746572207461626c65204558504552494d454e545f50524f504552544945535f484953544f52592064726f7020636f6e73747261696e742045585052485f434b3b0a414c544552205441424c45204558504552494d454e545f50524f504552544945535f484953544f52592041444420434f4e53545241494e542045585052485f434b20434845434b0a20202020282856414c5545204953204e4f54204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e554c4c29204f52200a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e4f54204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e4f54204e554c4c20414e442053414d504c45204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e4f54204e554c4c290a20202020293b0a0a64726f702076696577206578706572696d656e745f686973746f72795f766965773b0a4352454154452056494557206578706572696d656e745f686973746f72795f7669657720415320280a202053454c4543540a20202020322a69642061732069642c0a202020206d61696e5f657870655f69642c0a2020202072656c6174696f6e5f747970652c0a2020202070726f6a5f69642c0a2020202073616d705f69642c0a20202020646174615f69642c0a20202020656e746974795f7065726d5f69642c0a202020206e756c6c20617320657470745f69642c0a202020206e756c6c2061732076616c75652c0a202020206e756c6c20617320766f636162756c6172795f7465726d2c0a202020206e756c6c206173206d6174657269616c2c0a202020206e756c6c2061732073616d706c652c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a202020204558504552494d454e545f52454c4154494f4e53484950535f484953544f52590a202057484552452076616c69645f756e74696c5f74696d657374616d70204953204e4f54204e554c4c290a554e494f4e0a202053454c4543540a20202020322a69642b312061732069642c0a20202020657870655f6964206173206d61696e5f657870655f69642c0a202020206e756c6c2061732072656c6174696f6e5f747970652c0a202020206e756c6c2061732070726f6a5f69642c0a202020206e756c6c2061732073616d705f69642c0a202020206e756c6c20617320646174615f69642c0a202020206e756c6c20617320656e746974795f7065726d5f69642c0a20202020657470745f69642c0a2020202076616c75652c0a20202020766f636162756c6172795f7465726d2c0a202020206d6174657269616c2c0a2020202073616d706c652c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a202020204558504552494d454e545f50524f504552544945535f484953544f52593b0a0a435245415445204f52205245504c4143452052554c45206578706572696d656e745f70726f706572746965735f7570646174652041530a202020204f4e2055504441544520544f206578706572696d656e745f70726f70657274696573200a20202020574845524520284f4c442e56414c5545204953204e4f54204e554c4c20414e44206465636f6465287265706c61636528737562737472696e67284f4c442e76616c75652066726f6d203120666f722031292c20275c272c20275c5c27292c2027657363617065272920213d2045275c5c786566626662642720414e44204f4c442e56414c554520213d204e45572e56414c554529200a20202020202020204f5220284f4c442e435654455f4944204953204e4f54204e554c4c20414e44204f4c442e435654455f494420213d204e45572e435654455f494429200a20202020202020204f5220284f4c442e4d4154455f50524f505f4944204953204e4f54204e554c4c20414e44204f4c442e4d4154455f50524f505f494420213d204e45572e4d4154455f50524f505f4944290a20202020202020204f5220284f4c442e53414d505f50524f505f4944204953204e4f54204e554c4c20414e44204f4c442e53414d505f50524f505f494420213d204e45572e53414d505f50524f505f4944290a20202020444f20414c534f200a20202020202020494e5345525420494e544f206578706572696d656e745f70726f706572746965735f686973746f727920280a20202020202020202049442c200a202020202020202020455850455f49442c0a202020202020202020455450545f49442c200a20202020202020202056414c55452c200a202020202020202020564f434142554c4152595f5445524d2c0a2020202020202020204d4154455249414c2c200a20202020202020202053414d504c452c200a202020202020202020504552535f49445f415554484f522c0a20202020202020202056414c49445f46524f4d5f54494d455354414d502c0a20202020202020202056414c49445f554e54494c5f54494d455354414d50200a20202020202020292056414c55455320280a2020202020202020206e65787476616c28274558504552494d454e545f50524f50455254595f49445f53455127292c200a2020202020202020204f4c442e455850455f49442c200a2020202020202020204f4c442e455450545f49442c200a2020202020202020204f4c442e56414c55452c200a2020202020202020202873656c6563742028742e636f6465207c7c2027205b27207c7c20762e636f6465207c7c20275d27292066726f6d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d732061732074206a6f696e20636f6e74726f6c6c65645f766f636162756c61726965732061732076206f6e20742e636f766f5f6964203d20762e696420776865726520742e6964203d204f4c442e435654455f4944292c0a2020202020202020202873656c65637420286d2e636f6465207c7c2027205b27207c7c206d742e636f6465207c7c20275d27292066726f6d206d6174657269616c73206173206d206a6f696e206d6174657269616c5f7479706573206173206d74206f6e206d2e6d6174795f6964203d206d742e6964207768657265206d2e6964203d204f4c442e4d4154455f50524f505f4944292c0a2020202020202020202873656c656374207065726d5f69642066726f6d2073616d706c65735f616c6c207768657265206964203d204f4c442e53414d505f50524f505f4944292c0a2020202020202020204f4c442e504552535f49445f415554484f522c0a2020202020202020204f4c442e4d4f44494649434154494f4e5f54494d455354414d502c0a2020202020202020204e45572e4d4f44494649434154494f4e5f54494d455354414d500a20202020202020293b0a0a435245415445204f52205245504c4143452052554c45206578706572696d656e745f70726f706572746965735f64656c6574652041530a202020204f4e2044454c45544520544f206578706572696d656e745f70726f70657274696573200a20202020574845524520284f4c442e56414c5545204953204e4f54204e554c4c20414e44206465636f6465287265706c61636528737562737472696e67284f4c442e76616c75652066726f6d203120666f722031292c20275c272c20275c5c27292c2027657363617065272920213d2045275c5c7865666266626427290a20202020202020204f52204f4c442e435654455f4944204953204e4f54204e554c4c200a20202020202020204f52204f4c442e4d4154455f50524f505f4944204953204e4f54204e554c4c0a20202020202020204f52204f4c442e53414d505f50524f505f4944204953204e4f54204e554c4c0a20202020444f20414c534f200a20202020202020494e5345525420494e544f206578706572696d656e745f70726f706572746965735f686973746f727920280a20202020202020202049442c200a202020202020202020455850455f49442c0a202020202020202020455450545f49442c200a20202020202020202056414c55452c200a202020202020202020564f434142554c4152595f5445524d2c0a2020202020202020204d4154455249414c2c200a20202020202020202053414d504c452c200a202020202020202020504552535f49445f415554484f522c0a20202020202020202056414c49445f46524f4d5f54494d455354414d502c0a20202020202020202056414c49445f554e54494c5f54494d455354414d50200a20202020202020292056414c55455320280a2020202020202020206e65787476616c28274558504552494d454e545f50524f50455254595f49445f53455127292c200a2020202020202020204f4c442e455850455f49442c200a2020202020202020204f4c442e455450545f49442c200a2020202020202020204f4c442e56414c55452c200a2020202020202020202873656c6563742028742e636f6465207c7c2027205b27207c7c20762e636f6465207c7c20275d27292066726f6d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d732061732074206a6f696e20636f6e74726f6c6c65645f766f636162756c61726965732061732076206f6e20742e636f766f5f6964203d20762e696420776865726520742e6964203d204f4c442e435654455f4944292c0a2020202020202020202873656c65637420286d2e636f6465207c7c2027205b27207c7c206d742e636f6465207c7c20275d27292066726f6d206d6174657269616c73206173206d206a6f696e206d6174657269616c5f7479706573206173206d74206f6e206d2e6d6174795f6964203d206d742e6964207768657265206d2e6964203d204f4c442e4d4154455f50524f505f4944292c0a2020202020202020202873656c656374207065726d5f69642066726f6d2073616d706c65735f616c6c207768657265206964203d204f4c442e53414d505f50524f505f4944292c0a2020202020202020204f4c442e504552535f49445f415554484f522c0a2020202020202020204f4c442e4d4f44494649434154494f4e5f54494d455354414d502c0a20202020202020202063757272656e745f74696d657374616d700a20202020202020293b0a0a2d2d206164642073616d706c6520464b20746f2053414d504c452070726f706572746965730a616c746572207461626c652053414d504c455f50524f504552544945532061646420636f6c756d6e2053414d505f50524f505f494420544543485f49443b0a616c746572207461626c652053414d504c455f50524f504552544945532064726f7020636f6e73747261696e7420534150525f434b3b0a414c544552205441424c452053414d504c455f50524f504552544945532041444420434f4e53545241494e5420534150525f434b20434845434b200a20202020282856414c5545204953204e4f54204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e4f54204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e4f54204e554c4c20414e442053414d505f50524f505f4944204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420435654455f4944204953204e554c4c20414e44204d4154455f50524f505f4944204953204e554c4c20414e442053414d505f50524f505f4944204953204e4f54204e554c4c290a20202020293b0a43524541544520494e44455820534150525f534150525f464b5f49204f4e2053414d504c455f50524f50455254494553202853414d505f50524f505f4944293b0a0a2d2d206164642073616d706c65206964656e74696669657220746f2053414d504c452070726f7065727469657320686973746f72790a616c746572207461626c652053414d504c455f50524f504552544945535f484953544f52592061646420636f6c756d6e2053414d504c45204944454e5449464945523b0a616c746572207461626c652053414d504c455f50524f504552544945535f484953544f52592064726f7020636f6e73747261696e742053415052485f434b3b0a414c544552205441424c452053414d504c455f50524f504552544945535f484953544f52592041444420434f4e53545241494e542053415052485f434b20434845434b200a20202020282856414c5545204953204e4f54204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e554c4c29204f52200a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e4f54204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e4f54204e554c4c20414e442053414d504c45204953204e554c4c29204f520a20202020202856414c5545204953204e554c4c20414e4420564f434142554c4152595f5445524d204953204e554c4c20414e44204d4154455249414c204953204e554c4c20414e442053414d504c45204953204e4f54204e554c4c290a20202020293b0a0a64726f7020766965772073616d706c655f686973746f72795f766965773b0a43524541544520564945572073616d706c655f686973746f72795f7669657720415320280a202053454c4543540a20202020322a69642061732069642c0a202020206d61696e5f73616d705f69642c0a2020202072656c6174696f6e5f747970652c0a2020202073706163655f69642c0a20202020657870655f69642c0a2020202073616d705f69642c0a2020202070726f6a5f69642c0a20202020646174615f69642c0a20202020656e746974795f7065726d5f69642c0a202020206e756c6c20617320737470745f69642c0a202020206e756c6c2061732076616c75652c0a202020206e756c6c20617320766f636162756c6172795f7465726d2c0a202020206e756c6c206173206d6174657269616c2c0a202020206e756c6c2061732073616d706c652c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a2020202053414d504c455f52454c4154494f4e53484950535f484953544f52590a202057484552450a2020202076616c69645f756e74696c5f74696d657374616d70204953204e4f54204e554c4c290a554e494f4e0a202053454c4543540a20202020322a69642b312061732069642c0a2020202073616d705f6964206173206d61696e5f73616d705f69642c0a202020206e756c6c2061732072656c6174696f6e5f747970652c0a202020206e756c6c2061732073706163655f69642c0a202020206e756c6c20617320657870655f69642c0a202020206e756c6c2061732073616d705f69642c0a202020206e756c6c2061732070726f6a5f69642c0a202020206e756c6c20617320646174615f69642c0a202020206e756c6c20617320656e746974795f7065726d5f69642c0a20202020737470745f69642c0a2020202076616c75652c0a20202020766f636162756c6172795f7465726d2c0a202020206d6174657269616c2c0a2020202073616d706c652c0a20202020706572735f69645f617574686f722c0a2020202076616c69645f66726f6d5f74696d657374616d702c0a2020202076616c69645f756e74696c5f74696d657374616d700a202046524f4d0a2020202053414d504c455f50524f504552544945535f484953544f52593b0a0a435245415445204f52205245504c4143452052554c452073616d706c655f70726f706572746965735f7570646174652041530a202020204f4e2055504441544520544f2073616d706c655f70726f706572746965730a20202020574845524520284f4c442e56414c5545204953204e4f54204e554c4c20414e44206465636f6465287265706c61636528737562737472696e67284f4c442e76616c75652066726f6d203120666f722031292c20275c272c20275c5c27292c2027657363617065272920213d2045275c5c786566626662642720414e44204f4c442e56414c554520213d204e45572e56414c554529200a20202020202020204f5220284f4c442e435654455f4944204953204e4f54204e554c4c20414e44204f4c442e435654455f494420213d204e45572e435654455f4944290a20202020202020204f5220284f4c442e4d4154455f50524f505f4944204953204e4f54204e554c4c20414e44204f4c442e4d4154455f50524f505f494420213d204e45572e4d4154455f50524f505f4944290a20202020202020204f5220284f4c442e53414d505f50524f505f4944204953204e4f54204e554c4c20414e44204f4c442e53414d505f50524f505f494420213d204e45572e53414d505f50524f505f4944290a20202020444f20414c534f0a20202020202020494e5345525420494e544f2073616d706c655f70726f706572746965735f686973746f727920280a20202020202020202049442c200a20202020202020202053414d505f49442c0a202020202020202020535450545f49442c200a20202020202020202056414c55452c200a202020202020202020564f434142554c4152595f5445524d2c0a2020202020202020204d4154455249414c2c0a20202020202020202053414d504c452c0a202020202020202020504552535f49445f415554484f522c0a20202020202020202056414c49445f46524f4d5f54494d455354414d502c0a20202020202020202056414c49445f554e54494c5f54494d455354414d50200a20202020202020292056414c55455320280a2020202020202020206e65787476616c282753414d504c455f50524f50455254595f49445f53455127292c200a2020202020202020204f4c442e53414d505f49442c200a2020202020202020204f4c442e535450545f49442c200a2020202020202020204f4c442e56414c55452c200a2020202020202020202873656c6563742028742e636f6465207c7c2027205b27207c7c20762e636f6465207c7c20275d27292066726f6d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d732061732074206a6f696e20636f6e74726f6c6c65645f766f636162756c61726965732061732076206f6e20742e636f766f5f6964203d20762e696420776865726520742e6964203d204f4c442e435654455f4944292c0a2020202020202020202873656c65637420286d2e636f6465207c7c2027205b27207c7c206d742e636f6465207c7c20275d27292066726f6d206d6174657269616c73206173206d206a6f696e206d6174657269616c5f7479706573206173206d74206f6e206d2e6d6174795f6964203d206d742e6964207768657265206d2e6964203d204f4c442e4d4154455f50524f505f4944292c0a2020202020202020202873656c656374207065726d5f69642066726f6d2073616d706c65735f616c6c207768657265206964203d204f4c442e53414d505f50524f505f4944292c0a2020202020202020204f4c442e504552535f49445f415554484f522c0a2020202020202020204f4c442e4d4f44494649434154494f4e5f54494d455354414d502c0a2020202020202020204e45572e4d4f44494649434154494f4e5f54494d455354414d500a20202020202020293b0a435245415445204f52205245504c4143452052554c452073616d706c655f70726f706572746965735f64656c6574652041530a202020204f4e2044454c45544520544f2073616d706c655f70726f70657274696573200a2020202057484552452028284f4c442e56414c5545204953204e4f54204e554c4c20414e44206465636f6465287265706c61636528737562737472696e67284f4c442e76616c75652066726f6d203120666f722031292c20275c272c20275c5c27292c2027657363617065272920213d2045275c5c7865666266626427290a20202020202020204f52204f4c442e435654455f4944204953204e4f54204e554c4c200a20202020202020204f52204f4c442e4d4154455f50524f505f4944204953204e4f54204e554c4c0a20202020202020204f52204f4c442e53414d505f50524f505f4944204953204e4f54204e554c4c290a20202020202020414e44202853454c4543542044454c5f49442046524f4d2053414d504c45535f414c4c205748455245204944203d204f4c442e53414d505f494429204953204e554c4c0a2020202020444f20414c534f0a20202020202020494e5345525420494e544f2073616d706c655f70726f706572746965735f686973746f727920280a20202020202020202049442c200a20202020202020202053414d505f49442c0a202020202020202020535450545f49442c200a20202020202020202056414c55452c200a202020202020202020564f434142554c4152595f5445524d2c0a2020202020202020204d4154455249414c2c0a20202020202020202053414d504c452c0a202020202020202020504552535f49445f415554484f522c0a20202020202020202056414c49445f46524f4d5f54494d455354414d502c0a20202020202020202056414c49445f554e54494c5f54494d455354414d50200a20202020202020292056414c55455320280a2020202020202020206e65787476616c282753414d504c455f50524f50455254595f49445f53455127292c200a2020202020202020204f4c442e53414d505f49442c200a2020202020202020204f4c442e535450545f49442c200a2020202020202020204f4c442e56414c55452c200a2020202020202020202873656c6563742028742e636f6465207c7c2027205b27207c7c20762e636f6465207c7c20275d27292066726f6d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d732061732074206a6f696e20636f6e74726f6c6c65645f766f636162756c61726965732061732076206f6e20742e636f766f5f6964203d20762e696420776865726520742e6964203d204f4c442e435654455f4944292c0a2020202020202020202873656c65637420286d2e636f6465207c7c2027205b27207c7c206d742e636f6465207c7c20275d27292066726f6d206d6174657269616c73206173206d206a6f696e206d6174657269616c5f7479706573206173206d74206f6e206d2e6d6174795f6964203d206d742e6964207768657265206d2e6964203d204f4c442e4d4154455f50524f505f4944292c0a2020202020202020202873656c656374207065726d5f69642066726f6d2073616d706c65735f616c6c207768657265206964203d204f4c442e53414d505f50524f505f4944292c0a2020202020202020204f4c442e504552535f49445f415554484f522c0a2020202020202020204f4c442e4d4f44494649434154494f4e5f54494d455354414d502c0a20202020202020202063757272656e745f74696d657374616d700a20202020202020293b0a0a \N -180 source/sql/postgresql/migration/migration-179-180.sql SUCCESS 2020-06-09 08:35:18.452 \\x2d2d2046756c6c2074657874207365617263680a0a2d2d20436f6e74726f6c6c656420566f636162756c61726965730a0a414c544552205441424c4520636f6e74726f6c6c65645f766f636162756c6172795f7465726d730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a4352454154452046554e4354494f4e2070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c41524520637674205245434f52443b0a424547494e0a202020204946204e45572e637674655f6964204953204e4f54204e554c4c205448454e0a202020202020202053454c45435420636f64652c206c6162656c20494e544f20535452494354206376742046524f4d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d73205748455245206964203d204e45572e637674655f69643b0a20202020202020204e45572e7473766563746f725f646f63756d656e74203a3d20746f5f7473766563746f722827656e676c697368272c206376742e636f646529207c7c0a20202020202020202020202020202020746f5f7473766563746f722827656e676c697368272c20636f616c65736365286376742e6c6162656c2c20272729293b0a20202020454c53450a20202020202020204e45572e7473766563746f725f646f63756d656e74203a3d20746f5f7473766563746f722827656e676c697368272c20636f616c65736365284e45572e76616c75652c20272729293b0a202020202020202052455455524e204e45573b0a20202020454e442049463b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a2d2d2053616d706c65730a0a4352454154452046554e4354494f4e2073616d706c65735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c4152452070726f6a5f636f646520564152434841523b0a2020202073706163655f636f646520564152434841523b0a20202020636f6e7461696e65725f636f646520564152434841523b0a202020206964656e7469666965722056415243484152203a3d20272f273b0a424547494e0a202020204946204e45572e73706163655f6964204953204e4f54204e554c4c205448454e0a202020202020202053454c45435420636f646520494e544f205354524943542073706163655f636f64652046524f4d20737061636573205748455245206964203d204e45572e73706163655f69643b0a20202020202020206964656e746966696572203a3d206964656e746966696572207c7c2073706163655f636f6465207c7c20272f273b0a20202020454e442049463b0a0a202020204946204e45572e70726f6a5f6964204953204e4f54204e554c4c205448454e0a20202020202020204946204e45572e73706163655f6964204953204e4f54204e554c4c205448454e0a20202020202020202020202053454c45435420636f646520494e544f205354524943542070726f6a5f636f64652046524f4d2070726f6a65637473205748455245206964203d204e45572e70726f6a5f69643b0a2020202020202020454c53450a20202020202020202020202053454c45435420702e636f64652c20732e636f646520494e544f205354524943542070726f6a5f636f64652c2073706163655f636f64652046524f4d2070726f6a6563747320700a20202020202020202020202020202020494e4e4552204a4f494e207370616365732073204f4e20702e73706163655f6964203d20732e6964205748455245206964203d204e45572e70726f6a5f69643b0a2020202020202020202020206964656e746966696572203a3d206964656e746966696572207c7c2073706163655f636f6465207c7c20272f273b0a2020202020202020454e442049463b0a0a20202020202020206964656e746966696572203a3d206964656e746966696572207c7c2070726f6a5f636f6465207c7c20272f273b0a20202020454e442049463b0a0a202020206964656e746966696572203a3d206964656e746966696572207c7c204e45572e636f64653b0a0a202020204946204e45572e73616d705f69645f706172745f6f66204953204e4f54204e554c4c205448454e0a202020202020202053454c45435420636f646520494e544f2053545249435420636f6e7461696e65725f636f64652046524f4d2073616d706c65735f616c6c205748455245206964203d204e45572e73616d705f69645f706172745f6f663b0a20202020202020206964656e746966696572203a3d206964656e746966696572207c7c20275c3a27207c7c20636f6e7461696e65725f636f64653b0a20202020454e442049463b0a0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e7065726d5f6964207c7c20273a3127293a3a7473766563746f72207c7c20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a202020202020202020202020202020207c7c20286964656e746966696572207c7c20273a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c452073616d706c65735f616c6c0a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445204f52205245504c41434520564945572073616d706c65732041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c2070726f6a5f69642c2070726f6a5f66726f7a656e2c20657870655f69642c20657870655f66726f7a656e2c20736174795f69642c20726567697374726174696f6e5f74696d657374616d702c0a20202020202020202020206d6f64696669636174696f6e5f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2064656c5f69642c206f7269675f64656c2c2073706163655f69642c2073706163655f66726f7a656e2c0a202020202020202020202073616d705f69645f706172745f6f662c20636f6e745f66726f7a656e2c2076657273696f6e2c2066726f7a656e2c2066726f7a656e5f666f725f636f6d702c2066726f7a656e5f666f725f6368696c6472656e2c2066726f7a656e5f666f725f706172656e74732c0a202020202020202020202066726f7a656e5f666f725f646174612c207473766563746f725f646f63756d656e740a2020202046524f4d2073616d706c65735f616c6c0a2020202057484552452064656c5f6964204953204e554c4c3b0a0a435245415445204f52205245504c41434520564945572073616d706c65735f64656c657465642041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c20657870655f69642c20736174795f69642c20726567697374726174696f6e5f74696d657374616d702c206d6f64696669636174696f6e5f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2064656c5f69642c206f7269675f64656c2c2073706163655f69642c2070726f6a5f69642c2073616d705f69645f706172745f6f662c2076657273696f6e2c0a20202020202020202020207473766563746f725f646f63756d656e740a2020202046524f4d2073616d706c65735f616c6c0a2020202057484552452064656c5f6964204953204e4f54204e554c4c3b0a0a43524541544520545249474745522073616d706c65735f616c6c5f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e2073616d706c65735f616c6c20464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202073616d706c65735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a5550444154452073616d706c65735f616c6c2053455420636f6465203d20636f64653b0a0a414c544552205441424c452073616d706c655f70726f706572746965730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a43524541544520545249474745522073616d706c655f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e2073616d706c655f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a5550444154452073616d706c655f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c452073616d706c655f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e4445582073616d706c655f70726f706572746965735f7365617263685f696e646578204f4e2073616d706c655f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a0a2d2d204578706572696d656e74730a0a4352454154452046554e4354494f4e206578706572696d656e74735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c4152452070726f6a5f636f646520564152434841523b0a202020202020202073706163655f636f646520564152434841523b0a424547494e0a2020202053454c45435420702e636f64652c20732e636f646520494e544f205354524943542070726f6a5f636f64652c2073706163655f636f64652046524f4d2070726f6a6563747320700a2020202020202020494e4e4552204a4f494e207370616365732073204f4e20702e73706163655f6964203d20732e696420574845524520702e6964203d204e45572e70726f6a5f69643b0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e7065726d5f6964207c7c20273a3127293a3a7473766563746f72207c7c20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a202020202020202020202020202020207c7c2028272f27207c7c2073706163655f636f6465207c7c20272f27207c7c2070726f6a5f636f6465207c7c20272f27207c7c204e45572e636f6465207c7c20273a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c45206578706572696d656e74735f616c6c0a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445204f52205245504c4143452056494557206578706572696d656e74732041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c20657874795f69642c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c20726567697374726174696f6e5f74696d657374616d702c206d6f64696669636174696f6e5f74696d657374616d702c0a202020202020202020202070726f6a5f69642c2070726f6a5f66726f7a656e2c2064656c5f69642c206f7269675f64656c2c2069735f7075626c69632c2076657273696f6e2c2066726f7a656e2c2066726f7a656e5f666f725f73616d702c2066726f7a656e5f666f725f646174612c207473766563746f725f646f63756d656e740a2020202046524f4d206578706572696d656e74735f616c6c0a2020202057484552452064656c5f6964204953204e554c4c3b0a0a435245415445204f52205245504c4143452056494557206578706572696d656e74735f64656c657465642041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c20657874795f69642c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c20726567697374726174696f6e5f74696d657374616d702c206d6f64696669636174696f6e5f74696d657374616d702c2070726f6a5f69642c2064656c5f69642c0a20202020202020202020206f7269675f64656c2c2069735f7075626c69632c2076657273696f6e2c207473766563746f725f646f63756d656e740a2020202046524f4d206578706572696d656e74735f616c6c0a2020202057484552452064656c5f6964204953204e4f54204e554c4c3b0a0a4352454154452054524947474552206578706572696d656e74735f616c6c5f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e206578706572696d656e74735f616c6c20464f52204541434820524f5720455845435554452046554e4354494f4e0a202020206578706572696d656e74735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a555044415445206578706572696d656e74735f616c6c2053455420636f6465203d20636f64653b0a0a414c544552205441424c45206578706572696d656e745f70726f706572746965730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a4352454154452054524947474552206578706572696d656e745f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e206578706572696d656e745f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a555044415445206578706572696d656e745f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c45206578706572696d656e745f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e444558206578706572696d656e745f70726f706572746965735f7365617263685f696e646578204f4e206578706572696d656e745f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a0a2d2d204461746120736574730a0a4352454154452046554e4354494f4e20646174615f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a424547494e0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e646174615f7365745f6b696e64207c7c20273a3127293a3a7473766563746f72207c7c20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a20202020202020207c7c2028272f27207c7c204e45572e636f6465207c7c20273a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c4520646174615f616c6c0a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445204f52205245504c414345205649455720646174612041530a2020202053454c4543542069642c20636f64652c20647374795f69642c20646173745f69642c20657870655f69642c20657870655f66726f7a656e2c20646174615f70726f64756365725f636f64652c2070726f64756374696f6e5f74696d657374616d702c2073616d705f69642c0a202020202020202020202073616d705f66726f7a656e2c20726567697374726174696f6e5f74696d657374616d702c206163636573735f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2069735f76616c69642c0a20202020202020202020206d6f64696669636174696f6e5f74696d657374616d702c69735f646572697665642c2064656c5f69642c206f7269675f64656c2c2076657273696f6e2c20646174615f7365745f6b696e642c0a202020202020202020202066726f7a656e2c2066726f7a656e5f666f725f6368696c6472656e2c2066726f7a656e5f666f725f706172656e74732c2066726f7a656e5f666f725f636f6d70732c2066726f7a656e5f666f725f636f6e74732c207473766563746f725f646f63756d656e740a2020202046524f4d20646174615f616c6c0a2020202057484552452064656c5f6964204953204e554c4c3b0a0a435245415445204f52205245504c414345205649455720646174615f64656c657465642041530a2020202053454c4543542069642c20636f64652c20647374795f69642c20646173745f69642c20657870655f69642c20646174615f70726f64756365725f636f64652c2070726f64756374696f6e5f74696d657374616d702c2073616d705f69642c0a2020202020202020202020726567697374726174696f6e5f74696d657374616d702c206163636573735f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2069735f76616c69642c0a20202020202020202020206d6f64696669636174696f6e5f74696d657374616d702c2069735f646572697665642c2064656c5f69642c206f7269675f64656c2c2076657273696f6e2c20646174615f7365745f6b696e642c207473766563746f725f646f63756d656e740a2020202046524f4d20646174615f616c6c0a2020202057484552452064656c5f6964204953204e4f54204e554c4c3b0a0a435245415445205452494747455220646174615f616c6c5f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e20646174615f616c6c20464f52204541434820524f5720455845435554452046554e4354494f4e0a20202020646174615f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a55504441544520646174615f616c6c2053455420636f6465203d20636f64653b0a0a414c544552205441424c4520646174615f7365745f70726f706572746965730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445205452494747455220646174615f7365745f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e20646174615f7365745f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a55504441544520646174615f7365745f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c4520646174615f7365745f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e44455820646174615f7365745f70726f706572746965735f7365617263685f696e646578204f4e20646174615f7365745f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a0a2d2d204d6174657269616c730a0a4352454154452046554e4354494f4e206d6174657269616c735f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c415245206d6174657269616c5f747970655f636f646520564152434841523b0a424547494e0a2020202053454c45435420636f646520494e544f20535452494354206d6174657269616c5f747970655f636f64652046524f4d206d6174657269616c5f7479706573205748455245206964203d204e45572e6d6174795f69643b0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a20202020202020207c7c20284e45572e636f6465207c7c20275c202827207c7c206d6174657269616c5f747970655f636f6465207c7c2027293a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c45206d6174657269616c732041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a4352454154452054524947474552206d6174657269616c735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e206d6174657269616c7320464f52204541434820524f5720455845435554452050524f4345445552450a202020206d6174657269616c735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a555044415445206d6174657269616c732053455420636f6465203d20636f64653b0a0a414c544552205441424c45206d6174657269616c5f70726f706572746965732041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a4352454154452054524947474552206d6174657269616c5f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e206d6174657269616c5f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a555044415445206d6174657269616c5f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c45206d6174657269616c5f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e444558206d6174657269616c5f70726f706572746965735f7365617263685f696e646578204f4e206d6174657269616c5f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a \N +180 source/sql/postgresql/migration/migration-179-180.sql SUCCESS 2020-06-09 17:45:32.145 \\x2d2d2046756c6c2074657874207365617263680a0a2d2d20436f6e74726f6c6c656420566f636162756c61726965730a0a4352454154452046554e4354494f4e2070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c41524520637674205245434f52443b0a424547494e0a202020204946204e45572e637674655f6964204953204e4f54204e554c4c205448454e0a202020202020202053454c45435420636f64652c206c6162656c20494e544f20535452494354206376742046524f4d20636f6e74726f6c6c65645f766f636162756c6172795f7465726d73205748455245206964203d204e45572e637674655f69643b0a20202020202020204e45572e7473766563746f725f646f63756d656e74203a3d20746f5f7473766563746f722827656e676c697368272c206376742e636f646529207c7c0a20202020202020202020202020202020746f5f7473766563746f722827656e676c697368272c20636f616c65736365286376742e6c6162656c2c20272729293b0a20202020454c53450a20202020202020204e45572e7473766563746f725f646f63756d656e74203a3d20746f5f7473766563746f722827656e676c697368272c20636f616c65736365284e45572e76616c75652c20272729293b0a202020202020202052455455524e204e45573b0a20202020454e442049463b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a2d2d2053616d706c65730a0a4352454154452046554e4354494f4e2073616d706c65735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c4152452070726f6a5f636f646520564152434841523b0a2020202073706163655f636f646520564152434841523b0a20202020636f6e7461696e65725f636f646520564152434841523b0a202020206964656e7469666965722056415243484152203a3d20272f273b0a424547494e0a202020204946204e45572e73706163655f6964204953204e4f54204e554c4c205448454e0a202020202020202053454c45435420636f646520494e544f205354524943542073706163655f636f64652046524f4d20737061636573205748455245206964203d204e45572e73706163655f69643b0a20202020202020206964656e746966696572203a3d206964656e746966696572207c7c2073706163655f636f6465207c7c20272f273b0a20202020454e442049463b0a0a202020204946204e45572e70726f6a5f6964204953204e4f54204e554c4c205448454e0a20202020202020204946204e45572e73706163655f6964204953204e4f54204e554c4c205448454e0a20202020202020202020202053454c45435420636f646520494e544f205354524943542070726f6a5f636f64652046524f4d2070726f6a65637473205748455245206964203d204e45572e70726f6a5f69643b0a2020202020202020454c53450a20202020202020202020202053454c45435420702e636f64652c20732e636f646520494e544f205354524943542070726f6a5f636f64652c2073706163655f636f64652046524f4d2070726f6a6563747320700a20202020202020202020202020202020494e4e4552204a4f494e207370616365732073204f4e20702e73706163655f6964203d20732e6964205748455245206964203d204e45572e70726f6a5f69643b0a2020202020202020202020206964656e746966696572203a3d206964656e746966696572207c7c2073706163655f636f6465207c7c20272f273b0a2020202020202020454e442049463b0a0a20202020202020206964656e746966696572203a3d206964656e746966696572207c7c2070726f6a5f636f6465207c7c20272f273b0a20202020454e442049463b0a0a202020206964656e746966696572203a3d206964656e746966696572207c7c204e45572e636f64653b0a0a202020204946204e45572e73616d705f69645f706172745f6f66204953204e4f54204e554c4c205448454e0a202020202020202053454c45435420636f646520494e544f2053545249435420636f6e7461696e65725f636f64652046524f4d2073616d706c65735f616c6c205748455245206964203d204e45572e73616d705f69645f706172745f6f663b0a20202020202020206964656e746966696572203a3d206964656e746966696572207c7c20275c3a27207c7c20636f6e7461696e65725f636f64653b0a20202020454e442049463b0a0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e7065726d5f6964207c7c20273a3127293a3a7473766563746f72207c7c20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a202020202020202020202020202020207c7c20286964656e746966696572207c7c20273a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c452073616d706c65735f616c6c0a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445204f52205245504c41434520564945572073616d706c65732041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c2070726f6a5f69642c2070726f6a5f66726f7a656e2c20657870655f69642c20657870655f66726f7a656e2c20736174795f69642c20726567697374726174696f6e5f74696d657374616d702c0a20202020202020202020206d6f64696669636174696f6e5f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2064656c5f69642c206f7269675f64656c2c2073706163655f69642c2073706163655f66726f7a656e2c0a202020202020202020202073616d705f69645f706172745f6f662c20636f6e745f66726f7a656e2c2076657273696f6e2c2066726f7a656e2c2066726f7a656e5f666f725f636f6d702c2066726f7a656e5f666f725f6368696c6472656e2c2066726f7a656e5f666f725f706172656e74732c0a202020202020202020202066726f7a656e5f666f725f646174612c207473766563746f725f646f63756d656e740a2020202046524f4d2073616d706c65735f616c6c0a2020202057484552452064656c5f6964204953204e554c4c3b0a0a435245415445204f52205245504c41434520564945572073616d706c65735f64656c657465642041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c20657870655f69642c20736174795f69642c20726567697374726174696f6e5f74696d657374616d702c206d6f64696669636174696f6e5f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2064656c5f69642c206f7269675f64656c2c2073706163655f69642c2070726f6a5f69642c2073616d705f69645f706172745f6f662c2076657273696f6e2c0a20202020202020202020207473766563746f725f646f63756d656e740a2020202046524f4d2073616d706c65735f616c6c0a2020202057484552452064656c5f6964204953204e4f54204e554c4c3b0a0a424547494e3b0a2020202043524541544520545249474745522073616d706c65735f616c6c5f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a20202020202020204f4e2073616d706c65735f616c6c20464f52204541434820524f5720455845435554452046554e4354494f4e0a202020202020202073616d706c65735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a202020205550444154452073616d706c65735f616c6c2053455420636f6465203d20636f64653b0a434f4d4d49543b0a0a414c544552205441424c452073616d706c65735f616c6c0a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a414c544552205441424c452073616d706c655f70726f706572746965730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a43524541544520545249474745522073616d706c655f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e2073616d706c655f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a5550444154452073616d706c655f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c452073616d706c655f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e4445582073616d706c655f70726f706572746965735f7365617263685f696e646578204f4e2073616d706c655f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a0a2d2d204578706572696d656e74730a0a4352454154452046554e4354494f4e206578706572696d656e74735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c4152452070726f6a5f636f646520564152434841523b0a202020202020202073706163655f636f646520564152434841523b0a424547494e0a2020202053454c45435420702e636f64652c20732e636f646520494e544f205354524943542070726f6a5f636f64652c2073706163655f636f64652046524f4d2070726f6a6563747320700a2020202020202020494e4e4552204a4f494e207370616365732073204f4e20702e73706163655f6964203d20732e696420574845524520702e6964203d204e45572e70726f6a5f69643b0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e7065726d5f6964207c7c20273a3127293a3a7473766563746f72207c7c20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a202020202020202020202020202020207c7c2028272f27207c7c2073706163655f636f6465207c7c20272f27207c7c2070726f6a5f636f6465207c7c20272f27207c7c204e45572e636f6465207c7c20273a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c45206578706572696d656e74735f616c6c0a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445204f52205245504c4143452056494557206578706572696d656e74732041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c20657874795f69642c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c20726567697374726174696f6e5f74696d657374616d702c206d6f64696669636174696f6e5f74696d657374616d702c0a202020202020202020202070726f6a5f69642c2070726f6a5f66726f7a656e2c2064656c5f69642c206f7269675f64656c2c2069735f7075626c69632c2076657273696f6e2c2066726f7a656e2c2066726f7a656e5f666f725f73616d702c2066726f7a656e5f666f725f646174612c207473766563746f725f646f63756d656e740a2020202046524f4d206578706572696d656e74735f616c6c0a2020202057484552452064656c5f6964204953204e554c4c3b0a0a435245415445204f52205245504c4143452056494557206578706572696d656e74735f64656c657465642041530a2020202053454c4543542069642c207065726d5f69642c20636f64652c20657874795f69642c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c20726567697374726174696f6e5f74696d657374616d702c206d6f64696669636174696f6e5f74696d657374616d702c2070726f6a5f69642c2064656c5f69642c0a20202020202020202020206f7269675f64656c2c2069735f7075626c69632c2076657273696f6e2c207473766563746f725f646f63756d656e740a2020202046524f4d206578706572696d656e74735f616c6c0a2020202057484552452064656c5f6964204953204e4f54204e554c4c3b0a0a424547494e3b0a202020204352454154452054524947474552206578706572696d656e74735f616c6c5f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a20202020202020204f4e206578706572696d656e74735f616c6c20464f52204541434820524f5720455845435554452046554e4354494f4e0a20202020202020206578706572696d656e74735f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a20202020555044415445206578706572696d656e74735f616c6c2053455420636f6465203d20636f64653b0a434f4d4d49543b0a0a414c544552205441424c45206578706572696d656e74735f616c6c0a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a414c544552205441424c45206578706572696d656e745f70726f706572746965730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a4352454154452054524947474552206578706572696d656e745f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e206578706572696d656e745f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a555044415445206578706572696d656e745f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c45206578706572696d656e745f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e444558206578706572696d656e745f70726f706572746965735f7365617263685f696e646578204f4e206578706572696d656e745f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a0a2d2d204461746120736574730a0a4352454154452046554e4354494f4e20646174615f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a424547494e0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e646174615f7365745f6b696e64207c7c20273a3127293a3a7473766563746f72207c7c20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a20202020202020207c7c2028272f27207c7c204e45572e636f6465207c7c20273a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c4520646174615f616c6c0a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445204f52205245504c414345205649455720646174612041530a2020202053454c4543542069642c20636f64652c20647374795f69642c20646173745f69642c20657870655f69642c20657870655f66726f7a656e2c20646174615f70726f64756365725f636f64652c2070726f64756374696f6e5f74696d657374616d702c2073616d705f69642c0a202020202020202020202073616d705f66726f7a656e2c20726567697374726174696f6e5f74696d657374616d702c206163636573735f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2069735f76616c69642c0a20202020202020202020206d6f64696669636174696f6e5f74696d657374616d702c69735f646572697665642c2064656c5f69642c206f7269675f64656c2c2076657273696f6e2c20646174615f7365745f6b696e642c0a202020202020202020202066726f7a656e2c2066726f7a656e5f666f725f6368696c6472656e2c2066726f7a656e5f666f725f706172656e74732c2066726f7a656e5f666f725f636f6d70732c2066726f7a656e5f666f725f636f6e74732c207473766563746f725f646f63756d656e740a2020202046524f4d20646174615f616c6c0a2020202057484552452064656c5f6964204953204e554c4c3b0a0a435245415445204f52205245504c414345205649455720646174615f64656c657465642041530a2020202053454c4543542069642c20636f64652c20647374795f69642c20646173745f69642c20657870655f69642c20646174615f70726f64756365725f636f64652c2070726f64756374696f6e5f74696d657374616d702c2073616d705f69642c0a2020202020202020202020726567697374726174696f6e5f74696d657374616d702c206163636573735f74696d657374616d702c20706572735f69645f726567697374657265722c20706572735f69645f6d6f6469666965722c2069735f76616c69642c0a20202020202020202020206d6f64696669636174696f6e5f74696d657374616d702c2069735f646572697665642c2064656c5f69642c206f7269675f64656c2c2076657273696f6e2c20646174615f7365745f6b696e642c207473766563746f725f646f63756d656e740a2020202046524f4d20646174615f616c6c0a2020202057484552452064656c5f6964204953204e4f54204e554c4c3b0a0a424547494e3b0a20202020435245415445205452494747455220646174615f616c6c5f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a20202020202020204f4e20646174615f616c6c20464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202020202020646174615f616c6c5f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a2020202055504441544520646174615f616c6c2053455420636f6465203d20636f64653b0a434f4d4d49543b0a0a414c544552205441424c4520646174615f616c6c0a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a414c544552205441424c4520646174615f7365745f70726f706572746965730a2020202041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a435245415445205452494747455220646174615f7365745f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e20646174615f7365745f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a55504441544520646174615f7365745f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c4520646174615f7365745f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e44455820646174615f7365745f70726f706572746965735f7365617263685f696e646578204f4e20646174615f7365745f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a0a2d2d204d6174657269616c730a0a4352454154452046554e4354494f4e206d6174657269616c735f7473766563746f725f646f63756d656e745f7472696767657228292052455455524e5320747269676765722041532024240a4445434c415245206d6174657269616c5f747970655f636f646520564152434841523b0a424547494e0a2020202053454c45435420636f646520494e544f20535452494354206d6174657269616c5f747970655f636f64652046524f4d206d6174657269616c5f7479706573205748455245206964203d204e45572e6d6174795f69643b0a202020204e45572e7473766563746f725f646f63756d656e74203a3d20284e45572e636f6465207c7c20273a3127293a3a7473766563746f720a20202020202020207c7c20284e45572e636f6465207c7c20275c202827207c7c206d6174657269616c5f747970655f636f6465207c7c2027293a3127293a3a7473766563746f723b0a2020202052455455524e204e45573b0a454e440a2424204c414e475541474520706c706773716c3b0a0a414c544552205441424c45206d6174657269616c732041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a424547494e3b0a202020204352454154452054524947474552206d6174657269616c735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a20202020202020204f4e206d6174657269616c7320464f52204541434820524f5720455845435554452050524f4345445552450a20202020202020206d6174657269616c735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a20202020555044415445206d6174657269616c732053455420636f6465203d20636f64653b0a434f4d4d49543b0a0a414c544552205441424c45206d6174657269616c730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a414c544552205441424c45206d6174657269616c5f70726f706572746965732041444420434f4c554d4e207473766563746f725f646f63756d656e74205453564543544f523b0a0a4352454154452054524947474552206d6174657269616c5f70726f706572746965735f7473766563746f725f646f63756d656e74204245464f524520494e53455254204f52205550444154450a202020204f4e206d6174657269616c5f70726f7065727469657320464f52204541434820524f5720455845435554452046554e4354494f4e0a2020202070726f706572746965735f7473766563746f725f646f63756d656e745f7472696767657228293b0a0a555044415445206d6174657269616c5f70726f70657274696573205345542076616c7565203d2076616c75653b0a0a414c544552205441424c45206d6174657269616c5f70726f706572746965730a20202020414c54455220434f4c554d4e207473766563746f725f646f63756d656e7420534554204e4f54204e554c4c3b0a0a43524541544520494e444558206d6174657269616c5f70726f706572746965735f7365617263685f696e646578204f4e206d6174657269616c5f70726f70657274696573205553494e472067696e287473766563746f725f646f63756d656e74293b0a \N diff --git a/openbis/sourceTest/sql/postgresql/180/schema-180.sql b/openbis/sourceTest/sql/postgresql/180/schema-180.sql index ba4c9a3632702e24b0d8da8ddedce9bab0fdcec9..0f8179650dbfe337af25365a6b2c4457ae875235 100644 --- a/openbis/sourceTest/sql/postgresql/180/schema-180.sql +++ b/openbis/sourceTest/sql/postgresql/180/schema-180.sql @@ -1007,7 +1007,6 @@ CREATE TABLE controlled_vocabulary_terms ( description description_2000, ordinal ordinal_int NOT NULL, is_official boolean_char DEFAULT true NOT NULL, - tsvector_document tsvector, CONSTRAINT cvte_ck CHECK (((ordinal)::bigint > 0)) ); CREATE SEQUENCE core_plugin_id_seq @@ -1056,7 +1055,7 @@ CREATE TABLE data_all ( frozen_for_parents boolean_char DEFAULT false NOT NULL, frozen_for_comps boolean_char DEFAULT false NOT NULL, frozen_for_conts boolean_char DEFAULT false NOT NULL, - tsvector_document tsvector, + tsvector_document tsvector NOT NULL, CONSTRAINT data_ck CHECK (((expe_id IS NOT NULL) OR (samp_id IS NOT NULL))) ); CREATE VIEW data AS @@ -1598,7 +1597,7 @@ CREATE TABLE experiments_all ( proj_frozen boolean_char DEFAULT false NOT NULL, frozen_for_samp boolean_char DEFAULT false NOT NULL, frozen_for_data boolean_char DEFAULT false NOT NULL, - tsvector_document tsvector + tsvector_document tsvector NOT NULL ); CREATE VIEW experiments AS SELECT experiments_all.id, @@ -1802,7 +1801,7 @@ CREATE TABLE materials ( pers_id_registerer tech_id NOT NULL, registration_timestamp time_stamp_dfl DEFAULT now() NOT NULL, modification_timestamp time_stamp DEFAULT now(), - tsvector_document tsvector + tsvector_document tsvector NOT NULL ); CREATE SEQUENCE metaproject_assignment_id_seq START WITH 1 @@ -2234,7 +2233,7 @@ CREATE TABLE samples_all ( frozen_for_children boolean_char DEFAULT false NOT NULL, frozen_for_parents boolean_char DEFAULT false NOT NULL, frozen_for_data boolean_char DEFAULT false NOT NULL, - tsvector_document tsvector + tsvector_document tsvector NOT NULL ); CREATE VIEW samples AS SELECT samples_all.id,