diff --git a/extension/sql/common/meta_api.sql b/extension/sql/common/meta_api.sql index 61a456617..157b2de41 100644 --- a/extension/sql/common/meta_api.sql +++ b/extension/sql/common/meta_api.sql @@ -8,7 +8,7 @@ CREATE OR REPLACE FUNCTION _iobeamdb_meta_api.create_hypertable( number_partitions SMALLINT, associated_schema_name NAME, associated_table_prefix NAME, - placement chunk_placement_type, + placement _iobeamdb_catalog.chunk_placement_type, chunk_size_bytes BIGINT ) RETURNS _iobeamdb_catalog.hypertable LANGUAGE PLPGSQL VOLATILE AS diff --git a/extension/sql/common/tables.sql b/extension/sql/common/tables.sql index 0b2235203..3f5b2ac32 100644 --- a/extension/sql/common/tables.sql +++ b/extension/sql/common/tables.sql @@ -7,7 +7,7 @@ -- node (it stores remote wrappers to update meta tables on data nodes). CREATE TABLE IF NOT EXISTS _iobeamdb_catalog.node ( database_name NAME NOT NULL PRIMARY KEY, - schema_name NAME NOT NULL UNIQUE, --public schema of remote + schema_name NAME NOT NULL UNIQUE, --the schema name with remote tables to _iobeamdb_catalog schema of the node server_name NAME NOT NULL UNIQUE, hostname TEXT NOT NULL, active BOOLEAN NOT NULL DEFAULT TRUE, @@ -51,21 +51,21 @@ SELECT pg_catalog.pg_extension_config_dump('_iobeamdb_catalog.cluster_user', '') -- The name and type of the time column (used to partition on time) are defined -- in `time_column_name` and `time_column_type`. CREATE TABLE IF NOT EXISTS _iobeamdb_catalog.hypertable ( - id SERIAL PRIMARY KEY, - schema_name NAME NOT NULL, - table_name NAME NOT NULL, - associated_schema_name NAME NOT NULL, - associated_table_prefix NAME NOT NULL, - root_schema_name NAME NOT NULL, - root_table_name NAME NOT NULL, - distinct_schema_name NAME NOT NULL, - distinct_table_name NAME NOT NULL, - replication_factor SMALLINT NOT NULL CHECK (replication_factor > 0), - placement chunk_placement_type NOT NULL, - time_column_name NAME NOT NULL, - time_column_type REGTYPE NOT NULL, - created_on NAME NOT NULL REFERENCES _iobeamdb_catalog.node(database_name), - chunk_size_bytes BIGINT NOT NULL CHECK (chunk_size_bytes > 0), + id SERIAL PRIMARY KEY, + schema_name NAME NOT NULL, + table_name NAME NOT NULL, + associated_schema_name NAME NOT NULL, + associated_table_prefix NAME NOT NULL, + root_schema_name NAME NOT NULL, + root_table_name NAME NOT NULL, + distinct_schema_name NAME NOT NULL, + distinct_table_name NAME NOT NULL, + replication_factor SMALLINT NOT NULL CHECK (replication_factor > 0), + placement _iobeamdb_catalog.chunk_placement_type NOT NULL, + time_column_name NAME NOT NULL, + time_column_type REGTYPE NOT NULL, + created_on NAME NOT NULL REFERENCES _iobeamdb_catalog.node(database_name), + chunk_size_bytes BIGINT NOT NULL CHECK (chunk_size_bytes > 0), UNIQUE (schema_name, table_name), UNIQUE (associated_schema_name, associated_table_prefix), UNIQUE (root_schema_name, root_table_name) @@ -148,16 +148,18 @@ SELECT pg_catalog.pg_extension_config_dump('_iobeamdb_catalog.distinct_replica_n -- Changing a data's partitioning, and thus creating a new epoch, should be done -- INFREQUENTLY as it's expensive operation. CREATE TABLE IF NOT EXISTS _iobeamdb_catalog.partition_epoch ( - id SERIAL NOT NULL PRIMARY KEY, - hypertable_id INTEGER NOT NULL REFERENCES _iobeamdb_catalog.hypertable(id) ON DELETE CASCADE, - start_time BIGINT NULL CHECK (start_time >= 0), - end_time BIGINT NULL CHECK (end_time >= 0), - partitioning_func NAME NULL, --function name of a function of the form func(data_value, partitioning_mod) -> [0, partitioning_mod) - partitioning_mod INT NOT NULL CHECK (partitioning_mod < 65536), - partitioning_column NAME NULL, + id SERIAL NOT NULL PRIMARY KEY, + hypertable_id INTEGER NOT NULL REFERENCES _iobeamdb_catalog.hypertable(id) ON DELETE CASCADE, + start_time BIGINT NULL CHECK (start_time >= 0), + end_time BIGINT NULL CHECK (end_time >= 0), + partitioning_func_schema NAME NULL, + partitioning_func NAME NULL, --function name of a function of the form func(data_value, partitioning_mod) -> [0, partitioning_mod) + partitioning_mod INT NOT NULL CHECK (partitioning_mod < 65536), + partitioning_column NAME NULL, UNIQUE (hypertable_id, start_time), UNIQUE (hypertable_id, end_time), - CHECK (start_time <= end_time) + CHECK (start_time <= end_time), + CHECK ((partitioning_func_schema IS NULL AND partitioning_func IS NULL) OR (partitioning_func_schema IS NOT NULL AND partitioning_func IS NOT NULL)) ); SELECT pg_catalog.pg_extension_config_dump('_iobeamdb_catalog.partition_epoch', ''); SELECT pg_catalog.pg_extension_config_dump(pg_get_serial_sequence('_iobeamdb_catalog.partition_epoch','id'), ''); diff --git a/extension/sql/common/types.sql b/extension/sql/common/types.sql index c80ea4bc0..88f79ad35 100644 --- a/extension/sql/common/types.sql +++ b/extension/sql/common/types.sql @@ -1,23 +1,4 @@ CREATE SCHEMA IF NOT EXISTS _iobeamdb_catalog; -DO -$BODY$ -BEGIN - IF NOT EXISTS(SELECT 1 - FROM pg_type - WHERE typname = 'field_index_type') THEN - CREATE TYPE field_index_type AS ENUM ('TIME-VALUE', 'VALUE-TIME'); - END IF; -END -$BODY$; +CREATE TYPE _iobeamdb_catalog.chunk_placement_type AS ENUM ('RANDOM', 'STICKY'); -DO -$BODY$ -BEGIN - IF NOT EXISTS(SELECT 1 - FROM pg_type - WHERE typname = 'chunk_placement_type') THEN - CREATE TYPE chunk_placement_type AS ENUM ('RANDOM', 'STICKY'); - END IF; -END -$BODY$; diff --git a/extension/sql/main/chunk_replica_node_index_triggers.sql b/extension/sql/main/chunk_replica_node_index_triggers.sql index 394e50322..26bc07b45 100644 --- a/extension/sql/main/chunk_replica_node_index_triggers.sql +++ b/extension/sql/main/chunk_replica_node_index_triggers.sql @@ -16,5 +16,4 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/chunk_replica_node_triggers.sql b/extension/sql/main/chunk_replica_node_triggers.sql index d49114f0c..ffb233ee8 100644 --- a/extension/sql/main/chunk_replica_node_triggers.sql +++ b/extension/sql/main/chunk_replica_node_triggers.sql @@ -68,5 +68,4 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/chunk_triggers.sql b/extension/sql/main/chunk_triggers.sql index 64e0367eb..fc682ad15 100644 --- a/extension/sql/main/chunk_triggers.sql +++ b/extension/sql/main/chunk_triggers.sql @@ -11,5 +11,4 @@ BEGIN END IF; PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/cluster_user_triggers.sql b/extension/sql/main/cluster_user_triggers.sql index 17a81ce7b..661a8cd02 100644 --- a/extension/sql/main/cluster_user_triggers.sql +++ b/extension/sql/main/cluster_user_triggers.sql @@ -31,5 +31,4 @@ BEGIN RETURN NEW; END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/ddl.sql b/extension/sql/main/ddl.sql index 3e791fbc1..c75313d6d 100644 --- a/extension/sql/main/ddl.sql +++ b/extension/sql/main/ddl.sql @@ -17,7 +17,7 @@ CREATE OR REPLACE FUNCTION create_hypertable( number_partitions SMALLINT = NULL, associated_schema_name NAME = NULL, associated_table_prefix NAME = NULL, - placement chunk_placement_type = 'STICKY', + placement _iobeamdb_catalog.chunk_placement_type = 'STICKY', chunk_size_bytes BIGINT = 1073741824 -- 1 GB ) RETURNS VOID LANGUAGE PLPGSQL VOLATILE AS diff --git a/extension/sql/main/ddl_util.sql b/extension/sql/main/ddl_util.sql index 28057a5fc..e7d291be0 100644 --- a/extension/sql/main/ddl_util.sql +++ b/extension/sql/main/ddl_util.sql @@ -12,6 +12,7 @@ $BODY$ DECLARE def TEXT; c INTEGER; + index_name TEXT; BEGIN --get definition text def = pg_get_indexdef(index_oid); @@ -25,12 +26,18 @@ BEGIN def = replace(def, 'ON '||table_oid::TEXT || ' USING', 'ON /*TABLE_NAME*/ USING'); --replace index name with /*INDEX_NAME*/ + + SELECT relname + INTO STRICT index_name --index name in def is never schema qualified + FROM pg_class + WHERE OID = index_oid; + SELECT count(*) INTO c - FROM regexp_matches(def, 'CREATE INDEX '|| index_oid || ' ON', 'g'); + FROM regexp_matches(def, 'CREATE INDEX '|| format('%I', index_name) || ' ON', 'g'); IF c <> 1 THEN RAISE EXCEPTION 'Cannot process index with definition (no index name match) %', def; END IF; - def = replace(def, 'CREATE INDEX '|| index_oid || ' ON', 'CREATE INDEX /*INDEX_NAME*/ ON'); + def = replace(def, 'CREATE INDEX '|| format('%I', index_name) || ' ON', 'CREATE INDEX /*INDEX_NAME*/ ON'); RETURN def; END diff --git a/extension/sql/main/distinct_replica_node_triggers.sql b/extension/sql/main/distinct_replica_node_triggers.sql index 644444147..2dda09ba3 100644 --- a/extension/sql/main/distinct_replica_node_triggers.sql +++ b/extension/sql/main/distinct_replica_node_triggers.sql @@ -28,5 +28,4 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/field_triggers.sql b/extension/sql/main/field_triggers.sql index 33100564f..6a41b4428 100644 --- a/extension/sql/main/field_triggers.sql +++ b/extension/sql/main/field_triggers.sql @@ -299,8 +299,7 @@ BEGIN END IF; PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; -- Trigger to remove a column from a hypertable. -- Called when the user alters the main table by deleting a column. @@ -337,4 +336,4 @@ BEGIN RETURN NEW; END $BODY$ -SET SEARCH_PATH = 'public'; +; diff --git a/extension/sql/main/hypertable_index_triggers.sql b/extension/sql/main/hypertable_index_triggers.sql index 079ed8d81..f17df7a87 100644 --- a/extension/sql/main/hypertable_index_triggers.sql +++ b/extension/sql/main/hypertable_index_triggers.sql @@ -81,8 +81,7 @@ BEGIN RETURN NEW; END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; /* @@ -108,5 +107,4 @@ BEGIN RETURN NEW; END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/hypertable_replica_triggers.sql b/extension/sql/main/hypertable_replica_triggers.sql index 06f4f5890..edd8a3fa8 100644 --- a/extension/sql/main/hypertable_replica_triggers.sql +++ b/extension/sql/main/hypertable_replica_triggers.sql @@ -19,5 +19,4 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/hypertable_triggers.sql b/extension/sql/main/hypertable_triggers.sql index 3c4159de4..4e41485b7 100644 --- a/extension/sql/main/hypertable_triggers.sql +++ b/extension/sql/main/hypertable_triggers.sql @@ -78,8 +78,7 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END $BODY$ -SET client_min_messages = WARNING --suppress NOTICE on IF EXISTS schema -SET SEARCH_PATH = 'public'; +SET client_min_messages = WARNING; --suppress NOTICE on IF EXISTS schema /* @@ -107,4 +106,4 @@ BEGIN RETURN NEW; END $BODY$ -SET SEARCH_PATH = 'public'; +; diff --git a/extension/sql/main/insert.sql b/extension/sql/main/insert.sql index adb1537a9..91d73575d 100644 --- a/extension/sql/main/insert.sql +++ b/extension/sql/main/insert.sql @@ -35,10 +35,10 @@ BEGIN SELECT p.* FROM _iobeamdb_catalog.partition p WHERE p.epoch_id = %L AND - %s((SELECT row.%I FROM (SELECT (%L::%s).*) as row)::TEXT, %L) + %I.%I((SELECT row.%I FROM (SELECT (%L::%s).*) as row)::TEXT, %L) BETWEEN p.keyspace_start AND p.keyspace_end $$, - epoch.id, epoch.partitioning_func, + epoch.id, epoch.partitioning_func_schema, epoch.partitioning_func, epoch.partitioning_column, copy_record, copy_table_name, epoch.partitioning_mod) INTO STRICT partition_row; @@ -117,7 +117,7 @@ BEGIN SELECT _iobeamdb_internal.get_time_column_from_record(h.time_column_name, h.time_column_type, ct, '%1$s') AS time, h.time_column_name, h.time_column_type, p.id AS partition_id, p.keyspace_start, p.keyspace_end, - pe.partitioning_func, pe.partitioning_column, pe.partitioning_mod + pe.partitioning_func_schema, pe.partitioning_func, pe.partitioning_column, pe.partitioning_mod FROM ONLY %1$s ct LEFT JOIN _iobeamdb_catalog.hypertable h ON (h.id = %2$L) LEFT JOIN _iobeamdb_catalog.partition_epoch pe ON ( @@ -201,11 +201,12 @@ BEGIN partition_constraint_where_clause := format( $$ WHERE (%1$I >= %2$s OR %2$s IS NULL) AND (%1$I <= %3$s OR %3$s IS NULL) AND - (%4$s(%5$I::TEXT, %6$L) BETWEEN %7$L AND %8$L) + (%4$I.%5$I(%6$I::TEXT, %7$L) BETWEEN %8$L AND %9$L) $$, point_record.time_column_name, _iobeamdb_internal.time_literal_sql(chunk_row.start_time, point_record.time_column_type), _iobeamdb_internal.time_literal_sql(chunk_row.end_time, point_record.time_column_type), + point_record.partitioning_func_schema, point_record.partitioning_func, point_record.partitioning_column, point_record.partitioning_mod, diff --git a/extension/sql/main/meta_triggers.sql b/extension/sql/main/meta_triggers.sql index 8c77be7d4..9368113e7 100644 --- a/extension/sql/main/meta_triggers.sql +++ b/extension/sql/main/meta_triggers.sql @@ -18,5 +18,4 @@ BEGIN END IF; RETURN NEW; END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/node_triggers.sql b/extension/sql/main/node_triggers.sql index c503ba45f..660922bc8 100644 --- a/extension/sql/main/node_triggers.sql +++ b/extension/sql/main/node_triggers.sql @@ -18,5 +18,4 @@ BEGIN END IF; RETURN NEW; END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/partition_replica_triggers.sql b/extension/sql/main/partition_replica_triggers.sql index cb6f2bac2..6b6b0cdeb 100644 --- a/extension/sql/main/partition_replica_triggers.sql +++ b/extension/sql/main/partition_replica_triggers.sql @@ -19,5 +19,4 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/main/partitioning.sql b/extension/sql/main/partitioning.sql index 26463e77d..284652f71 100644 --- a/extension/sql/main/partitioning.sql +++ b/extension/sql/main/partitioning.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE FUNCTION get_partition_for_key( +CREATE OR REPLACE FUNCTION _iobeamdb_catalog.get_partition_for_key( key TEXT, mod_factor INT ) diff --git a/extension/sql/main/schema_info.sql b/extension/sql/main/schema_info.sql index f575f7a9e..7887a118f 100644 --- a/extension/sql/main/schema_info.sql +++ b/extension/sql/main/schema_info.sql @@ -71,8 +71,8 @@ BEGIN SELECT p.* FROM _iobeamdb_catalog.partition p WHERE p.epoch_id = %L AND - %s(%L::TEXT, %L) BETWEEN p.keyspace_start AND p.keyspace_end - $$, epoch.id, epoch.partitioning_func, key_value, epoch.partitioning_mod) + %I.%I(%L::TEXT, %L) BETWEEN p.keyspace_start AND p.keyspace_end + $$, epoch.id, epoch.partitioning_func_schema, epoch.partitioning_func, key_value, epoch.partitioning_mod) INTO STRICT partition_row; END IF; RETURN partition_row; diff --git a/extension/sql/main/table_creation.sql b/extension/sql/main/table_creation.sql index edc11f74a..688b5bbd8 100644 --- a/extension/sql/main/table_creation.sql +++ b/extension/sql/main/table_creation.sql @@ -235,10 +235,10 @@ BEGIN EXECUTE format( $$ ALTER TABLE %1$I.%2$I - ADD CONSTRAINT partition CHECK(%3$s(%4$I::text, %5$L) BETWEEN %6$L AND %7$L) + ADD CONSTRAINT partition CHECK(%3$I.%4$s(%5$I::text, %6$L) BETWEEN %7$L AND %8$L) $$, schema_name, table_name, - epoch_row.partitioning_func, epoch_row.partitioning_column, + epoch_row.partitioning_func_schema, epoch_row.partitioning_func, epoch_row.partitioning_column, epoch_row.partitioning_mod, keyspace_start, keyspace_end); END IF; END diff --git a/extension/sql/meta/chunk_replica_node_triggers.sql b/extension/sql/meta/chunk_replica_node_triggers.sql index acaf9676f..50dbc2377 100644 --- a/extension/sql/meta/chunk_replica_node_triggers.sql +++ b/extension/sql/meta/chunk_replica_node_triggers.sql @@ -22,5 +22,4 @@ BEGIN PERFORM _iobeamdb_internal.on_trigger_error(TG_OP, TG_TABLE_SCHEMA, TG_TABLE_NAME); END -$BODY$ -SET SEARCH_PATH = 'public'; +$BODY$; diff --git a/extension/sql/meta/chunk_triggers.sql b/extension/sql/meta/chunk_triggers.sql index 382bbfefd..777b01e8d 100644 --- a/extension/sql/meta/chunk_triggers.sql +++ b/extension/sql/meta/chunk_triggers.sql @@ -1,6 +1,6 @@ CREATE OR REPLACE FUNCTION _iobeamdb_meta.place_chunks( chunk_row _iobeamdb_catalog.chunk, - placement chunk_placement_type, + placement _iobeamdb_catalog.chunk_placement_type, replication_factor SMALLINT ) RETURNS TABLE(replica_id SMALLINT, database_name NAME) LANGUAGE PLPGSQL AS diff --git a/extension/sql/meta/cluster.sql b/extension/sql/meta/cluster.sql index 77dd3475f..2df8adfed 100644 --- a/extension/sql/meta/cluster.sql +++ b/extension/sql/meta/cluster.sql @@ -38,7 +38,7 @@ DECLARE BEGIN schema_name := format('remote_%s', database_name); IF database_name = current_database() THEN - schema_name = 'public'; + schema_name = '_iobeamdb_catalog'; END IF; BEGIN @@ -72,16 +72,18 @@ END $BODY$; CREATE OR REPLACE FUNCTION add_partition_epoch( - hypertable_id INTEGER, - keyspace_start SMALLINT [], - partitioning_column NAME, - partitioning_func TEXT + hypertable_id INTEGER, + keyspace_start SMALLINT [], + partitioning_column NAME, + partitioning_func_schema NAME, + partitioning_func NAME ) RETURNS VOID LANGUAGE SQL VOLATILE AS $BODY$ WITH epoch AS ( - INSERT INTO _iobeamdb_catalog.partition_epoch (hypertable_id, start_time, end_time, partitioning_func, partitioning_mod, partitioning_column) - VALUES (hypertable_id, NULL, NULL, partitioning_func, 32768, partitioning_column) + INSERT INTO _iobeamdb_catalog.partition_epoch (hypertable_id, start_time, end_time, partitioning_func_schema, + partitioning_func, partitioning_mod, partitioning_column) + VALUES (hypertable_id, NULL, NULL, partitioning_func_schema, partitioning_func, 32768, partitioning_column) RETURNING id ) INSERT INTO _iobeamdb_catalog.partition (epoch_id, keyspace_start, keyspace_end) @@ -94,10 +96,11 @@ $BODY$ $BODY$; CREATE OR REPLACE FUNCTION add_equi_partition_epoch( - hypertable_id INTEGER, - number_partitions SMALLINT, - partitioning_column NAME, - partitioning_func TEXT + hypertable_id INTEGER, + number_partitions SMALLINT, + partitioning_column NAME, + partitioning_func_schema NAME, + partitioning_func NAME ) RETURNS VOID LANGUAGE SQL VOLATILE AS $BODY$ @@ -106,6 +109,7 @@ SELECT add_partition_epoch( (SELECT ARRAY(SELECT start * 32768 / (number_partitions) FROM generate_series(1, number_partitions - 1) AS start) :: SMALLINT []), partitioning_column, + partitioning_func_schema, partitioning_func ) $BODY$; diff --git a/extension/sql/meta/ddl.sql b/extension/sql/meta/ddl.sql index 7cd88f8ff..ab9ed5f24 100644 --- a/extension/sql/meta/ddl.sql +++ b/extension/sql/meta/ddl.sql @@ -12,16 +12,17 @@ CREATE OR REPLACE FUNCTION _iobeamdb_meta.create_hypertable( number_partitions SMALLINT, associated_schema_name NAME, associated_table_prefix NAME, - placement chunk_placement_type, + placement _iobeamdb_catalog.chunk_placement_type, chunk_size_bytes BIGINT, created_on NAME ) RETURNS _iobeamdb_catalog.hypertable LANGUAGE PLPGSQL VOLATILE AS $BODY$ DECLARE - id INTEGER; - hypertable_row _iobeamdb_catalog.hypertable; - partitioning_func TEXT = 'get_partition_for_key'; + id INTEGER; + hypertable_row _iobeamdb_catalog.hypertable; + partitioning_func _iobeamdb_catalog.partition_epoch.partitioning_func%TYPE = 'get_partition_for_key'; + partitioning_func_schema _iobeamdb_catalog.partition_epoch.partitioning_func_schema%TYPE = '_iobeamdb_catalog'; BEGIN id := nextval('_iobeamdb_catalog.default_hypertable_seq'); @@ -38,6 +39,7 @@ BEGIN IF number_partitions IS NULL THEN number_partitions := 1; partitioning_func := NULL; + partitioning_func_schema := NULL; ELSIF number_partitions <> 1 THEN RAISE EXCEPTION 'The number of partitions must be 1 without a partitioning column' USING ERRCODE ='IO101'; @@ -72,7 +74,7 @@ BEGIN RETURNING * INTO hypertable_row; IF number_partitions != 0 THEN - PERFORM add_equi_partition_epoch(hypertable_row.id, number_partitions, partitioning_column, partitioning_func); + PERFORM add_equi_partition_epoch(hypertable_row.id, number_partitions, partitioning_column, partitioning_func_schema, partitioning_func); END IF; RETURN hypertable_row; END diff --git a/extension/sql/tests/regression/delete.sql b/extension/sql/tests/regression/delete.sql index eafacb8fe..da252334d 100644 --- a/extension/sql/tests/regression/delete.sql +++ b/extension/sql/tests/regression/delete.sql @@ -5,7 +5,7 @@ \o \set ECHO ALL -\c Test1 +\c test2 SELECT * FROM "testNs"; diff --git a/extension/sql/tests/regression/drop_chunks.sql b/extension/sql/tests/regression/drop_chunks.sql index 8d6d68538..f7eab19b0 100644 --- a/extension/sql/tests/regression/drop_chunks.sql +++ b/extension/sql/tests/regression/drop_chunks.sql @@ -15,10 +15,10 @@ SELECT add_node('Test1' :: NAME, 'localhost'); SELECT add_node('test2' :: NAME, 'localhost'); \c Test1 -CREATE TABLE drop_chunk_test1(time bigint, temp float8, device_id text); -CREATE TABLE drop_chunk_test2(time bigint, temp float8, device_id text); -SELECT create_hypertable('drop_chunk_test1', 'time', 'device_id', chunk_size_bytes => 10000); -SELECT create_hypertable('drop_chunk_test2', 'time', 'device_id', chunk_size_bytes => 10000); +CREATE TABLE PUBLIC.drop_chunk_test1(time bigint, temp float8, device_id text); +CREATE TABLE PUBLIC.drop_chunk_test2(time bigint, temp float8, device_id text); +SELECT create_hypertable('public.drop_chunk_test1', 'time', 'device_id', chunk_size_bytes => 10000); +SELECT create_hypertable('public.drop_chunk_test2', 'time', 'device_id', chunk_size_bytes => 10000); SELECT c.id AS chunk_id, pr.partition_id, pr.hypertable_id, crn.schema_name AS chunk_schema, crn.table_name AS chunk_table, c.start_time, c.end_time FROM _iobeamdb_catalog.chunk c @@ -29,22 +29,22 @@ WHERE h.schema_name = 'public' AND (h.table_name = 'drop_chunk_test1' OR h.table \dt "_iobeamdb_internal".* -SELECT get_partition_for_key('dev1', 32768); -SELECT get_partition_for_key('dev7', 32768); +SELECT _iobeamdb_catalog.get_partition_for_key('dev1', 32768); +SELECT _iobeamdb_catalog.get_partition_for_key('dev7', 32768); -INSERT INTO drop_chunk_test1 VALUES(1, 1.0, 'dev1'); -INSERT INTO drop_chunk_test1 VALUES(2, 2.0, 'dev1'); -INSERT INTO drop_chunk_test1 VALUES(3, 3.0, 'dev1'); -INSERT INTO drop_chunk_test1 VALUES(4, 4.0, 'dev7'); -INSERT INTO drop_chunk_test1 VALUES(5, 5.0, 'dev7'); -INSERT INTO drop_chunk_test1 VALUES(6, 6.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(1, 1.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(2, 2.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(3, 3.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(4, 4.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(5, 5.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(6, 6.0, 'dev7'); -INSERT INTO drop_chunk_test2 VALUES(1, 1.0, 'dev1'); -INSERT INTO drop_chunk_test2 VALUES(2, 2.0, 'dev1'); -INSERT INTO drop_chunk_test2 VALUES(3, 3.0, 'dev1'); -INSERT INTO drop_chunk_test2 VALUES(4, 4.0, 'dev7'); -INSERT INTO drop_chunk_test2 VALUES(5, 5.0, 'dev7'); -INSERT INTO drop_chunk_test2 VALUES(6, 6.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(1, 1.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(2, 2.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(3, 3.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(4, 4.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(5, 5.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(6, 6.0, 'dev7'); SELECT c.id AS chunk_id, pr.partition_id, pr.hypertable_id, crn.schema_name AS chunk_schema, crn.table_name AS chunk_table, c.start_time, c.end_time FROM _iobeamdb_catalog.chunk c diff --git a/extension/sql/tests/regression/expected/cluster.out b/extension/sql/tests/regression/expected/cluster.out index 29da53faa..aa52c2564 100644 --- a/extension/sql/tests/regression/expected/cluster.out +++ b/extension/sql/tests/regression/expected/cluster.out @@ -9,22 +9,22 @@ LOCATION: CreateExtensionInternal, extension.c:1441 (1 row) -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 setup_main ------------ (1 row) -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 setup_main ------------ @@ -97,7 +97,7 @@ SELECT * FROM create_hypertable('"public"."testNs"', 'time', 'Device_id'); \set ON_ERROR_STOP 0 SELECT * FROM create_hypertable('"public"."testNs"', 'time', 'Device_id'); -psql:cluster.sql:45: ERROR: IO110: hypertable "testNs" already exists +psql:cluster.sql:45: ERROR: IO110: hypertable public."testNs" already exists LOCATION: exec_stmt_raise, pl_exec.c:3165 \set ON_ERROR_STOP 1 SELECT * FROM create_hypertable('"public"."testNs2"', 'time', 'Device_id'); @@ -170,10 +170,10 @@ FROM _iobeamdb_catalog.distinct_replica_node; SELECT * FROM _iobeamdb_catalog.partition_epoch; - id | hypertable_id | start_time | end_time | partitioning_func | partitioning_mod | partitioning_column -----+---------------+------------+----------+-----------------------+------------------+--------------------- - 1 | 1 | | | get_partition_for_key | 32768 | Device_id - 2 | 3 | | | get_partition_for_key | 32768 | Device_id + id | hypertable_id | start_time | end_time | partitioning_func_schema | partitioning_func | partitioning_mod | partitioning_column +----+---------------+------------+----------+--------------------------+-----------------------+------------------+--------------------- + 1 | 1 | | | _iobeamdb_catalog | get_partition_for_key | 32768 | Device_id + 2 | 3 | | | _iobeamdb_catalog | get_partition_for_key | 32768 | Device_id (2 rows) SELECT * @@ -287,10 +287,10 @@ FROM _iobeamdb_catalog.distinct_replica_node; SELECT * FROM _iobeamdb_catalog.partition_epoch; - id | hypertable_id | start_time | end_time | partitioning_func | partitioning_mod | partitioning_column -----+---------------+------------+----------+-----------------------+------------------+--------------------- - 1 | 1 | | | get_partition_for_key | 32768 | Device_id - 2 | 3 | | | get_partition_for_key | 32768 | Device_id + id | hypertable_id | start_time | end_time | partitioning_func_schema | partitioning_func | partitioning_mod | partitioning_column +----+---------------+------------+----------+--------------------------+-----------------------+------------------+--------------------- + 1 | 1 | | | _iobeamdb_catalog | get_partition_for_key | 32768 | Device_id + 2 | 3 | | | _iobeamdb_catalog | get_partition_for_key | 32768 | Device_id (2 rows) SELECT * @@ -413,7 +413,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_partition, latitude | bigint | | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') Inherits: _iobeamdb_internal._hyper_1_1_0_partition @@ -428,7 +428,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_1_0_1_data @@ -442,7 +442,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_1_data latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Table "_iobeamdb_internal._hyper_1_distinct" @@ -502,7 +502,7 @@ Child tables: _iobeamdb_internal._hyper_3_3_0_partition, latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_3_0_replica Table "_iobeamdb_internal._hyper_3_4_0_partition" @@ -515,7 +515,7 @@ Inherits: _iobeamdb_internal._hyper_3_0_replica latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_3_0_replica Table "_iobeamdb_internal._hyper_3_distinct" @@ -600,7 +600,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_partition, latitude | bigint | | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') Inherits: _iobeamdb_internal._hyper_1_1_0_partition @@ -615,7 +615,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_1_0_1_data @@ -629,7 +629,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_1_data latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Table "_iobeamdb_internal._hyper_1_distinct" @@ -689,7 +689,7 @@ Child tables: _iobeamdb_internal._hyper_3_3_0_partition, latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_3_0_replica Table "_iobeamdb_internal._hyper_3_4_0_partition" @@ -702,7 +702,7 @@ Inherits: _iobeamdb_internal._hyper_3_0_replica latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_3_0_replica Table "_iobeamdb_internal._hyper_3_distinct" @@ -811,7 +811,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_partition, latitude | bigint | | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') Inherits: _iobeamdb_internal._hyper_1_1_0_partition @@ -826,7 +826,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_1_0_1_data @@ -840,7 +840,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_1_data latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Table "_iobeamdb_internal._hyper_1_distinct" @@ -900,7 +900,7 @@ Child tables: _iobeamdb_internal._hyper_3_3_0_partition, latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_3_0_replica Table "_iobeamdb_internal._hyper_3_4_0_partition" @@ -913,7 +913,7 @@ Inherits: _iobeamdb_internal._hyper_3_0_replica latitude | bigint | | plain | | really_long_column_goes_on_and_on_and_on_and_on_and_on_and_on_a | bigint | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_3_0_replica Table "_iobeamdb_internal._hyper_3_distinct" diff --git a/extension/sql/tests/regression/expected/create_hypertable.out b/extension/sql/tests/regression/expected/create_hypertable.out index d50a62619..941b2e1c4 100644 --- a/extension/sql/tests/regression/expected/create_hypertable.out +++ b/extension/sql/tests/regression/expected/create_hypertable.out @@ -9,22 +9,22 @@ LOCATION: CreateExtensionInternal, extension.c:1441 (1 row) -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 setup_main ------------ (1 row) -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 setup_main ------------ diff --git a/extension/sql/tests/regression/expected/ddl.out b/extension/sql/tests/regression/expected/ddl.out index 27efbcebb..9315cf5f5 100644 --- a/extension/sql/tests/regression/expected/ddl.out +++ b/extension/sql/tests/regression/expected/ddl.out @@ -4,17 +4,17 @@ psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required ext LOCATION: CreateExtensionInternal, extension.c:1441 psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 \c meta SELECT add_cluster_user('postgres', NULL); @@ -87,14 +87,14 @@ SELECT set_is_distinct_flag('"public"."Hypertable_1"', 'sensor_2', TRUE); (1 row) -INSERT INTO "Hypertable_1"(time, "Device_id", temp_c, humidity, sensor_1, sensor_2, sensor_3, sensor_4) +INSERT INTO PUBLIC."Hypertable_1"(time, "Device_id", temp_c, humidity, sensor_1, sensor_2, sensor_3, sensor_4) VALUES(1257894000000000000, 'dev1', 30, 70, 1, 2, 3, 100); --expect error cases \set ON_ERROR_STOP 0 -UPDATE ONLY "Hypertable_1" SET time = 0 WHERE TRUE; +UPDATE ONLY PUBLIC."Hypertable_1" SET time = 0 WHERE TRUE; psql:include/ddl_ops_1.sql:27: ERROR: IO101: UPDATE ONLY not supported on hypertables LOCATION: exec_stmt_raise, pl_exec.c:3165 -DELETE FROM ONLY "Hypertable_1" WHERE "Device_id" = 'dev1'; +DELETE FROM ONLY PUBLIC."Hypertable_1" WHERE "Device_id" = 'dev1'; psql:include/ddl_ops_1.sql:28: ERROR: IO101: DELETE ONLY not currently supported on hypertables LOCATION: exec_stmt_raise, pl_exec.c:3165 \set ON_ERROR_STOP 1 @@ -143,8 +143,8 @@ Indexes: "ind_humidity" btree ("time", humidity) "ind_sensor_1" btree ("time", sensor_1) Triggers: - insert_trigger AFTER INSERT ON "Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_modify_main_table() - modify_trigger BEFORE DELETE OR UPDATE ON "Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_unsupported_main_table() + insert_trigger AFTER INSERT ON public."Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_modify_main_table() + modify_trigger BEFORE DELETE OR UPDATE ON public."Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_unsupported_main_table() \d+ "_iobeamdb_internal"."_hyper_1_root" Table "_iobeamdb_internal._hyper_1_root" @@ -173,7 +173,7 @@ Child tables: _iobeamdb_internal._hyper_1_0_replica sensor_3 | numeric | not null default 1 | | main | | sensor_4 | numeric | not null default 1 | | main | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') Inherits: _iobeamdb_internal._hyper_1_1_0_partition @@ -318,8 +318,8 @@ Indexes: "Hypertable_1_time_Device_id_idx" btree ("time", "Device_id") "ind_humidity" btree ("time", humidity) Triggers: - insert_trigger AFTER INSERT ON "Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_modify_main_table() - modify_trigger BEFORE DELETE OR UPDATE ON "Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_unsupported_main_table() + insert_trigger AFTER INSERT ON public."Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_modify_main_table() + modify_trigger BEFORE DELETE OR UPDATE ON public."Hypertable_1" FOR EACH STATEMENT EXECUTE PROCEDURE _iobeamdb_internal.on_unsupported_main_table() \d+ "_iobeamdb_internal"."_hyper_1_root" Table "_iobeamdb_internal._hyper_1_root" @@ -350,7 +350,7 @@ Child tables: _iobeamdb_internal._hyper_1_0_replica sensor_3 | bigint | not null default 131 | | plain | | sensor_4 | bigint | not null default 131 | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '16383'::smallint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') Inherits: _iobeamdb_internal._hyper_1_1_0_partition diff --git a/extension/sql/tests/regression/expected/ddl_errors.out b/extension/sql/tests/regression/expected/ddl_errors.out index 114e65948..feaff00f5 100644 --- a/extension/sql/tests/regression/expected/ddl_errors.out +++ b/extension/sql/tests/regression/expected/ddl_errors.out @@ -4,17 +4,17 @@ psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required ext LOCATION: CreateExtensionInternal, extension.c:1441 psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 \c meta SELECT add_cluster_user('postgres', NULL); @@ -92,7 +92,7 @@ SELECT * FROM create_hypertable('"public"."Hypertable_1"', 'time', 'Device_id'); \set ON_ERROR_STOP 0 SELECT * FROM create_hypertable('"public"."Hypertable_1"', 'time', 'Device_id'); -psql:ddl_errors.sql:54: ERROR: IO110: hypertable "Hypertable_1" already exists +psql:ddl_errors.sql:54: ERROR: IO110: hypertable public."Hypertable_1" already exists LOCATION: exec_stmt_raise, pl_exec.c:3165 SELECT set_is_distinct_flag('"public"."Hypertable_1_misspelled"', 'mispelled', true); psql:ddl_errors.sql:55: ERROR: 42P01: relation "public.Hypertable_1_misspelled" does not exist diff --git a/extension/sql/tests/regression/expected/ddl_single.out b/extension/sql/tests/regression/expected/ddl_single.out index 213fb1d05..a3ef39dbc 100644 --- a/extension/sql/tests/regression/expected/ddl_single.out +++ b/extension/sql/tests/regression/expected/ddl_single.out @@ -68,14 +68,14 @@ SELECT set_is_distinct_flag('"public"."Hypertable_1"', 'sensor_2', TRUE); (1 row) -INSERT INTO "Hypertable_1"(time, "Device_id", temp_c, humidity, sensor_1, sensor_2, sensor_3, sensor_4) +INSERT INTO PUBLIC."Hypertable_1"(time, "Device_id", temp_c, humidity, sensor_1, sensor_2, sensor_3, sensor_4) VALUES(1257894000000000000, 'dev1', 30, 70, 1, 2, 3, 100); --expect error cases \set ON_ERROR_STOP 0 -UPDATE ONLY "Hypertable_1" SET time = 0 WHERE TRUE; +UPDATE ONLY PUBLIC."Hypertable_1" SET time = 0 WHERE TRUE; psql:include/ddl_ops_1.sql:27: ERROR: IO101: UPDATE ONLY not supported on hypertables LOCATION: exec_stmt_raise, pl_exec.c:3165 -DELETE FROM ONLY "Hypertable_1" WHERE "Device_id" = 'dev1'; +DELETE FROM ONLY PUBLIC."Hypertable_1" WHERE "Device_id" = 'dev1'; psql:include/ddl_ops_1.sql:28: ERROR: IO101: DELETE ONLY not currently supported on hypertables LOCATION: exec_stmt_raise, pl_exec.c:3165 \set ON_ERROR_STOP 1 @@ -189,7 +189,7 @@ Indexes: "1-Hypertable_1_time_Device_id_idx" btree ("time", "Device_id") "3-ind_humidity" btree ("time", humidity) Check constraints: - "partition" CHECK (get_partition_for_key("Device_id", 32768) >= '0'::smallint AND get_partition_for_key("Device_id", 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key("Device_id", 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key("Device_id", 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_1_0_partition SELECT * FROM _iobeamdb_internal._hyper_1_0_1_distinct_data; diff --git a/extension/sql/tests/regression/expected/delete.out b/extension/sql/tests/regression/expected/delete.out index f5a3225d6..7017a9c8e 100644 --- a/extension/sql/tests/regression/expected/delete.out +++ b/extension/sql/tests/regression/expected/delete.out @@ -1,13 +1,13 @@ psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "dblink" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "postgres_fdw" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "hstore" -\c Test1 +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "hstore" +\c test2 SELECT * FROM "testNs"; timeCustom | device_id | series_0 | series_1 | series_2 | series_bool ---------------------+-----------+----------+----------+----------+------------- diff --git a/extension/sql/tests/regression/expected/drop_chunks.out b/extension/sql/tests/regression/expected/drop_chunks.out index b73fbdfbe..9c820615c 100644 --- a/extension/sql/tests/regression/expected/drop_chunks.out +++ b/extension/sql/tests/regression/expected/drop_chunks.out @@ -4,17 +4,17 @@ psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required ext LOCATION: CreateExtensionInternal, extension.c:1441 psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 \c meta SELECT add_cluster_user('postgres', NULL); @@ -42,15 +42,15 @@ SELECT add_node('test2' :: NAME, 'localhost'); (1 row) \c Test1 -CREATE TABLE drop_chunk_test1(time bigint, temp float8, device_id text); -CREATE TABLE drop_chunk_test2(time bigint, temp float8, device_id text); -SELECT create_hypertable('drop_chunk_test1', 'time', 'device_id', chunk_size_bytes => 10000); +CREATE TABLE PUBLIC.drop_chunk_test1(time bigint, temp float8, device_id text); +CREATE TABLE PUBLIC.drop_chunk_test2(time bigint, temp float8, device_id text); +SELECT create_hypertable('public.drop_chunk_test1', 'time', 'device_id', chunk_size_bytes => 10000); create_hypertable ------------------- (1 row) -SELECT create_hypertable('drop_chunk_test2', 'time', 'device_id', chunk_size_bytes => 10000); +SELECT create_hypertable('public.drop_chunk_test2', 'time', 'device_id', chunk_size_bytes => 10000); create_hypertable ------------------- @@ -84,30 +84,30 @@ WHERE h.schema_name = 'public' AND (h.table_name = 'drop_chunk_test1' OR h.table _iobeamdb_internal | _hyper_2_root | table | postgres (12 rows) -SELECT get_partition_for_key('dev1', 32768); +SELECT _iobeamdb_catalog.get_partition_for_key('dev1', 32768); get_partition_for_key ----------------------- 14660 (1 row) -SELECT get_partition_for_key('dev7', 32768); +SELECT _iobeamdb_catalog.get_partition_for_key('dev7', 32768); get_partition_for_key ----------------------- 21278 (1 row) -INSERT INTO drop_chunk_test1 VALUES(1, 1.0, 'dev1'); -INSERT INTO drop_chunk_test1 VALUES(2, 2.0, 'dev1'); -INSERT INTO drop_chunk_test1 VALUES(3, 3.0, 'dev1'); -INSERT INTO drop_chunk_test1 VALUES(4, 4.0, 'dev7'); -INSERT INTO drop_chunk_test1 VALUES(5, 5.0, 'dev7'); -INSERT INTO drop_chunk_test1 VALUES(6, 6.0, 'dev7'); -INSERT INTO drop_chunk_test2 VALUES(1, 1.0, 'dev1'); -INSERT INTO drop_chunk_test2 VALUES(2, 2.0, 'dev1'); -INSERT INTO drop_chunk_test2 VALUES(3, 3.0, 'dev1'); -INSERT INTO drop_chunk_test2 VALUES(4, 4.0, 'dev7'); -INSERT INTO drop_chunk_test2 VALUES(5, 5.0, 'dev7'); -INSERT INTO drop_chunk_test2 VALUES(6, 6.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(1, 1.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(2, 2.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(3, 3.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(4, 4.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(5, 5.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test1 VALUES(6, 6.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(1, 1.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(2, 2.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(3, 3.0, 'dev1'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(4, 4.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(5, 5.0, 'dev7'); +INSERT INTO PUBLIC.drop_chunk_test2 VALUES(6, 6.0, 'dev7'); SELECT c.id AS chunk_id, pr.partition_id, pr.hypertable_id, crn.schema_name AS chunk_schema, crn.table_name AS chunk_table, c.start_time, c.end_time FROM _iobeamdb_catalog.chunk c INNER JOIN _iobeamdb_catalog.chunk_replica_node crn ON (c.id = crn.chunk_id) diff --git a/extension/sql/tests/regression/expected/drop_hypertable.out b/extension/sql/tests/regression/expected/drop_hypertable.out index 003e411a4..6c26d0103 100644 --- a/extension/sql/tests/regression/expected/drop_hypertable.out +++ b/extension/sql/tests/regression/expected/drop_hypertable.out @@ -1,12 +1,12 @@ psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "dblink" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "postgres_fdw" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "hstore" \c Test1 \d+ "_iobeamdb_internal".* Index "_iobeamdb_internal.1-testNs_device_id_timeCustom_idx" @@ -101,7 +101,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_partition, series_2 | double precision | | | plain | | series_bool | boolean | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("timeCustom" <= '1257897600000000000'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') @@ -117,7 +117,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition series_2 | double precision | | | plain | | series_bool | boolean | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("timeCustom" >= '1257897600000000001'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_2_data') @@ -133,7 +133,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_1_0_1_data, _iobeamdb_internal._hyper_1_1_0_2_data @@ -154,7 +154,7 @@ Indexes: "4-testNs_timeCustom_series_2_idx" btree ("timeCustom" DESC NULLS LAST, series_2) WHERE series_2 IS NOT NULL "5-testNs_timeCustom_series_bool_idx" btree ("timeCustom" DESC NULLS LAST, series_bool) WHERE series_bool IS NOT NULL Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_2_0_partition Table "_iobeamdb_internal._hyper_1_2_0_partition" @@ -167,7 +167,7 @@ Inherits: _iobeamdb_internal._hyper_1_2_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_2_0_3_data @@ -232,7 +232,7 @@ Child tables: _iobeamdb_internal._hyper_2_3_0_partition, metric | integer | | | plain | | device_id | text | | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" <= '1'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_2_3_0_4_data') @@ -245,7 +245,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | | plain | | device_id | text | | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" >= '2'::bigint AND "time" <= '2'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_2_3_0_5_data') @@ -258,7 +258,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | | plain | | device_id | text | | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" >= '3'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_2_3_0_6_data') @@ -271,7 +271,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_2_0_replica Child tables: _iobeamdb_internal._hyper_2_3_0_4_data, _iobeamdb_internal._hyper_2_3_0_5_data, @@ -284,7 +284,7 @@ Child tables: _iobeamdb_internal._hyper_2_3_0_4_data, metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_2_0_replica Table "_iobeamdb_internal._hyper_2_distinct" @@ -340,14 +340,14 @@ SELECT * FROM _iobeamdb_catalog.hypertable; id | schema_name | table_name | associated_schema_name | associated_table_prefix | root_schema_name | root_table_name | distinct_schema_name | distinct_table_name | replication_factor | placement | time_column_name | time_column_type | created_on | chunk_size_bytes ----+-------------+--------------------+------------------------+-------------------------+--------------------+-----------------+----------------------+---------------------+--------------------+-----------+------------------+------------------+------------+------------------ 1 | public | testNs | _iobeamdb_internal | _hyper_1 | _iobeamdb_internal | _hyper_1_root | _iobeamdb_internal | _hyper_1_distinct | 1 | STICKY | timeCustom | bigint | Test1 | 1073741824 - 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | Test1 | 10000 + 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | test2 | 10000 (2 rows) DROP TABLE "testNs"; SELECT * FROM _iobeamdb_catalog.hypertable; id | schema_name | table_name | associated_schema_name | associated_table_prefix | root_schema_name | root_table_name | distinct_schema_name | distinct_table_name | replication_factor | placement | time_column_name | time_column_type | created_on | chunk_size_bytes ----+-------------+--------------------+------------------------+-------------------------+--------------------+-----------------+----------------------+---------------------+--------------------+-----------+------------------+------------------+------------+------------------ - 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | Test1 | 10000 + 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | test2 | 10000 (1 row) \dt "public".* @@ -401,7 +401,7 @@ SELECT * FROM _iobeamdb_catalog.hypertable; SELECT * FROM _iobeamdb_catalog.hypertable; id | schema_name | table_name | associated_schema_name | associated_table_prefix | root_schema_name | root_table_name | distinct_schema_name | distinct_table_name | replication_factor | placement | time_column_name | time_column_type | created_on | chunk_size_bytes ----+-------------+--------------------+------------------------+-------------------------+--------------------+-----------------+----------------------+---------------------+--------------------+-----------+------------------+------------------+------------+------------------ - 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | Test1 | 10000 + 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | test2 | 10000 (1 row) \dt "public".* diff --git a/extension/sql/tests/regression/expected/insert.out b/extension/sql/tests/regression/expected/insert.out index 331166c6a..d3301c510 100644 --- a/extension/sql/tests/regression/expected/insert.out +++ b/extension/sql/tests/regression/expected/insert.out @@ -21,10 +21,13 @@ select setup_meta(); (1 row) \c Test1 -CREATE EXTENSION IF NOT EXISTS iobeamdb CASCADE; -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "hstore" +CREATE SCHEMA io_test; +CREATE EXTENSION IF NOT EXISTS iobeamdb SCHEMA io_test CASCADE; +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "hstore" +ALTER DATABASE "Test1" SET search_path = "io_test"; +SET search_path = 'io_test'; select setup_main(); setup_main ------------ @@ -33,9 +36,9 @@ select setup_main(); \c test2 CREATE EXTENSION IF NOT EXISTS iobeamdb CASCADE; -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "hstore" select setup_main(); setup_main ------------ @@ -95,7 +98,7 @@ SELECT set_is_distinct_flag('"public"."testNs"', 'device_id', TRUE); \c Test1 BEGIN; -\COPY "testNs" FROM 'data/ds1_dev1_1.tsv' NULL AS ''; +\COPY public."testNs" FROM 'data/ds1_dev1_1.tsv' NULL AS ''; COMMIT; SELECT _iobeamdb_meta_api.close_chunk_end_immediate(c.id) FROM get_open_partition_for_key((SELECT id FROM _iobeamdb_catalog.hypertable WHERE table_name = 'testNs'), 'dev1') part @@ -106,7 +109,7 @@ INNER JOIN _iobeamdb_catalog.chunk c ON (c.partition_id = part.id); (1 row) \c Test1 -INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES +INSERT INTO public."testNs"("timeCustom", device_id, series_0, series_1) VALUES (1257987600000000000, 'dev1', 1.5, 1), (1257987600000000000, 'dev1', 1.5, 2), (1257894000000000000, 'dev20', 1.5, 1), @@ -114,7 +117,7 @@ INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES \c test2 INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES (1257894000000000000, 'dev20', 1.5, 2); -\c Test1 +\c test2 CREATE TABLE chunk_closing_test( time BIGINT, metric INTEGER, @@ -145,9 +148,9 @@ SELECT * FROM _iobeamdb_catalog.chunk c WHERE h.schema_name = 'public' AND h.table_name = 'chunk_closing_test'; id | partition_id | start_time | end_time | chunk_id | partition_replica_id | database_name | schema_name | table_name | id | partition_id | hypertable_id | replica_id | schema_name | table_name | id | schema_name | table_name | associated_schema_name | associated_table_prefix | root_schema_name | root_table_name | distinct_schema_name | distinct_table_name | replication_factor | placement | time_column_name | time_column_type | created_on | chunk_size_bytes ----+--------------+------------+----------+----------+----------------------+---------------+--------------------+---------------------+----+--------------+---------------+------------+--------------------+------------------------+----+-------------+--------------------+------------------------+-------------------------+--------------------+-----------------+----------------------+---------------------+--------------------+-----------+------------------+------------------+------------+------------------ - 4 | 3 | | 1 | 4 | 3 | test2 | _iobeamdb_internal | _hyper_2_3_0_4_data | 3 | 3 | 2 | 0 | _iobeamdb_internal | _hyper_2_3_0_partition | 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | Test1 | 10000 - 5 | 3 | 2 | 2 | 5 | 3 | test2 | _iobeamdb_internal | _hyper_2_3_0_5_data | 3 | 3 | 2 | 0 | _iobeamdb_internal | _hyper_2_3_0_partition | 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | Test1 | 10000 - 6 | 3 | 3 | | 6 | 3 | test2 | _iobeamdb_internal | _hyper_2_3_0_6_data | 3 | 3 | 2 | 0 | _iobeamdb_internal | _hyper_2_3_0_partition | 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | Test1 | 10000 + 4 | 3 | | 1 | 4 | 3 | test2 | _iobeamdb_internal | _hyper_2_3_0_4_data | 3 | 3 | 2 | 0 | _iobeamdb_internal | _hyper_2_3_0_partition | 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | test2 | 10000 + 5 | 3 | 2 | 2 | 5 | 3 | test2 | _iobeamdb_internal | _hyper_2_3_0_5_data | 3 | 3 | 2 | 0 | _iobeamdb_internal | _hyper_2_3_0_partition | 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | test2 | 10000 + 6 | 3 | 3 | | 6 | 3 | test2 | _iobeamdb_internal | _hyper_2_3_0_6_data | 3 | 3 | 2 | 0 | _iobeamdb_internal | _hyper_2_3_0_partition | 2 | public | chunk_closing_test | _iobeamdb_internal | _hyper_2 | _iobeamdb_internal | _hyper_2_root | _iobeamdb_internal | _hyper_2_distinct | 1 | STICKY | time | bigint | test2 | 10000 (3 rows) \c Test1 @@ -244,7 +247,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_partition, series_2 | double precision | | | plain | | series_bool | boolean | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("timeCustom" <= '1257897600000000000'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_1_data') @@ -260,7 +263,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition series_2 | double precision | | | plain | | series_bool | boolean | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("timeCustom" >= '1257897600000000001'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_1_0_2_data') @@ -276,7 +279,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_1_0_1_data, _iobeamdb_internal._hyper_1_1_0_2_data @@ -297,7 +300,7 @@ Indexes: "4-testNs_timeCustom_series_2_idx" btree ("timeCustom" DESC NULLS LAST, series_2) WHERE series_2 IS NOT NULL "5-testNs_timeCustom_series_bool_idx" btree ("timeCustom" DESC NULLS LAST, series_bool) WHERE series_bool IS NOT NULL Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_2_0_partition Table "_iobeamdb_internal._hyper_1_2_0_partition" @@ -310,7 +313,7 @@ Inherits: _iobeamdb_internal._hyper_1_2_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_2_0_3_data @@ -375,7 +378,7 @@ Child tables: _iobeamdb_internal._hyper_2_3_0_partition, metric | integer | | | plain | | device_id | text | | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" <= '1'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_2_3_0_4_data') @@ -388,7 +391,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | | plain | | device_id | text | | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" >= '2'::bigint AND "time" <= '2'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_2_3_0_5_data') @@ -401,7 +404,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | | plain | | device_id | text | | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" >= '3'::bigint) Server: test2 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_2_3_0_6_data') @@ -414,7 +417,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_2_0_replica Child tables: _iobeamdb_internal._hyper_2_3_0_4_data, _iobeamdb_internal._hyper_2_3_0_5_data, @@ -427,7 +430,7 @@ Child tables: _iobeamdb_internal._hyper_2_3_0_4_data, metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_2_0_replica Table "_iobeamdb_internal._hyper_2_distinct" @@ -589,7 +592,7 @@ Indexes: "4-testNs_timeCustom_series_2_idx" btree ("timeCustom" DESC NULLS LAST, series_2) WHERE series_2 IS NOT NULL "5-testNs_timeCustom_series_bool_idx" btree ("timeCustom" DESC NULLS LAST, series_bool) WHERE series_bool IS NOT NULL Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("timeCustom" <= '1257897600000000000'::bigint) Inherits: _iobeamdb_internal._hyper_1_1_0_partition @@ -609,7 +612,7 @@ Indexes: "8-testNs_timeCustom_series_1_idx" btree ("timeCustom" DESC NULLS LAST, series_1) WHERE series_1 IS NOT NULL "9-testNs_timeCustom_series_2_idx" btree ("timeCustom" DESC NULLS LAST, series_2) WHERE series_2 IS NOT NULL Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("timeCustom" >= '1257897600000000001'::bigint) Inherits: _iobeamdb_internal._hyper_1_1_0_partition @@ -623,7 +626,7 @@ Inherits: _iobeamdb_internal._hyper_1_1_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_1_0_1_data, _iobeamdb_internal._hyper_1_1_0_2_data @@ -638,7 +641,7 @@ Child tables: _iobeamdb_internal._hyper_1_1_0_1_data, series_2 | double precision | | | plain | | series_bool | boolean | | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Server: Test1 FDW Options: (schema_name '_iobeamdb_internal', table_name '_hyper_1_2_0_3_data') Inherits: _iobeamdb_internal._hyper_1_2_0_partition @@ -653,7 +656,7 @@ Inherits: _iobeamdb_internal._hyper_1_2_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_1_0_replica Child tables: _iobeamdb_internal._hyper_1_2_0_3_data @@ -725,7 +728,7 @@ Child tables: _iobeamdb_internal._hyper_2_3_0_partition, metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" <= '1'::bigint) Inherits: _iobeamdb_internal._hyper_2_3_0_partition @@ -736,7 +739,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" >= '2'::bigint AND "time" <= '2'::bigint) Inherits: _iobeamdb_internal._hyper_2_3_0_partition @@ -747,7 +750,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) "time_range" CHECK ("time" >= '3'::bigint) Inherits: _iobeamdb_internal._hyper_2_3_0_partition @@ -758,7 +761,7 @@ Inherits: _iobeamdb_internal._hyper_2_3_0_partition metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '16383'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '16383'::smallint) Inherits: _iobeamdb_internal._hyper_2_0_replica Child tables: _iobeamdb_internal._hyper_2_3_0_4_data, _iobeamdb_internal._hyper_2_3_0_5_data, @@ -771,7 +774,7 @@ Child tables: _iobeamdb_internal._hyper_2_3_0_4_data, metric | integer | | plain | | device_id | text | | extended | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '16384'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '16384'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: _iobeamdb_internal._hyper_2_0_replica Table "_iobeamdb_internal._hyper_2_distinct" diff --git a/extension/sql/tests/regression/expected/insert_single.out b/extension/sql/tests/regression/expected/insert_single.out index 4a64e4bda..76d522f14 100644 --- a/extension/sql/tests/regression/expected/insert_single.out +++ b/extension/sql/tests/regression/expected/insert_single.out @@ -244,7 +244,7 @@ Indexes: "4-testNs_timeCustom_series_2_idx" btree ("timeCustom" DESC NULLS LAST, series_2) WHERE series_2 IS NOT NULL "5-testNs_timeCustom_series_bool_idx" btree ("timeCustom" DESC NULLS LAST, series_bool) WHERE series_bool IS NOT NULL Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) "time_range" CHECK ("timeCustom" <= '1257897600000000000'::bigint) Inherits: "testNs"._hyper_1_1_0_partition @@ -264,7 +264,7 @@ Indexes: "8-testNs_timeCustom_series_1_idx" btree ("timeCustom" DESC NULLS LAST, series_1) WHERE series_1 IS NOT NULL "9-testNs_timeCustom_series_2_idx" btree ("timeCustom" DESC NULLS LAST, series_2) WHERE series_2 IS NOT NULL Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) "time_range" CHECK ("timeCustom" >= '1257897600000000001'::bigint) Inherits: "testNs"._hyper_1_1_0_partition @@ -278,7 +278,7 @@ Inherits: "testNs"._hyper_1_1_0_partition series_2 | double precision | | plain | | series_bool | boolean | | plain | | Check constraints: - "partition" CHECK (get_partition_for_key(device_id, 32768) >= '0'::smallint AND get_partition_for_key(device_id, 32768) <= '32767'::smallint) + "partition" CHECK (_iobeamdb_catalog.get_partition_for_key(device_id, 32768) >= '0'::smallint AND _iobeamdb_catalog.get_partition_for_key(device_id, 32768) <= '32767'::smallint) Inherits: "testNs"._hyper_1_0_replica Child tables: "testNs"._hyper_1_1_0_1_data, "testNs"._hyper_1_1_0_2_data diff --git a/extension/sql/tests/regression/expected/pg_dump.out b/extension/sql/tests/regression/expected/pg_dump.out index 0884f2665..be3d74884 100644 --- a/extension/sql/tests/regression/expected/pg_dump.out +++ b/extension/sql/tests/regression/expected/pg_dump.out @@ -4,17 +4,17 @@ psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required ext LOCATION: CreateExtensionInternal, extension.c:1441 psql:include/create_clustered_db.sql:12: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:16: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "dblink" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "postgres_fdw" LOCATION: CreateExtensionInternal, extension.c:1441 -psql:include/create_clustered_db.sql:20: NOTICE: 00000: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: 00000: installing required extension "hstore" LOCATION: CreateExtensionInternal, extension.c:1441 \c postgres \! pg_dump -h localhost -U postgres -Fc Test1 > dump/Test1.sql diff --git a/extension/sql/tests/regression/expected/sql_query.out b/extension/sql/tests/regression/expected/sql_query.out index eaf362381..16749e23f 100644 --- a/extension/sql/tests/regression/expected/sql_query.out +++ b/extension/sql/tests/regression/expected/sql_query.out @@ -1,14 +1,14 @@ psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "dblink" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "postgres_fdw" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "hstore" \c Test1 -SELECT * FROM "testNs"; +SELECT * FROM PUBLIC."testNs"; timeCustom | device_id | series_0 | series_1 | series_2 | series_bool ---------------------+-----------+----------+----------+----------+------------- 1257894000000000000 | dev1 | 1.5 | 1 | 2 | t @@ -23,7 +23,7 @@ SELECT * FROM "testNs"; 1257894000000000000 | dev20 | 1.5 | 2 | | (10 rows) -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs"; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs"; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Append @@ -45,7 +45,7 @@ EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs"; \echo "The following queries should NOT scan testNs._hyper_1_1_0_partition" "The following queries should NOT scan testNs._hyper_1_1_0_partition" -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id = 'dev20'; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs" WHERE device_id = 'dev20'; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Append @@ -63,7 +63,7 @@ EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id = 'dev20' Index Cond: (_hyper_1_2_0_3_data.device_id = 'dev20'::text) (13 rows) -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id = 'dev'||'20'; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs" WHERE device_id = 'dev'||'20'; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Append @@ -81,7 +81,7 @@ EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id = 'dev'|| Index Cond: (_hyper_1_2_0_3_data.device_id = 'dev20'::text) (13 rows) -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE 'dev'||'20' = device_id; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs" WHERE 'dev'||'20' = device_id; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Append diff --git a/extension/sql/tests/regression/expected/timestamp.out b/extension/sql/tests/regression/expected/timestamp.out index 832d9c51d..c2d71d442 100644 --- a/extension/sql/tests/regression/expected/timestamp.out +++ b/extension/sql/tests/regression/expected/timestamp.out @@ -1,12 +1,12 @@ psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "dblink" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "postgres_fdw" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "hstore" \c meta SELECT add_cluster_user('postgres', NULL); add_cluster_user @@ -66,7 +66,7 @@ SELECT set_is_distinct_flag('"public"."testNs"', 'device_id', TRUE); (1 row) \c Test1 -INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES +INSERT INTO PUBLIC."testNs"("timeCustom", device_id, series_0, series_1) VALUES ('2009-11-12T01:00:00+00:00', 'dev1', 1.5, 1), ('2009-11-12T01:00:00+00:00', 'dev1', 1.5, 2), ('2009-11-10T23:00:02+00:00', 'dev1', 2.5, 3); @@ -78,7 +78,7 @@ INNER JOIN _iobeamdb_catalog.chunk c ON (c.partition_id = part.id); (1 row) -INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES +INSERT INTO PUBLIC."testNs"("timeCustom", device_id, series_0, series_1) VALUES ('2009-11-10T23:00:00+00:00', 'dev2', 1.5, 1), ('2009-11-10T23:00:00+00:00', 'dev2', 1.5, 2); SELECT * FROM PUBLIC."testNs"; diff --git a/extension/sql/tests/regression/expected/update.out b/extension/sql/tests/regression/expected/update.out index e9e7a228f..ba4ab0857 100644 --- a/extension/sql/tests/regression/expected/update.out +++ b/extension/sql/tests/regression/expected/update.out @@ -1,13 +1,13 @@ psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "dblink" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "postgres_fdw" psql:include/create_clustered_db.sql:12: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:16: NOTICE: installing required extension "hstore" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "dblink" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "postgres_fdw" -psql:include/create_clustered_db.sql:20: NOTICE: installing required extension "hstore" -\c Test1 +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:17: NOTICE: installing required extension "hstore" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "dblink" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "postgres_fdw" +psql:include/create_clustered_db.sql:23: NOTICE: installing required extension "hstore" +\c test2 SELECT * FROM "testNs"; timeCustom | device_id | series_0 | series_1 | series_2 | series_bool ---------------------+-----------+----------+----------+----------+------------- diff --git a/extension/sql/tests/regression/include/create_clustered_db.sql b/extension/sql/tests/regression/include/create_clustered_db.sql index 5aee19237..0e61be9d1 100644 --- a/extension/sql/tests/regression/include/create_clustered_db.sql +++ b/extension/sql/tests/regression/include/create_clustered_db.sql @@ -13,7 +13,10 @@ CREATE EXTENSION IF NOT EXISTS iobeamdb CASCADE; select setup_meta(); \c Test1 -CREATE EXTENSION IF NOT EXISTS iobeamdb CASCADE; +CREATE SCHEMA io_test; +CREATE EXTENSION IF NOT EXISTS iobeamdb SCHEMA io_test CASCADE; +ALTER DATABASE "Test1" SET search_path = "io_test"; +SET search_path = 'io_test'; select setup_main(); \c test2 diff --git a/extension/sql/tests/regression/include/ddl_ops_1.sql b/extension/sql/tests/regression/include/ddl_ops_1.sql index 7e07fa0b5..5387737f2 100644 --- a/extension/sql/tests/regression/include/ddl_ops_1.sql +++ b/extension/sql/tests/regression/include/ddl_ops_1.sql @@ -20,10 +20,10 @@ CREATE INDEX "ind_sensor_1" ON PUBLIC."Hypertable_1" (time, "sensor_1"); SELECT set_is_distinct_flag('"public"."Hypertable_1"', 'sensor_1', TRUE); SELECT set_is_distinct_flag('"public"."Hypertable_1"', 'sensor_2', TRUE); -INSERT INTO "Hypertable_1"(time, "Device_id", temp_c, humidity, sensor_1, sensor_2, sensor_3, sensor_4) +INSERT INTO PUBLIC."Hypertable_1"(time, "Device_id", temp_c, humidity, sensor_1, sensor_2, sensor_3, sensor_4) VALUES(1257894000000000000, 'dev1', 30, 70, 1, 2, 3, 100); --expect error cases \set ON_ERROR_STOP 0 -UPDATE ONLY "Hypertable_1" SET time = 0 WHERE TRUE; -DELETE FROM ONLY "Hypertable_1" WHERE "Device_id" = 'dev1'; +UPDATE ONLY PUBLIC."Hypertable_1" SET time = 0 WHERE TRUE; +DELETE FROM ONLY PUBLIC."Hypertable_1" WHERE "Device_id" = 'dev1'; \set ON_ERROR_STOP 1 diff --git a/extension/sql/tests/regression/include/insert.sql b/extension/sql/tests/regression/include/insert.sql index 75bcbf650..cae052b82 100644 --- a/extension/sql/tests/regression/include/insert.sql +++ b/extension/sql/tests/regression/include/insert.sql @@ -31,7 +31,7 @@ SELECT set_is_distinct_flag('"public"."testNs"', 'device_id', TRUE); \c Test1 BEGIN; -\COPY "testNs" FROM 'data/ds1_dev1_1.tsv' NULL AS ''; +\COPY public."testNs" FROM 'data/ds1_dev1_1.tsv' NULL AS ''; COMMIT; SELECT _iobeamdb_meta_api.close_chunk_end_immediate(c.id) @@ -39,7 +39,7 @@ FROM get_open_partition_for_key((SELECT id FROM _iobeamdb_catalog.hypertable WHE INNER JOIN _iobeamdb_catalog.chunk c ON (c.partition_id = part.id); \c Test1 -INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES +INSERT INTO public."testNs"("timeCustom", device_id, series_0, series_1) VALUES (1257987600000000000, 'dev1', 1.5, 1), (1257987600000000000, 'dev1', 1.5, 2), (1257894000000000000, 'dev20', 1.5, 1), @@ -50,7 +50,7 @@ INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES (1257894000000000000, 'dev20', 1.5, 2); -\c Test1 +\c test2 CREATE TABLE chunk_closing_test( time BIGINT, metric INTEGER, diff --git a/extension/sql/tests/regression/sql_query.sql b/extension/sql/tests/regression/sql_query.sql index 10ca224b1..916ef25d3 100644 --- a/extension/sql/tests/regression/sql_query.sql +++ b/extension/sql/tests/regression/sql_query.sql @@ -7,14 +7,14 @@ \set ECHO ALL \c Test1 -SELECT * FROM "testNs"; +SELECT * FROM PUBLIC."testNs"; -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs"; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs"; \echo "The following queries should NOT scan testNs._hyper_1_1_0_partition" -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id = 'dev20'; -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id = 'dev'||'20'; -EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE 'dev'||'20' = device_id; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs" WHERE device_id = 'dev20'; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs" WHERE device_id = 'dev'||'20'; +EXPLAIN (verbose ON, costs off) SELECT * FROM PUBLIC."testNs" WHERE 'dev'||'20' = device_id; --TODO: handle this later? --EXPLAIN (verbose ON, costs off) SELECT * FROM "testNs" WHERE device_id IN ('dev20', 'dev21'); diff --git a/extension/sql/tests/regression/timestamp.sql b/extension/sql/tests/regression/timestamp.sql index 1d4ea1746..b539b8c5a 100644 --- a/extension/sql/tests/regression/timestamp.sql +++ b/extension/sql/tests/regression/timestamp.sql @@ -41,7 +41,7 @@ SELECT set_is_distinct_flag('"public"."testNs"', 'device_id', TRUE); \c Test1 -INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES +INSERT INTO PUBLIC."testNs"("timeCustom", device_id, series_0, series_1) VALUES ('2009-11-12T01:00:00+00:00', 'dev1', 1.5, 1), ('2009-11-12T01:00:00+00:00', 'dev1', 1.5, 2), ('2009-11-10T23:00:02+00:00', 'dev1', 2.5, 3); @@ -50,7 +50,7 @@ SELECT _iobeamdb_meta_api.close_chunk_end_immediate(c.id) FROM get_open_partition_for_key((SELECT id FROM _iobeamdb_catalog.hypertable WHERE table_name = 'testNs'), 'dev1') part INNER JOIN _iobeamdb_catalog.chunk c ON (c.partition_id = part.id); -INSERT INTO "testNs"("timeCustom", device_id, series_0, series_1) VALUES +INSERT INTO PUBLIC."testNs"("timeCustom", device_id, series_0, series_1) VALUES ('2009-11-10T23:00:00+00:00', 'dev2', 1.5, 1), ('2009-11-10T23:00:00+00:00', 'dev2', 1.5, 2); diff --git a/extension/sql/tests/regression/update.sql b/extension/sql/tests/regression/update.sql index 580c06493..25cc0cc35 100644 --- a/extension/sql/tests/regression/update.sql +++ b/extension/sql/tests/regression/update.sql @@ -5,7 +5,7 @@ \o \set ECHO ALL -\c Test1 +\c test2 SELECT * FROM "testNs"; diff --git a/extension/src/iobeamdb.c b/extension/src/iobeamdb.c index 3e145f5d8..32f1a59dd 100644 --- a/extension/src/iobeamdb.c +++ b/extension/src/iobeamdb.c @@ -47,6 +47,7 @@ typedef struct hypertable_info typedef struct partitioning_info { Name partitioning_column; + Name partitioning_func_schema; Name partitioning_func; int32 partitioning_mod; } partitioning_info; @@ -69,7 +70,7 @@ static Node *add_partitioning_func_qual_mutator(Node *node, add_partitioning_fun static partitioning_info * get_partitioning_info_for_partition_column_var(Var *var_expr, Query *parse, List * hypertable_info_list); static Expr * -create_partition_func_equals_const(Var *var_expr, Const *const_expr, Name partitioning_func, int32 partitioning_mod); +create_partition_func_equals_const(Var *var_expr, Const *const_expr, Name partitioning_func_schema, Name partitioning_func, int32 partitioning_mod); void _PG_init(void) @@ -238,7 +239,7 @@ get_hypertable_info(Oid mainRelationOid) for (j = 0; j < total_rows; j++) { HeapTuple tuple = SPI_tuptable->vals[j]; - Name partitioning_func, partitioning_column; + Name partitioning_func_schema, partitioning_func, partitioning_column; int32 partitioning_mod; partitioning_info* info = (partitioning_info *) SPI_palloc(sizeof(partitioning_info)); @@ -250,14 +251,20 @@ get_hypertable_info(Oid mainRelationOid) memcpy(info->partitioning_column, partitioning_column, sizeof(NameData)); } - partitioning_func = DatumGetName(SPI_getbinval(tuple, tupdesc, 3, &isnull)); + partitioning_func_schema = DatumGetName(SPI_getbinval(tuple, tupdesc, 3, &isnull)); + if (!isnull) { + info->partitioning_func_schema = SPI_palloc(sizeof(NameData)); + memcpy(info->partitioning_func_schema, partitioning_func_schema, sizeof(NameData)); + } + + partitioning_func = DatumGetName(SPI_getbinval(tuple, tupdesc, 4, &isnull)); if (!isnull) { info->partitioning_func = SPI_palloc(sizeof(NameData)); memcpy(info->partitioning_func, partitioning_func, sizeof(NameData)); } - partitioning_mod = DatumGetInt32(SPI_getbinval(tuple, tupdesc, 4, &isnull)); + partitioning_mod = DatumGetInt32(SPI_getbinval(tuple, tupdesc, 5, &isnull)); if (!isnull) { info->partitioning_mod = partitioning_mod; @@ -360,6 +367,7 @@ add_partitioning_func_qual_mutator(Node *node, add_partitioning_func_qual_contex && pi->partitioning_func != NULL) { /* The var is a partitioning column */ Expr * partitioning_clause = create_partition_func_equals_const(var_expr, const_expr, + pi->partitioning_func_schema, pi->partitioning_func, pi->partitioning_mod); @@ -407,10 +415,10 @@ get_partitioning_info_for_partition_column_var(Var *var_expr, Query *parse, List * This function makes a copy of all nodes given in input. * */ static Expr * -create_partition_func_equals_const(Var *var_expr, Const *const_expr, Name partitioning_func, int32 partitioning_mod) +create_partition_func_equals_const(Var *var_expr, Const *const_expr, Name partitioning_func_schema, Name partitioning_func, int32 partitioning_mod) { Expr *op_expr; - List *func_name = list_make1(makeString(NameStr(*(partitioning_func)))); + List *func_name = list_make2(makeString(NameStr(*(partitioning_func_schema))), makeString(NameStr(*(partitioning_func)))); Var *var_for_fn_call; Const *const_for_fn_call; Const *mod_const_var_call; diff --git a/extension/src/iobeamdb.h b/extension/src/iobeamdb.h index 5eb23e1b4..4c7c3be48 100644 --- a/extension/src/iobeamdb.h +++ b/extension/src/iobeamdb.h @@ -3,7 +3,7 @@ #define HYPERTABLE_INFO_QUERY "\ SELECT format('%%I.%%I', hr.schema_name, hr.table_name)::regclass::oid, \ - pe.partitioning_column, pe.partitioning_func, pe.partitioning_mod \ + pe.partitioning_column, pe.partitioning_func_schema, pe.partitioning_func, pe.partitioning_mod \ FROM _iobeamdb_catalog.hypertable h \ INNER JOIN _iobeamdb_catalog.default_replica_node drn ON (drn.hypertable_id = h.id AND drn.database_name = current_database()) \ INNER JOIN _iobeamdb_catalog.hypertable_replica hr ON (hr.replica_id = drn.replica_id AND hr.hypertable_id = drn.hypertable_id) \