diff --git a/test/sql/updates/setup.sql b/test/sql/updates/setup.sql index bf26009a0..b5c774039 100644 --- a/test/sql/updates/setup.sql +++ b/test/sql/updates/setup.sql @@ -3,10 +3,15 @@ CREATE DATABASE single; \c single CREATE EXTENSION IF NOT EXISTS timescaledb; +CREATE TABLE devices ( + id TEXT PRIMARY KEY, + floor INTEGER +); + CREATE TABLE PUBLIC."two_Partitions" ( "timeCustom" BIGINT NOT NULL, - device_id TEXT NOT NULL, - series_0 DOUBLE PRECISION NULL, + device_id TEXT NOT NULL REFERENCES devices(id), + series_0 DOUBLE PRECISION NOT NULL CHECK(series_0 > 0), series_1 DOUBLE PRECISION NULL, series_2 DOUBLE PRECISION NULL, series_bool BOOLEAN NULL, @@ -21,6 +26,10 @@ CREATE INDEX ON PUBLIC."two_Partitions" ("timeCustom" DESC NULLS LAST, device_id SELECT * FROM create_hypertable('"public"."two_Partitions"'::regclass, 'timeCustom'::name, 'device_id'::name, associated_schema_name=>'_timescaledb_internal'::text, number_partitions => 2, chunk_time_interval=>_timescaledb_internal.interval_to_usec('1 month')); +INSERT INTO devices(id,floor) VALUES +('dev1', 1), +('dev2', 2); + INSERT INTO public."two_Partitions"("timeCustom", device_id, series_0, series_1, series_2) VALUES (1257987600000000000, 'dev1', 1.5, 1, 1), (1257987600000000000, 'dev1', 1.5, 2, 2), @@ -33,7 +42,10 @@ INSERT INTO "two_Partitions"("timeCustom", device_id, series_0, series_1, series CREATE TABLE PUBLIC.hyper_timestamp ( time timestamp NOT NULL, device_id TEXT NOT NULL, - value int NOT NULL + value int NOT NULL, + EXCLUDE USING btree ( + "time" WITH =, device_id WITH = + ) WHERE (value > 0) ); SELECT * FROM create_hypertable('hyper_timestamp'::regclass, 'time'::name, 'device_id'::name, number_partitions => 2, diff --git a/test/sql/updates/test-0.1.1.sql b/test/sql/updates/test-0.1.1.sql index 9db164a66..dabe4c944 100644 --- a/test/sql/updates/test-0.1.1.sql +++ b/test/sql/updates/test-0.1.1.sql @@ -35,6 +35,8 @@ SELECT index_name FROM _timescaledb_catalog.chunk_index ORDER BY index_name; \d+ _timescaledb_internal._hyper* -- INSERT data to create a new chunk after update or restore. +INSERT INTO devices(id,floor) VALUES +('dev5', 5); INSERT INTO "two_Partitions"("timeCustom", device_id, series_0, series_1, series_2) VALUES (1258894000000000000, 'dev5', 2.2, 1, 2); @@ -83,6 +85,7 @@ BEGIN FOR constraint_row IN SELECT c.conname, h.id AS hypertable_id FROM _timescaledb_catalog.hypertable h INNER JOIN pg_constraint c ON (c.conrelid = format('%I.%I', h.schema_name, h.table_name)::regclass) + WHERE c.contype != 'c' LOOP SELECT count(*) FROM _timescaledb_catalog.chunk c WHERE c.hypertable_id = constraint_row.hypertable_id @@ -96,7 +99,7 @@ BEGIN INTO STRICT chunk_constraint_count; IF chunk_constraint_count != chunk_count THEN - RAISE EXCEPTION 'Missing chunk constraints. Expected %, but found %', chunk_count, chunk_constraint_count; + RAISE EXCEPTION 'Missing chunk constraints for %. Expected %, but found %', constraint_row.conname, chunk_count, chunk_constraint_count; END IF; END LOOP; END; diff --git a/test/sql/updates/test-rerun.sql b/test/sql/updates/test-rerun.sql index c19aff99d..d803066a3 100644 --- a/test/sql/updates/test-rerun.sql +++ b/test/sql/updates/test-rerun.sql @@ -5,6 +5,6 @@ SELECT * FROM _timescaledb_catalog.tablespace ORDER BY id; SELECT id, hypertable_id, column_name, column_type, aligned, num_slices, interval_length FROM _timescaledb_catalog.dimension ORDER BY id; SELECT * FROM _timescaledb_catalog.dimension_slice ORDER BY dimension_id, range_start, range_end; SELECT * FROM _timescaledb_catalog.chunk ORDER BY id; -SELECT * FROM _timescaledb_catalog.chunk_constraint ORDER BY chunk_id, dimension_slice_id, constraint_name; +SELECT chunk_id, dimension_slice_id, hypertable_constraint_name, constraint_name IS NULL FROM _timescaledb_catalog.chunk_constraint ORDER BY chunk_id, dimension_slice_id, hypertable_constraint_name; --index name changed, so don't output that SELECT hypertable_index_name, hypertable_id, chunk_id FROM _timescaledb_catalog.chunk_index ORDER BY hypertable_index_name, hypertable_id, chunk_id;