citus/src/test/regress/expected/multi_name_lengths.out

399 lines
20 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

--
-- MULTI_NAME_LENGTHS
--
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 225000;
ALTER SEQUENCE pg_catalog.pg_dist_jobid_seq RESTART 225000;
SET citus.multi_shard_commit_protocol = '2pc';
-- Verify that a table name > 56 characters gets hashed properly.
CREATE TABLE too_long_12345678901234567890123456789012345678901234567890 (
col1 integer not null,
col2 integer not null);
SELECT master_create_distributed_table('too_long_12345678901234567890123456789012345678901234567890', 'col1', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards('too_long_12345678901234567890123456789012345678901234567890', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
\c - - - :worker_1_port
\d too_long_*
Table "public.too_long_12345678901234567890123456789012345678_e0119164_225000"
Column | Type | Modifiers
--------+---------+-----------
col1 | integer | not null
col2 | integer | not null
Table "public.too_long_12345678901234567890123456789012345678_e0119164_225001"
Column | Type | Modifiers
--------+---------+-----------
col1 | integer | not null
col2 | integer | not null
\c - - - :master_port
-- Verify that the UDF works and rejects bad arguments.
SELECT shard_name(NULL, 666666);
ERROR: object_name cannot be null
SELECT shard_name(0, 666666);
ERROR: object_name does not reference a valid relation
SELECT shard_name('too_long_12345678901234567890123456789012345678901234567890'::regclass, 666666);
shard_name
-----------------------------------------------------------------
too_long_12345678901234567890123456789012345678_e0119164_666666
(1 row)
SELECT shard_name('too_long_12345678901234567890123456789012345678901234567890'::regclass, NULL);
ERROR: shard_id cannot be null
SELECT shard_name('too_long_12345678901234567890123456789012345678901234567890'::regclass, -21);
ERROR: shard_id cannot be zero or negative value
DROP TABLE too_long_12345678901234567890123456789012345678901234567890 CASCADE;
-- Table to use for rename checks.
CREATE TABLE name_lengths (
col1 integer not null,
col2 integer not null,
constraint constraint_a UNIQUE (col1)
);
SELECT master_create_distributed_table('name_lengths', 'col1', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards('name_lengths', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
-- Verify that we CAN add columns with "too-long names", because
-- the columns' names are not extended in the corresponding shard tables.
ALTER TABLE name_lengths ADD COLUMN float_col_12345678901234567890123456789012345678901234567890 FLOAT;
NOTICE: using one-phase commit for distributed DDL commands
HINT: You can enable two-phase commit for extra safety with: SET citus.multi_shard_commit_protocol TO '2pc'
ALTER TABLE name_lengths ADD COLUMN date_col_12345678901234567890123456789012345678901234567890 DATE;
ALTER TABLE name_lengths ADD COLUMN int_col_12345678901234567890123456789012345678901234567890 INTEGER DEFAULT 1;
-- Placeholders for unsupported ALTER TABLE to add constraints with implicit names that are likely too long
ALTER TABLE name_lengths ADD UNIQUE (float_col_12345678901234567890123456789012345678901234567890);
ERROR: cannot create constraint
DETAIL: Citus cannot execute ADD CONSTRAINT command other than ADD CONSTRAINT FOREIGN KEY.
ALTER TABLE name_lengths ADD EXCLUDE (int_col_12345678901234567890123456789012345678901234567890 WITH =);
ERROR: cannot create constraint
DETAIL: Citus cannot execute ADD CONSTRAINT command other than ADD CONSTRAINT FOREIGN KEY.
ALTER TABLE name_lengths ADD CHECK (date_col_12345678901234567890123456789012345678901234567890 > '2014-01-01'::date);
ERROR: cannot create constraint
DETAIL: Citus cannot execute ADD CONSTRAINT command other than ADD CONSTRAINT FOREIGN KEY.
\c - - - :worker_1_port
\d name_lengths_*
Table "public.name_lengths_225002"
Column | Type | Modifiers
--------------------------------------------------------------+------------------+-----------
col1 | integer | not null
col2 | integer | not null
float_col_12345678901234567890123456789012345678901234567890 | double precision |
date_col_12345678901234567890123456789012345678901234567890 | date |
int_col_12345678901234567890123456789012345678901234567890 | integer | default 1
Indexes:
"constraint_a_225002" UNIQUE CONSTRAINT, btree (col1)
Table "public.name_lengths_225003"
Column | Type | Modifiers
--------------------------------------------------------------+------------------+-----------
col1 | integer | not null
col2 | integer | not null
float_col_12345678901234567890123456789012345678901234567890 | double precision |
date_col_12345678901234567890123456789012345678901234567890 | date |
int_col_12345678901234567890123456789012345678901234567890 | integer | default 1
Indexes:
"constraint_a_225003" UNIQUE CONSTRAINT, btree (col1)
\c - - - :master_port
-- Placeholders for unsupported add constraints with EXPLICIT names that are too long
ALTER TABLE name_lengths ADD CONSTRAINT nl_unique_12345678901234567890123456789012345678901234567890 UNIQUE (float_col_12345678901234567890123456789012345678901234567890);
ERROR: cannot create constraint
DETAIL: Citus cannot execute ADD CONSTRAINT command other than ADD CONSTRAINT FOREIGN KEY.
ALTER TABLE name_lengths ADD CONSTRAINT nl_exclude_12345678901234567890123456789012345678901234567890 EXCLUDE (int_col_12345678901234567890123456789012345678901234567890 WITH =);
ERROR: cannot create constraint
DETAIL: Citus cannot execute ADD CONSTRAINT command other than ADD CONSTRAINT FOREIGN KEY.
ALTER TABLE name_lengths ADD CONSTRAINT nl_checky_12345678901234567890123456789012345678901234567890 CHECK (date_col_12345678901234567890123456789012345678901234567890 >= '2014-01-01'::date);
ERROR: cannot create constraint
DETAIL: Citus cannot execute ADD CONSTRAINT command other than ADD CONSTRAINT FOREIGN KEY.
\c - - - :worker_1_port
\d nl_*
\c - - - :master_port
-- Placeholders for RENAME operations
ALTER TABLE name_lengths RENAME TO name_len_12345678901234567890123456789012345678901234567890;
ERROR: renaming distributed tables or their objects is currently unsupported
ALTER TABLE name_lengths RENAME CONSTRAINT unique_12345678901234567890123456789012345678901234567890 TO unique2_12345678901234567890123456789012345678901234567890;
ERROR: renaming distributed tables or their objects is currently unsupported
-- Verify that CREATE INDEX on already distributed table has proper shard names.
CREATE INDEX tmp_idx_12345678901234567890123456789012345678901234567890 ON name_lengths(col2);
NOTICE: using one-phase commit for distributed DDL commands
HINT: You can enable two-phase commit for extra safety with: SET citus.multi_shard_commit_protocol TO '2pc'
\c - - - :worker_1_port
\d tmp_idx_*
Index "public.tmp_idx_123456789012345678901234567890123456789_5e470afa_225002"
Column | Type | Definition
--------+---------+------------
col2 | integer | col2
btree, for table "public.name_lengths_225002"
Index "public.tmp_idx_123456789012345678901234567890123456789_5e470afa_225003"
Column | Type | Definition
--------+---------+------------
col2 | integer | col2
btree, for table "public.name_lengths_225003"
\c - - - :master_port
-- Verify that a new index name > 63 characters is auto-truncated
-- by the parser/rewriter before further processing, just as in Postgres.
CREATE INDEX tmp_idx_123456789012345678901234567890123456789012345678901234567890 ON name_lengths(col2);
NOTICE: identifier "tmp_idx_123456789012345678901234567890123456789012345678901234567890" will be truncated to "tmp_idx_1234567890123456789012345678901234567890123456789012345"
NOTICE: using one-phase commit for distributed DDL commands
HINT: You can enable two-phase commit for extra safety with: SET citus.multi_shard_commit_protocol TO '2pc'
\c - - - :worker_1_port
\d tmp_idx_*
Index "public.tmp_idx_123456789012345678901234567890123456789_599636aa_225002"
Column | Type | Definition
--------+---------+------------
col2 | integer | col2
btree, for table "public.name_lengths_225002"
Index "public.tmp_idx_123456789012345678901234567890123456789_599636aa_225003"
Column | Type | Definition
--------+---------+------------
col2 | integer | col2
btree, for table "public.name_lengths_225003"
Index "public.tmp_idx_123456789012345678901234567890123456789_5e470afa_225002"
Column | Type | Definition
--------+---------+------------
col2 | integer | col2
btree, for table "public.name_lengths_225002"
Index "public.tmp_idx_123456789012345678901234567890123456789_5e470afa_225003"
Column | Type | Definition
--------+---------+------------
col2 | integer | col2
btree, for table "public.name_lengths_225003"
\c - - - :master_port
-- Verify that distributed tables with too-long names
-- for CHECK constraints are no trouble.
CREATE TABLE sneaky_name_lengths (
col1 integer not null,
col2 integer not null,
int_col_12345678901234567890123456789012345678901234567890 integer not null,
CHECK (int_col_12345678901234567890123456789012345678901234567890 > 100)
);
SELECT master_create_distributed_table('sneaky_name_lengths', 'col1', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards('sneaky_name_lengths', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
DROP TABLE sneaky_name_lengths CASCADE;
CREATE TABLE sneaky_name_lengths (
int_col_123456789012345678901234567890123456789012345678901234 integer UNIQUE not null,
col2 integer not null,
CONSTRAINT checky_12345678901234567890123456789012345678901234567890 CHECK (int_col_123456789012345678901234567890123456789012345678901234 > 100)
);
\d sneaky_name_lengths*
Table "public.sneaky_name_lengths"
Column | Type | Modifiers
----------------------------------------------------------------+---------+-----------
int_col_123456789012345678901234567890123456789012345678901234 | integer | not null
col2 | integer | not null
Indexes:
"sneaky_name_lengths_int_col_1234567890123456789012345678901_key" UNIQUE CONSTRAINT, btree (int_col_123456789012345678901234567890123456789012345678901234)
Check constraints:
"checky_12345678901234567890123456789012345678901234567890" CHECK (int_col_123456789012345678901234567890123456789012345678901234 > 100)
Index "public.sneaky_name_lengths_int_col_1234567890123456789012345678901_key"
Column | Type | Definition
----------------------------------------------------------------+---------+----------------------------------------------------------------
int_col_123456789012345678901234567890123456789012345678901234 | integer | int_col_123456789012345678901234567890123456789012345678901234
unique, btree, for table "public.sneaky_name_lengths"
SELECT master_create_distributed_table('sneaky_name_lengths', 'int_col_123456789012345678901234567890123456789012345678901234', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards('sneaky_name_lengths', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
\c - - - :worker_1_port
\d sneaky_name_lengths*
Table "public.sneaky_name_lengths_225006"
Column | Type | Modifiers
----------------------------------------------------------------+---------+-----------
int_col_123456789012345678901234567890123456789012345678901234 | integer | not null
col2 | integer | not null
Indexes:
"sneaky_name_lengths_int_col_1234567890123456789_6402d2cd_225006" UNIQUE CONSTRAINT, btree (int_col_123456789012345678901234567890123456789012345678901234)
Check constraints:
"checky_12345678901234567890123456789012345678901234567890" CHECK (int_col_123456789012345678901234567890123456789012345678901234 > 100)
Table "public.sneaky_name_lengths_225007"
Column | Type | Modifiers
----------------------------------------------------------------+---------+-----------
int_col_123456789012345678901234567890123456789012345678901234 | integer | not null
col2 | integer | not null
Indexes:
"sneaky_name_lengths_int_col_1234567890123456789_6402d2cd_225007" UNIQUE CONSTRAINT, btree (int_col_123456789012345678901234567890123456789012345678901234)
Check constraints:
"checky_12345678901234567890123456789012345678901234567890" CHECK (int_col_123456789012345678901234567890123456789012345678901234 > 100)
Index "public.sneaky_name_lengths_int_col_1234567890123456789_6402d2cd_225006"
Column | Type | Definition
----------------------------------------------------------------+---------+----------------------------------------------------------------
int_col_123456789012345678901234567890123456789012345678901234 | integer | int_col_123456789012345678901234567890123456789012345678901234
unique, btree, for table "public.sneaky_name_lengths_225006"
Index "public.sneaky_name_lengths_int_col_1234567890123456789_6402d2cd_225007"
Column | Type | Definition
----------------------------------------------------------------+---------+----------------------------------------------------------------
int_col_123456789012345678901234567890123456789012345678901234 | integer | int_col_123456789012345678901234567890123456789012345678901234
unique, btree, for table "public.sneaky_name_lengths_225007"
\c - - - :master_port
DROP TABLE sneaky_name_lengths CASCADE;
-- verify that named constraint with too-long name gets hashed properly
CREATE TABLE sneaky_name_lengths (
col1 integer not null,
col2 integer not null,
int_col_12345678901234567890123456789012345678901234567890 integer not null,
constraint unique_12345678901234567890123456789012345678901234567890 UNIQUE (col1)
);
SELECT master_create_distributed_table('sneaky_name_lengths', 'col1', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards('sneaky_name_lengths', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
\c - - - :worker_1_port
\d sneaky_name_lengths*
Table "public.sneaky_name_lengths_225008"
Column | Type | Modifiers
------------------------------------------------------------+---------+-----------
col1 | integer | not null
col2 | integer | not null
int_col_12345678901234567890123456789012345678901234567890 | integer | not null
Indexes:
"unique_1234567890123456789012345678901234567890_a5986f27_225008" UNIQUE CONSTRAINT, btree (col1)
Table "public.sneaky_name_lengths_225009"
Column | Type | Modifiers
------------------------------------------------------------+---------+-----------
col1 | integer | not null
col2 | integer | not null
int_col_12345678901234567890123456789012345678901234567890 | integer | not null
Indexes:
"unique_1234567890123456789012345678901234567890_a5986f27_225009" UNIQUE CONSTRAINT, btree (col1)
\c - - - :master_port
DROP TABLE sneaky_name_lengths CASCADE;
-- Verify that much larger shardIds are handled properly
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 2250000000000;
CREATE TABLE too_long_12345678901234567890123456789012345678901234567890 (
col1 integer not null,
col2 integer not null);
SELECT master_create_distributed_table('too_long_12345678901234567890123456789012345678901234567890', 'col1', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards('too_long_12345678901234567890123456789012345678901234567890', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
\c - - - :worker_1_port
\d too_long_*
Table "public.too_long_1234567890123456789012345678901_e0119164_2250000000000"
Column | Type | Modifiers
--------+---------+-----------
col1 | integer | not null
col2 | integer | not null
Table "public.too_long_1234567890123456789012345678901_e0119164_2250000000001"
Column | Type | Modifiers
--------+---------+-----------
col1 | integer | not null
col2 | integer | not null
\c - - - :master_port
DROP TABLE too_long_12345678901234567890123456789012345678901234567890 CASCADE;
-- Verify that multi-byte boundaries are respected for databases with UTF8 encoding.
CREATE TABLE U&"elephant_!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D" UESCAPE '!' (
col1 integer not null PRIMARY KEY,
col2 integer not null);
SELECT master_create_distributed_table(U&'elephant_!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D' UESCAPE '!', 'col1', 'hash');
master_create_distributed_table
---------------------------------
(1 row)
SELECT master_create_worker_shards(U&'elephant_!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D' UESCAPE '!', '2', '2');
master_create_worker_shards
-----------------------------
(1 row)
\c - - - :worker_1_port
\d elephant_*
Index "public.elephant_слонслонслонсло_14d34928_2250000000002"
Column | Type | Definition
--------+---------+------------
col1 | integer | col1
primary key, btree, for table "public.elephant_слонслонслонсло_c8b737c2_2250000000002"
Index "public.elephant_слонслонслонсло_14d34928_2250000000003"
Column | Type | Definition
--------+---------+------------
col1 | integer | col1
primary key, btree, for table "public.elephant_слонслонслонсло_c8b737c2_2250000000003"
Table "public.elephant_слонслонслонсло_c8b737c2_2250000000002"
Column | Type | Modifiers
--------+---------+-----------
col1 | integer | not null
col2 | integer | not null
Indexes:
"elephant_слонслонслонсло_14d34928_2250000000002" PRIMARY KEY, btree (col1)
Table "public.elephant_слонслонслонсло_c8b737c2_2250000000003"
Column | Type | Modifiers
--------+---------+-----------
col1 | integer | not null
col2 | integer | not null
Indexes:
"elephant_слонслонслонсло_14d34928_2250000000003" PRIMARY KEY, btree (col1)
\c - - - :master_port
-- Clean up.
DROP TABLE name_lengths CASCADE;
DROP TABLE U&"elephant_!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D!0441!043B!043E!043D" UESCAPE '!' CASCADE;