【bugfix】set(compresstype=3)生效

This commit is contained in:
congzhou2603
2023-06-28 10:50:36 +08:00
parent ad27d72af3
commit 59169edc02
3 changed files with 18 additions and 2 deletions

View File

@ -18029,6 +18029,11 @@ bool static transformTableCompressedOptions(Relation rel, bytea* relOption, List
errmsg("compress_level=0, compress_chunk_size=4096, compress_prealloc_chunks=0, compress_byte_convert=false, compress_diff_convert=false should be set when compresstype=0")));
}
if (newCompressOpt->compressType == COMPRESS_TYPE_PGZSTD) {
ereport(ERROR, (errcode(ERRCODE_INVALID_OPTION),
errmsg("row-compression feature current not support algorithm is PGZSTD.")));
}
if (newCompressOpt->compressType != COMPRESS_TYPE_ZSTD && newCompressOpt->compressLevel != 0) {
ereport(ERROR, (errcode(ERRCODE_INVALID_OPTION),
errmsg("compress_level should be used with ZSTD algorithm.")));

View File

@ -29,7 +29,9 @@ DROP TABLE alter_compress_params_schema.uncompress_astore_to_cbc_1_cdc_1;
-- the new compression parameters is out of the value range
CREATE TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5 (id int, value varchar);
INSERT INTO alter_compress_params_schema.uncompress_astore_to_compresstype_5 SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
ALTER TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5 SET (compresstype = 3); -- fail
ALTER TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5 SET (compresstype = 5); -- fail
ERROR: value 5 out of bounds for option "compresstype"
DETAIL: Valid values are between "0" and "3".
DROP TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5;
CREATE TABLE alter_compress_params_schema.uncompress_astore_to_compresstype__1 (id int, value varchar);
INSERT INTO alter_compress_params_schema.uncompress_astore_to_compresstype__1 SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
@ -93,6 +95,11 @@ INSERT INTO alter_compress_params_schema.uncompress_astore_to_compresstype_1_ccs
ALTER TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_1_ccs_4096_cpc_2 SET (compresstype = 1, compress_chunk_size = 4096, compress_prealloc_chunks = 2); -- fail
ERROR: invalid compress_prealloc_chunks 2, must be less than 2 for uncompress_astore_to_compresstype_1_ccs_4096_cpc_2
DROP TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_1_ccs_4096_cpc_2;
CREATE TABLE alter_compress_params_schema.uncompress_to_compresstype_3 (id int, value varchar);
INSERT INTO alter_compress_params_schema.uncompress_to_compresstype_3 SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
ALTER TABLE alter_compress_params_schema.uncompress_to_compresstype_3 SET (compresstype = 3); -- fail
ERROR: row-compression feature current not support algorithm is PGZSTD.
DROP TABLE alter_compress_params_schema.uncompress_to_compresstype_3;
-- set compressed options of column table
CREATE TABLE alter_compress_params_schema.alter_column_table_compressed_options (id int, value varchar) WITH (ORIENTATION = column);
INSERT INTO alter_compress_params_schema.alter_column_table_compressed_options SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';

View File

@ -30,7 +30,7 @@ DROP TABLE alter_compress_params_schema.uncompress_astore_to_cbc_1_cdc_1;
-- the new compression parameters is out of the value range
CREATE TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5 (id int, value varchar);
INSERT INTO alter_compress_params_schema.uncompress_astore_to_compresstype_5 SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
ALTER TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5 SET (compresstype = 3); -- fail
ALTER TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5 SET (compresstype = 5); -- fail
DROP TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_5;
CREATE TABLE alter_compress_params_schema.uncompress_astore_to_compresstype__1 (id int, value varchar);
@ -88,6 +88,10 @@ INSERT INTO alter_compress_params_schema.uncompress_astore_to_compresstype_1_ccs
ALTER TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_1_ccs_4096_cpc_2 SET (compresstype = 1, compress_chunk_size = 4096, compress_prealloc_chunks = 2); -- fail
DROP TABLE alter_compress_params_schema.uncompress_astore_to_compresstype_1_ccs_4096_cpc_2;
CREATE TABLE alter_compress_params_schema.uncompress_to_compresstype_3 (id int, value varchar);
INSERT INTO alter_compress_params_schema.uncompress_to_compresstype_3 SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
ALTER TABLE alter_compress_params_schema.uncompress_to_compresstype_3 SET (compresstype = 3); -- fail
DROP TABLE alter_compress_params_schema.uncompress_to_compresstype_3;
-- set compressed options of column table
CREATE TABLE alter_compress_params_schema.alter_column_table_compressed_options (id int, value varchar) WITH (ORIENTATION = column);
INSERT INTO alter_compress_params_schema.alter_column_table_compressed_options SELECT generate_series(1,5), 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';