diff --git a/migration/21.03/210321.sql b/migration/21.03/210321.sql index 4d83f3d2d6c170adecbb0f2b90929d697a4d3da4..4c4c7d0b95b72207f90111e83c1dcaead0c22eee 100644 --- a/migration/21.03/210321.sql +++ b/migration/21.03/210321.sql @@ -6,12 +6,29 @@ -- -- -- *************************************************************************-- +DO $$ +DECLARE + last_chrono text; + chrono record; + chrono_id_seq text; +BEGIN + FOR chrono IN (SELECT id, param_value_int as value FROM parameters WHERE id LIKE 'chrono_%') LOOP + chrono_id_seq := CONCAT(chrono.id, '_seq'); + + IF NOT EXISTS (SELECT 0 FROM pg_class where relname = chrono_id_seq ) THEN + EXECUTE 'CREATE SEQUENCE ' || chrono_id_seq || ' INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;'; + END IF; + EXECUTE 'SELECT setVal(''' || chrono_id_seq ||''',' || chrono.value ||',false)'; + END LOOP; +END +$$; + CREATE OR REPLACE FUNCTION public.increase_chrono(chrono_id_seq text, chrono_id_name text) returns table (chrono_id bigint) as $$ DECLARE retval bigint; BEGIN IF NOT EXISTS (SELECT 0 FROM pg_class where relname = chrono_id_seq ) THEN - EXECUTE 'CREATE SEQUENCE ' || chrono_id_seq || ' INCREMENT 1 MINVALUE 100 MAXVALUE 9223372036854775807 START 100 CACHE 1;'; + EXECUTE 'CREATE SEQUENCE ' || chrono_id_seq || ' INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;'; END IF; IF NOT EXISTS (SELECT 0 FROM parameters where id = chrono_id_name ) THEN EXECUTE 'INSERT INTO parameters (id, param_value_int) VALUES ( ''' || chrono_id_name || ''', 1)';