From 2c0c73884cc5fc2fc7e3f26d146f0a357455aab6 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 5 Nov 2025 09:31:25 +0000 Subject: [PATCH] Add footer off setting to upgrade_columnar test scripts --- .../expected/upgrade_columnar_after.out | 35 +++--------------- .../expected/upgrade_columnar_before.out | 36 +++---------------- .../regress/sql/upgrade_columnar_after.sql | 3 +- .../regress/sql/upgrade_columnar_before.sql | 3 +- 4 files changed, 14 insertions(+), 63 deletions(-) diff --git a/src/test/regress/expected/upgrade_columnar_after.out b/src/test/regress/expected/upgrade_columnar_after.out index 62f9414a7..d9baf67ed 100644 --- a/src/test/regress/expected/upgrade_columnar_after.out +++ b/src/test/regress/expected/upgrade_columnar_after.out @@ -1,4 +1,5 @@ SET search_path TO upgrade_columnar, public; +\pset footer off -- test we retained data SELECT * FROM test_retains_data ORDER BY a; a | b | c | d @@ -6,13 +7,11 @@ SELECT * FROM test_retains_data ORDER BY a; 1 | abc | (1,4) | {1,2,3,4} 2 | pi | (3,192) | {3,1,4,1,5} 3 | earth | (4,22) | {1,2,7,5,6} -(3 rows) SELECT count(*) FROM test_retains_data; count --------------------------------------------------------------------- 3 -(1 row) SELECT a,c FROM test_retains_data ORDER BY a; a | c @@ -20,7 +19,6 @@ SELECT a,c FROM test_retains_data ORDER BY a; 1 | (1,4) 2 | (3,192) 3 | (4,22) -(3 rows) SELECT b,d FROM test_retains_data ORDER BY a; b | d @@ -28,7 +26,6 @@ SELECT b,d FROM test_retains_data ORDER BY a; abc | {1,2,3,4} pi | {3,1,4,1,5} earth | {1,2,7,5,6} -(3 rows) SELECT * FROM test_retains_data ORDER BY a; a | b | c | d @@ -36,7 +33,6 @@ SELECT * FROM test_retains_data ORDER BY a; 1 | abc | (1,4) | {1,2,3,4} 2 | pi | (3,192) | {3,1,4,1,5} 3 | earth | (4,22) | {1,2,7,5,6} -(3 rows) -- test we retained data with a once truncated table SELECT * FROM test_truncated ORDER BY a; @@ -45,7 +41,6 @@ SELECT * FROM test_truncated ORDER BY a; 11 12 13 -(3 rows) -- test we retained data with a once vacuum fulled table SELECT * FROM test_vacuum_full ORDER BY a; @@ -64,7 +59,6 @@ SELECT * FROM test_vacuum_full ORDER BY a; 11 12 13 -(13 rows) -- test we retained data with a once alter typed table SELECT * FROM test_alter_type ORDER BY a; @@ -83,7 +77,6 @@ SELECT * FROM test_alter_type ORDER BY a; 7 8 9 -(13 rows) -- test we retained data with a once refreshed materialized view SELECT * FROM matview ORDER BY a; @@ -91,14 +84,12 @@ SELECT * FROM matview ORDER BY a; --------------------------------------------------------------------- 0 | {abc,pi} 1 | {earth} -(2 rows) -- test we retained options SELECT * FROM columnar.options WHERE relation = 'test_options_1'::regclass; relation | chunk_group_row_limit | stripe_row_limit | compression | compression_level --------------------------------------------------------------------- test_options_1 | 1000 | 5000 | pglz | 3 -(1 row) VACUUM VERBOSE test_options_1; INFO: statistics for "test_options_1": @@ -112,13 +103,11 @@ SELECT count(*), sum(a), sum(b) FROM test_options_1; count | sum | sum --------------------------------------------------------------------- 10000 | 50005000 | 45010 -(1 row) SELECT * FROM columnar.options WHERE relation = 'test_options_2'::regclass; relation | chunk_group_row_limit | stripe_row_limit | compression | compression_level --------------------------------------------------------------------- test_options_2 | 2000 | 6000 | none | 13 -(1 row) VACUUM VERBOSE test_options_2; INFO: statistics for "test_options_2": @@ -132,7 +121,6 @@ SELECT count(*), sum(a), sum(b) FROM test_options_2; count | sum | sum --------------------------------------------------------------------- 20000 | 100010000 | 65015 -(1 row) BEGIN; INSERT INTO less_common_data_types_table (dist_key,col1, col2, col3, col4, col5, col6, col70, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25, col26, col27, col28, col29, col30, col32, col33, col34, col35, col36, col37, col38) @@ -147,7 +135,6 @@ BEGIN; --------------------------------------------------------------------- 7 | {1} | {{0,0,0}} | {{{0,0,0}}} | {1} | {{0,0,0}} | {{{0,0,0}}} | 1 | {1} | {{0,0,0}} | {{{0,0,0}}} | 11101 | {1} | {{01,01,01}} | {{{011,110,0000}}} | \xb4a8e04c0b | {"\\xb4a8e04c0b"} | {{"\\xb4a8e04c0b","\\xb4a8e04c0b","\\xb4a8e04c0b"}} | {{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}}} | t | {t} | {{t,t,f}} | {{{t,t,f}}} | 192.168.1.0/24 | {192.168.1.1} | {{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}} | {{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}} | 08:00:2b:01:02:03 | {08:00:2b:01:02:03} | {{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}} | {{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}} | 690 | {1.1} | {{0,0.111,0.15}} | {{{0,0,0}}} | {"test_json": "test"} | {"{\"test_json\": \"test\"}"} | {{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}} | {{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}}} 8 | {1,2,3} | {{1,2,3},{5,6,7}} | {{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}} | {1,2,3} | {{1,2,3},{5,6,7}} | {{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}} | 0 | {1,0,0} | {{1,1,0},{0,0,1}} | {{{1,1,1}},{{1,0,0}},{{1,1,1}},{{0,0,0}}} | 00010 | {11,10,01} | {{11,010,101},{101,01111,1000001}} | {{{10000,111111,1101010101}},{{1101010,0,1}},{{1,1,11111111}},{{0000000,0,0}}} | \xb4a8e04c0b | {"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"} | {{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"},{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}} | {{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}},{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}},{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}},{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}}} | t | {t,t,f} | {{t,t,f},{t,t,f}} | {{{t,t,f}},{{t,t,f}},{{t,t,f}},{{t,t,f}}} | 0.0.0.0 | {0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24} | {{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}} | {{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}} | 08:00:2b:01:02:03 | {08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03} | {{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}} | {{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}} | 0.99 | {1.1,2.22,3.33} | {{1.55,2.66,3.88},{11.5,10101.6,7111.1}} | {{{1,2,3}},{{5,6,7}},{{1.1,2.1,3}},{{5.0,6.0,7.0}}} | {"test_json": "test"} | {"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"} | {{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"},{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}} | {{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}},{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}},{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}},{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}}} -(2 rows) ROLLBACK; -- count DISTINCT w/wout dist key @@ -158,7 +145,6 @@ ORDER BY 1 DESC; count --------------------------------------------------------------------- 2 -(1 row) SELECT count(DISTINCT(dist_key, col1, col2, col3, col4, col5, col6, col70, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25, col26, col27, col28, col29, col32, col33, col34, col35, col36, col37, col38)) FROM @@ -167,7 +153,6 @@ ORDER BY 1 DESC; count --------------------------------------------------------------------- 4 -(1 row) -- some batch loads via INSERT .. SELECT INSERT INTO less_common_data_types_table SELECT * FROM less_common_data_types_table; @@ -178,20 +163,18 @@ SELECT count(*) FROM less_common_data_types_table WHERE dist_key = 1 AND col1 = count --------------------------------------------------------------------- 1 -(1 row) -- make sure that we test index scan set columnar.enable_custom_scan to 'off'; set enable_seqscan to off; set seq_page_cost TO 10000000; -EXPLAIN (costs off, timing off, summary off, analyze on, BUFFERS OFF) +EXPLAIN (costs off, timing off, summary off, analyze off, BUFFERS OFF) SELECT count(*) FROM less_common_data_types_table WHERE dist_key = 1 AND col1 = ARRAY[1]; - QUERY PLAN + QUERY PLAN --------------------------------------------------------------------- - Aggregate (actual rows=1 loops=1) - -> Index Scan using non_unique_index_on_columnar on less_common_data_types_table (actual rows=1 loops=1) + Aggregate + -> Index Scan using non_unique_index_on_columnar on less_common_data_types_table Index Cond: ((dist_key = 1) AND (col1 = '{1}'::integer[])) -(3 rows) -- make sure that we re-enable columnar scan RESET columnar.enable_custom_scan; @@ -226,7 +209,6 @@ BEGIN; count --------------------------------------------------------------------- 22 -(1 row) -- Make sure that serial is preserved. -- @@ -237,7 +219,6 @@ BEGIN; ?column? --------------------------------------------------------------------- t -(1 row) -- since we run "after schedule" twice, rollback the transaction -- to avoid getting "table already exists" errors @@ -287,7 +268,6 @@ UNION (TABLE columnar_schema_members_pg_depend EXCEPT TABLE columnar_schema_members); oid --------------------------------------------------------------------- -(0 rows) -- ... , and both columnar_schema_members_pg_depend & columnar_schema_members -- should have 5 entries. @@ -295,7 +275,6 @@ SELECT COUNT(*)=5 FROM columnar_schema_members_pg_depend; ?column? --------------------------------------------------------------------- t -(1 row) DROP TABLE columnar_schema_members, columnar_schema_members_pg_depend; -- Check the same for workers too. @@ -324,7 +303,6 @@ $$ --------------------------------------------------------------------- t | SELECT 5 t | SELECT 5 -(2 rows) SELECT success, result FROM run_command_on_workers( $$ @@ -337,7 +315,6 @@ $$ --------------------------------------------------------------------- t | t | -(2 rows) SELECT success, result FROM run_command_on_workers( $$ @@ -348,7 +325,6 @@ $$ --------------------------------------------------------------------- t | t t | t -(2 rows) SELECT success, result FROM run_command_on_workers( $$ @@ -359,5 +335,4 @@ $$ --------------------------------------------------------------------- t | DROP TABLE t | DROP TABLE -(2 rows) diff --git a/src/test/regress/expected/upgrade_columnar_before.out b/src/test/regress/expected/upgrade_columnar_before.out index 500407cf7..46478654f 100644 --- a/src/test/regress/expected/upgrade_columnar_before.out +++ b/src/test/regress/expected/upgrade_columnar_before.out @@ -1,6 +1,7 @@ SET client_min_messages TO WARNING; CREATE EXTENSION IF NOT EXISTS citus_columnar; RESET client_min_messages; +\pset footer off -- Test if relying on topological sort of the objects, not their names, works -- fine when re-creating objects during pg_upgrade. DO @@ -38,7 +39,6 @@ SELECT 1 FROM run_command_on_workers($$CREATE SCHEMA IF NOT EXISTS public$$); --------------------------------------------------------------------- 1 1 -(2 rows) -- create a columnar table within citus_schema CREATE TABLE new_columnar_table ( @@ -69,7 +69,6 @@ SELECT count(*) FROM test_truncated; count --------------------------------------------------------------------- 10 -(1 row) SELECT relfilenode AS relfilenode_pre_truncate FROM pg_class WHERE oid = 'test_truncated'::regclass::oid \gset @@ -80,14 +79,12 @@ SELECT :relfilenode_post_truncate <> :relfilenode_pre_truncate AS relfilenode_ch relfilenode_changed --------------------------------------------------------------------- t -(1 row) INSERT INTO test_truncated SELECT * FROM generate_series(11, 13); SELECT count(*) FROM test_truncated; count --------------------------------------------------------------------- 3 -(1 row) -- vacuum full CREATE TABLE test_vacuum_full (a int) USING columnar; @@ -96,7 +93,6 @@ SELECT count(*) FROM test_vacuum_full; count --------------------------------------------------------------------- 10 -(1 row) SELECT relfilenode AS relfilenode_pre_vacuum_full FROM pg_class WHERE oid = 'test_vacuum_full'::regclass::oid \gset @@ -107,14 +103,12 @@ SELECT :relfilenode_post_vacuum_full <> :relfilenode_pre_vacuum_full AS relfilen relfilenode_changed --------------------------------------------------------------------- t -(1 row) INSERT INTO test_vacuum_full SELECT * FROM generate_series(11, 13); SELECT count(*) FROM test_vacuum_full; count --------------------------------------------------------------------- 13 -(1 row) -- alter column type CREATE TABLE test_alter_type (a int) USING columnar; @@ -123,7 +117,6 @@ SELECT count(*) FROM test_alter_type; count --------------------------------------------------------------------- 10 -(1 row) SELECT relfilenode AS relfilenode_pre_alter FROM pg_class WHERE oid = 'test_alter_type'::regclass::oid \gset @@ -134,14 +127,12 @@ SELECT :relfilenode_pre_alter <> :relfilenode_post_alter AS relfilenode_changed; relfilenode_changed --------------------------------------------------------------------- t -(1 row) INSERT INTO test_alter_type SELECT * FROM generate_series(11, 13); SELECT count(*) FROM test_alter_type; count --------------------------------------------------------------------- 13 -(1 row) -- materialized view CREATE MATERIALIZED VIEW matview(a, b) USING columnar AS @@ -155,7 +146,6 @@ SELECT :relfilenode_pre_alter <> :relfilenode_post_alter AS relfilenode_changed; relfilenode_changed --------------------------------------------------------------------- t -(1 row) -- -- Test that we retain options @@ -171,25 +161,21 @@ SELECT alter_columnar_table_set('test_options_2', chunk_group_row_limit => 2000) alter_columnar_table_set --------------------------------------------------------------------- -(1 row) SELECT alter_columnar_table_set('test_options_2', stripe_row_limit => 6000); alter_columnar_table_set --------------------------------------------------------------------- -(1 row) SELECT alter_columnar_table_set('test_options_2', compression => 'none'); alter_columnar_table_set --------------------------------------------------------------------- -(1 row) SELECT alter_columnar_table_set('test_options_2', compression_level => 13); alter_columnar_table_set --------------------------------------------------------------------- -(1 row) INSERT INTO test_options_2 SELECT i, floor(i/2000) FROM generate_series(1, 10000) i; Create or replace function test_jsonb() returns jsonb as @@ -227,7 +213,6 @@ VALUES (3,ARRAY[1], ARRAY[ARRAY[0,0,0]], ARRAY[ARRAY[ARRAY[0,0,0]]], ARRAY['1'], --------------------------------------------------------------------- 3 | {1} | {{0,0,0}} | {{{0,0,0}}} | {1} | {{0,0,0}} | {{{0,0,0}}} | 1 | {1} | {{0,0,0}} | {{{0,0,0}}} | 11101 | {1} | {{01,01,01}} | {{{011,110,0000}}} | \xb4a8e04c0b | {"\\xb4a8e04c0b"} | {{"\\xb4a8e04c0b","\\xb4a8e04c0b","\\xb4a8e04c0b"}} | {{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}}} | t | {t} | {{t,t,f}} | {{{t,t,f}}} | 192.168.1.0/24 | {192.168.1.1} | {{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}} | {{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}} | 08:00:2b:01:02:03 | {08:00:2b:01:02:03} | {{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}} | {{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}} | 690 | {1.1} | {{0,0.111,0.15}} | {{{0,0,0}}} | {"test_json": "test"} | {"{\"test_json\": \"test\"}"} | {{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}} | {{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}}} 4 | {1,2,3} | {{1,2,3},{5,6,7}} | {{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}} | {1,2,3} | {{1,2,3},{5,6,7}} | {{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}} | 0 | {1,0,0} | {{1,1,0},{0,0,1}} | {{{1,1,1}},{{1,0,0}},{{1,1,1}},{{0,0,0}}} | 00010 | {11,10,01} | {{11,010,101},{101,01111,1000001}} | {{{10000,111111,1101010101}},{{1101010,0,1}},{{1,1,11111111}},{{0000000,0,0}}} | \xb4a8e04c0b | {"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"} | {{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"},{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}} | {{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}},{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}},{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}},{{"\\xb4a8e04c0b","\\x18a232a678","\\x38b2697632"}}} | t | {t,t,f} | {{t,t,f},{t,t,f}} | {{{t,t,f}},{{t,t,f}},{{t,t,f}},{{t,t,f}}} | 0.0.0.0 | {0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24} | {{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}} | {{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}} | 08:00:2b:01:02:03 | {08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03} | {{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}} | {{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}} | 0.99 | {1.1,2.22,3.33} | {{1.55,2.66,3.88},{11.5,10101.6,7111.1}} | {{{1,2,3}},{{5,6,7}},{{1.1,2.1,3}},{{5.0,6.0,7.0}}} | {"test_json": "test"} | {"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"} | {{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"},{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}} | {{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}},{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}},{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}},{{"{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}","{\"test_json\": \"test\"}"}}} -(2 rows) -- GROUP BY w/wout the dist key SELECT @@ -240,7 +225,6 @@ GROUP BY --------------------------------------------------------------------- 2 2 -(2 rows) SELECT count(*) @@ -254,7 +238,6 @@ GROUP BY 1 1 1 -(4 rows) -- window function w/wout distribution key SELECT @@ -267,7 +250,6 @@ FROM 2 2 2 -(4 rows) SELECT count(*) OVER (PARTITION BY dist_key, col1, col2, col3, col4, col5, col6, col70, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25, col26, col27, col28, col29, col32, col33, col34, col35, col36, col37, col38) @@ -279,7 +261,6 @@ FROM 1 1 1 -(4 rows) -- DISTINCT w/wout distribution key -- there seems to be an issue with SELECT DISTINCT ROW with PG14 @@ -293,7 +274,6 @@ ORDER BY 1 DESC; --------------------------------------------------------------------- ("{1,2,3}","{{1,2,3},{5,6,7}}","{{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}}","{1,2,3}","{{1,2,3},{5,6,7}}","{{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}}",0,"{1,0,0}","{{1,1,0},{0,0,1}}","{{{1,1,1}},{{1,0,0}},{{1,1,1}},{{0,0,0}}}",00010,"{11,10,01}","{{11,010,101},{101,01111,1000001}}","{{{10000,111111,1101010101}},{{1101010,0,1}},{{1,1,11111111}},{{0000000,0,0}}}","\\xb4a8e04c0b","{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}","{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""},{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}","{{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}},{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}},{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}},{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}}",t,"{t,t,f}","{{t,t,f},{t,t,f}}","{{{t,t,f}},{{t,t,f}},{{t,t,f}},{{t,t,f}}}",0.0.0.0,"{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}","{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}","{{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}}",08:00:2b:01:02:03,"{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}","{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}","{{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}}","{1.1,2.22,3.33}","{{1.55,2.66,3.88},{11.5,10101.6,7111.1}}","{{{1,2,3}},{{5,6,7}},{{1.1,2.1,3}},{{5.0,6.0,7.0}}}","{""test_json"": ""test""}","{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}","{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""},{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}","{{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}},{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}},{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}},{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}}") ({1},"{{0,0,0}}","{{{0,0,0}}}",{1},"{{0,0,0}}","{{{0,0,0}}}",1,{1},"{{0,0,0}}","{{{0,0,0}}}",11101,{1},"{{01,01,01}}","{{{011,110,0000}}}","\\xb4a8e04c0b","{""\\\\xb4a8e04c0b""}","{{""\\\\xb4a8e04c0b"",""\\\\xb4a8e04c0b"",""\\\\xb4a8e04c0b""}}","{{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}}",t,{t},"{{t,t,f}}","{{{t,t,f}}}",192.168.1.0/24,{192.168.1.1},"{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}","{{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}}",08:00:2b:01:02:03,{08:00:2b:01:02:03},"{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}","{{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}}",{1.1},"{{0,0.111,0.15}}","{{{0,0,0}}}","{""test_json"": ""test""}","{""{\\""test_json\\"": \\""test\\""}""}","{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}","{{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}}") -(2 rows) SELECT DISTINCT(dist_key, col1, col2, col3, col4, col5, col6, col70, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25, col26, col27, col28, col29, col32, col33, col34, col35, col36, col37, col38) FROM @@ -305,7 +285,6 @@ ORDER BY 1 DESC; (3,{1},"{{0,0,0}}","{{{0,0,0}}}",{1},"{{0,0,0}}","{{{0,0,0}}}",1,{1},"{{0,0,0}}","{{{0,0,0}}}",11101,{1},"{{01,01,01}}","{{{011,110,0000}}}","\\xb4a8e04c0b","{""\\\\xb4a8e04c0b""}","{{""\\\\xb4a8e04c0b"",""\\\\xb4a8e04c0b"",""\\\\xb4a8e04c0b""}}","{{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}}",t,{t},"{{t,t,f}}","{{{t,t,f}}}",192.168.1.0/24,{192.168.1.1},"{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}","{{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}}",08:00:2b:01:02:03,{08:00:2b:01:02:03},"{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}","{{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}}",{1.1},"{{0,0.111,0.15}}","{{{0,0,0}}}","{""test_json"": ""test""}","{""{\\""test_json\\"": \\""test\\""}""}","{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}","{{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}}") (2,"{1,2,3}","{{1,2,3},{5,6,7}}","{{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}}","{1,2,3}","{{1,2,3},{5,6,7}}","{{{1,2,3}},{{5,6,7}},{{1,2,3}},{{5,6,7}}}",0,"{1,0,0}","{{1,1,0},{0,0,1}}","{{{1,1,1}},{{1,0,0}},{{1,1,1}},{{0,0,0}}}",00010,"{11,10,01}","{{11,010,101},{101,01111,1000001}}","{{{10000,111111,1101010101}},{{1101010,0,1}},{{1,1,11111111}},{{0000000,0,0}}}","\\xb4a8e04c0b","{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}","{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""},{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}","{{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}},{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}},{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}},{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}}",t,"{t,t,f}","{{t,t,f},{t,t,f}}","{{{t,t,f}},{{t,t,f}},{{t,t,f}},{{t,t,f}}}",0.0.0.0,"{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}","{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}","{{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}},{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}}",08:00:2b:01:02:03,"{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}","{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}","{{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}},{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}}","{1.1,2.22,3.33}","{{1.55,2.66,3.88},{11.5,10101.6,7111.1}}","{{{1,2,3}},{{5,6,7}},{{1.1,2.1,3}},{{5.0,6.0,7.0}}}","{""test_json"": ""test""}","{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}","{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""},{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}","{{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}},{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}},{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}},{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}}") (1,{1},"{{0,0,0}}","{{{0,0,0}}}",{1},"{{0,0,0}}","{{{0,0,0}}}",1,{1},"{{0,0,0}}","{{{0,0,0}}}",11101,{1},"{{01,01,01}}","{{{011,110,0000}}}","\\xb4a8e04c0b","{""\\\\xb4a8e04c0b""}","{{""\\\\xb4a8e04c0b"",""\\\\xb4a8e04c0b"",""\\\\xb4a8e04c0b""}}","{{{""\\\\xb4a8e04c0b"",""\\\\x18a232a678"",""\\\\x38b2697632""}}}",t,{t},"{{t,t,f}}","{{{t,t,f}}}",192.168.1.0/24,{192.168.1.1},"{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}","{{{0.0.0.0,0.0.0.0,::ffff:255.240.0.1,192.168.1.0/24}}}",08:00:2b:01:02:03,{08:00:2b:01:02:03},"{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}","{{{08:00:2b:01:02:03,08:00:2b:01:02:03,08:00:2b:01:02:03}}}",{1.1},"{{0,0.111,0.15}}","{{{0,0,0}}}","{""test_json"": ""test""}","{""{\\""test_json\\"": \\""test\\""}""}","{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}","{{{""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}"",""{\\""test_json\\"": \\""test\\""}""}}}") -(4 rows) -- count DISTINCT w/wout dist key SELECT count(DISTINCT(col1, col2, col3, col4, col5, col6, col70, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25, col26, col27, col28, col29, col32, col33, col34, col35, col36, col37, col38)) @@ -315,7 +294,6 @@ ORDER BY 1 DESC; count --------------------------------------------------------------------- 2 -(1 row) SELECT count(DISTINCT(dist_key, col1, col2, col3, col4, col5, col6, col70, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25, col26, col27, col28, col29, col32, col33, col34, col35, col36, col37, col38)) FROM @@ -324,27 +302,24 @@ ORDER BY 1 DESC; count --------------------------------------------------------------------- 4 -(1 row) -- a query that might use index, but doesn't use as chunk group filtering is cheaper SELECT count(*) FROM less_common_data_types_table WHERE dist_key = 1 AND col1 = ARRAY[1]; count --------------------------------------------------------------------- 1 -(1 row) -- make sure that we test index scan set columnar.enable_custom_scan to 'off'; set enable_seqscan to off; set seq_page_cost TO 10000000; -EXPLAIN (costs off, timing off, summary off, analyze on, BUFFERS OFF) +EXPLAIN (costs off, timing off, summary off, analyze off, BUFFERS OFF) SELECT count(*) FROM less_common_data_types_table WHERE dist_key = 1 AND col1 = ARRAY[1]; - QUERY PLAN + QUERY PLAN --------------------------------------------------------------------- - Aggregate (actual rows=1 loops=1) - -> Index Scan using non_unique_index_on_columnar on less_common_data_types_table (actual rows=1 loops=1) + Aggregate + -> Index Scan using non_unique_index_on_columnar on less_common_data_types_table Index Cond: ((dist_key = 1) AND (col1 = '{1}'::integer[])) -(3 rows) -- make sure that we re-enable columnar scan RESET columnar.enable_custom_scan; @@ -394,7 +369,6 @@ select count(DISTINCT value) from text_data; count --------------------------------------------------------------------- 11 -(1 row) -- test using a columnar partition CREATE TABLE foo (d DATE NOT NULL) PARTITION BY RANGE (d); diff --git a/src/test/regress/sql/upgrade_columnar_after.sql b/src/test/regress/sql/upgrade_columnar_after.sql index cd1be9443..b4e52946b 100644 --- a/src/test/regress/sql/upgrade_columnar_after.sql +++ b/src/test/regress/sql/upgrade_columnar_after.sql @@ -1,4 +1,5 @@ SET search_path TO upgrade_columnar, public; +\pset footer off -- test we retained data SELECT * FROM test_retains_data ORDER BY a; @@ -65,7 +66,7 @@ set columnar.enable_custom_scan to 'off'; set enable_seqscan to off; set seq_page_cost TO 10000000; -EXPLAIN (costs off, timing off, summary off, analyze on, BUFFERS OFF) +EXPLAIN (costs off, timing off, summary off, analyze off, BUFFERS OFF) SELECT count(*) FROM less_common_data_types_table WHERE dist_key = 1 AND col1 = ARRAY[1]; -- make sure that we re-enable columnar scan diff --git a/src/test/regress/sql/upgrade_columnar_before.sql b/src/test/regress/sql/upgrade_columnar_before.sql index 9c943ef16..0333b4cd1 100644 --- a/src/test/regress/sql/upgrade_columnar_before.sql +++ b/src/test/regress/sql/upgrade_columnar_before.sql @@ -1,6 +1,7 @@ SET client_min_messages TO WARNING; CREATE EXTENSION IF NOT EXISTS citus_columnar; RESET client_min_messages; +\pset footer off -- Test if relying on topological sort of the objects, not their names, works -- fine when re-creating objects during pg_upgrade. @@ -253,7 +254,7 @@ set columnar.enable_custom_scan to 'off'; set enable_seqscan to off; set seq_page_cost TO 10000000; -EXPLAIN (costs off, timing off, summary off, analyze on, BUFFERS OFF) +EXPLAIN (costs off, timing off, summary off, analyze off, BUFFERS OFF) SELECT count(*) FROM less_common_data_types_table WHERE dist_key = 1 AND col1 = ARRAY[1]; -- make sure that we re-enable columnar scan