mirror of https://github.com/citusdata/citus.git
Columnar: improve naming of limit config variables. (#4653)
* Rename chunk_row_count to chunk_group_row_limit * Rename stripe_row_count to stripe_row_limit * Undo couple of renamespull/4655/head
parent
a7da38e71f
commit
eff8cffaf3
|
@ -73,8 +73,8 @@ Set options using:
|
||||||
```sql
|
```sql
|
||||||
alter_columnar_table_set(
|
alter_columnar_table_set(
|
||||||
relid REGCLASS,
|
relid REGCLASS,
|
||||||
chunk_row_count INT4 DEFAULT NULL,
|
chunk_group_row_limit INT4 DEFAULT NULL,
|
||||||
stripe_row_count INT4 DEFAULT NULL,
|
stripe_row_limit INT4 DEFAULT NULL,
|
||||||
compression NAME DEFAULT NULL,
|
compression NAME DEFAULT NULL,
|
||||||
compression_level INT4)
|
compression_level INT4)
|
||||||
```
|
```
|
||||||
|
@ -85,7 +85,7 @@ For example:
|
||||||
SELECT alter_columnar_table_set(
|
SELECT alter_columnar_table_set(
|
||||||
'my_columnar_table',
|
'my_columnar_table',
|
||||||
compression => 'none',
|
compression => 'none',
|
||||||
stripe_row_count => 10000);
|
stripe_row_limit => 10000);
|
||||||
```
|
```
|
||||||
|
|
||||||
The following options are available:
|
The following options are available:
|
||||||
|
@ -98,11 +98,11 @@ The following options are available:
|
||||||
settings are from 1 through 19. If the compression method does not
|
settings are from 1 through 19. If the compression method does not
|
||||||
support the level chosen, the closest level will be selected
|
support the level chosen, the closest level will be selected
|
||||||
instead.
|
instead.
|
||||||
* **stripe_row_count**: ``<integer>`` - the maximum number of rows per
|
* **stripe_row_limit**: ``<integer>`` - the maximum number of rows per
|
||||||
stripe for _newly-inserted_ data. Existing stripes of data will not
|
stripe for _newly-inserted_ data. Existing stripes of data will not
|
||||||
be changed and may have more rows than this maximum value. The
|
be changed and may have more rows than this maximum value. The
|
||||||
default value is `150000`.
|
default value is `150000`.
|
||||||
* **chunk_row_count**: ``<integer>`` - the maximum number of rows per
|
* **chunk_group_row_limit**: ``<integer>`` - the maximum number of rows per
|
||||||
chunk for _newly-inserted_ data. Existing chunks of data will not be
|
chunk for _newly-inserted_ data. Existing chunks of data will not be
|
||||||
changed and may have more rows than this maximum value. The default
|
changed and may have more rows than this maximum value. The default
|
||||||
value is `10000`.
|
value is `10000`.
|
||||||
|
@ -118,8 +118,8 @@ following GUCs:
|
||||||
|
|
||||||
* `columnar.compression`
|
* `columnar.compression`
|
||||||
* `columnar.compression_level`
|
* `columnar.compression_level`
|
||||||
* `columnar.stripe_row_count`
|
* `columnar.stripe_row_limit`
|
||||||
* `columnar.chunk_row_count`
|
* `columnar.chunk_group_row_limit`
|
||||||
|
|
||||||
GUCs only affect newly-created *tables*, not any newly-created
|
GUCs only affect newly-created *tables*, not any newly-created
|
||||||
*stripes* on an existing table.
|
*stripes* on an existing table.
|
||||||
|
|
|
@ -36,8 +36,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int columnar_compression = DEFAULT_COMPRESSION_TYPE;
|
int columnar_compression = DEFAULT_COMPRESSION_TYPE;
|
||||||
int columnar_stripe_row_count = DEFAULT_STRIPE_ROW_COUNT;
|
int columnar_stripe_row_limit = DEFAULT_STRIPE_ROW_COUNT;
|
||||||
int columnar_chunk_row_count = DEFAULT_CHUNK_ROW_COUNT;
|
int columnar_chunk_group_row_limit = DEFAULT_CHUNK_ROW_COUNT;
|
||||||
int columnar_compression_level = 3;
|
int columnar_compression_level = 3;
|
||||||
|
|
||||||
static const struct config_enum_entry columnar_compression_options[] =
|
static const struct config_enum_entry columnar_compression_options[] =
|
||||||
|
@ -81,10 +81,10 @@ columnar_init_gucs()
|
||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
DefineCustomIntVariable("columnar.stripe_row_count",
|
DefineCustomIntVariable("columnar.stripe_row_limit",
|
||||||
"Maximum number of tuples per stripe.",
|
"Maximum number of tuples per stripe.",
|
||||||
NULL,
|
NULL,
|
||||||
&columnar_stripe_row_count,
|
&columnar_stripe_row_limit,
|
||||||
DEFAULT_STRIPE_ROW_COUNT,
|
DEFAULT_STRIPE_ROW_COUNT,
|
||||||
STRIPE_ROW_COUNT_MINIMUM,
|
STRIPE_ROW_COUNT_MINIMUM,
|
||||||
STRIPE_ROW_COUNT_MAXIMUM,
|
STRIPE_ROW_COUNT_MAXIMUM,
|
||||||
|
@ -94,10 +94,10 @@ columnar_init_gucs()
|
||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
DefineCustomIntVariable("columnar.chunk_row_count",
|
DefineCustomIntVariable("columnar.chunk_group_row_limit",
|
||||||
"Maximum number of rows per chunk.",
|
"Maximum number of rows per chunk.",
|
||||||
NULL,
|
NULL,
|
||||||
&columnar_chunk_row_count,
|
&columnar_chunk_group_row_limit,
|
||||||
DEFAULT_CHUNK_ROW_COUNT,
|
DEFAULT_CHUNK_ROW_COUNT,
|
||||||
CHUNK_ROW_COUNT_MINIMUM,
|
CHUNK_ROW_COUNT_MINIMUM,
|
||||||
CHUNK_ROW_COUNT_MAXIMUM,
|
CHUNK_ROW_COUNT_MAXIMUM,
|
||||||
|
|
|
@ -105,8 +105,8 @@ PG_FUNCTION_INFO_V1(columnar_relation_storageid);
|
||||||
/* constants for columnar.options */
|
/* constants for columnar.options */
|
||||||
#define Natts_columnar_options 5
|
#define Natts_columnar_options 5
|
||||||
#define Anum_columnar_options_regclass 1
|
#define Anum_columnar_options_regclass 1
|
||||||
#define Anum_columnar_options_chunk_row_count 2
|
#define Anum_columnar_options_chunk_group_row_limit 2
|
||||||
#define Anum_columnar_options_stripe_row_count 3
|
#define Anum_columnar_options_stripe_row_limit 3
|
||||||
#define Anum_columnar_options_compression_level 4
|
#define Anum_columnar_options_compression_level 4
|
||||||
#define Anum_columnar_options_compression 5
|
#define Anum_columnar_options_compression 5
|
||||||
|
|
||||||
|
@ -117,8 +117,8 @@ PG_FUNCTION_INFO_V1(columnar_relation_storageid);
|
||||||
typedef struct FormData_columnar_options
|
typedef struct FormData_columnar_options
|
||||||
{
|
{
|
||||||
Oid regclass;
|
Oid regclass;
|
||||||
int32 chunk_row_count;
|
int32 chunk_group_row_limit;
|
||||||
int32 stripe_row_count;
|
int32 stripe_row_limit;
|
||||||
int32 compressionLevel;
|
int32 compressionLevel;
|
||||||
NameData compression;
|
NameData compression;
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ typedef FormData_columnar_options *Form_columnar_options;
|
||||||
#define Anum_columnar_chunk_stripe 2
|
#define Anum_columnar_chunk_stripe 2
|
||||||
#define Anum_columnar_chunk_attr 3
|
#define Anum_columnar_chunk_attr 3
|
||||||
#define Anum_columnar_chunk_chunk 4
|
#define Anum_columnar_chunk_chunk 4
|
||||||
#define Anum_columnar_chunk_row_count 5
|
#define Anum_columnar_chunk_value_count 5
|
||||||
#define Anum_columnar_chunk_minimum_value 6
|
#define Anum_columnar_chunk_minimum_value 6
|
||||||
#define Anum_columnar_chunk_maximum_value 7
|
#define Anum_columnar_chunk_maximum_value 7
|
||||||
#define Anum_columnar_chunk_value_stream_offset 8
|
#define Anum_columnar_chunk_value_stream_offset 8
|
||||||
|
@ -174,8 +174,8 @@ InitColumnarOptions(Oid regclass)
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnarOptions defaultOptions = {
|
ColumnarOptions defaultOptions = {
|
||||||
.chunkRowCount = columnar_chunk_row_count,
|
.chunkRowCount = columnar_chunk_group_row_limit,
|
||||||
.stripeRowCount = columnar_stripe_row_count,
|
.stripeRowCount = columnar_stripe_row_limit,
|
||||||
.compressionType = columnar_compression,
|
.compressionType = columnar_compression,
|
||||||
.compressionLevel = columnar_compression_level
|
.compressionLevel = columnar_compression_level
|
||||||
};
|
};
|
||||||
|
@ -251,8 +251,8 @@ WriteColumnarOptions(Oid regclass, ColumnarOptions *options, bool overwrite)
|
||||||
/* TODO check if the options are actually different, skip if not changed */
|
/* TODO check if the options are actually different, skip if not changed */
|
||||||
/* update existing record */
|
/* update existing record */
|
||||||
bool update[Natts_columnar_options] = { 0 };
|
bool update[Natts_columnar_options] = { 0 };
|
||||||
update[Anum_columnar_options_chunk_row_count - 1] = true;
|
update[Anum_columnar_options_chunk_group_row_limit - 1] = true;
|
||||||
update[Anum_columnar_options_stripe_row_count - 1] = true;
|
update[Anum_columnar_options_stripe_row_limit - 1] = true;
|
||||||
update[Anum_columnar_options_compression_level - 1] = true;
|
update[Anum_columnar_options_compression_level - 1] = true;
|
||||||
update[Anum_columnar_options_compression - 1] = true;
|
update[Anum_columnar_options_compression - 1] = true;
|
||||||
|
|
||||||
|
@ -371,8 +371,8 @@ ReadColumnarOptions(Oid regclass, ColumnarOptions *options)
|
||||||
{
|
{
|
||||||
Form_columnar_options tupOptions = (Form_columnar_options) GETSTRUCT(heapTuple);
|
Form_columnar_options tupOptions = (Form_columnar_options) GETSTRUCT(heapTuple);
|
||||||
|
|
||||||
options->chunkRowCount = tupOptions->chunk_row_count;
|
options->chunkRowCount = tupOptions->chunk_group_row_limit;
|
||||||
options->stripeRowCount = tupOptions->stripe_row_count;
|
options->stripeRowCount = tupOptions->stripe_row_limit;
|
||||||
options->compressionLevel = tupOptions->compressionLevel;
|
options->compressionLevel = tupOptions->compressionLevel;
|
||||||
options->compressionType = ParseCompressionType(NameStr(tupOptions->compression));
|
options->compressionType = ParseCompressionType(NameStr(tupOptions->compression));
|
||||||
}
|
}
|
||||||
|
@ -380,8 +380,8 @@ ReadColumnarOptions(Oid regclass, ColumnarOptions *options)
|
||||||
{
|
{
|
||||||
/* populate options with system defaults */
|
/* populate options with system defaults */
|
||||||
options->compressionType = columnar_compression;
|
options->compressionType = columnar_compression;
|
||||||
options->stripeRowCount = columnar_stripe_row_count;
|
options->stripeRowCount = columnar_stripe_row_limit;
|
||||||
options->chunkRowCount = columnar_chunk_row_count;
|
options->chunkRowCount = columnar_chunk_group_row_limit;
|
||||||
options->compressionLevel = columnar_compression_level;
|
options->compressionLevel = columnar_compression_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -525,7 +525,7 @@ ReadStripeSkipList(RelFileNode relfilenode, uint64 stripe, TupleDesc tupleDescri
|
||||||
|
|
||||||
ColumnChunkSkipNode *chunk =
|
ColumnChunkSkipNode *chunk =
|
||||||
&chunkList->chunkSkipNodeArray[columnIndex][chunkIndex];
|
&chunkList->chunkSkipNodeArray[columnIndex][chunkIndex];
|
||||||
chunk->rowCount = DatumGetInt64(datumArray[Anum_columnar_chunk_row_count -
|
chunk->rowCount = DatumGetInt64(datumArray[Anum_columnar_chunk_value_count -
|
||||||
1]);
|
1]);
|
||||||
chunk->valueChunkOffset =
|
chunk->valueChunkOffset =
|
||||||
DatumGetInt64(datumArray[Anum_columnar_chunk_value_stream_offset - 1]);
|
DatumGetInt64(datumArray[Anum_columnar_chunk_value_stream_offset - 1]);
|
||||||
|
|
|
@ -1524,8 +1524,8 @@ CitusCreateAlterColumnarTableSet(char *qualifiedRelationName,
|
||||||
|
|
||||||
appendStringInfo(&buf,
|
appendStringInfo(&buf,
|
||||||
"SELECT alter_columnar_table_set(%s, "
|
"SELECT alter_columnar_table_set(%s, "
|
||||||
"chunk_row_count => %d, "
|
"chunk_group_row_limit => %d, "
|
||||||
"stripe_row_count => %lu, "
|
"stripe_row_limit => %lu, "
|
||||||
"compression_level => %d, "
|
"compression_level => %d, "
|
||||||
"compression => %s);",
|
"compression => %s);",
|
||||||
quote_literal_cstr(qualifiedRelationName),
|
quote_literal_cstr(qualifiedRelationName),
|
||||||
|
@ -1634,8 +1634,8 @@ ColumnarGetTableOptionsDDL(Oid relationId)
|
||||||
* sql syntax:
|
* sql syntax:
|
||||||
* pg_catalog.alter_columnar_table_set(
|
* pg_catalog.alter_columnar_table_set(
|
||||||
* table_name regclass,
|
* table_name regclass,
|
||||||
* chunk_row_count int DEFAULT NULL,
|
* chunk_group_row_limit int DEFAULT NULL,
|
||||||
* stripe_row_count int DEFAULT NULL,
|
* stripe_row_limit int DEFAULT NULL,
|
||||||
* compression name DEFAULT null)
|
* compression name DEFAULT null)
|
||||||
*
|
*
|
||||||
* All arguments except the table name are optional. The UDF is supposed to be called
|
* All arguments except the table name are optional. The UDF is supposed to be called
|
||||||
|
@ -1666,7 +1666,7 @@ alter_columnar_table_set(PG_FUNCTION_ARGS)
|
||||||
ereport(ERROR, (errmsg("unable to read current options for table")));
|
ereport(ERROR, (errmsg("unable to read current options for table")));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* chunk_row_count => not null */
|
/* chunk_group_row_limit => not null */
|
||||||
if (!PG_ARGISNULL(1))
|
if (!PG_ARGISNULL(1))
|
||||||
{
|
{
|
||||||
options.chunkRowCount = PG_GETARG_INT32(1);
|
options.chunkRowCount = PG_GETARG_INT32(1);
|
||||||
|
@ -1674,7 +1674,7 @@ alter_columnar_table_set(PG_FUNCTION_ARGS)
|
||||||
(errmsg("updating chunk row count to %d", options.chunkRowCount)));
|
(errmsg("updating chunk row count to %d", options.chunkRowCount)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* stripe_row_count => not null */
|
/* stripe_row_limit => not null */
|
||||||
if (!PG_ARGISNULL(2))
|
if (!PG_ARGISNULL(2))
|
||||||
{
|
{
|
||||||
options.stripeRowCount = PG_GETARG_INT32(2);
|
options.stripeRowCount = PG_GETARG_INT32(2);
|
||||||
|
@ -1744,8 +1744,8 @@ alter_columnar_table_set(PG_FUNCTION_ARGS)
|
||||||
* pg_catalog.alter_columnar_table_re
|
* pg_catalog.alter_columnar_table_re
|
||||||
* teset(
|
* teset(
|
||||||
* table_name regclass,
|
* table_name regclass,
|
||||||
* chunk_row_count bool DEFAULT FALSE,
|
* chunk_group_row_limit bool DEFAULT FALSE,
|
||||||
* stripe_row_count bool DEFAULT FALSE,
|
* stripe_row_limit bool DEFAULT FALSE,
|
||||||
* compression bool DEFAULT FALSE)
|
* compression bool DEFAULT FALSE)
|
||||||
*
|
*
|
||||||
* All arguments except the table name are optional. The UDF is supposed to be called
|
* All arguments except the table name are optional. The UDF is supposed to be called
|
||||||
|
@ -1773,18 +1773,18 @@ alter_columnar_table_reset(PG_FUNCTION_ARGS)
|
||||||
ereport(ERROR, (errmsg("unable to read current options for table")));
|
ereport(ERROR, (errmsg("unable to read current options for table")));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* chunk_row_count => true */
|
/* chunk_group_row_limit => true */
|
||||||
if (!PG_ARGISNULL(1) && PG_GETARG_BOOL(1))
|
if (!PG_ARGISNULL(1) && PG_GETARG_BOOL(1))
|
||||||
{
|
{
|
||||||
options.chunkRowCount = columnar_chunk_row_count;
|
options.chunkRowCount = columnar_chunk_group_row_limit;
|
||||||
ereport(DEBUG1,
|
ereport(DEBUG1,
|
||||||
(errmsg("resetting chunk row count to %d", options.chunkRowCount)));
|
(errmsg("resetting chunk row count to %d", options.chunkRowCount)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* stripe_row_count => true */
|
/* stripe_row_limit => true */
|
||||||
if (!PG_ARGISNULL(2) && PG_GETARG_BOOL(2))
|
if (!PG_ARGISNULL(2) && PG_GETARG_BOOL(2))
|
||||||
{
|
{
|
||||||
options.stripeRowCount = columnar_stripe_row_count;
|
options.stripeRowCount = columnar_stripe_row_limit;
|
||||||
ereport(DEBUG1,
|
ereport(DEBUG1,
|
||||||
(errmsg("resetting stripe row count to " UINT64_FORMAT,
|
(errmsg("resetting stripe row count to " UINT64_FORMAT,
|
||||||
options.stripeRowCount)));
|
options.stripeRowCount)));
|
||||||
|
|
|
@ -7,8 +7,8 @@ CREATE SEQUENCE storageid_seq MINVALUE 10000000000 NO CYCLE;
|
||||||
|
|
||||||
CREATE TABLE options (
|
CREATE TABLE options (
|
||||||
regclass regclass NOT NULL PRIMARY KEY,
|
regclass regclass NOT NULL PRIMARY KEY,
|
||||||
chunk_row_count int NOT NULL,
|
chunk_group_row_limit int NOT NULL,
|
||||||
stripe_row_count int NOT NULL,
|
stripe_row_limit int NOT NULL,
|
||||||
compression_level int NOT NULL,
|
compression_level int NOT NULL,
|
||||||
compression name NOT NULL
|
compression name NOT NULL
|
||||||
) WITH (user_catalog_table = true);
|
) WITH (user_catalog_table = true);
|
||||||
|
@ -34,7 +34,7 @@ CREATE TABLE chunk (
|
||||||
stripeid bigint NOT NULL,
|
stripeid bigint NOT NULL,
|
||||||
attnum int NOT NULL,
|
attnum int NOT NULL,
|
||||||
chunkid int NOT NULL,
|
chunkid int NOT NULL,
|
||||||
row_count bigint NOT NULL,
|
value_count bigint NOT NULL,
|
||||||
minimum_value bytea,
|
minimum_value bytea,
|
||||||
maximum_value bytea,
|
maximum_value bytea,
|
||||||
value_stream_offset bigint NOT NULL,
|
value_stream_offset bigint NOT NULL,
|
||||||
|
|
|
@ -9,15 +9,15 @@ IF substring(current_Setting('server_version'), '\d+')::int >= 12 THEN
|
||||||
EXECUTE $$
|
EXECUTE $$
|
||||||
DROP FUNCTION pg_catalog.alter_columnar_table_reset(
|
DROP FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool,
|
chunk_group_row_limit bool,
|
||||||
stripe_row_count bool,
|
stripe_row_limit bool,
|
||||||
compression bool,
|
compression bool,
|
||||||
compression_level bool);
|
compression_level bool);
|
||||||
|
|
||||||
DROP FUNCTION pg_catalog.alter_columnar_table_set(
|
DROP FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int,
|
chunk_group_row_limit int,
|
||||||
stripe_row_count int,
|
stripe_row_limit int,
|
||||||
compression name,
|
compression name,
|
||||||
compression_level int);
|
compression_level int);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_reset(
|
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool DEFAULT false,
|
chunk_group_row_limit bool DEFAULT false,
|
||||||
stripe_row_count bool DEFAULT false,
|
stripe_row_limit bool DEFAULT false,
|
||||||
compression bool DEFAULT false,
|
compression bool DEFAULT false,
|
||||||
compression_level bool DEFAULT false)
|
compression_level bool DEFAULT false)
|
||||||
RETURNS void
|
RETURNS void
|
||||||
|
@ -10,8 +10,8 @@ AS 'MODULE_PATHNAME', 'alter_columnar_table_reset';
|
||||||
|
|
||||||
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_reset(
|
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool,
|
chunk_group_row_limit bool,
|
||||||
stripe_row_count bool,
|
stripe_row_limit bool,
|
||||||
compression bool,
|
compression bool,
|
||||||
compression_level bool)
|
compression_level bool)
|
||||||
IS 'reset on or more options on a columnar table to the system defaults';
|
IS 'reset on or more options on a columnar table to the system defaults';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_reset(
|
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool DEFAULT false,
|
chunk_group_row_limit bool DEFAULT false,
|
||||||
stripe_row_count bool DEFAULT false,
|
stripe_row_limit bool DEFAULT false,
|
||||||
compression bool DEFAULT false,
|
compression bool DEFAULT false,
|
||||||
compression_level bool DEFAULT false)
|
compression_level bool DEFAULT false)
|
||||||
RETURNS void
|
RETURNS void
|
||||||
|
@ -10,8 +10,8 @@ AS 'MODULE_PATHNAME', 'alter_columnar_table_reset';
|
||||||
|
|
||||||
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_reset(
|
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool,
|
chunk_group_row_limit bool,
|
||||||
stripe_row_count bool,
|
stripe_row_limit bool,
|
||||||
compression bool,
|
compression bool,
|
||||||
compression_level bool)
|
compression_level bool)
|
||||||
IS 'reset on or more options on a columnar table to the system defaults';
|
IS 'reset on or more options on a columnar table to the system defaults';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_set(
|
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int DEFAULT NULL,
|
chunk_group_row_limit int DEFAULT NULL,
|
||||||
stripe_row_count int DEFAULT NULL,
|
stripe_row_limit int DEFAULT NULL,
|
||||||
compression name DEFAULT null,
|
compression name DEFAULT null,
|
||||||
compression_level int DEFAULT NULL)
|
compression_level int DEFAULT NULL)
|
||||||
RETURNS void
|
RETURNS void
|
||||||
|
@ -10,8 +10,8 @@ AS 'MODULE_PATHNAME', 'alter_columnar_table_set';
|
||||||
|
|
||||||
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_set(
|
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int,
|
chunk_group_row_limit int,
|
||||||
stripe_row_count int,
|
stripe_row_limit int,
|
||||||
compression name,
|
compression name,
|
||||||
compression_level int)
|
compression_level int)
|
||||||
IS 'set one or more options on a columnar table, when set to NULL no change is made';
|
IS 'set one or more options on a columnar table, when set to NULL no change is made';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_set(
|
CREATE OR REPLACE FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int DEFAULT NULL,
|
chunk_group_row_limit int DEFAULT NULL,
|
||||||
stripe_row_count int DEFAULT NULL,
|
stripe_row_limit int DEFAULT NULL,
|
||||||
compression name DEFAULT null,
|
compression name DEFAULT null,
|
||||||
compression_level int DEFAULT NULL)
|
compression_level int DEFAULT NULL)
|
||||||
RETURNS void
|
RETURNS void
|
||||||
|
@ -10,8 +10,8 @@ AS 'MODULE_PATHNAME', 'alter_columnar_table_set';
|
||||||
|
|
||||||
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_set(
|
COMMENT ON FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int,
|
chunk_group_row_limit int,
|
||||||
stripe_row_count int,
|
stripe_row_limit int,
|
||||||
compression name,
|
compression name,
|
||||||
compression_level int)
|
compression_level int)
|
||||||
IS 'set one or more options on a columnar table, when set to NULL no change is made';
|
IS 'set one or more options on a columnar table, when set to NULL no change is made';
|
||||||
|
|
|
@ -29,14 +29,14 @@ IF NOT EXISTS (SELECT 1 FROM pg_am WHERE amname = 'columnar') THEN
|
||||||
ALTER EXTENSION citus ADD ACCESS METHOD columnar;
|
ALTER EXTENSION citus ADD ACCESS METHOD columnar;
|
||||||
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_set(
|
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int,
|
chunk_group_row_limit int,
|
||||||
stripe_row_count int,
|
stripe_row_limit int,
|
||||||
compression name,
|
compression name,
|
||||||
compression_level int);
|
compression_level int);
|
||||||
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_reset(
|
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool,
|
chunk_group_row_limit bool,
|
||||||
stripe_row_count bool,
|
stripe_row_limit bool,
|
||||||
compression bool,
|
compression bool,
|
||||||
compression_level bool);
|
compression_level bool);
|
||||||
|
|
||||||
|
|
|
@ -29,14 +29,14 @@ IF NOT EXISTS (SELECT 1 FROM pg_am WHERE amname = 'columnar') THEN
|
||||||
ALTER EXTENSION citus ADD ACCESS METHOD columnar;
|
ALTER EXTENSION citus ADD ACCESS METHOD columnar;
|
||||||
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_set(
|
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_set(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count int,
|
chunk_group_row_limit int,
|
||||||
stripe_row_count int,
|
stripe_row_limit int,
|
||||||
compression name,
|
compression name,
|
||||||
compression_level int);
|
compression_level int);
|
||||||
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_reset(
|
ALTER EXTENSION citus ADD FUNCTION pg_catalog.alter_columnar_table_reset(
|
||||||
table_name regclass,
|
table_name regclass,
|
||||||
chunk_row_count bool,
|
chunk_group_row_limit bool,
|
||||||
stripe_row_count bool,
|
stripe_row_limit bool,
|
||||||
compression bool,
|
compression bool,
|
||||||
compression_level bool);
|
compression_level bool);
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
|
|
||||||
/* Defines for valid option names */
|
/* Defines for valid option names */
|
||||||
#define OPTION_NAME_COMPRESSION_TYPE "compression"
|
#define OPTION_NAME_COMPRESSION_TYPE "compression"
|
||||||
#define OPTION_NAME_STRIPE_ROW_COUNT "stripe_row_count"
|
#define OPTION_NAME_STRIPE_ROW_COUNT "stripe_row_limit"
|
||||||
#define OPTION_NAME_CHUNK_ROW_COUNT "chunk_row_count"
|
#define OPTION_NAME_CHUNK_ROW_COUNT "chunk_group_row_limit"
|
||||||
|
|
||||||
/* Limits for option parameters */
|
/* Limits for option parameters */
|
||||||
#define STRIPE_ROW_COUNT_MINIMUM 1000
|
#define STRIPE_ROW_COUNT_MINIMUM 1000
|
||||||
|
@ -262,8 +262,8 @@ typedef struct TableWriteState
|
||||||
} TableWriteState;
|
} TableWriteState;
|
||||||
|
|
||||||
extern int columnar_compression;
|
extern int columnar_compression;
|
||||||
extern int columnar_stripe_row_count;
|
extern int columnar_stripe_row_limit;
|
||||||
extern int columnar_chunk_row_count;
|
extern int columnar_chunk_group_row_limit;
|
||||||
extern int columnar_compression_level;
|
extern int columnar_compression_level;
|
||||||
|
|
||||||
extern void columnar_init_gucs(void);
|
extern void columnar_init_gucs(void);
|
||||||
|
|
|
@ -11,20 +11,20 @@ SELECT alter_columnar_table_set('t_compressed', compression => 'pglz');
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT alter_columnar_table_set('t_compressed', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('t_compressed', stripe_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT alter_columnar_table_set('t_compressed', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('t_compressed', chunk_group_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT * FROM columnar.options WHERE regclass = 't_compressed'::regclass;
|
SELECT * FROM columnar.options WHERE regclass = 't_compressed'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
t_compressed | 100 | 100 | 3 | pglz
|
t_compressed | 100 | 100 | 3 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
|
@ -26,7 +26,7 @@ SELECT * FROM t_view a ORDER BY a;
|
||||||
-- show columnar options for materialized view
|
-- show columnar options for materialized view
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 't_view'::regclass;
|
WHERE regclass = 't_view'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
t_view | 10000 | 150000 | 3 | none
|
t_view | 10000 | 150000 | 3 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -40,7 +40,7 @@ SELECT alter_columnar_table_set('t_view', compression => 'pglz');
|
||||||
|
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 't_view'::regclass;
|
WHERE regclass = 't_view'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
t_view | 10000 | 150000 | 3 | pglz
|
t_view | 10000 | 150000 | 3 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -49,7 +49,7 @@ REFRESH MATERIALIZED VIEW t_view;
|
||||||
-- verify options have not been changed
|
-- verify options have not been changed
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 't_view'::regclass;
|
WHERE regclass = 't_view'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
t_view | 10000 | 150000 | 3 | pglz
|
t_view | 10000 | 150000 | 3 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
|
@ -13,7 +13,7 @@ CREATE FUNCTION top_memory_context_usage()
|
||||||
RETURNS BIGINT AS $$
|
RETURNS BIGINT AS $$
|
||||||
SELECT TopMemoryContext FROM column_store_memory_stats();
|
SELECT TopMemoryContext FROM column_store_memory_stats();
|
||||||
$$ LANGUAGE SQL VOLATILE;
|
$$ LANGUAGE SQL VOLATILE;
|
||||||
SET columnar.stripe_row_count TO 50000;
|
SET columnar.stripe_row_limit TO 50000;
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
CREATE TABLE t (a int, tag text, memusage bigint) USING columnar;
|
CREATE TABLE t (a int, tag text, memusage bigint) USING columnar;
|
||||||
-- measure memory before doing writes
|
-- measure memory before doing writes
|
||||||
|
|
|
@ -6,7 +6,7 @@ INSERT INTO table_options SELECT generate_series(1,100);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10000 | 150000 | 3 | none
|
table_options | 10000 | 150000 | 3 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -21,7 +21,7 @@ SELECT alter_columnar_table_set('table_options', compression => 'pglz');
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10000 | 150000 | 3 | pglz
|
table_options | 10000 | 150000 | 3 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -36,13 +36,13 @@ SELECT alter_columnar_table_set('table_options', compression_level => 5);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10000 | 150000 | 5 | pglz
|
table_options | 10000 | 150000 | 5 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- test changing the chunk_row_count
|
-- test changing the chunk_group_row_limit
|
||||||
SELECT alter_columnar_table_set('table_options', chunk_row_count => 10);
|
SELECT alter_columnar_table_set('table_options', chunk_group_row_limit => 10);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -51,13 +51,13 @@ SELECT alter_columnar_table_set('table_options', chunk_row_count => 10);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10 | 150000 | 5 | pglz
|
table_options | 10 | 150000 | 5 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- test changing the chunk_row_count
|
-- test changing the chunk_group_row_limit
|
||||||
SELECT alter_columnar_table_set('table_options', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_options', stripe_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ SELECT alter_columnar_table_set('table_options', stripe_row_count => 100);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10 | 100 | 5 | pglz
|
table_options | 10 | 100 | 5 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -76,13 +76,13 @@ VACUUM FULL table_options;
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10 | 100 | 5 | pglz
|
table_options | 10 | 100 | 5 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- set all settings at the same time
|
-- set all settings at the same time
|
||||||
SELECT alter_columnar_table_set('table_options', stripe_row_count => 1000, chunk_row_count => 100, compression => 'none', compression_level => 7);
|
SELECT alter_columnar_table_set('table_options', stripe_row_limit => 1000, chunk_group_row_limit => 100, compression => 'none', compression_level => 7);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ SELECT alter_columnar_table_set('table_options', stripe_row_count => 1000, chunk
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 100 | 1000 | 7 | none
|
table_options | 100 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -101,7 +101,7 @@ VACUUM table_options;
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 100 | 1000 | 7 | none
|
table_options | 100 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -111,7 +111,7 @@ VACUUM FULL table_options;
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 100 | 1000 | 7 | none
|
table_options | 100 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -121,7 +121,7 @@ TRUNCATE table_options;
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 100 | 1000 | 7 | none
|
table_options | 100 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -130,26 +130,26 @@ ALTER TABLE table_options ALTER COLUMN a TYPE bigint;
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 100 | 1000 | 7 | none
|
table_options | 100 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- reset settings one by one to the version of the GUC's
|
-- reset settings one by one to the version of the GUC's
|
||||||
SET columnar.chunk_row_count TO 1000;
|
SET columnar.chunk_group_row_limit TO 1000;
|
||||||
SET columnar.stripe_row_count TO 10000;
|
SET columnar.stripe_row_limit TO 10000;
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
SET columnar.compression_level TO 11;
|
SET columnar.compression_level TO 11;
|
||||||
-- verify setting the GUC's didn't change the settings
|
-- verify setting the GUC's didn't change the settings
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 100 | 1000 | 7 | none
|
table_options | 100 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT alter_columnar_table_reset('table_options', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_options', chunk_group_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -158,12 +158,12 @@ SELECT alter_columnar_table_reset('table_options', chunk_row_count => true);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 1000 | 1000 | 7 | none
|
table_options | 1000 | 1000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT alter_columnar_table_reset('table_options', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_options', stripe_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ SELECT alter_columnar_table_reset('table_options', stripe_row_count => true);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 1000 | 10000 | 7 | none
|
table_options | 1000 | 10000 | 7 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -186,7 +186,7 @@ SELECT alter_columnar_table_reset('table_options', compression => true);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 1000 | 10000 | 7 | pglz
|
table_options | 1000 | 10000 | 7 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -200,28 +200,28 @@ SELECT alter_columnar_table_reset('table_options', compression_level => true);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 1000 | 10000 | 11 | pglz
|
table_options | 1000 | 10000 | 11 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- verify resetting all settings at once work
|
-- verify resetting all settings at once work
|
||||||
SET columnar.chunk_row_count TO 10000;
|
SET columnar.chunk_group_row_limit TO 10000;
|
||||||
SET columnar.stripe_row_count TO 100000;
|
SET columnar.stripe_row_limit TO 100000;
|
||||||
SET columnar.compression TO 'none';
|
SET columnar.compression TO 'none';
|
||||||
SET columnar.compression_level TO 13;
|
SET columnar.compression_level TO 13;
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 1000 | 10000 | 11 | pglz
|
table_options | 1000 | 10000 | 11 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT alter_columnar_table_reset(
|
SELECT alter_columnar_table_reset(
|
||||||
'table_options',
|
'table_options',
|
||||||
chunk_row_count => true,
|
chunk_group_row_limit => true,
|
||||||
stripe_row_count => true,
|
stripe_row_limit => true,
|
||||||
compression => true,
|
compression => true,
|
||||||
compression_level => true);
|
compression_level => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
|
@ -232,7 +232,7 @@ SELECT alter_columnar_table_reset(
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
table_options | 10000 | 100000 | 13 | none
|
table_options | 10000 | 100000 | 13 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -258,7 +258,7 @@ HINT: compression level must be between 1 and 19
|
||||||
DROP TABLE table_options;
|
DROP TABLE table_options;
|
||||||
-- we expect no entries in çstore.options for anything not found int pg_class
|
-- we expect no entries in çstore.options for anything not found int pg_class
|
||||||
SELECT * FROM columnar.options o WHERE o.regclass NOT IN (SELECT oid FROM pg_class);
|
SELECT * FROM columnar.options o WHERE o.regclass NOT IN (SELECT oid FROM pg_class);
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
(0 rows)
|
(0 rows)
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ SELECT count(*) FROM t_stripes;
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- test the case when all data cannot fit into a single stripe
|
-- test the case when all data cannot fit into a single stripe
|
||||||
SELECT alter_columnar_table_set('t', stripe_row_count => 1000);
|
SELECT alter_columnar_table_set('t', stripe_row_limit => 1000);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -172,8 +172,8 @@ SELECT count(*) FROM t;
|
||||||
-- then vacuum to print stats
|
-- then vacuum to print stats
|
||||||
BEGIN;
|
BEGIN;
|
||||||
SELECT alter_columnar_table_set('t',
|
SELECT alter_columnar_table_set('t',
|
||||||
chunk_row_count => 1000,
|
chunk_group_row_limit => 1000,
|
||||||
stripe_row_count => 2000,
|
stripe_row_limit => 2000,
|
||||||
compression => 'pglz');
|
compression => 'pglz');
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -250,8 +250,8 @@ SELECT count(distinct storageid) - :columnar_table_count FROM columnar.stripe;
|
||||||
|
|
||||||
-- A table with high compression ratio
|
-- A table with high compression ratio
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
SET columnar.stripe_row_count TO 1000000;
|
SET columnar.stripe_row_limit TO 1000000;
|
||||||
SET columnar.chunk_row_count TO 100000;
|
SET columnar.chunk_group_row_limit TO 100000;
|
||||||
CREATE TABLE t(a int, b char, c text) USING columnar;
|
CREATE TABLE t(a int, b char, c text) USING columnar;
|
||||||
INSERT INTO t SELECT 1, 'a', 'xyz' FROM generate_series(1, 1000000) i;
|
INSERT INTO t SELECT 1, 'a', 'xyz' FROM generate_series(1, 1000000) i;
|
||||||
VACUUM VERBOSE t;
|
VACUUM VERBOSE t;
|
||||||
|
|
|
@ -115,10 +115,10 @@ $cmd$);
|
||||||
(localhost,57638,20090003,t,3)
|
(localhost,57638,20090003,t,3)
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -129,7 +129,7 @@ $cmd$);
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', chunk_group_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ SELECT alter_columnar_table_set('table_option', chunk_row_count => 100);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -148,7 +148,7 @@ $cmd$);
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', chunk_group_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ SELECT alter_columnar_table_reset('table_option', chunk_row_count => true);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -166,10 +166,10 @@ $cmd$);
|
||||||
(localhost,57638,20090003,t,10000)
|
(localhost,57638,20090003,t,10000)
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -180,7 +180,7 @@ $cmd$);
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', stripe_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ SELECT alter_columnar_table_set('table_option', stripe_row_count => 100);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -199,7 +199,7 @@ $cmd$);
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', stripe_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ SELECT alter_columnar_table_reset('table_option', stripe_row_count => true);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -220,8 +220,8 @@ $cmd$);
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_2',
|
SELECT alter_columnar_table_set('table_option_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 15);
|
compression_level => 15);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
|
@ -237,7 +237,7 @@ SELECT create_distributed_table('table_option_2', 'a');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_2',$cmd$
|
SELECT run_command_on_placements('table_option_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -406,10 +406,10 @@ $cmd$);
|
||||||
(localhost,57638,20090011,t,3)
|
(localhost,57638,20090011,t,3)
|
||||||
(8 rows)
|
(8 rows)
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -424,7 +424,7 @@ $cmd$);
|
||||||
(8 rows)
|
(8 rows)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', chunk_group_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ SELECT alter_columnar_table_set('table_option', chunk_row_count => 100);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -447,7 +447,7 @@ $cmd$);
|
||||||
(8 rows)
|
(8 rows)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', chunk_group_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ SELECT alter_columnar_table_reset('table_option', chunk_row_count => true);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -469,10 +469,10 @@ $cmd$);
|
||||||
(localhost,57638,20090011,t,10000)
|
(localhost,57638,20090011,t,10000)
|
||||||
(8 rows)
|
(8 rows)
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -487,7 +487,7 @@ $cmd$);
|
||||||
(8 rows)
|
(8 rows)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', stripe_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -495,7 +495,7 @@ SELECT alter_columnar_table_set('table_option', stripe_row_count => 100);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -510,7 +510,7 @@ $cmd$);
|
||||||
(8 rows)
|
(8 rows)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', stripe_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -518,7 +518,7 @@ SELECT alter_columnar_table_reset('table_option', stripe_row_count => true);
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -535,8 +535,8 @@ $cmd$);
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_2',
|
SELECT alter_columnar_table_set('table_option_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 19);
|
compression_level => 19);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
|
@ -552,7 +552,7 @@ SELECT create_distributed_table('table_option_2', 'a');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_2',$cmd$
|
SELECT run_command_on_placements('table_option_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -687,10 +687,10 @@ $cmd$);
|
||||||
(localhost,57638,20090016,t,3)
|
(localhost,57638,20090016,t,3)
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -699,7 +699,7 @@ $cmd$);
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_reference', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_reference', chunk_group_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -707,7 +707,7 @@ SELECT alter_columnar_table_set('table_option_reference', chunk_row_count => 100
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -716,7 +716,7 @@ $cmd$);
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_reference', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_reference', chunk_group_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -724,7 +724,7 @@ SELECT alter_columnar_table_reset('table_option_reference', chunk_row_count => t
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -732,10 +732,10 @@ $cmd$);
|
||||||
(localhost,57638,20090016,t,10000)
|
(localhost,57638,20090016,t,10000)
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -744,7 +744,7 @@ $cmd$);
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_reference', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_reference', stripe_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -752,7 +752,7 @@ SELECT alter_columnar_table_set('table_option_reference', stripe_row_count => 10
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -761,7 +761,7 @@ $cmd$);
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_reference', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_reference', stripe_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -769,7 +769,7 @@ SELECT alter_columnar_table_reset('table_option_reference', stripe_row_count =>
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -780,8 +780,8 @@ $cmd$);
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_reference_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_reference_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_reference_2',
|
SELECT alter_columnar_table_set('table_option_reference_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 9);
|
compression_level => 9);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
|
@ -797,7 +797,7 @@ SELECT create_reference_table('table_option_reference_2');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_reference_2',$cmd$
|
SELECT run_command_on_placements('table_option_reference_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -927,10 +927,10 @@ $cmd$);
|
||||||
(localhost,57636,20090018,t,3)
|
(localhost,57636,20090018,t,3)
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -938,7 +938,7 @@ $cmd$);
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_citus_local', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_citus_local', chunk_group_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -946,7 +946,7 @@ SELECT alter_columnar_table_set('table_option_citus_local', chunk_row_count => 1
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -954,7 +954,7 @@ $cmd$);
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_citus_local', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_citus_local', chunk_group_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -962,17 +962,17 @@ SELECT alter_columnar_table_reset('table_option_citus_local', chunk_row_count =>
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
(localhost,57636,20090018,t,10000)
|
(localhost,57636,20090018,t,10000)
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -980,7 +980,7 @@ $cmd$);
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_citus_local', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_citus_local', stripe_row_limit => 100);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -988,7 +988,7 @@ SELECT alter_columnar_table_set('table_option_citus_local', stripe_row_count =>
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -996,7 +996,7 @@ $cmd$);
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_citus_local', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_citus_local', stripe_row_limit => true);
|
||||||
alter_columnar_table_reset
|
alter_columnar_table_reset
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -1004,7 +1004,7 @@ SELECT alter_columnar_table_reset('table_option_citus_local', stripe_row_count =
|
||||||
|
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
@ -1014,8 +1014,8 @@ $cmd$);
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_citus_local_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_citus_local_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_citus_local_2',
|
SELECT alter_columnar_table_set('table_option_citus_local_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 9);
|
compression_level => 9);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
|
@ -1031,7 +1031,7 @@ SELECT citus_add_local_table_to_metadata('table_option_citus_local_2');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_citus_local_2',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
run_command_on_placements
|
run_command_on_placements
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
|
@ -102,7 +102,7 @@ SELECT * FROM matview ORDER BY a;
|
||||||
|
|
||||||
-- test we retained options
|
-- test we retained options
|
||||||
SELECT * FROM columnar.options WHERE regclass = 'test_options_1'::regclass;
|
SELECT * FROM columnar.options WHERE regclass = 'test_options_1'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
test_options_1 | 1000 | 5000 | 3 | pglz
|
test_options_1 | 1000 | 5000 | 3 | pglz
|
||||||
(1 row)
|
(1 row)
|
||||||
|
@ -122,7 +122,7 @@ SELECT count(*), sum(a), sum(b) FROM test_options_1;
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT * FROM columnar.options WHERE regclass = 'test_options_2'::regclass;
|
SELECT * FROM columnar.options WHERE regclass = 'test_options_2'::regclass;
|
||||||
regclass | chunk_row_count | stripe_row_count | compression_level | compression
|
regclass | chunk_group_row_limit | stripe_row_limit | compression_level | compression
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
test_options_2 | 2000 | 6000 | 13 | none
|
test_options_2 | 2000 | 6000 | 13 | none
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
|
@ -115,20 +115,20 @@ SELECT :relfilenode_pre_alter <> :relfilenode_post_alter AS relfilenode_changed;
|
||||||
--
|
--
|
||||||
-- Test that we retain options
|
-- Test that we retain options
|
||||||
--
|
--
|
||||||
SET columnar.stripe_row_count TO 5000;
|
SET columnar.stripe_row_limit TO 5000;
|
||||||
SET columnar.chunk_row_count TO 1000;
|
SET columnar.chunk_group_row_limit TO 1000;
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
CREATE TABLE test_options_1(a int, b int) USING columnar;
|
CREATE TABLE test_options_1(a int, b int) USING columnar;
|
||||||
INSERT INTO test_options_1 SELECT i, floor(i/1000) FROM generate_series(1, 10000) i;
|
INSERT INTO test_options_1 SELECT i, floor(i/1000) FROM generate_series(1, 10000) i;
|
||||||
CREATE TABLE test_options_2(a int, b int) USING columnar;
|
CREATE TABLE test_options_2(a int, b int) USING columnar;
|
||||||
INSERT INTO test_options_2 SELECT i, floor(i/1000) FROM generate_series(1, 10000) i;
|
INSERT INTO test_options_2 SELECT i, floor(i/1000) FROM generate_series(1, 10000) i;
|
||||||
SELECT alter_columnar_table_set('test_options_2', chunk_row_count => 2000);
|
SELECT alter_columnar_table_set('test_options_2', chunk_group_row_limit => 2000);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
SELECT alter_columnar_table_set('test_options_2', stripe_row_count => 6000);
|
SELECT alter_columnar_table_set('test_options_2', stripe_row_limit => 6000);
|
||||||
alter_columnar_table_set
|
alter_columnar_table_set
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,9 @@ $$ LANGUAGE PLPGSQL;
|
||||||
|
|
||||||
|
|
||||||
-- Create and load data
|
-- Create and load data
|
||||||
-- chunk_row_count '1000', stripe_row_count '2000'
|
-- chunk_group_row_limit '1000', stripe_row_limit '2000'
|
||||||
set columnar.stripe_row_count = 2000;
|
set columnar.stripe_row_limit = 2000;
|
||||||
set columnar.chunk_row_count = 1000;
|
set columnar.chunk_group_row_limit = 1000;
|
||||||
CREATE TABLE test_chunk_filtering (a int)
|
CREATE TABLE test_chunk_filtering (a int)
|
||||||
USING columnar;
|
USING columnar;
|
||||||
|
|
||||||
|
@ -58,8 +58,8 @@ SELECT filtered_row_count('SELECT count(*) FROM test_chunk_filtering WHERE a < 2
|
||||||
SELECT filtered_row_count('SELECT count(*) FROM test_chunk_filtering WHERE a < 0');
|
SELECT filtered_row_count('SELECT count(*) FROM test_chunk_filtering WHERE a < 0');
|
||||||
SELECT filtered_row_count('SELECT count(*) FROM test_chunk_filtering WHERE a BETWEEN 990 AND 2010');
|
SELECT filtered_row_count('SELECT count(*) FROM test_chunk_filtering WHERE a BETWEEN 990 AND 2010');
|
||||||
|
|
||||||
set columnar.stripe_row_count to default;
|
set columnar.stripe_row_limit to default;
|
||||||
set columnar.chunk_row_count to default;
|
set columnar.chunk_group_row_limit to default;
|
||||||
|
|
||||||
-- Verify that we are fine with collations which use a different alphabet order
|
-- Verify that we are fine with collations which use a different alphabet order
|
||||||
CREATE TABLE collation_chunk_filtering_test(A text collate "da_DK")
|
CREATE TABLE collation_chunk_filtering_test(A text collate "da_DK")
|
||||||
|
|
|
@ -24,9 +24,9 @@ $$
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE PLPGSQL;
|
$$ LANGUAGE PLPGSQL;
|
||||||
-- Create and load data
|
-- Create and load data
|
||||||
-- chunk_row_count '1000', stripe_row_count '2000'
|
-- chunk_group_row_limit '1000', stripe_row_limit '2000'
|
||||||
set columnar.stripe_row_count = 2000;
|
set columnar.stripe_row_limit = 2000;
|
||||||
set columnar.chunk_row_count = 1000;
|
set columnar.chunk_group_row_limit = 1000;
|
||||||
CREATE TABLE test_chunk_filtering (a int)
|
CREATE TABLE test_chunk_filtering (a int)
|
||||||
USING columnar;
|
USING columnar;
|
||||||
COPY test_chunk_filtering FROM '@abs_srcdir@/data/chunk_filtering.csv' WITH CSV;
|
COPY test_chunk_filtering FROM '@abs_srcdir@/data/chunk_filtering.csv' WITH CSV;
|
||||||
|
@ -106,8 +106,8 @@ SELECT filtered_row_count('SELECT count(*) FROM test_chunk_filtering WHERE a BET
|
||||||
3958
|
3958
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
set columnar.stripe_row_count to default;
|
set columnar.stripe_row_limit to default;
|
||||||
set columnar.chunk_row_count to default;
|
set columnar.chunk_group_row_limit to default;
|
||||||
-- Verify that we are fine with collations which use a different alphabet order
|
-- Verify that we are fine with collations which use a different alphabet order
|
||||||
CREATE TABLE collation_chunk_filtering_test(A text collate "da_DK")
|
CREATE TABLE collation_chunk_filtering_test(A text collate "da_DK")
|
||||||
USING columnar;
|
USING columnar;
|
||||||
|
|
|
@ -8,8 +8,8 @@ create table t_compressed(a int) using columnar;
|
||||||
|
|
||||||
-- set options
|
-- set options
|
||||||
SELECT alter_columnar_table_set('t_compressed', compression => 'pglz');
|
SELECT alter_columnar_table_set('t_compressed', compression => 'pglz');
|
||||||
SELECT alter_columnar_table_set('t_compressed', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('t_compressed', stripe_row_limit => 100);
|
||||||
SELECT alter_columnar_table_set('t_compressed', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('t_compressed', chunk_group_row_limit => 100);
|
||||||
|
|
||||||
SELECT * FROM columnar.options WHERE regclass = 't_compressed'::regclass;
|
SELECT * FROM columnar.options WHERE regclass = 't_compressed'::regclass;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ CREATE FUNCTION top_memory_context_usage()
|
||||||
SELECT TopMemoryContext FROM column_store_memory_stats();
|
SELECT TopMemoryContext FROM column_store_memory_stats();
|
||||||
$$ LANGUAGE SQL VOLATILE;
|
$$ LANGUAGE SQL VOLATILE;
|
||||||
|
|
||||||
SET columnar.stripe_row_count TO 50000;
|
SET columnar.stripe_row_limit TO 50000;
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
CREATE TABLE t (a int, tag text, memusage bigint) USING columnar;
|
CREATE TABLE t (a int, tag text, memusage bigint) USING columnar;
|
||||||
|
|
||||||
|
|
|
@ -23,15 +23,15 @@ SELECT alter_columnar_table_set('table_options', compression_level => 5);
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
-- test changing the chunk_row_count
|
-- test changing the chunk_group_row_limit
|
||||||
SELECT alter_columnar_table_set('table_options', chunk_row_count => 10);
|
SELECT alter_columnar_table_set('table_options', chunk_group_row_limit => 10);
|
||||||
|
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
-- test changing the chunk_row_count
|
-- test changing the chunk_group_row_limit
|
||||||
SELECT alter_columnar_table_set('table_options', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_options', stripe_row_limit => 100);
|
||||||
|
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
|
@ -45,7 +45,7 @@ SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
-- set all settings at the same time
|
-- set all settings at the same time
|
||||||
SELECT alter_columnar_table_set('table_options', stripe_row_count => 1000, chunk_row_count => 100, compression => 'none', compression_level => 7);
|
SELECT alter_columnar_table_set('table_options', stripe_row_limit => 1000, chunk_group_row_limit => 100, compression => 'none', compression_level => 7);
|
||||||
|
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
|
@ -75,8 +75,8 @@ SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
-- reset settings one by one to the version of the GUC's
|
-- reset settings one by one to the version of the GUC's
|
||||||
SET columnar.chunk_row_count TO 1000;
|
SET columnar.chunk_group_row_limit TO 1000;
|
||||||
SET columnar.stripe_row_count TO 10000;
|
SET columnar.stripe_row_limit TO 10000;
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
SET columnar.compression_level TO 11;
|
SET columnar.compression_level TO 11;
|
||||||
|
|
||||||
|
@ -85,12 +85,12 @@ SET columnar.compression_level TO 11;
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
SELECT alter_columnar_table_reset('table_options', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_options', chunk_group_row_limit => true);
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
SELECT alter_columnar_table_reset('table_options', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_options', stripe_row_limit => true);
|
||||||
|
|
||||||
-- show table_options settings
|
-- show table_options settings
|
||||||
SELECT * FROM columnar.options
|
SELECT * FROM columnar.options
|
||||||
|
@ -109,8 +109,8 @@ SELECT * FROM columnar.options
|
||||||
WHERE regclass = 'table_options'::regclass;
|
WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
-- verify resetting all settings at once work
|
-- verify resetting all settings at once work
|
||||||
SET columnar.chunk_row_count TO 10000;
|
SET columnar.chunk_group_row_limit TO 10000;
|
||||||
SET columnar.stripe_row_count TO 100000;
|
SET columnar.stripe_row_limit TO 100000;
|
||||||
SET columnar.compression TO 'none';
|
SET columnar.compression TO 'none';
|
||||||
SET columnar.compression_level TO 13;
|
SET columnar.compression_level TO 13;
|
||||||
|
|
||||||
|
@ -120,8 +120,8 @@ WHERE regclass = 'table_options'::regclass;
|
||||||
|
|
||||||
SELECT alter_columnar_table_reset(
|
SELECT alter_columnar_table_reset(
|
||||||
'table_options',
|
'table_options',
|
||||||
chunk_row_count => true,
|
chunk_group_row_limit => true,
|
||||||
stripe_row_count => true,
|
stripe_row_limit => true,
|
||||||
compression => true,
|
compression => true,
|
||||||
compression_level => true);
|
compression_level => true);
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ SELECT sum(a), sum(b) FROM t;
|
||||||
SELECT count(*) FROM t_stripes;
|
SELECT count(*) FROM t_stripes;
|
||||||
|
|
||||||
-- test the case when all data cannot fit into a single stripe
|
-- test the case when all data cannot fit into a single stripe
|
||||||
SELECT alter_columnar_table_set('t', stripe_row_count => 1000);
|
SELECT alter_columnar_table_set('t', stripe_row_limit => 1000);
|
||||||
INSERT INTO t SELECT i, 2 * i FROM generate_series(1,2500) i;
|
INSERT INTO t SELECT i, 2 * i FROM generate_series(1,2500) i;
|
||||||
|
|
||||||
SELECT sum(a), sum(b) FROM t;
|
SELECT sum(a), sum(b) FROM t;
|
||||||
|
@ -76,8 +76,8 @@ SELECT count(*) FROM t;
|
||||||
|
|
||||||
BEGIN;
|
BEGIN;
|
||||||
SELECT alter_columnar_table_set('t',
|
SELECT alter_columnar_table_set('t',
|
||||||
chunk_row_count => 1000,
|
chunk_group_row_limit => 1000,
|
||||||
stripe_row_count => 2000,
|
stripe_row_limit => 2000,
|
||||||
compression => 'pglz');
|
compression => 'pglz');
|
||||||
SAVEPOINT s1;
|
SAVEPOINT s1;
|
||||||
INSERT INTO t SELECT i FROM generate_series(1, 1500) i;
|
INSERT INTO t SELECT i FROM generate_series(1, 1500) i;
|
||||||
|
@ -116,8 +116,8 @@ SELECT count(distinct storageid) - :columnar_table_count FROM columnar.stripe;
|
||||||
|
|
||||||
-- A table with high compression ratio
|
-- A table with high compression ratio
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
SET columnar.stripe_row_count TO 1000000;
|
SET columnar.stripe_row_limit TO 1000000;
|
||||||
SET columnar.chunk_row_count TO 100000;
|
SET columnar.chunk_group_row_limit TO 100000;
|
||||||
CREATE TABLE t(a int, b char, c text) USING columnar;
|
CREATE TABLE t(a int, b char, c text) USING columnar;
|
||||||
INSERT INTO t SELECT 1, 'a', 'xyz' FROM generate_series(1, 1000000) i;
|
INSERT INTO t SELECT 1, 'a', 'xyz' FROM generate_series(1, 1000000) i;
|
||||||
|
|
||||||
|
|
|
@ -48,54 +48,54 @@ SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', chunk_group_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', chunk_group_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', stripe_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', stripe_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_2',
|
SELECT alter_columnar_table_set('table_option_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 15);
|
compression_level => 15);
|
||||||
SELECT create_distributed_table('table_option_2', 'a');
|
SELECT create_distributed_table('table_option_2', 'a');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_2',$cmd$
|
SELECT run_command_on_placements('table_option_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify undistribute works
|
-- verify undistribute works
|
||||||
|
@ -148,54 +148,54 @@ SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', chunk_group_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', chunk_group_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option', stripe_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option', stripe_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option',$cmd$
|
SELECT run_command_on_placements('table_option',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_2',
|
SELECT alter_columnar_table_set('table_option_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 19);
|
compression_level => 19);
|
||||||
SELECT create_distributed_table('table_option_2', 'a');
|
SELECT create_distributed_table('table_option_2', 'a');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_2',$cmd$
|
SELECT run_command_on_placements('table_option_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify undistribute works
|
-- verify undistribute works
|
||||||
|
@ -245,54 +245,54 @@ SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_reference', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_reference', chunk_group_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_reference', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_reference', chunk_group_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_reference', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_reference', stripe_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_reference', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_reference', stripe_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_reference',$cmd$
|
SELECT run_command_on_placements('table_option_reference',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_reference_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_reference_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_reference_2',
|
SELECT alter_columnar_table_set('table_option_reference_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 9);
|
compression_level => 9);
|
||||||
SELECT create_reference_table('table_option_reference_2');
|
SELECT create_reference_table('table_option_reference_2');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_reference_2',$cmd$
|
SELECT run_command_on_placements('table_option_reference_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify undistribute works
|
-- verify undistribute works
|
||||||
|
@ -345,54 +345,54 @@ SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT compression_level FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: chunk_row_count
|
-- setting: chunk_group_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_citus_local', chunk_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_citus_local', chunk_group_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_citus_local', chunk_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_citus_local', chunk_group_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT chunk_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT chunk_group_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- setting: stripe_row_count
|
-- setting: stripe_row_limit
|
||||||
-- get baseline for setting
|
-- get baseline for setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- change setting
|
-- change setting
|
||||||
SELECT alter_columnar_table_set('table_option_citus_local', stripe_row_count => 100);
|
SELECT alter_columnar_table_set('table_option_citus_local', stripe_row_limit => 100);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
-- reset setting
|
-- reset setting
|
||||||
SELECT alter_columnar_table_reset('table_option_citus_local', stripe_row_count => true);
|
SELECT alter_columnar_table_reset('table_option_citus_local', stripe_row_limit => true);
|
||||||
-- verify setting
|
-- verify setting
|
||||||
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local',$cmd$
|
||||||
SELECT stripe_row_count FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT stripe_row_limit FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify settings are propagated when creating a table
|
-- verify settings are propagated when creating a table
|
||||||
CREATE TABLE table_option_citus_local_2 (a int, b text) USING columnar;
|
CREATE TABLE table_option_citus_local_2 (a int, b text) USING columnar;
|
||||||
SELECT alter_columnar_table_set('table_option_citus_local_2',
|
SELECT alter_columnar_table_set('table_option_citus_local_2',
|
||||||
chunk_row_count => 100,
|
chunk_group_row_limit => 100,
|
||||||
stripe_row_count => 1000,
|
stripe_row_limit => 1000,
|
||||||
compression => 'pglz',
|
compression => 'pglz',
|
||||||
compression_level => 9);
|
compression_level => 9);
|
||||||
SELECT citus_add_local_table_to_metadata('table_option_citus_local_2');
|
SELECT citus_add_local_table_to_metadata('table_option_citus_local_2');
|
||||||
|
|
||||||
-- verify settings on placements
|
-- verify settings on placements
|
||||||
SELECT run_command_on_placements('table_option_citus_local_2',$cmd$
|
SELECT run_command_on_placements('table_option_citus_local_2',$cmd$
|
||||||
SELECT ROW(chunk_row_count, stripe_row_count, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
SELECT ROW(chunk_group_row_limit, stripe_row_limit, compression, compression_level) FROM columnar.options WHERE regclass = '%s'::regclass;
|
||||||
$cmd$);
|
$cmd$);
|
||||||
|
|
||||||
-- verify undistribute works
|
-- verify undistribute works
|
||||||
|
|
|
@ -95,8 +95,8 @@ SELECT :relfilenode_pre_alter <> :relfilenode_post_alter AS relfilenode_changed;
|
||||||
-- Test that we retain options
|
-- Test that we retain options
|
||||||
--
|
--
|
||||||
|
|
||||||
SET columnar.stripe_row_count TO 5000;
|
SET columnar.stripe_row_limit TO 5000;
|
||||||
SET columnar.chunk_row_count TO 1000;
|
SET columnar.chunk_group_row_limit TO 1000;
|
||||||
SET columnar.compression TO 'pglz';
|
SET columnar.compression TO 'pglz';
|
||||||
|
|
||||||
CREATE TABLE test_options_1(a int, b int) USING columnar;
|
CREATE TABLE test_options_1(a int, b int) USING columnar;
|
||||||
|
@ -104,8 +104,8 @@ INSERT INTO test_options_1 SELECT i, floor(i/1000) FROM generate_series(1, 10000
|
||||||
|
|
||||||
CREATE TABLE test_options_2(a int, b int) USING columnar;
|
CREATE TABLE test_options_2(a int, b int) USING columnar;
|
||||||
INSERT INTO test_options_2 SELECT i, floor(i/1000) FROM generate_series(1, 10000) i;
|
INSERT INTO test_options_2 SELECT i, floor(i/1000) FROM generate_series(1, 10000) i;
|
||||||
SELECT alter_columnar_table_set('test_options_2', chunk_row_count => 2000);
|
SELECT alter_columnar_table_set('test_options_2', chunk_group_row_limit => 2000);
|
||||||
SELECT alter_columnar_table_set('test_options_2', stripe_row_count => 6000);
|
SELECT alter_columnar_table_set('test_options_2', stripe_row_limit => 6000);
|
||||||
SELECT alter_columnar_table_set('test_options_2', compression => 'none');
|
SELECT alter_columnar_table_set('test_options_2', compression => 'none');
|
||||||
SELECT alter_columnar_table_set('test_options_2', compression_level => 13);
|
SELECT alter_columnar_table_set('test_options_2', compression_level => 13);
|
||||||
INSERT INTO test_options_2 SELECT i, floor(i/2000) FROM generate_series(1, 10000) i;
|
INSERT INTO test_options_2 SELECT i, floor(i/2000) FROM generate_series(1, 10000) i;
|
||||||
|
|
Loading…
Reference in New Issue