mirror of https://github.com/citusdata/citus.git
Improve DDL replication related regression tests.
The previous form of the test, utilizing DEBUG2, included too much output dependent on the specifc system and version. Reformulate it to explicitly connect to workers and show the schema there, when necessary. The only remaining difference in some of the remaining alternate regression test files was due to an older minor version release change. Remove those as well.pull/360/head
parent
5311960200
commit
53309461cb
|
@ -84,9 +84,9 @@ CREATE TABLE pkey_table (
|
|||
id bigint PRIMARY KEY
|
||||
);
|
||||
SELECT table_ddl_command_array('pkey_table');
|
||||
table_ddl_command_array
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE pkey_table (first_name text, last_name text, id bigint NOT NULL)","ALTER TABLE ONLY pkey_table ADD CONSTRAINT pkey_table_pkey PRIMARY KEY (id)"}
|
||||
table_ddl_command_array
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE pkey_table (first_name text, last_name text, id bigint NOT NULL)","ALTER TABLE public.pkey_table ADD CONSTRAINT pkey_table_pkey PRIMARY KEY (id)"}
|
||||
(1 row)
|
||||
|
||||
-- as do unique indexes...
|
||||
|
@ -95,9 +95,9 @@ CREATE TABLE unique_table (
|
|||
username text UNIQUE not null
|
||||
);
|
||||
SELECT table_ddl_command_array('unique_table');
|
||||
table_ddl_command_array
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE unique_table (user_id bigint NOT NULL, username text NOT NULL)","ALTER TABLE ONLY unique_table ADD CONSTRAINT unique_table_username_key UNIQUE (username)"}
|
||||
table_ddl_command_array
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE unique_table (user_id bigint NOT NULL, username text NOT NULL)","ALTER TABLE public.unique_table ADD CONSTRAINT unique_table_username_key UNIQUE (username)"}
|
||||
(1 row)
|
||||
|
||||
-- and indexes used for clustering
|
||||
|
|
|
@ -1,156 +0,0 @@
|
|||
-- ===================================================================
|
||||
-- create test functions
|
||||
-- ===================================================================
|
||||
CREATE FUNCTION table_ddl_command_array(regclass)
|
||||
RETURNS text[]
|
||||
AS 'citus'
|
||||
LANGUAGE C STRICT;
|
||||
-- ===================================================================
|
||||
-- test ddl command generation functionality
|
||||
-- ===================================================================
|
||||
-- first make sure a simple table works
|
||||
CREATE TABLE simple_table (
|
||||
first_name text,
|
||||
last_name text,
|
||||
id bigint
|
||||
);
|
||||
SELECT table_ddl_command_array('simple_table');
|
||||
table_ddl_command_array
|
||||
----------------------------------------------------------------------------
|
||||
{"CREATE TABLE simple_table (first_name text, last_name text, id bigint)"}
|
||||
(1 row)
|
||||
|
||||
-- ensure not-null constraints are propagated
|
||||
CREATE TABLE not_null_table (
|
||||
city text,
|
||||
id bigint not null
|
||||
);
|
||||
SELECT table_ddl_command_array('not_null_table');
|
||||
table_ddl_command_array
|
||||
-----------------------------------------------------------------
|
||||
{"CREATE TABLE not_null_table (city text, id bigint NOT NULL)"}
|
||||
(1 row)
|
||||
|
||||
-- ensure tables not in search path are schema-prefixed
|
||||
CREATE SCHEMA not_in_path CREATE TABLE simple_table (id bigint);
|
||||
NOTICE: Citus partially supports CREATE SCHEMA for distributed databases
|
||||
DETAIL: schema usage in joins and in some UDFs provided by Citus are not supported yet
|
||||
SELECT table_ddl_command_array('not_in_path.simple_table');
|
||||
table_ddl_command_array
|
||||
-------------------------------------------------------------------------------------------------
|
||||
{"CREATE SCHEMA IF NOT EXISTS not_in_path","CREATE TABLE not_in_path.simple_table (id bigint)"}
|
||||
(1 row)
|
||||
|
||||
-- even more complex constraints should be preserved...
|
||||
CREATE TABLE column_constraint_table (
|
||||
first_name text,
|
||||
last_name text,
|
||||
age int CONSTRAINT non_negative_age CHECK (age >= 0)
|
||||
);
|
||||
SELECT table_ddl_command_array('column_constraint_table');
|
||||
table_ddl_command_array
|
||||
---------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE column_constraint_table (first_name text, last_name text, age integer, CONSTRAINT non_negative_age CHECK (age >= 0))"}
|
||||
(1 row)
|
||||
|
||||
-- including table constraints
|
||||
CREATE TABLE table_constraint_table (
|
||||
bid_item_id bigint,
|
||||
min_bid decimal not null,
|
||||
max_bid decimal not null,
|
||||
CONSTRAINT bids_ordered CHECK (min_bid > max_bid)
|
||||
);
|
||||
SELECT table_ddl_command_array('table_constraint_table');
|
||||
table_ddl_command_array
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE table_constraint_table (bid_item_id bigint, min_bid numeric NOT NULL, max_bid numeric NOT NULL, CONSTRAINT bids_ordered CHECK (min_bid > max_bid))"}
|
||||
(1 row)
|
||||
|
||||
-- default values are supported
|
||||
CREATE TABLE default_value_table (
|
||||
name text,
|
||||
price decimal default 0.00
|
||||
);
|
||||
SELECT table_ddl_command_array('default_value_table');
|
||||
table_ddl_command_array
|
||||
------------------------------------------------------------------------------
|
||||
{"CREATE TABLE default_value_table (name text, price numeric DEFAULT 0.00)"}
|
||||
(1 row)
|
||||
|
||||
-- of course primary keys work...
|
||||
CREATE TABLE pkey_table (
|
||||
first_name text,
|
||||
last_name text,
|
||||
id bigint PRIMARY KEY
|
||||
);
|
||||
SELECT table_ddl_command_array('pkey_table');
|
||||
table_ddl_command_array
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE pkey_table (first_name text, last_name text, id bigint NOT NULL)","ALTER TABLE public.pkey_table ADD CONSTRAINT pkey_table_pkey PRIMARY KEY (id)"}
|
||||
(1 row)
|
||||
|
||||
-- as do unique indexes...
|
||||
CREATE TABLE unique_table (
|
||||
user_id bigint not null,
|
||||
username text UNIQUE not null
|
||||
);
|
||||
SELECT table_ddl_command_array('unique_table');
|
||||
table_ddl_command_array
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE unique_table (user_id bigint NOT NULL, username text NOT NULL)","ALTER TABLE public.unique_table ADD CONSTRAINT unique_table_username_key UNIQUE (username)"}
|
||||
(1 row)
|
||||
|
||||
-- and indexes used for clustering
|
||||
CREATE TABLE clustered_table (
|
||||
data json not null,
|
||||
received_at timestamp not null
|
||||
);
|
||||
CREATE INDEX clustered_time_idx ON clustered_table (received_at);
|
||||
CLUSTER clustered_table USING clustered_time_idx;
|
||||
SELECT table_ddl_command_array('clustered_table');
|
||||
table_ddl_command_array
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE clustered_table (data json NOT NULL, received_at timestamp without time zone NOT NULL)","CREATE INDEX clustered_time_idx ON clustered_table USING btree (received_at)","ALTER TABLE clustered_table CLUSTER ON clustered_time_idx"}
|
||||
(1 row)
|
||||
|
||||
-- fiddly things like storage type and statistics also work
|
||||
CREATE TABLE fiddly_table (
|
||||
hostname char(255) not null,
|
||||
os char(255) not null,
|
||||
ip_addr inet not null,
|
||||
traceroute text not null
|
||||
);
|
||||
ALTER TABLE fiddly_table
|
||||
ALTER hostname SET STORAGE PLAIN,
|
||||
ALTER os SET STORAGE MAIN,
|
||||
ALTER ip_addr SET STORAGE EXTENDED,
|
||||
ALTER traceroute SET STORAGE EXTERNAL,
|
||||
ALTER ip_addr SET STATISTICS 500;
|
||||
SELECT table_ddl_command_array('fiddly_table');
|
||||
table_ddl_command_array
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE TABLE fiddly_table (hostname character(255) NOT NULL, os character(255) NOT NULL, ip_addr inet NOT NULL, traceroute text NOT NULL)","ALTER TABLE ONLY fiddly_table ALTER COLUMN hostname SET STORAGE PLAIN, ALTER COLUMN os SET STORAGE MAIN, ALTER COLUMN ip_addr SET STORAGE EXTENDED, ALTER COLUMN ip_addr SET STATISTICS 500, ALTER COLUMN traceroute SET STORAGE EXTERNAL"}
|
||||
(1 row)
|
||||
|
||||
-- test foreign tables using fake FDW
|
||||
CREATE FOREIGN TABLE foreign_table (
|
||||
id bigint not null,
|
||||
full_name text not null default ''
|
||||
) SERVER fake_fdw_server OPTIONS (encoding 'utf-8', compression 'true');
|
||||
SELECT table_ddl_command_array('foreign_table');
|
||||
NOTICE: foreign-data wrapper "fake_fdw" does not have an extension defined
|
||||
table_ddl_command_array
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
{"CREATE SERVER fake_fdw_server FOREIGN DATA WRAPPER fake_fdw","CREATE FOREIGN TABLE foreign_table (id bigint NOT NULL, full_name text DEFAULT ''::text NOT NULL) SERVER fake_fdw_server OPTIONS (encoding 'utf-8', compression 'true')"}
|
||||
(1 row)
|
||||
|
||||
-- propagating views is not supported
|
||||
CREATE VIEW local_view AS SELECT * FROM simple_table;
|
||||
SELECT table_ddl_command_array('local_view');
|
||||
ERROR: local_view is not a regular or foreign table
|
||||
-- clean up
|
||||
DROP VIEW IF EXISTS local_view;
|
||||
DROP FOREIGN TABLE IF EXISTS foreign_table;
|
||||
DROP TABLE IF EXISTS simple_table, not_null_table, column_constraint_table,
|
||||
table_constraint_table, default_value_table, pkey_table,
|
||||
unique_table, clustered_table, fiddly_table;
|
|
@ -2,71 +2,19 @@
|
|||
-- MULTI_INDEX_STATEMENTS
|
||||
--
|
||||
-- Check that we can run CREATE INDEX and DROP INDEX statements on distributed
|
||||
-- tables. We increase the logging verbosity to verify that commands are
|
||||
-- propagated to all worker shards.
|
||||
SET client_min_messages TO DEBUG2;
|
||||
-- tables.
|
||||
--
|
||||
-- CREATE INDEX
|
||||
--
|
||||
-- Verify that we can create different types of indexes
|
||||
CREATE INDEX lineitem_orderkey_index ON lineitem (l_orderkey);
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_orderkey_index" on table "lineitem"
|
||||
CREATE INDEX lineitem_partkey_desc_index ON lineitem (l_partkey DESC);
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_partkey_desc_index" on table "lineitem"
|
||||
CREATE INDEX lineitem_partial_index ON lineitem (l_shipdate)
|
||||
WHERE l_shipdate < '1995-01-01';
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_partial_index" on table "lineitem"
|
||||
SET client_min_messages = ERROR; -- avoid version dependant warning about WAL
|
||||
CREATE INDEX lineitem_orderkey_hash_index ON lineitem USING hash (l_partkey);
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_orderkey_hash_index" on table "lineitem"
|
||||
-- Verify that all indexes got created on the master node
|
||||
RESET client_min_messages;
|
||||
-- Verify that all indexes got created on the master node and one of the workers
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
schemaname | tablename | indexname | tablespace | indexdef
|
||||
------------+-----------+------------------------------+------------+------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -78,6 +26,14 @@ SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
|||
public | lineitem | lineitem_time_index | | CREATE INDEX lineitem_time_index ON lineitem USING btree (l_shipdate)
|
||||
(6 rows)
|
||||
|
||||
\c - - - :worker_1_port
|
||||
SELECT count(*) FROM pg_indexes WHERE tablename = (SELECT relname FROM pg_class WHERE relname LIKE 'lineitem%' ORDER BY relname LIMIT 1);
|
||||
count
|
||||
-------
|
||||
6
|
||||
(1 row)
|
||||
|
||||
\c - - - :master_port
|
||||
-- Verify that we error out on unsupported statement types
|
||||
CREATE INDEX CONCURRENTLY try_index ON lineitem (l_orderkey);
|
||||
ERROR: creating indexes concurrently on distributed tables is currently unsupported
|
||||
|
@ -123,69 +79,27 @@ DROP INDEX CONCURRENTLY lineitem_orderkey_index;
|
|||
ERROR: dropping indexes concurrently on distributed tables is currently unsupported
|
||||
-- Verify that we can succesfully drop indexes
|
||||
DROP INDEX lineitem_orderkey_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DROP INDEX lineitem_partkey_desc_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DROP INDEX lineitem_partial_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
-- Verify that we handle if exists statements correctly
|
||||
DROP INDEX non_existent_index;
|
||||
ERROR: index "non_existent_index" does not exist
|
||||
DROP INDEX IF EXISTS non_existent_index;
|
||||
NOTICE: index "non_existent_index" does not exist, skipping
|
||||
DROP INDEX IF EXISTS lineitem_orderkey_hash_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DROP INDEX lineitem_orderkey_hash_index;
|
||||
ERROR: index "lineitem_orderkey_hash_index" does not exist
|
||||
-- Verify that all the indexes are also dropped from the master node
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
schemaname | tablename | indexname | tablespace | indexdef
|
||||
------------+-----------+---------------------+------------+--------------------------------------------------------------------------------------
|
||||
public | lineitem | lineitem_pkey | | CREATE UNIQUE INDEX lineitem_pkey ON lineitem USING btree (l_orderkey, l_linenumber)
|
||||
public | lineitem | lineitem_time_index | | CREATE INDEX lineitem_time_index ON lineitem USING btree (l_shipdate)
|
||||
(2 rows)
|
||||
-- Verify that all the indexes are dropped from the master and one worker node.
|
||||
-- As there's a primary key, so exclude those from this check.
|
||||
SELECT indrelid::regclass, indexrelid::regclass FROM pg_index WHERE indrelid = (SELECT relname FROM pg_class WHERE relname LIKE 'lineitem%' ORDER BY relname LIMIT 1)::regclass AND NOT indisprimary AND indexrelid::regclass::text NOT LIKE 'lineitem_time_index%';
|
||||
indrelid | indexrelid
|
||||
----------+------------
|
||||
(0 rows)
|
||||
|
||||
\c - - - :worker_1_port
|
||||
SELECT indrelid::regclass, indexrelid::regclass FROM pg_index WHERE indrelid = (SELECT relname FROM pg_class WHERE relname LIKE 'lineitem%' ORDER BY relname LIMIT 1)::regclass AND NOT indisprimary AND indexrelid::regclass::text NOT LIKE 'lineitem_time_index%';;
|
||||
indrelid | indexrelid
|
||||
----------+------------
|
||||
(0 rows)
|
||||
|
||||
\c - - - :master_port
|
||||
|
|
|
@ -1,196 +0,0 @@
|
|||
--
|
||||
-- MULTI_INDEX_STATEMENTS
|
||||
--
|
||||
-- Check that we can run CREATE INDEX and DROP INDEX statements on distributed
|
||||
-- tables. We increase the logging verbosity to verify that commands are
|
||||
-- propagated to all worker shards.
|
||||
SET client_min_messages TO DEBUG2;
|
||||
--
|
||||
-- CREATE INDEX
|
||||
--
|
||||
-- Verify that we can create different types of indexes
|
||||
CREATE INDEX lineitem_orderkey_index ON lineitem (l_orderkey);
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_orderkey_index" on table "lineitem"
|
||||
CREATE INDEX lineitem_partkey_desc_index ON lineitem (l_partkey DESC);
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_partkey_desc_index" on table "lineitem"
|
||||
CREATE INDEX lineitem_partial_index ON lineitem (l_shipdate)
|
||||
WHERE l_shipdate < '1995-01-01';
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: building index "lineitem_partial_index" on table "lineitem"
|
||||
CREATE INDEX lineitem_orderkey_hash_index ON lineitem USING hash (l_partkey);
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
WARNING: hash indexes are not WAL-logged and their use is discouraged
|
||||
DEBUG: building index "lineitem_orderkey_hash_index" on table "lineitem"
|
||||
-- Verify that all indexes got created on the master node
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
schemaname | tablename | indexname | tablespace | indexdef
|
||||
------------+-----------+------------------------------+------------+------------------------------------------------------------------------------------------------------------------
|
||||
public | lineitem | lineitem_orderkey_hash_index | | CREATE INDEX lineitem_orderkey_hash_index ON lineitem USING hash (l_partkey)
|
||||
public | lineitem | lineitem_orderkey_index | | CREATE INDEX lineitem_orderkey_index ON lineitem USING btree (l_orderkey)
|
||||
public | lineitem | lineitem_partial_index | | CREATE INDEX lineitem_partial_index ON lineitem USING btree (l_shipdate) WHERE (l_shipdate < '01-01-1995'::date)
|
||||
public | lineitem | lineitem_partkey_desc_index | | CREATE INDEX lineitem_partkey_desc_index ON lineitem USING btree (l_partkey DESC)
|
||||
public | lineitem | lineitem_pkey | | CREATE UNIQUE INDEX lineitem_pkey ON lineitem USING btree (l_orderkey, l_linenumber)
|
||||
public | lineitem | lineitem_time_index | | CREATE INDEX lineitem_time_index ON lineitem USING btree (l_shipdate)
|
||||
(6 rows)
|
||||
|
||||
-- Verify that we error out on unsupported statement types
|
||||
CREATE INDEX CONCURRENTLY try_index ON lineitem (l_orderkey);
|
||||
ERROR: creating indexes concurrently on distributed tables is currently unsupported
|
||||
CREATE UNIQUE INDEX try_index ON lineitem (l_orderkey);
|
||||
ERROR: creating unique indexes on distributed tables is currently unsupported
|
||||
CREATE INDEX try_index ON lineitem (l_orderkey) TABLESPACE newtablespace;
|
||||
ERROR: specifying tablespaces with CREATE INDEX statements is currently unsupported
|
||||
-- Verify that we error out in case of postgres errors on supported statement
|
||||
-- types.
|
||||
CREATE INDEX lineitem_orderkey_index ON lineitem (l_orderkey);
|
||||
WARNING: could not receive query results from localhost:57638
|
||||
DETAIL: Client error: relation "lineitem_orderkey_index_102014" already exists
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
CREATE INDEX try_index ON lineitem USING gist (l_orderkey);
|
||||
WARNING: could not receive query results from localhost:57638
|
||||
DETAIL: Client error: data type bigint has no default operator class for access method "gist"
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
CREATE INDEX try_index ON lineitem (non_existent_column);
|
||||
WARNING: could not receive query results from localhost:57638
|
||||
DETAIL: Client error: column "non_existent_column" does not exist
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
-- Verify that none of failed indexes got created on the master node
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
schemaname | tablename | indexname | tablespace | indexdef
|
||||
------------+-----------+------------------------------+------------+------------------------------------------------------------------------------------------------------------------
|
||||
public | lineitem | lineitem_orderkey_hash_index | | CREATE INDEX lineitem_orderkey_hash_index ON lineitem USING hash (l_partkey)
|
||||
public | lineitem | lineitem_orderkey_index | | CREATE INDEX lineitem_orderkey_index ON lineitem USING btree (l_orderkey)
|
||||
public | lineitem | lineitem_partial_index | | CREATE INDEX lineitem_partial_index ON lineitem USING btree (l_shipdate) WHERE (l_shipdate < '01-01-1995'::date)
|
||||
public | lineitem | lineitem_partkey_desc_index | | CREATE INDEX lineitem_partkey_desc_index ON lineitem USING btree (l_partkey DESC)
|
||||
public | lineitem | lineitem_pkey | | CREATE UNIQUE INDEX lineitem_pkey ON lineitem USING btree (l_orderkey, l_linenumber)
|
||||
public | lineitem | lineitem_time_index | | CREATE INDEX lineitem_time_index ON lineitem USING btree (l_shipdate)
|
||||
(6 rows)
|
||||
|
||||
--
|
||||
-- DROP INDEX
|
||||
--
|
||||
-- Verify that we can't drop multiple indexes in a single command
|
||||
DROP INDEX lineitem_orderkey_index, lineitem_partial_index;
|
||||
ERROR: cannot drop multiple distributed objects in a single command
|
||||
HINT: Try dropping each object in a separate DROP command.
|
||||
-- Verify that we error out on the CONCURRENTLY clause
|
||||
DROP INDEX CONCURRENTLY lineitem_orderkey_index;
|
||||
ERROR: dropping indexes concurrently on distributed tables is currently unsupported
|
||||
-- Verify that we can succesfully drop indexes
|
||||
DROP INDEX lineitem_orderkey_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
DROP INDEX lineitem_partkey_desc_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
DROP INDEX lineitem_partial_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
-- Verify that we handle if exists statements correctly
|
||||
DROP INDEX non_existent_index;
|
||||
ERROR: index "non_existent_index" does not exist
|
||||
DROP INDEX IF EXISTS non_existent_index;
|
||||
NOTICE: index "non_existent_index" does not exist, skipping
|
||||
DROP INDEX IF EXISTS lineitem_orderkey_hash_index;
|
||||
DEBUG: applied command on shard 102014 on node localhost:57638
|
||||
DEBUG: applied command on shard 102014 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57637
|
||||
DEBUG: applied command on shard 102013 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57638
|
||||
DEBUG: applied command on shard 102012 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57637
|
||||
DEBUG: applied command on shard 102011 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57638
|
||||
DEBUG: applied command on shard 102010 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57637
|
||||
DEBUG: applied command on shard 102009 on node localhost:57638
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
DROP INDEX lineitem_orderkey_hash_index;
|
||||
ERROR: index "lineitem_orderkey_hash_index" does not exist
|
||||
-- Verify that all the indexes are also dropped from the master node
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
schemaname | tablename | indexname | tablespace | indexdef
|
||||
------------+-----------+---------------------+------------+--------------------------------------------------------------------------------------
|
||||
public | lineitem | lineitem_pkey | | CREATE UNIQUE INDEX lineitem_pkey ON lineitem USING btree (l_orderkey, l_linenumber)
|
||||
public | lineitem | lineitem_time_index | | CREATE INDEX lineitem_time_index ON lineitem USING btree (l_shipdate)
|
||||
(2 rows)
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
--
|
||||
-- MULTI_MASTER_PROTOCOL
|
||||
--
|
||||
-- Tests that check the metadata returned by the master node.
|
||||
SELECT part_storage_type, part_key, part_replica_count, part_max_size,
|
||||
part_placement_policy FROM master_get_table_metadata('lineitem');
|
||||
part_storage_type | part_key | part_replica_count | part_max_size | part_placement_policy
|
||||
-------------------+------------+--------------------+---------------+-----------------------
|
||||
t | l_orderkey | 2 | 307200 | 2
|
||||
(1 row)
|
||||
|
||||
SELECT * FROM master_get_table_ddl_events('lineitem');
|
||||
master_get_table_ddl_events
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
CREATE TABLE lineitem (l_orderkey bigint NOT NULL, l_partkey integer NOT NULL, l_suppkey integer NOT NULL, l_linenumber integer NOT NULL, l_quantity numeric(15,2) NOT NULL, l_extendedprice numeric(15,2) NOT NULL, l_discount numeric(15,2) NOT NULL, l_tax numeric(15,2) NOT NULL, l_returnflag character(1) NOT NULL, l_linestatus character(1) NOT NULL, l_shipdate date NOT NULL, l_commitdate date NOT NULL, l_receiptdate date NOT NULL, l_shipinstruct character(25) NOT NULL, l_shipmode character(10) NOT NULL, l_comment character varying(44) NOT NULL)
|
||||
CREATE INDEX lineitem_time_index ON lineitem USING btree (l_shipdate)
|
||||
ALTER TABLE ONLY lineitem ADD CONSTRAINT lineitem_pkey PRIMARY KEY (l_orderkey, l_linenumber)
|
||||
(3 rows)
|
||||
|
||||
SELECT * FROM master_get_new_shardid();
|
||||
master_get_new_shardid
|
||||
------------------------
|
||||
102008
|
||||
(1 row)
|
||||
|
||||
SELECT * FROM master_get_local_first_candidate_nodes();
|
||||
node_name | node_port
|
||||
-----------+-----------
|
||||
localhost | 57638
|
||||
localhost | 57637
|
||||
(2 rows)
|
||||
|
||||
SELECT * FROM master_get_round_robin_candidate_nodes(1);
|
||||
node_name | node_port
|
||||
-----------+-----------
|
||||
localhost | 57638
|
||||
localhost | 57637
|
||||
(2 rows)
|
||||
|
||||
SELECT * FROM master_get_round_robin_candidate_nodes(2);
|
||||
node_name | node_port
|
||||
-----------+-----------
|
||||
localhost | 57637
|
||||
localhost | 57638
|
||||
(2 rows)
|
||||
|
||||
SELECT * FROM master_get_active_worker_nodes();
|
||||
node_name | node_port
|
||||
-----------+-----------
|
||||
localhost | 57638
|
||||
localhost | 57637
|
||||
(2 rows)
|
||||
|
|
@ -2,10 +2,9 @@
|
|||
-- MULTI_ALTER_TABLE_STATEMENTS
|
||||
--
|
||||
|
||||
-- Check that we can run ALTER TABLE statements on distributed tables. We
|
||||
-- increase the logging verbosity to verify that commands are propagated to
|
||||
-- all worker shards. We also set the shardid sequence here so that the shardids
|
||||
-- in this test aren't affected by changes to the previous tests.
|
||||
-- Check that we can run ALTER TABLE statements on distributed tables.
|
||||
-- We set the shardid sequence here so that the shardids in this test
|
||||
-- aren't affected by changes to the previous tests.
|
||||
|
||||
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 103000;
|
||||
CREATE TABLE lineitem_alter (
|
||||
|
@ -29,8 +28,6 @@ CREATE TABLE lineitem_alter (
|
|||
SELECT master_create_distributed_table('lineitem_alter', 'l_orderkey', 'append');
|
||||
\STAGE lineitem_alter FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
|
||||
SET client_min_messages TO DEBUG2;
|
||||
|
||||
-- Verify that we can add columns
|
||||
|
||||
ALTER TABLE lineitem_alter ADD COLUMN float_column FLOAT;
|
||||
|
@ -39,6 +36,15 @@ ALTER TABLE lineitem_alter ADD COLUMN int_column1 INTEGER DEFAULT 1;
|
|||
ALTER TABLE lineitem_alter ADD COLUMN int_column2 INTEGER DEFAULT 2;
|
||||
ALTER TABLE lineitem_alter ADD COLUMN null_column INTEGER;
|
||||
|
||||
-- show changed schema on one worker
|
||||
\c - - - :worker_1_port
|
||||
SELECT attname, atttypid::regtype
|
||||
FROM
|
||||
(SELECT oid FROM pg_class WHERE relname LIKE 'lineitem_alter_%' ORDER BY relname LIMIT 1) pc
|
||||
JOIN pg_attribute ON (pc.oid = pg_attribute.attrelid)
|
||||
ORDER BY attnum;
|
||||
\c - - - :master_port
|
||||
|
||||
\d lineitem_alter
|
||||
SELECT float_column, count(*) FROM lineitem_alter GROUP BY float_column;
|
||||
SELECT int_column1, count(*) FROM lineitem_alter GROUP BY int_column1;
|
||||
|
@ -147,7 +153,19 @@ ALTER TABLE IF EXISTS lineitem_alter RENAME l_orderkey TO l_orderkey_renamed;
|
|||
-- node
|
||||
\d lineitem_alter
|
||||
|
||||
-- Check that the schema on the worker still looks reasonable
|
||||
\c - - - :worker_1_port
|
||||
SELECT attname, atttypid::regtype
|
||||
FROM
|
||||
(SELECT oid FROM pg_class WHERE relname LIKE 'lineitem_alter_%' ORDER BY relname LIMIT 1) pc
|
||||
JOIN pg_attribute ON (pc.oid = pg_attribute.attrelid)
|
||||
ORDER BY attnum;
|
||||
\c - - - :master_port
|
||||
|
||||
-- Cleanup the table and its shards
|
||||
RESET client_min_messages;
|
||||
SELECT master_apply_delete_command('DELETE FROM lineitem_alter');
|
||||
DROP TABLE lineitem_alter;
|
||||
-- check that nothing's left over on workers
|
||||
\c - - - :worker_1_port
|
||||
SELECT relname FROM pg_class WHERE relname LIKE 'lineitem_alter%';
|
||||
\c - - - :master_port
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
--
|
||||
-- MULTI_ALTER_TABLE_STATEMENTS
|
||||
--
|
||||
-- Check that we can run ALTER TABLE statements on distributed tables. We
|
||||
-- increase the logging verbosity to verify that commands are propagated to
|
||||
-- all worker shards. We also set the shardid sequence here so that the shardids
|
||||
-- in this test aren't affected by changes to the previous tests.
|
||||
-- Check that we can run ALTER TABLE statements on distributed tables.
|
||||
-- We set the shardid sequence here so that the shardids in this test
|
||||
-- aren't affected by changes to the previous tests.
|
||||
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 103000;
|
||||
CREATE TABLE lineitem_alter (
|
||||
l_orderkey bigint not null,
|
||||
|
@ -31,49 +30,51 @@ SELECT master_create_distributed_table('lineitem_alter', 'l_orderkey', 'append')
|
|||
(1 row)
|
||||
|
||||
\STAGE lineitem_alter FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
SET client_min_messages TO DEBUG2;
|
||||
-- Verify that we can add columns
|
||||
ALTER TABLE lineitem_alter ADD COLUMN float_column FLOAT;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter ADD COLUMN date_column DATE;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column1 INTEGER DEFAULT 1;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675[]
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column2 INTEGER DEFAULT 2;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675[]
|
||||
ALTER TABLE lineitem_alter ADD COLUMN null_column INTEGER;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
-- show changed schema on one worker
|
||||
\c - - - :worker_1_port
|
||||
SELECT attname, atttypid::regtype
|
||||
FROM
|
||||
(SELECT oid FROM pg_class WHERE relname LIKE 'lineitem_alter_%' ORDER BY relname LIMIT 1) pc
|
||||
JOIN pg_attribute ON (pc.oid = pg_attribute.attrelid)
|
||||
ORDER BY attnum;
|
||||
attname | atttypid
|
||||
-----------------+-------------------
|
||||
tableoid | oid
|
||||
cmax | cid
|
||||
xmax | xid
|
||||
cmin | cid
|
||||
xmin | xid
|
||||
ctid | tid
|
||||
l_orderkey | bigint
|
||||
l_partkey | integer
|
||||
l_suppkey | integer
|
||||
l_linenumber | integer
|
||||
l_quantity | numeric
|
||||
l_extendedprice | numeric
|
||||
l_discount | numeric
|
||||
l_tax | numeric
|
||||
l_returnflag | character
|
||||
l_linestatus | character
|
||||
l_shipdate | date
|
||||
l_commitdate | date
|
||||
l_receiptdate | date
|
||||
l_shipinstruct | character
|
||||
l_shipmode | character
|
||||
l_comment | character varying
|
||||
float_column | double precision
|
||||
date_column | date
|
||||
int_column1 | integer
|
||||
int_column2 | integer
|
||||
null_column | integer
|
||||
(27 rows)
|
||||
|
||||
\c - - - :master_port
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -114,55 +115,9 @@ SELECT int_column1, count(*) FROM lineitem_alter GROUP BY int_column1;
|
|||
|
||||
-- Verify that SET|DROP DEFAULT works
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN float_column SET DEFAULT 1;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column1 DROP DEFAULT;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
-- \stage to verify that default values take effect
|
||||
\STAGE lineitem_alter (l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment) FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_metadata($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_ddl_events($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
SELECT float_column, count(*) FROM lineitem_alter GROUP BY float_column;
|
||||
float_column | count
|
||||
--------------+-------
|
||||
|
@ -179,19 +134,6 @@ SELECT int_column1, count(*) FROM lineitem_alter GROUP BY int_column1;
|
|||
|
||||
-- Verify that SET NOT NULL works
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 SET NOT NULL;
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: verifying table "lineitem_alter"
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -220,28 +162,8 @@ DEBUG: verifying table "lineitem_alter"
|
|||
|
||||
-- Drop default so that NULLs will be inserted for this column
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 DROP DEFAULT;
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
-- \stage should fail because it will try to insert NULLs for a NOT NULL column
|
||||
\STAGE lineitem_alter (l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment) FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_metadata($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_ddl_events($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
ERROR: null value in column "int_column2" violates not-null constraint
|
||||
DETAIL: Failing row contains (1, 155190, 7706, 1, 17.00, 21168.23, 0.04, 0.02, N, O, 03-13-1996, 02-12-1996, 03-22-1996, DELIVER IN PERSON , TRUCK , egular courts above the, 1, null, null, null, null).
|
||||
CONTEXT: COPY lineitem_alter_103006, line 1: "1|155190|7706|1|17|21168.23|0.04|0.02|N|O|1996-03-13|1996-02-12|1996-03-22|DELIVER IN PERSON|TRUCK|e..."
|
||||
|
@ -251,18 +173,6 @@ CONTEXT: COPY lineitem_alter_103006, line 1: "1|155190|7706|1|17|21168.23|0.04|
|
|||
\stage: failed to replicate shard to enough replicas
|
||||
-- Verify that DROP NOT NULL works
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 DROP NOT NULL;
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -291,40 +201,6 @@ DEBUG: applied command on shard 103000 on node localhost:57637
|
|||
|
||||
-- \stage should succeed now
|
||||
\STAGE lineitem_alter (l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment) FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_metadata($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_ddl_events($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
SELECT count(*) from lineitem_alter;
|
||||
count
|
||||
-------
|
||||
|
@ -340,27 +216,6 @@ SELECT int_column2, pg_typeof(int_column2), count(*) from lineitem_alter GROUP B
|
|||
(2 rows)
|
||||
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 SET DATA TYPE FLOAT;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675[]
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -396,133 +251,21 @@ SELECT int_column2, pg_typeof(int_column2), count(*) from lineitem_alter GROUP B
|
|||
|
||||
-- Verify that DROP COLUMN works
|
||||
ALTER TABLE lineitem_alter DROP COLUMN int_column1;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter DROP COLUMN float_column;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: drop auto-cascades to default for table lineitem_alter column float_column
|
||||
ALTER TABLE lineitem_alter DROP COLUMN date_column;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
-- Verify that IF EXISTS works as expected
|
||||
ALTER TABLE non_existent_table ADD COLUMN new_column INTEGER;
|
||||
ERROR: relation "non_existent_table" does not exist
|
||||
ALTER TABLE IF EXISTS non_existent_table ADD COLUMN new_column INTEGER;
|
||||
NOTICE: relation "non_existent_table" does not exist, skipping
|
||||
ALTER TABLE IF EXISTS lineitem_alter ALTER COLUMN int_column2 SET DATA TYPE INTEGER;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675
|
||||
DEBUG: drop auto-cascades to type pg_temp_17675[]
|
||||
ALTER TABLE lineitem_alter DROP COLUMN non_existent_column;
|
||||
WARNING: could not receive query results from localhost:57637
|
||||
DETAIL: Client error: column "non_existent_column" of relation "lineitem_alter_103009" does not exist
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
ALTER TABLE lineitem_alter DROP COLUMN IF EXISTS non_existent_column;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
NOTICE: column "non_existent_column" of relation "lineitem_alter" does not exist, skipping
|
||||
ALTER TABLE lineitem_alter DROP COLUMN IF EXISTS int_column2;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -548,24 +291,6 @@ DEBUG: applied command on shard 103000 on node localhost:57637
|
|||
-- Verify that we can execute commands with multiple subcommands
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column1 INTEGER,
|
||||
ADD COLUMN int_column2 INTEGER;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -595,24 +320,6 @@ ALTER TABLE lineitem_alter ADD COLUMN int_column3 INTEGER,
|
|||
ERROR: alter table command is currently supported
|
||||
DETAIL: Only ADD|DROP COLUMN, SET|DROP NOT NULL, SET|DROP DEFAULT and TYPE subcommands are supported.
|
||||
ALTER TABLE lineitem_alter DROP COLUMN int_column1, DROP COLUMN int_column2;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
|
@ -704,8 +411,48 @@ ERROR: renaming distributed tables or their objects is currently unsupported
|
|||
l_comment | character varying(44) | not null
|
||||
null_column | integer |
|
||||
|
||||
-- Check that the schema on the worker still looks reasonable
|
||||
\c - - - :worker_1_port
|
||||
SELECT attname, atttypid::regtype
|
||||
FROM
|
||||
(SELECT oid FROM pg_class WHERE relname LIKE 'lineitem_alter_%' ORDER BY relname LIMIT 1) pc
|
||||
JOIN pg_attribute ON (pc.oid = pg_attribute.attrelid)
|
||||
ORDER BY attnum;
|
||||
attname | atttypid
|
||||
-------------------------------+-------------------
|
||||
tableoid | oid
|
||||
cmax | cid
|
||||
xmax | xid
|
||||
cmin | cid
|
||||
xmin | xid
|
||||
ctid | tid
|
||||
l_orderkey | bigint
|
||||
l_partkey | integer
|
||||
l_suppkey | integer
|
||||
l_linenumber | integer
|
||||
l_quantity | numeric
|
||||
l_extendedprice | numeric
|
||||
l_discount | numeric
|
||||
l_tax | numeric
|
||||
l_returnflag | character
|
||||
l_linestatus | character
|
||||
l_shipdate | date
|
||||
l_commitdate | date
|
||||
l_receiptdate | date
|
||||
l_shipinstruct | character
|
||||
l_shipmode | character
|
||||
l_comment | character varying
|
||||
........pg.dropped.17........ | -
|
||||
........pg.dropped.18........ | -
|
||||
........pg.dropped.19........ | -
|
||||
........pg.dropped.20........ | -
|
||||
null_column | integer
|
||||
........pg.dropped.22........ | -
|
||||
........pg.dropped.23........ | -
|
||||
(29 rows)
|
||||
|
||||
\c - - - :master_port
|
||||
-- Cleanup the table and its shards
|
||||
RESET client_min_messages;
|
||||
SELECT master_apply_delete_command('DELETE FROM lineitem_alter');
|
||||
master_apply_delete_command
|
||||
-----------------------------
|
||||
|
@ -713,3 +460,11 @@ SELECT master_apply_delete_command('DELETE FROM lineitem_alter');
|
|||
(1 row)
|
||||
|
||||
DROP TABLE lineitem_alter;
|
||||
-- check that nothing's left over on workers
|
||||
\c - - - :worker_1_port
|
||||
SELECT relname FROM pg_class WHERE relname LIKE 'lineitem_alter%';
|
||||
relname
|
||||
---------
|
||||
(0 rows)
|
||||
|
||||
\c - - - :master_port
|
||||
|
|
|
@ -1,726 +0,0 @@
|
|||
--
|
||||
-- MULTI_ALTER_TABLE_STATEMENTS
|
||||
--
|
||||
-- Check that we can run ALTER TABLE statements on distributed tables. We
|
||||
-- increase the logging verbosity to verify that commands are propagated to
|
||||
-- all worker shards. We also set the shardid sequence here so that the shardids
|
||||
-- in this test aren't affected by changes to the previous tests.
|
||||
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 103000;
|
||||
CREATE TABLE lineitem_alter (
|
||||
l_orderkey bigint not null,
|
||||
l_partkey integer not null,
|
||||
l_suppkey integer not null,
|
||||
l_linenumber integer not null,
|
||||
l_quantity decimal(15, 2) not null,
|
||||
l_extendedprice decimal(15, 2) not null,
|
||||
l_discount decimal(15, 2) not null,
|
||||
l_tax decimal(15, 2) not null,
|
||||
l_returnflag char(1) not null,
|
||||
l_linestatus char(1) not null,
|
||||
l_shipdate date not null,
|
||||
l_commitdate date not null,
|
||||
l_receiptdate date not null,
|
||||
l_shipinstruct char(25) not null,
|
||||
l_shipmode char(10) not null,
|
||||
l_comment varchar(44) not null
|
||||
);
|
||||
SELECT master_create_distributed_table('lineitem_alter', 'l_orderkey', 'append');
|
||||
master_create_distributed_table
|
||||
---------------------------------
|
||||
|
||||
(1 row)
|
||||
|
||||
\STAGE lineitem_alter FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
SET client_min_messages TO DEBUG2;
|
||||
-- Verify that we can add columns
|
||||
ALTER TABLE lineitem_alter ADD COLUMN float_column FLOAT;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter ADD COLUMN date_column DATE;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column1 INTEGER DEFAULT 1;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerTableRewrite(17676)
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676[]
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column2 INTEGER DEFAULT 2;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerTableRewrite(17676)
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676[]
|
||||
ALTER TABLE lineitem_alter ADD COLUMN null_column INTEGER;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
float_column | double precision |
|
||||
date_column | date |
|
||||
int_column1 | integer | default 1
|
||||
int_column2 | integer | default 2
|
||||
null_column | integer |
|
||||
|
||||
SELECT float_column, count(*) FROM lineitem_alter GROUP BY float_column;
|
||||
float_column | count
|
||||
--------------+-------
|
||||
| 6000
|
||||
(1 row)
|
||||
|
||||
SELECT int_column1, count(*) FROM lineitem_alter GROUP BY int_column1;
|
||||
int_column1 | count
|
||||
-------------+-------
|
||||
1 | 6000
|
||||
(1 row)
|
||||
|
||||
-- Verify that SET|DROP DEFAULT works
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN float_column SET DEFAULT 1;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column1 DROP DEFAULT;
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
-- \stage to verify that default values take effect
|
||||
\STAGE lineitem_alter (l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment) FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_metadata($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_ddl_events($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
SELECT float_column, count(*) FROM lineitem_alter GROUP BY float_column;
|
||||
float_column | count
|
||||
--------------+-------
|
||||
| 6000
|
||||
1 | 6000
|
||||
(2 rows)
|
||||
|
||||
SELECT int_column1, count(*) FROM lineitem_alter GROUP BY int_column1;
|
||||
int_column1 | count
|
||||
-------------+-------
|
||||
| 6000
|
||||
1 | 6000
|
||||
(2 rows)
|
||||
|
||||
-- Verify that SET NOT NULL works
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 SET NOT NULL;
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: verifying table "lineitem_alter"
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+--------------------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
float_column | double precision | default 1
|
||||
date_column | date |
|
||||
int_column1 | integer |
|
||||
int_column2 | integer | not null default 2
|
||||
null_column | integer |
|
||||
|
||||
-- Drop default so that NULLs will be inserted for this column
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 DROP DEFAULT;
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
-- \stage should fail because it will try to insert NULLs for a NOT NULL column
|
||||
\STAGE lineitem_alter (l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment) FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_metadata($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_ddl_events($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
ERROR: null value in column "int_column2" violates not-null constraint
|
||||
DETAIL: Failing row contains (1, 155190, 7706, 1, 17.00, 21168.23, 0.04, 0.02, N, O, 03-13-1996, 02-12-1996, 03-22-1996, DELIVER IN PERSON , TRUCK , egular courts above the, 1, null, null, null, null).
|
||||
CONTEXT: COPY lineitem_alter_103006, line 1: "1|155190|7706|1|17|21168.23|0.04|0.02|N|O|1996-03-13|1996-02-12|1996-03-22|DELIVER IN PERSON|TRUCK|e..."
|
||||
ERROR: null value in column "int_column2" violates not-null constraint
|
||||
DETAIL: Failing row contains (1, 155190, 7706, 1, 17.00, 21168.23, 0.04, 0.02, N, O, 03-13-1996, 02-12-1996, 03-22-1996, DELIVER IN PERSON , TRUCK , egular courts above the, 1, null, null, null, null).
|
||||
CONTEXT: COPY lineitem_alter_103006, line 1: "1|155190|7706|1|17|21168.23|0.04|0.02|N|O|1996-03-13|1996-02-12|1996-03-22|DELIVER IN PERSON|TRUCK|e..."
|
||||
\stage: failed to replicate shard to enough replicas
|
||||
-- Verify that DROP NOT NULL works
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 DROP NOT NULL;
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
float_column | double precision | default 1
|
||||
date_column | date |
|
||||
int_column1 | integer |
|
||||
int_column2 | integer |
|
||||
null_column | integer |
|
||||
|
||||
-- \stage should succeed now
|
||||
\STAGE lineitem_alter (l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment) FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|'
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_metadata($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_table_ddl_events($1::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_new_shardid()
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: SELECT * FROM master_get_round_robin_candidate_nodes($1::int8)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard (logicalrelid, shardid, shardstorage, shardminvalue, shardmaxvalue) VALUES ($1::oid, $2::int8, $3::char, $4::text, $5::text)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
DEBUG: parse <unnamed>: INSERT INTO pg_dist_shard_placement (shardid, shardstate, shardlength, nodename, nodeport) VALUES ($1::int8, $2::int4, $3::int8, $4::text, $5::int4)
|
||||
DEBUG: bind <unnamed> to <unnamed>
|
||||
SELECT count(*) from lineitem_alter;
|
||||
count
|
||||
-------
|
||||
18000
|
||||
(1 row)
|
||||
|
||||
-- Verify that SET DATA TYPE works
|
||||
SELECT int_column2, pg_typeof(int_column2), count(*) from lineitem_alter GROUP BY int_column2;
|
||||
int_column2 | pg_typeof | count
|
||||
-------------+-----------+-------
|
||||
| integer | 6000
|
||||
2 | integer | 12000
|
||||
(2 rows)
|
||||
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN int_column2 SET DATA TYPE FLOAT;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerTableRewrite(17676)
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676[]
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
float_column | double precision | default 1
|
||||
date_column | date |
|
||||
int_column1 | integer |
|
||||
int_column2 | double precision |
|
||||
null_column | integer |
|
||||
|
||||
SELECT int_column2, pg_typeof(int_column2), count(*) from lineitem_alter GROUP BY int_column2;
|
||||
int_column2 | pg_typeof | count
|
||||
-------------+------------------+-------
|
||||
| double precision | 6000
|
||||
2 | double precision | 12000
|
||||
(2 rows)
|
||||
|
||||
-- Verify that DROP COLUMN works
|
||||
ALTER TABLE lineitem_alter DROP COLUMN int_column1;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
ALTER TABLE lineitem_alter DROP COLUMN float_column;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: drop auto-cascades to default for table lineitem_alter column float_column
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
ALTER TABLE lineitem_alter DROP COLUMN date_column;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
-- Verify that IF EXISTS works as expected
|
||||
ALTER TABLE non_existent_table ADD COLUMN new_column INTEGER;
|
||||
ERROR: relation "non_existent_table" does not exist
|
||||
ALTER TABLE IF EXISTS non_existent_table ADD COLUMN new_column INTEGER;
|
||||
NOTICE: relation "non_existent_table" does not exist, skipping
|
||||
ALTER TABLE IF EXISTS lineitem_alter ALTER COLUMN int_column2 SET DATA TYPE INTEGER;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerTableRewrite(17676)
|
||||
DEBUG: rewriting table "lineitem_alter"
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676
|
||||
DEBUG: drop auto-cascades to type pg_temp_17676[]
|
||||
ALTER TABLE lineitem_alter DROP COLUMN non_existent_column;
|
||||
WARNING: could not receive query results from localhost:57637
|
||||
DETAIL: Client error: column "non_existent_column" of relation "lineitem_alter_103009" does not exist
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
ALTER TABLE lineitem_alter DROP COLUMN IF EXISTS non_existent_column;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
NOTICE: column "non_existent_column" of relation "lineitem_alter" does not exist, skipping
|
||||
ALTER TABLE lineitem_alter DROP COLUMN IF EXISTS int_column2;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
null_column | integer |
|
||||
|
||||
-- Verify that we can execute commands with multiple subcommands
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column1 INTEGER,
|
||||
ADD COLUMN int_column2 INTEGER;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
null_column | integer |
|
||||
int_column1 | integer |
|
||||
int_column2 | integer |
|
||||
|
||||
ALTER TABLE lineitem_alter ADD COLUMN int_column3 INTEGER,
|
||||
ALTER COLUMN int_column1 SET STATISTICS 10;
|
||||
ERROR: alter table command is currently supported
|
||||
DETAIL: Only ADD|DROP COLUMN, SET|DROP NOT NULL, SET|DROP DEFAULT and TYPE subcommands are supported.
|
||||
ALTER TABLE lineitem_alter DROP COLUMN int_column1, DROP COLUMN int_column2;
|
||||
DEBUG: applied command on shard 103009 on node localhost:57637
|
||||
DEBUG: applied command on shard 103009 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57638
|
||||
DEBUG: applied command on shard 103008 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57637
|
||||
DEBUG: applied command on shard 103007 on node localhost:57638
|
||||
DEBUG: applied command on shard 103005 on node localhost:57637
|
||||
DEBUG: applied command on shard 103005 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57638
|
||||
DEBUG: applied command on shard 103004 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57637
|
||||
DEBUG: applied command on shard 103003 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57638
|
||||
DEBUG: applied command on shard 103002 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57637
|
||||
DEBUG: applied command on shard 103001 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57638
|
||||
DEBUG: applied command on shard 103000 on node localhost:57637
|
||||
DEBUG: EventTriggerInvoke 16541
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
null_column | integer |
|
||||
|
||||
-- Verify that we cannot execute alter commands on the distribution column
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN l_orderkey DROP NOT NULL;
|
||||
ERROR: cannot execute ALTER TABLE command involving partition column
|
||||
ALTER TABLE lineitem_alter DROP COLUMN l_orderkey;
|
||||
ERROR: cannot execute ALTER TABLE command involving partition column
|
||||
-- Verify that we error out on unsupported statement types
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN l_orderkey SET STATISTICS 100;
|
||||
ERROR: alter table command is currently supported
|
||||
DETAIL: Only ADD|DROP COLUMN, SET|DROP NOT NULL, SET|DROP DEFAULT and TYPE subcommands are supported.
|
||||
ALTER TABLE lineitem_alter DROP CONSTRAINT IF EXISTS non_existent_contraint;
|
||||
ERROR: alter table command is currently supported
|
||||
DETAIL: Only ADD|DROP COLUMN, SET|DROP NOT NULL, SET|DROP DEFAULT and TYPE subcommands are supported.
|
||||
ALTER TABLE lineitem_alter SET WITHOUT OIDS;
|
||||
ERROR: alter table command is currently supported
|
||||
DETAIL: Only ADD|DROP COLUMN, SET|DROP NOT NULL, SET|DROP DEFAULT and TYPE subcommands are supported.
|
||||
-- Verify that we error out in case of postgres errors on supported statement
|
||||
-- types
|
||||
ALTER TABLE lineitem_alter ADD COLUMN new_column non_existent_type;
|
||||
WARNING: could not receive query results from localhost:57637
|
||||
DETAIL: Client error: type "non_existent_type" does not exist
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN null_column SET NOT NULL;
|
||||
WARNING: could not receive query results from localhost:57637
|
||||
DETAIL: Client error: column "null_column" contains null values
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
ALTER TABLE lineitem_alter ALTER COLUMN l_partkey SET DEFAULT 'a';
|
||||
WARNING: could not receive query results from localhost:57637
|
||||
DETAIL: Client error: invalid input syntax for integer: "a"
|
||||
ERROR: could not execute DDL command on worker node shards
|
||||
-- Verify that we error out on statements involving RENAME
|
||||
ALTER TABLE lineitem_alter RENAME TO lineitem_renamed;
|
||||
ERROR: renaming distributed tables or their objects is currently unsupported
|
||||
ALTER TABLE lineitem_alter RENAME COLUMN l_orderkey TO l_orderkey_renamed;
|
||||
ERROR: renaming distributed tables or their objects is currently unsupported
|
||||
ALTER TABLE lineitem_alter RENAME CONSTRAINT constraint_a TO constraint_b;
|
||||
ERROR: renaming distributed tables or their objects is currently unsupported
|
||||
-- Verify that IF EXISTS works as expected with RENAME statements
|
||||
ALTER TABLE non_existent_table RENAME TO non_existent_table_renamed;
|
||||
ERROR: relation "non_existent_table" does not exist
|
||||
ALTER TABLE IF EXISTS non_existent_table RENAME TO non_existent_table_renamed;
|
||||
NOTICE: relation "non_existent_table" does not exist, skipping
|
||||
ALTER TABLE IF EXISTS non_existent_table RENAME COLUMN column1 TO column2;
|
||||
NOTICE: relation "non_existent_table" does not exist, skipping
|
||||
ALTER TABLE IF EXISTS lineitem_alter RENAME l_orderkey TO l_orderkey_renamed;
|
||||
ERROR: renaming distributed tables or their objects is currently unsupported
|
||||
-- Verify that none of the failed alter table commands took effect on the master
|
||||
-- node
|
||||
\d lineitem_alter
|
||||
Table "public.lineitem_alter"
|
||||
Column | Type | Modifiers
|
||||
-----------------+-----------------------+-----------
|
||||
l_orderkey | bigint | not null
|
||||
l_partkey | integer | not null
|
||||
l_suppkey | integer | not null
|
||||
l_linenumber | integer | not null
|
||||
l_quantity | numeric(15,2) | not null
|
||||
l_extendedprice | numeric(15,2) | not null
|
||||
l_discount | numeric(15,2) | not null
|
||||
l_tax | numeric(15,2) | not null
|
||||
l_returnflag | character(1) | not null
|
||||
l_linestatus | character(1) | not null
|
||||
l_shipdate | date | not null
|
||||
l_commitdate | date | not null
|
||||
l_receiptdate | date | not null
|
||||
l_shipinstruct | character(25) | not null
|
||||
l_shipmode | character(10) | not null
|
||||
l_comment | character varying(44) | not null
|
||||
null_column | integer |
|
||||
|
||||
-- Cleanup the table and its shards
|
||||
RESET client_min_messages;
|
||||
SELECT master_apply_delete_command('DELETE FROM lineitem_alter');
|
||||
master_apply_delete_command
|
||||
-----------------------------
|
||||
9
|
||||
(1 row)
|
||||
|
||||
DROP TABLE lineitem_alter;
|
|
@ -3,10 +3,7 @@
|
|||
--
|
||||
|
||||
-- Check that we can run CREATE INDEX and DROP INDEX statements on distributed
|
||||
-- tables. We increase the logging verbosity to verify that commands are
|
||||
-- propagated to all worker shards.
|
||||
|
||||
SET client_min_messages TO DEBUG2;
|
||||
-- tables.
|
||||
|
||||
--
|
||||
-- CREATE INDEX
|
||||
|
@ -21,10 +18,15 @@ CREATE INDEX lineitem_partkey_desc_index ON lineitem (l_partkey DESC);
|
|||
CREATE INDEX lineitem_partial_index ON lineitem (l_shipdate)
|
||||
WHERE l_shipdate < '1995-01-01';
|
||||
|
||||
SET client_min_messages = ERROR; -- avoid version dependant warning about WAL
|
||||
CREATE INDEX lineitem_orderkey_hash_index ON lineitem USING hash (l_partkey);
|
||||
RESET client_min_messages;
|
||||
|
||||
-- Verify that all indexes got created on the master node
|
||||
-- Verify that all indexes got created on the master node and one of the workers
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
\c - - - :worker_1_port
|
||||
SELECT count(*) FROM pg_indexes WHERE tablename = (SELECT relname FROM pg_class WHERE relname LIKE 'lineitem%' ORDER BY relname LIMIT 1);
|
||||
\c - - - :master_port
|
||||
|
||||
-- Verify that we error out on unsupported statement types
|
||||
|
||||
|
@ -65,6 +67,9 @@ DROP INDEX IF EXISTS non_existent_index;
|
|||
DROP INDEX IF EXISTS lineitem_orderkey_hash_index;
|
||||
DROP INDEX lineitem_orderkey_hash_index;
|
||||
|
||||
-- Verify that all the indexes are also dropped from the master node
|
||||
SELECT * FROM pg_indexes WHERE tablename = 'lineitem' ORDER BY indexname;
|
||||
|
||||
-- Verify that all the indexes are dropped from the master and one worker node.
|
||||
-- As there's a primary key, so exclude those from this check.
|
||||
SELECT indrelid::regclass, indexrelid::regclass FROM pg_index WHERE indrelid = (SELECT relname FROM pg_class WHERE relname LIKE 'lineitem%' ORDER BY relname LIMIT 1)::regclass AND NOT indisprimary AND indexrelid::regclass::text NOT LIKE 'lineitem_time_index%';
|
||||
\c - - - :worker_1_port
|
||||
SELECT indrelid::regclass, indexrelid::regclass FROM pg_index WHERE indrelid = (SELECT relname FROM pg_class WHERE relname LIKE 'lineitem%' ORDER BY relname LIMIT 1)::regclass AND NOT indisprimary AND indexrelid::regclass::text NOT LIKE 'lineitem_time_index%';;
|
||||
\c - - - :master_port
|
||||
|
|
Loading…
Reference in New Issue