This is an automated email from the ASF dual-hosted git repository. maxyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 202225ea11514feb4c664ba8da34d2102ac7866c Author: Huansong Fu <[email protected]> AuthorDate: Tue Nov 22 12:30:03 2022 -0800 Add test for pg_attribute_encoding entries with various AOCS table creation syntax This is related to Issue #14510. The issue only existed in 6X but 7X is missing the test coverage. So follow the convention to address main branch first. --- src/test/regress/input/aocs.source | 16 +++++++++------- src/test/regress/output/aocs.source | 37 ++++++++++++++++++++++++++----------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/src/test/regress/input/aocs.source b/src/test/regress/input/aocs.source index 3f97da4817..c75ec6999e 100644 --- a/src/test/regress/input/aocs.source +++ b/src/test/regress/input/aocs.source @@ -46,21 +46,22 @@ CREATE TABLE tenk_aocs3 (like tenk_heap_for_aocs) with (appendonly=true, orienta CREATE TABLE tenk_aocs4 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=1, compresstype=zlib) distributed by(unique1); CREATE TABLE tenk_aocs5 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=6, compresstype=zlib) distributed by(unique1); CREATE TABLE tenk_aocs6 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=6, compresstype=zlib, blocksize=1048576, checksum=true) distributed by(unique1); +CREATE TABLE tenk_aocs7 (like tenk_heap_for_aocs) with (appendonly, orientation=column, compresslevel=6, checksum) distributed by(unique1); -- invalid combinations -- col instead of column -CREATE TABLE tenk_aocs7 (like tenk_heap_for_aocs) with (appendonly=true, orientation=col) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true, orientation=col) distributed by(unique1); -- no parentheses surrounding storage options -CREATE TABLE tenk_aocs8 (like tenk_heap_for_aocs) with appendonly=true, orientation=column distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with appendonly=true, orientation=column distributed by(unique1); -- no comma separating storage options -CREATE TABLE tenk_aocs9 (like tenk_heap_for_aocs) with (appendonly=true orientation=column) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true orientation=column) distributed by(unique1); -- appendonly=false with orientation=column should not work -CREATE TABLE tenk_aocs10 (like tenk_heap_for_aocs) with (appendonly=false, orientation=column, compresslevel=6, checksum=true) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=false, orientation=column, compresslevel=6, checksum=true) distributed by(unique1); -- block size must be between 8KB and 2MB w/ 8KB multiple -CREATE TABLE tenk_aocs11 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, blocksize=100) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, blocksize=100) distributed by(unique1); -- cannot have compresslevel 0 -CREATE TABLE tenk_aocs12 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=0, compresstype=zlib) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=0, compresstype=zlib) distributed by(unique1); -- orientation=column must be combined with appendonly=true -CREATE TABLE tenk_aocs13 (like tenk_heap_for_aocs) with (orientation=column) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (orientation=column) distributed by(unique1); -------------------- @@ -69,6 +70,7 @@ CREATE TABLE tenk_aocs13 (like tenk_heap_for_aocs) with (orientation=column) dis -- check pg_appendonly SELECT c.relname, a.blocksize, a.compresstype, a.compresslevel, a.checksum FROM pg_class c, pg_appendonly a WHERE c.relname LIKE 'tenk_aocs%' AND c.oid=a.relid ORDER BY c.relname; +SELECT c.relname, count(a.attnum) FROM pg_attribute_encoding a, pg_class c WHERE a.attrelid=c.oid AND c.relname LIKE 'tenk_aocs%' GROUP BY c.relname; -------------------- -- supported sql diff --git a/src/test/regress/output/aocs.source b/src/test/regress/output/aocs.source index 35fe23d823..72b3793d01 100644 --- a/src/test/regress/output/aocs.source +++ b/src/test/regress/output/aocs.source @@ -42,33 +42,34 @@ CREATE TABLE tenk_aocs3 (like tenk_heap_for_aocs) with (appendonly=true, orienta CREATE TABLE tenk_aocs4 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=1, compresstype=zlib) distributed by(unique1); CREATE TABLE tenk_aocs5 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=6, compresstype=zlib) distributed by(unique1); CREATE TABLE tenk_aocs6 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=6, compresstype=zlib, blocksize=1048576, checksum=true) distributed by(unique1); +CREATE TABLE tenk_aocs7 (like tenk_heap_for_aocs) with (appendonly, orientation=column, compresslevel=6, checksum) distributed by(unique1); -- invalid combinations -- col instead of column -CREATE TABLE tenk_aocs7 (like tenk_heap_for_aocs) with (appendonly=true, orientation=col) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true, orientation=col) distributed by(unique1); ERROR: invalid parameter value for "orientation": "col" -- no parentheses surrounding storage options -CREATE TABLE tenk_aocs8 (like tenk_heap_for_aocs) with appendonly=true, orientation=column distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with appendonly=true, orientation=column distributed by(unique1); ERROR: syntax error at or near "appendonly" -LINE 1: ...E TABLE tenk_aocs8 (like tenk_heap_for_aocs) with appendonly... +LINE 1: ...ABLE tenk_aocs_bad (like tenk_heap_for_aocs) with appendonly... ^ -- no comma separating storage options -CREATE TABLE tenk_aocs9 (like tenk_heap_for_aocs) with (appendonly=true orientation=column) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true orientation=column) distributed by(unique1); ERROR: syntax error at or near "orientation" -LINE 1: ...9 (like tenk_heap_for_aocs) with (appendonly=true orientatio... +LINE 1: ...d (like tenk_heap_for_aocs) with (appendonly=true orientatio... ^ -- appendonly=false with orientation=column should not work -CREATE TABLE tenk_aocs10 (like tenk_heap_for_aocs) with (appendonly=false, orientation=column, compresslevel=6, checksum=true) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=false, orientation=column, compresslevel=6, checksum=true) distributed by(unique1); ERROR: invalid option "orientation" for base relation HINT: Table orientation only valid for Append Only relations, create an AO relation to use table orientation. -- block size must be between 8KB and 2MB w/ 8KB multiple -CREATE TABLE tenk_aocs11 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, blocksize=100) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, blocksize=100) distributed by(unique1); ERROR: value 100 out of bounds for option "blocksize" DETAIL: Valid values are between "8192" and "2097152". -- cannot have compresslevel 0 -CREATE TABLE tenk_aocs12 (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=0, compresstype=zlib) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (appendonly=true, orientation=column, compresslevel=0, compresstype=zlib) distributed by(unique1); ERROR: compresstype "zlib" can't be used with compresslevel 0 -- orientation=column must be combined with appendonly=true -CREATE TABLE tenk_aocs13 (like tenk_heap_for_aocs) with (orientation=column) distributed by(unique1); +CREATE TABLE tenk_aocs_bad (like tenk_heap_for_aocs) with (orientation=column) distributed by(unique1); ERROR: invalid option "orientation" for base relation HINT: Table orientation only valid for Append Only relations, create an AO relation to use table orientation. -------------------- @@ -84,7 +85,20 @@ SELECT c.relname, a.blocksize, a.compresstype, a.compresslevel, a.checksum FROM tenk_aocs4 | 32768 | zlib | 1 | t tenk_aocs5 | 32768 | zlib | 6 | t tenk_aocs6 | 1048576 | zlib | 6 | t -(6 rows) + tenk_aocs7 | 32768 | zlib | 6 | t +(7 rows) + +SELECT c.relname, count(a.attnum) FROM pg_attribute_encoding a, pg_class c WHERE a.attrelid=c.oid AND c.relname LIKE 'tenk_aocs%' GROUP BY c.relname; + relname | count +------------+------- + tenk_aocs1 | 16 + tenk_aocs2 | 16 + tenk_aocs3 | 16 + tenk_aocs4 | 16 + tenk_aocs5 | 16 + tenk_aocs6 | 16 + tenk_aocs7 | 16 +(7 rows) -------------------- -- supported sql @@ -396,7 +410,8 @@ SELECT c.relname, a.blocksize, a.compresstype, a.compresslevel, a.checksum FROM tenk_aocs4 | 32768 | zlib | 1 | t tenk_aocs5 | 32768 | zlib | 6 | t tenk_aocs6 | 1048576 | zlib | 6 | t -(6 rows) + tenk_aocs7 | 32768 | zlib | 6 | t +(7 rows) SELECT count(*) FROM tenk_aocs1; count --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
