mirror of https://github.com/citusdata/citus.git
107 lines
3.2 KiB
Plaintext
107 lines
3.2 KiB
Plaintext
CREATE SCHEMA "prepared statements";
|
|
SET search_path TO "prepared statements";
|
|
GRANT ALL ON SCHEMA "prepared statements" TO regularuser;
|
|
CREATE TABLE repartition_prepared_test (a int, b int);
|
|
SELECT create_distributed_table('repartition_prepared_test', 'a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO repartition_prepared_test SELECT i%2, i%3 FROM generate_series(0,24)i;
|
|
-- create a custom type which also exists on worker nodes
|
|
CREATE TYPE test_composite_type AS (
|
|
i integer,
|
|
i2 integer
|
|
);
|
|
CREATE TABLE router_executor_table (
|
|
id bigint NOT NULL,
|
|
comment varchar(20),
|
|
stats test_composite_type
|
|
);
|
|
SELECT create_distributed_table('router_executor_table', 'id');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- test router executor with prepare statements
|
|
CREATE TABLE prepare_table (
|
|
key int,
|
|
value int
|
|
);
|
|
SELECT create_distributed_table('prepare_table','key');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- Testing parameters + function evaluation
|
|
CREATE TABLE prepare_func_table (
|
|
key text,
|
|
value1 int,
|
|
value2 text,
|
|
value3 timestamptz DEFAULT now()
|
|
);
|
|
SELECT create_distributed_table('prepare_func_table', 'key');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- test function evaluation with parameters in an expression
|
|
PREPARE prepared_function_evaluation_insert(int) AS
|
|
INSERT INTO prepare_func_table (key, value1) VALUES ($1+1, 0*random());
|
|
-- Text columns can give issues when there is an implicit cast from varchar
|
|
CREATE TABLE text_partition_column_table (
|
|
key text NOT NULL,
|
|
value int
|
|
);
|
|
SELECT create_distributed_table('text_partition_column_table', 'key');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- Domain type columns can give issues
|
|
-- and we use offset to prevent output diverging
|
|
CREATE DOMAIN test_key AS text CHECK(VALUE ~ '^test-\d$');
|
|
CREATE TABLE domain_partition_column_table (
|
|
key test_key NOT NULL,
|
|
value int
|
|
);
|
|
SELECT create_distributed_table('domain_partition_column_table', 'key');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- verify we re-evaluate volatile functions every time
|
|
CREATE TABLE http_request (
|
|
site_id INT,
|
|
ingest_time TIMESTAMPTZ DEFAULT now(),
|
|
url TEXT,
|
|
request_country TEXT,
|
|
ip_address TEXT,
|
|
status_code INT,
|
|
response_time_msec INT
|
|
);
|
|
SELECT create_distributed_table('http_request', 'site_id');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- Standard planner converted text and varchar casts to cstring in some cases
|
|
-- We make sure we convert it back to text when parsing the expression
|
|
-- https://github.com/citusdata/citus/issues/6061
|
|
-- https://github.com/citusdata/citus/issues/5646
|
|
-- https://github.com/citusdata/citus/issues/5033
|
|
CREATE TABLE test(t timestamp, user_id int);
|
|
SELECT create_distributed_table('test', 'user_id');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|