This commit is contained in:
yangke1125 2023-10-05 22:55:53 +08:00
parent a0d860446b
commit 0de7fe1838
1 changed files with 273 additions and 149 deletions

View File

@ -122,88 +122,123 @@ static relopt_bool boolRelOpts[] = {
};
static relopt_int intRelOpts[] = {
{{ "fillfactor", "Packs table pages only to this percentage", RELOPT_KIND_HEAP },
HEAP_DEFAULT_FILLFACTOR,
HEAP_MIN_FILLFACTOR,
100 },
{{ "fillfactor", "Packs btree index pages only to this percentage", RELOPT_KIND_BTREE },
BTREE_DEFAULT_FILLFACTOR,
BTREE_MIN_FILLFACTOR,
100 },
{{ "fillfactor", "Packs hash index pages only to this percentage", RELOPT_KIND_HASH },
HASH_DEFAULT_FILLFACTOR,
HASH_MIN_FILLFACTOR,
100 },
{{ "fillfactor", "Packs gist index pages only to this percentage", RELOPT_KIND_GIST },
GIST_DEFAULT_FILLFACTOR,
GIST_MIN_FILLFACTOR,
100 },
{{ "fillfactor", "Packs spgist index pages only to this percentage", RELOPT_KIND_SPGIST },
SPGIST_DEFAULT_FILLFACTOR,
SPGIST_MIN_FILLFACTOR,
100 },
{{ "autovacuum_vacuum_threshold", "Minimum number of tuple updates or deletes prior to vacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST },
-1,
0,
INT_MAX },
{{ "autovacuum_analyze_threshold", "Minimum number of tuple inserts, updates or deletes prior to analyze",
RELOPT_KIND_HEAP },
-1,
0,
INT_MAX },
{{ "autovacuum_vacuum_cost_delay", "Vacuum cost delay in milliseconds, for autovacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST },
-1,
0,
100 },
{{ "autovacuum_vacuum_cost_limit", "Vacuum cost amount available before napping, for autovacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST },
-1,
1,
10000 },
// "fillfactor" 选项适用于 HEAP 类型的关系
{{ "fillfactor", "仅将表页打包到此百分比", RELOPT_KIND_HEAP },
HEAP_DEFAULT_FILLFACTOR, // HEAP 类型关系的默认填充因子
HEAP_MIN_FILLFACTOR, // 允许的最小填充因子
100 }, // 允许的最大填充因子
// "fillfactor" 选项适用于 BTREE 类型的关系
{{ "fillfactor", "仅将 btree 索引页打包到此百分比", RELOPT_KIND_BTREE },
BTREE_DEFAULT_FILLFACTOR, // BTREE 类型关系的默认填充因子
BTREE_MIN_FILLFACTOR, // 允许的最小填充因子
100 }, // 允许的最大填充因子
// "fillfactor" 选项适用于 HASH 类型的关系
{{ "fillfactor", "仅将 hash 索引页打包到此百分比", RELOPT_KIND_HASH },
HASH_DEFAULT_FILLFACTOR, // HASH 类型关系的默认填充因子
HASH_MIN_FILLFACTOR, // 允许的最小填充因子
100 }, // 允许的最大填充因子
// "fillfactor" 选项适用于 GIST 类型的关系
{{ "fillfactor", "仅将 gist 索引页打包到此百分比", RELOPT_KIND_GIST },
GIST_DEFAULT_FILLFACTOR, // GIST 类型关系的默认填充因子
GIST_MIN_FILLFACTOR, // 允许的最小填充因子
100 }, // 允许的最大填充因子
// "fillfactor" 选项适用于 SPGIST 类型的关系
{{ "fillfactor", "仅将 spgist 索引页打包到此百分比", RELOPT_KIND_SPGIST },
SPGIST_DEFAULT_FILLFACTOR, // SPGIST 类型关系的默认填充因子
SPGIST_MIN_FILLFACTOR, // 允许的最小填充因子
100 }, // 允许的最大填充因子
// "autovacuum_vacuum_threshold" 选项适用于 HEAP 和 TOAST 类型的关系
{{ "autovacuum_vacuum_threshold", "在执行自动清理之前更新或删除的元组数的最小值", RELOPT_KIND_HEAP | RELOPT_KIND_TOAST },
-1, // 默认的自动清理阈值
0, // 允许的最小自动清理阈值
INT_MAX }, // 允许的最大自动清理阈值
// "autovacuum_analyze_threshold" 选项适用于 HEAP 类型的关系
{{ "autovacuum_analyze_threshold", "在执行自动分析之前插入、更新或删除的元组数的最小值", RELOPT_KIND_HEAP },
-1, // 默认的自动分析阈值
0, // 允许的最小自动分析阈值
INT_MAX }, // 允许的最大自动分析阈值
// "autovacuum_vacuum_cost_delay" 选项适用于 HEAP 和 TOAST 类型的关系
{{ "autovacuum_vacuum_cost_delay", "自动清理的延迟成本,以毫秒为单位", RELOPT_KIND_HEAP | RELOPT_KIND_TOAST },
-1, // 默认的自动清理成本延迟
0, // 允许的最小自动清理成本延迟
100 }, // 允许的最大自动清理成本延迟
// "autovacuum_vacuum_cost_limit" 选项适用于 HEAP 和 TOAST 类型的关系
{{ "autovacuum_vacuum_cost_limit", "自动清理之前可用的清理成本量", RELOPT_KIND_HEAP | RELOPT_KIND_TOAST },
-1, // 默认的自动清理成本限制
1, // 允许的最小自动清理成本限制
10000 }, // 允许的最大自动清理成本限制
#ifdef ENABLE_MULTIPLE_NODES
// "tsdb_deltamerge_interval" 选项适用于 HEAP 类型的关系
{
{ "tsdb_deltamerge_interval", "job interval for tsdb delta merge", RELOPT_KIND_HEAP},
Tsdb::DELTAMERGE_INTERVAL_DEFAULT,
Tsdb::DELTAMERGE_INTERVAL_MIN,
Tsdb::DELTAMERGE_INTERVAL_MAX
{ "tsdb_deltamerge_interval", "tsdb delta 合并任务的间隔", RELOPT_KIND_HEAP },
Tsdb::DELTAMERGE_INTERVAL_DEFAULT, // 默认的 delta 合并间隔
Tsdb::DELTAMERGE_INTERVAL_MIN, // 允许的最小 delta 合并间隔
Tsdb::DELTAMERGE_INTERVAL_MAX // 允许的最大 delta 合并间隔
},
// "tsdb_deltamerge_threshold" 选项适用于 HEAP 类型的关系
{
{ "tsdb_deltamerge_threshold", "if the number of rows in a tsdb delta table is less than "\
"tsdb_deltamerge_threshold, skip delta merge", RELOPT_KIND_HEAP},
Tsdb::DELTAMERGE_THRESHOLD_DEFAULT,
Tsdb::DELTAMERGE_THRESHOLD_MIN,
Tsdb::DELTAMERGE_THRESHOLD_MAX
{ "tsdb_deltamerge_threshold", "如果 tsdb delta 表中的行数小于此阈值,则跳过 delta 合并", RELOPT_KIND_HEAP },
Tsdb::DELTAMERGE_THRESHOLD_DEFAULT, // 默认的 delta 合并阈值
Tsdb::DELTAMERGE_THRESHOLD_MIN, // 允许的最小 delta 合并阈值
Tsdb::DELTAMERGE_THRESHOLD_MAX // 允许的最大 delta 合并阈值
},
// "tsdb_deltainsert_threshold" 选项适用于 HEAP 类型的关系
{
{ "tsdb_deltainsert_threshold", "insert data into delta table if the number of rows of one insert"\
" operation is less than tsdb_deltainsert_threshold", RELOPT_KIND_HEAP},
Tsdb::DELTAINSERT_THRESHOLD_DEFAULT,
Tsdb::DELTAINSERT_THRESHOLD_MIN,
Tsdb::DELTAINSERT_THRESHOLD_MAX
{ "tsdb_deltainsert_threshold", "如果一个插入操作的行数小于此阈值,则插入到 delta 表,否则插入到正常表", RELOPT_KIND_HEAP },
Tsdb::DELTAINSERT_THRESHOLD_DEFAULT, // 默认的 delta 插入阈值
Tsdb::DELTAINSERT_THRESHOLD_MIN, // 允许的最小 delta 插入阈值
Tsdb::DELTAINSERT_THRESHOLD_MAX // 允许的最大 delta 插入阈值
},
#endif
{{ "max_batchrow", "the upmost rows at each batch inserting", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
RelDefaultFullCuSize,
10 * BatchMaxSize,
RelMaxFullCuSize },
{{ "deltarow_threshold", "if smaller than it, insert into delta table; otherwise insert into normal table",
RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
RelDefaultDletaRows,
0,
9999 },
{{ "partial_cluster_rows", "row numbers of partial cluster feature", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
RelDefaultPartialClusterRows,
-1,
0x7fffffff },
{{ "internal_mask", "internal mask", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT }, 0, 0, 0x7fffffff },
{{ "gin_pending_list_limit", "Maximum size of the pending list for this GIN index, in kilobytes.",
RELOPT_KIND_GIN },
-1,
64,
MAX_KILOBYTES },
{{ "gram_size", "Gram size for N-gram text search praser.", RELOPT_KIND_NPARSER }, 2, 1, 4 },
// "max_batchrow" 选项适用于 HEAP 和 PSORT 类型的关系
{{ "max_batchrow", "每次批量插入的最大行数", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
RelDefaultFullCuSize, // HEAP 和 PSORT 类型关系的默认批量行数
10 * BatchMaxSize, // 允许的最小批量行数
RelMaxFullCuSize }, // 允许的最大批量行数
// "deltarow_threshold" 选项<E98089><E9A1B9><EFBFBD>用于 HEAP 和 PSORT 类型的关系
{{ "deltarow_threshold", "如果小于此值,则插入到 delta 表;否则插入到正常表", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
RelDefaultDletaRows, // HEAP 和 PSORT 类型关系的默认 delta 行阈值
0, // 允许的最小 delta 行阈值
9999 }, // 允许的最大 delta 行阈值
// "partial_cluster_rows" 选项适用于 HEAP 和 PSORT 类型的关系
{{ "partial_cluster_rows", "部分集群特性的行数", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
RelDefaultPartialClusterRows, // HEAP 和 PSORT 类型关系的默认部分集群行数
-1, // 允许的最小部分集群行数
0x7fffffff }, // 允许的最大部分集群行数
// "internal_mask" 选项适用于 HEAP 和 PSORT 类型的关系
{{ "internal_mask", "内部掩码", RELOPT_KIND_HEAP | RELOPT_KIND_PSORT },
0, // 默认的内部掩码
0, // 允许的最小内部掩码
0x7fffffff }, // 允许的最大内部掩码
// "gin_pending_list_limit" 选项适用于 GIN 类型的关系
{{ "gin_pending_list_limit", "此 GIN 索引的挂起列表的最大大小,以千字节为单位", RELOPT_KIND_GIN },
-1, // 默认的 GIN 索引挂起列表大小
64, // 允许的最小 GIN 索引挂起列表大小
MAX_KILOBYTES }, // 允许的最大 GIN 索引挂起列表大小
// "gram_size" 选项适用于 NPARSER 类型的关系
{{ "gram_size", "N-gram 文本搜索解析器的 gram 大小", RELOPT_KIND_NPARSER },
2, // 默认的 gram 大小
1, // 允许的最小 gram 大小
4 }, // 允许的最大 gram 大小
};
/* COMPRESSLEVEL option */
{
@ -225,28 +260,66 @@ static relopt_int intRelOpts[] = {
REDIS_REL_DESTINATION /* REDIS_REL_DESTINATION is the max value of append mode that can set by users. */
},
{{ "rel_cn_oid", "rel oid on coordinator", RELOPT_KIND_HEAP }, 0, 0, 2000000000 },
{{ "exec_step", "redis exec step", RELOPT_KIND_HEAP }, 0, 1, 4 },
{{ "init_td", "number of td slots", RELOPT_KIND_HEAP }, UHEAP_DEFAULT_TD, UHEAP_MIN_TD, UHEAP_MAX_TD },
{{ "bucketcnt", "number of bucket map counts", RELOPT_KIND_HEAP }, 0, 32, 16384 },
{
{
"parallel_workers",
"Number of parallel processes that can be used per executor node for this relation.",
RELOPT_KIND_HEAP,
},
0, 1, 32
},
{{ "compress_level", "Level of page compression.", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE}, 0, -31, 31},
{{ "compresstype", "compress type (none, pglz or zstd).", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE}, 0, 0, 2},
{{ "compress_chunk_size", "Size of chunk to store compressed page.", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE},
BLCKSZ / 2,
BLCKSZ / 16,
BLCKSZ / 2},
{{ "compress_prealloc_chunks", "Number of prealloced chunks for each block.", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE},
0,
0,
7},
static relopt_int intRelOpts[] = {
// "rel_cn_oid" 选项适用于 HEAP 类型的关系
{{ "rel_cn_oid", "协调节点上的关系 OID", RELOPT_KIND_HEAP },
0, // 默认的协调节点关系 OID
0, // 允许的最小协调节点关系 OID
2000000000 }, // 允许的最大协调节点关系 OID
// "exec_step" 选项适用于 HEAP 类型的关系
{{ "exec_step", "Redis 执行步骤", RELOPT_KIND_HEAP },
0, // 默认的 Redis 执行步骤
1, // 允许的最小 Redis 执行步骤
4 }, // 允许的最大 Redis 执行步骤
// "init_td" 选项适用于 HEAP 类型的关系
{{ "init_td", "td 槽数量", RELOPT_KIND_HEAP },
UHEAP_DEFAULT_TD, // 默认的 td 槽数量
UHEAP_MIN_TD, // 允许的最小 td 槽数量
UHEAP_MAX_TD }, // 允许的最大 td 槽数量
// "bucketcnt" 选项适用于 HEAP 类型的关系
{{ "bucketcnt", "桶映射计数的数量", RELOPT_KIND_HEAP },
0, // 默认的桶映射计数
32, // 允许的最小桶映射计数
16384 }, // 允许的最大桶映射计数
// "parallel_workers" 选项适用于 HEAP 类型的关系
{{
"parallel_workers",
"每个执行器节点可用于此关系的并行进程数。",
RELOPT_KIND_HEAP,
},
0, // 默认的并行进程数
1, // 允许的最小并行进程数
32 }, // 允许的最大并行进程数
// "compress_level" 选项适用于 HEAP 和 BTREE 类型的关系
{{ "compress_level", "页面压缩级别", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE},
0, // 默认的页面压缩级别
-31, // 允许的最小页面压缩级别
31 }, // 允许的最大页面压缩级别
// "compresstype" 选项适用于 HEAP 和 BTREE 类型的关系
{{ "compresstype", "压缩类型无、pglz 或 zstd", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE},
0, // 默认的压缩类型
0, // 允许的最小压缩类型
2 }, // 允许的最大压缩类型
// "compress_chunk_size" 选项适用于 HEAP 和 BTREE 类型的关系
{{ "compress_chunk_size", "用于存储压缩页的块大小", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE},
BLCKSZ / 2, // 默认的压缩块大小
BLCKSZ / 16, // 允许的最小压缩块大小
BLCKSZ / 2 }, // 允许的最大压缩块大小
// "compress_prealloc_chunks" 选项适用于 HEAP 和 BTREE 类型的关系
{{ "compress_prealloc_chunks", "每个块的预分配块数量", RELOPT_KIND_HEAP | RELOPT_KIND_BTREE},
0, // 默认的预分配块数量
0, // 允许的最小预分配块数量
7 }, // 允许的最大预分配块数量
};
/* list terminator */
{{NULL}}
};
@ -317,195 +390,246 @@ static relopt_real realRelOpts[] = {
};
static relopt_string stringRelOpts[] = {
{{ "split_flag", "split flag for pound text search praser.", RELOPT_KIND_PPARSER }, 2, false, NULL, "#" },
{{ "buffering", "Enables buffering build for this GiST index", RELOPT_KIND_GIST },
4,
// "split_flag" 选项适用于 PPARSER 类型的关系
{{ "split_flag", "分割符号文本搜索解析器的分割标志", RELOPT_KIND_PPARSER }, 2, false, NULL, "#" },
// "buffering" 选项适用于 GIST 类型的关系
{{ "buffering", "启用此 GiST 索引的构建缓冲", RELOPT_KIND_GIST },
4, // 默认的缓冲选项
false,
gistValidateBufferingOption,
"auto" },
// "orientation" 选项适用于 HEAP 类型的关系
{
{ "orientation", "row-store, col-store, orc-store, inplace-store or timeseries", RELOPT_KIND_HEAP },
10,
{ "orientation", "行存储、列存储、ORC 存储、原地存储或时间序列", RELOPT_KIND_HEAP },
10, // 默认的存储方向
false,
ValidateStrOptOrientation,
ORIENTATION_ROW,
},
// "indexsplit" 选项适用于 BTREE 类型的关系
{
{"indexsplit", "default, insertpt", RELOPT_KIND_BTREE},
7,
{"indexsplit", "默认、insertpt", RELOPT_KIND_BTREE},
7, // 默认的索引拆分选项
false,
ValidateStrOptIndexsplit,
INDEXSPLIT_OPT_DEFAULT,
},
// "ttl" 选项适用于 HEAP 类型的关系
{
{ "ttl", "time to live for timeseries data management", RELOPT_KIND_HEAP },
9,
{ "ttl", "时间序列数据管理的生存时间", RELOPT_KIND_HEAP },
9, // 默认的生存时间
false,
ValidateStrOptTTL,
TIME_UNDEFINED,
},
// "period" 选项适用于 HEAP 类型的关系
{
{ "period", "partition range for timeseries data management", RELOPT_KIND_HEAP },
9,
{ "period", "时间序列数据管理的分区范围", RELOPT_KIND_HEAP },
9, // 默认的分区范围
false,
ValidateStrOptPeriod,
TIME_UNDEFINED,
},
// "partition_interval" 选项适用于 HEAP 类型的关系
{
{ "partition_interval", "partition interval for streaming contview table", RELOPT_KIND_HEAP },
9,
{ "partition_interval", "流式连续视图表的分区间隔", RELOPT_KIND_HEAP },
9, // 默认的分区间隔
false,
ValidateStrOptPartitionInterval,
TIME_UNDEFINED,
},
// "time_column" 选项适用于 HEAP 类型的关系
{
{ "time_column", "time column for streaming contview table", RELOPT_KIND_HEAP },
9,
{ "time_column", "流式连续视图表的时间列", RELOPT_KIND_HEAP },
9, // 默认的时间列
false,
ValidateStrOptTimeColumn,
COLUMN_UNDEFINED,
},
// "ttl_interval" 选项适用于 HEAP 类型的关系
{
{ "ttl_interval", "ttl interval for streaming contview table", RELOPT_KIND_HEAP },
9,
{ "ttl_interval", "流式连续视图表的 TTL 间隔", RELOPT_KIND_HEAP },
9, // 默认的 TTL 间隔
false,
ValidateStrOptTTLInterval,
TIME_UNDEFINED,
},
// "gather_interval" 选项适用于 HEAP 类型的关系
{
{ "gather_interval", "gather interval for streaming contview table", RELOPT_KIND_HEAP },
9,
{ "gather_interval", "流式连续视图表的收集间隔", RELOPT_KIND_HEAP },
9, // 默认的收集间隔
false,
ValidateStrOptGatherInterval,
TIME_UNDEFINED,
},
// "sw_interval" 选项适用于 HEAP 类型的关系
{
{ "sw_interval", "sliding window interval for streaming contquery table", RELOPT_KIND_HEAP },
9,
{ "sw_interval", "流式连续查询表的滑动窗口间隔", RELOPT_KIND_HEAP },
9, // 默认的滑动窗口间隔
false,
ValidateStrOptSwInterval,
TIME_UNDEFINED,
},
// "version" 选项适用于 HEAP 类型的关系
{
{ "version", "store version", RELOPT_KIND_HEAP },
4,
{ "version", "存储版本", RELOPT_KIND_HEAP },
4, // 默认的存储版本
false,
ValidateStrOptVersion,
ORC_VERSION_012,
},
// "compression" 选项适用于 HEAP 类型的关系
{
{ "compression", "which compression level applied to, or not compressed", RELOPT_KIND_HEAP },
6,
{ "compression", "应用的压缩级别或不压缩", RELOPT_KIND_HEAP },
6, // 默认的压缩级别
false,
ValidateStrOptCompression,
COMPRESSION_LOW,
},
// "filesystem" 选项适用于 TABLESPACE 类型的关系
{
{ "filesystem", "which filesystem applied", RELOPT_KIND_TABLESPACE },
7,
{ "filesystem", "应用的文件系统", RELOPT_KIND_TABLESPACE },
7, // 默认的文件系统
false,
ValidateStrOptSpcFileSystem,
FILESYSTEM_GENERAL,
},
// "address" 选项适用于 TABLESPACE 类型的关系
{
{ "address", "which address server applied", RELOPT_KIND_TABLESPACE },
6,
{ "address", "应用的地址服务器", RELOPT_KIND_TABLESPACE },
6, // 默认的地址服务器
false,
ValidateStrOptSpcAddress,
"",
},
// "cfgpath" 选项适用于 TABLESPACE 类型的关系
{
{ "cfgpath", "config information path", RELOPT_KIND_TABLESPACE },
6,
{ "cfgpath", "配置信息路径", RELOPT_KIND_TABLESPACE },
6, // 默认的配置信息路径
false,
ValidateStrOptSpcCfgPath,
"",
},
// "storepath" 选项适用于 TABLESPACE 类型的关系
{
{ "storepath", "store information path", RELOPT_KIND_TABLESPACE },
6,
{ "storepath", "存储信息路径", RELOPT_KIND_TABLESPACE },
6, // 默认的存储信息路径
false,
ValidateStrOptSpcStorePath,
"",
},
// "append_mode" 选项适用于 HEAP 类型的关系
{
{ "append_mode", "set relation insert under append mode", RELOPT_KIND_HEAP },
6,
{ "append_mode", "设置关系在附加模式下插入", RELOPT_KIND_HEAP },
6, // 默认的附加模式
false,
check_append_mode,
"",
},
// "start_ctid_internal" 选项适用于 HEAP 类型的关系
{
{ "start_ctid_internal", "set relation start ctid during redistribution", RELOPT_KIND_HEAP },
6,
{ "start_ctid_internal", "设置关系在重新分布期间的起始 CTID", RELOPT_KIND_HEAP },
6, // 默认的起始 CTID
false,
NULL,
"",
},
// "end_ctid_internal" 选项适用于 HEAP 类型的关系
{
{ "end_ctid_internal", "set relation end ctid during redistribution", RELOPT_KIND_HEAP },
6,
{ "end_ctid_internal", "设置关系在重新分布期间的结束 CTID", RELOPT_KIND_HEAP },
6, // 默认的结束 CTID
false,
NULL,
"",
},
// "merge_list" 选项适用于 HEAP 类型的关系
{
{ "merge_list", "set merge_list as bucketid1:start1:end1;bucketid1:start1:end1...", RELOPT_KIND_HEAP },
0,
{ "merge_list", "设置合并列表为 bucketid1:start1:end1;bucketid1:start1:end1...", RELOPT_KIND_HEAP },
0, // 默认的合并列表
true,
NULL,
"",
},
// "storage_type" 选项适用于 HEAP、BTREE 和 TOAST 类型的关系
{
{"storage_type", "Specifies the Table accessor routines",
{"storage_type", "指定表存储器例程",
RELOPT_KIND_HEAP | RELOPT_KIND_BTREE | RELOPT_KIND_TOAST},
strlen(TABLE_ACCESS_METHOD_ASTORE),
strlen(TABLE_ACCESS_METHOD_ASTORE), // 默认的表存储器例程
false,
ValidateStrOptTableAccessMethod,
TABLE_ACCESS_METHOD_ASTORE,
},
// "dek_cipher" 选项适用于 HEAP 类型的关系
{
{ "dek_cipher", "The cipher of TDE dek", RELOPT_KIND_HEAP },
0,
{ "dek_cipher", "TDE dek 的密码", RELOPT_KIND_HEAP },
0, // 默认的 TDE dek 密码
false,
ValidateStrOptDekCipher,
"",
},
// "cmk_id" 选项适用于 HEAP 类型的关系
{
{ "cmk_id", "The id of TDE cmk", RELOPT_KIND_HEAP },
0,
{ "cmk_id", "TDE cmk 的 ID", RELOPT_KIND_HEAP },
0, // 默认的 TDE cmk ID
false,
ValidateStrOptCmkId,
"",
},
// "encrypt_algo" 选项适用于 HEAP 类型的关系
{
{ "encrypt_algo", "The algo of TDE", RELOPT_KIND_HEAP },
0,
{ "encrypt_algo", "TDE 的算法", RELOPT_KIND_HEAP },
0, // 默认的 TDE 算法
false,
ValidateStrOptEncryptAlgo,
"",
},
// "wait_clean_gpi" 选项适用于 HEAP 类型的关系
{
{"wait_clean_gpi", "Whether to wait for gpi cleanup", RELOPT_KIND_HEAP },
{"wait_clean_gpi", "是否等待 GPI 清理", RELOPT_KIND_HEAP },
1,
false,
CheckWaitCleanGpi,
"n",
},
// "wait_clean_cbi" 选项适用于 BTREE 类型的关系
{
{"wait_clean_cbi", "Whether to wait for cbi cleanup", RELOPT_KIND_BTREE },
{"wait_clean_cbi", "是否等待 CBI 清理", RELOPT_KIND_BTREE },
1,
false,
CheckWaitCleanCbi,
"n",
},
// "string_optimize" 选项适用于 HEAP 类型的关系
{
{ "string_optimize", "string optimize for streaming contview table", RELOPT_KIND_HEAP },
9,
{ "string_optimize", "字符串优化选项,用于流式连续视图表", RELOPT_KIND_HEAP },
9, // 默认的字符串优化选项
false,
ValidateStrOptStringOptimize,
COLUMN_UNDEFINED,