mirror of https://github.com/citusdata/citus.git
247 lines
5.5 KiB
Plaintext
247 lines
5.5 KiB
Plaintext
CREATE SCHEMA "statistics'Test";
|
|
SET search_path TO "statistics'Test";
|
|
SET citus.next_shard_id TO 980000;
|
|
SET client_min_messages TO WARNING;
|
|
SET citus.shard_count TO 32;
|
|
SET citus.shard_replication_factor TO 1;
|
|
-- test create statistics propagation
|
|
CREATE TABLE test_stats (
|
|
a int,
|
|
b int
|
|
);
|
|
SELECT create_distributed_table('test_stats', 'a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE STATISTICS pg_temp.s1 (dependencies) ON a, b FROM test_stats;
|
|
ERROR: "statistics object s1" has dependency on unsupported object "schema pg_temp_xxx"
|
|
CREATE STATISTICS s1 (dependencies) ON a, b FROM test_stats;
|
|
-- test for distributing an already existing statistics
|
|
CREATE TABLE "test'stats2" (
|
|
a int,
|
|
b int
|
|
);
|
|
CREATE STATISTICS s2 (dependencies) ON a, b FROM "test'stats2";
|
|
SELECT create_distributed_table('test''stats2', 'a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- test when stats is on a different schema
|
|
CREATE SCHEMA sc1;
|
|
CREATE TABLE tbl (a int, "B" text);
|
|
SELECT create_distributed_table ('tbl', 'a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE STATISTICS sc1.st1 ON a, "B" FROM tbl;
|
|
-- test distributing table with already created stats on a new schema
|
|
CREATE TABLE test_stats3 (
|
|
a int,
|
|
b int
|
|
);
|
|
CREATE SCHEMA sc2;
|
|
CREATE STATISTICS sc2."neW'Stat" ON a,b FROM test_stats3;
|
|
SELECT create_distributed_table ('test_stats3','a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- test dropping statistics
|
|
CREATE TABLE test_stats4 (
|
|
a int,
|
|
b int
|
|
);
|
|
SELECT create_reference_table ('test_stats4');
|
|
create_reference_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE STATISTICS s3 ON a,b FROM test_stats3;
|
|
CREATE STATISTICS sc2.s4 ON a,b FROM test_stats3;
|
|
CREATE STATISTICS s5 ON a,b FROM test_stats4;
|
|
-- s6 doesn't exist
|
|
DROP STATISTICS IF EXISTS s3, sc2.s4, s6;
|
|
DROP STATISTICS s5,s6;
|
|
ERROR: statistics object "s6" does not exist
|
|
DROP STATISTICS IF EXISTS s5,s5,s6,s6;
|
|
-- test renaming statistics
|
|
CREATE STATISTICS s6 ON a,b FROM test_stats4;
|
|
DROP STATISTICS s7;
|
|
ERROR: statistics object "s7" does not exist
|
|
ALTER STATISTICS s6 RENAME TO s7;
|
|
ALTER STATISTICS sc1.st1 RENAME TO st1_new;
|
|
-- test altering stats schema
|
|
CREATE SCHEMA test_alter_schema;
|
|
ALTER STATISTICS s7 SET SCHEMA test_alter_schema;
|
|
-- test alter owner
|
|
ALTER STATISTICS sc2."neW'Stat" OWNER TO pg_monitor;
|
|
-- test alter owner before distribution
|
|
CREATE TABLE ownertest(a int, b int);
|
|
CREATE STATISTICS sc1.s9 ON a,b FROM ownertest;
|
|
ALTER STATISTICS sc1.s9 OWNER TO pg_signal_backend;
|
|
SELECT create_distributed_table('ownertest','a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- test invalid column expressions
|
|
CREATE TABLE test (x int, y int);
|
|
SELECT create_distributed_table('test','x');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE STATISTICS stats_xy ON x,y FROM test;
|
|
\c - - - :worker_1_port
|
|
SELECT stxname
|
|
FROM pg_statistic_ext
|
|
WHERE stxnamespace IN (
|
|
SELECT oid
|
|
FROM pg_namespace
|
|
WHERE nspname IN ('public', 'statistics''Test', 'sc1', 'sc2')
|
|
)
|
|
AND stxname SIMILAR TO '%\_\d+'
|
|
ORDER BY stxname ASC;
|
|
stxname
|
|
---------------------------------------------------------------------
|
|
neW'Stat_980096
|
|
neW'Stat_980098
|
|
neW'Stat_980100
|
|
neW'Stat_980102
|
|
neW'Stat_980104
|
|
neW'Stat_980106
|
|
neW'Stat_980108
|
|
neW'Stat_980110
|
|
neW'Stat_980112
|
|
neW'Stat_980114
|
|
neW'Stat_980116
|
|
neW'Stat_980118
|
|
neW'Stat_980120
|
|
neW'Stat_980122
|
|
neW'Stat_980124
|
|
neW'Stat_980126
|
|
s1_980000
|
|
s1_980002
|
|
s1_980004
|
|
s1_980006
|
|
s1_980008
|
|
s1_980010
|
|
s1_980012
|
|
s1_980014
|
|
s1_980016
|
|
s1_980018
|
|
s1_980020
|
|
s1_980022
|
|
s1_980024
|
|
s1_980026
|
|
s1_980028
|
|
s1_980030
|
|
s2_980032
|
|
s2_980034
|
|
s2_980036
|
|
s2_980038
|
|
s2_980040
|
|
s2_980042
|
|
s2_980044
|
|
s2_980046
|
|
s2_980048
|
|
s2_980050
|
|
s2_980052
|
|
s2_980054
|
|
s2_980056
|
|
s2_980058
|
|
s2_980060
|
|
s2_980062
|
|
s9_980129
|
|
s9_980131
|
|
s9_980133
|
|
s9_980135
|
|
s9_980137
|
|
s9_980139
|
|
s9_980141
|
|
s9_980143
|
|
s9_980145
|
|
s9_980147
|
|
s9_980149
|
|
s9_980151
|
|
s9_980153
|
|
s9_980155
|
|
s9_980157
|
|
s9_980159
|
|
st1_new_980064
|
|
st1_new_980066
|
|
st1_new_980068
|
|
st1_new_980070
|
|
st1_new_980072
|
|
st1_new_980074
|
|
st1_new_980076
|
|
st1_new_980078
|
|
st1_new_980080
|
|
st1_new_980082
|
|
st1_new_980084
|
|
st1_new_980086
|
|
st1_new_980088
|
|
st1_new_980090
|
|
st1_new_980092
|
|
st1_new_980094
|
|
stats_xy_980161
|
|
stats_xy_980163
|
|
stats_xy_980165
|
|
stats_xy_980167
|
|
stats_xy_980169
|
|
stats_xy_980171
|
|
stats_xy_980173
|
|
stats_xy_980175
|
|
stats_xy_980177
|
|
stats_xy_980179
|
|
stats_xy_980181
|
|
stats_xy_980183
|
|
stats_xy_980185
|
|
stats_xy_980187
|
|
stats_xy_980189
|
|
stats_xy_980191
|
|
(96 rows)
|
|
|
|
SELECT count(DISTINCT stxnamespace)
|
|
FROM pg_statistic_ext
|
|
WHERE stxnamespace IN (
|
|
SELECT oid
|
|
FROM pg_namespace
|
|
WHERE nspname IN ('public', 'statistics''Test', 'sc1', 'sc2')
|
|
)
|
|
AND stxname SIMILAR TO '%\_\d+';
|
|
count
|
|
---------------------------------------------------------------------
|
|
3
|
|
(1 row)
|
|
|
|
SELECT COUNT(DISTINCT stxowner)
|
|
FROM pg_statistic_ext
|
|
WHERE stxnamespace IN (
|
|
SELECT oid
|
|
FROM pg_namespace
|
|
WHERE nspname IN ('public', 'statistics''Test', 'sc1', 'sc2')
|
|
)
|
|
AND stxname SIMILAR TO '%\_\d+';
|
|
count
|
|
---------------------------------------------------------------------
|
|
3
|
|
(1 row)
|
|
|
|
\c - - - :master_port
|
|
SET client_min_messages TO WARNING;
|
|
DROP SCHEMA "statistics'Test" CASCADE;
|
|
DROP SCHEMA test_alter_schema CASCADE;
|
|
DROP SCHEMA sc1 CASCADE;
|
|
DROP SCHEMA sc2 CASCADE;
|