8.2.0版本说明
【V8.2.0.107版本发布时间】2023年9月25日
【V8.2.0.106版本发布时间】2023年7月17日
【V8.2.0.103版本发布时间】2023年5月25日
【V8.2.0.102版本发布时间】2023年4月15日
【V8.2.0.101版本发布时间】2023年3月13日
【V8.2.0.100版本发布时间】2023年1月14日
【V8.2.0版本发布时间】:2022年11月28日
新增功能
行为变更
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
支持windowagg生成value partition执行计划 |
窗口函数出现在语句的最外层,如果没有加order by,基线行为数据会是有序的,8.2.0版本默认开启enable_value_redistribute以后,数据会变成无序的,需要指定order by子句才能保证有序。 |
修改 |
2 |
异常规则配置方式变更,由工具变更为语法配置 |
异常规则原来由gs_cgroup对其对应的控制组做配置,8.2.0更改为CREATE/ALTER/DROP EXCEPT RULE语法配置,新版本使用gs_cgroup配置时会给出相应提示。 |
3 |
异常规则内部去除qualificationtime,以elapsedtime取代 |
qualificationtime在旧版本作为一个规则,但是只能与cpuskewpercent合并使用,效果和elapsedtime相同。因此去除该配置项,直接配置elapsedtime即可。 |
|
4 |
tid字段名 |
行存支持tid字段名,原行存不支持tid字段名。 |
|
5 |
max_process_memory |
CN调整为DN的一半。 |
SQL语法
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
表属性参数analyze_mode |
新增表级analyze模式的控制参数(该表支持哪种analyze),不设置时与前向无变化。 |
2 |
禁用子查询提升hint |
增加禁用子查询提升hint,支持形式:no_merge当前查询,no_merge(relid)指定对象。 |
|
3 |
hint在DML语句中生效 |
增加支持hint在insert/update/merge/delete语句中生效。 |
|
4 |
agg重分布hint增加支持指定列名 |
agg重分布hint增加支持指定列名,形式为/+ redistribute ((*) (a b c d)) */。 |
|
5 |
agg重分布hint增加支持指定count(distinct)列 |
agg重分布hint支持指定count(distinct)列在双层hashagg场景下生效。 |
|
6 |
invisible |
新增索引OPTIONS,用于设置索引扫描在执行计划中是否可见。 |
|
7 |
支持MySQL中的反引号 |
支持使用反引号区分普通字符和特殊字符。 |
|
8 |
创建表时,列定义支持指定on update属性 |
列定义指定on update属性时,当数据有更新时,自动填充更新时间戳。 |
|
9 |
CREATE/ALTER/DROP EXCEPT RULE |
新增语法用于新增、创建、删除内核异常规则。 |
|
10 |
CREATE SERVER增加OPTIONS security_token |
新增OPTIONS security_token用于传递securitytoken用于临时AK,SK访问OBS。 |
|
11 |
CREATE FOREIGN TABLE增加OPTIONS security_token |
新增OPTIONS security_token用于传递securitytoken用于临时AK,SK访问OBS。 |
|
12 |
OBS外表(dist_fdw)option参数新增file_split_ threshold选项 |
OBS外表(dist_fdw)option参数新增file_split_ threshold选项。 |
|
13 |
GDS外表新增gds_compress参数 |
基于GDS管道文件导入导出,用于GDS互联互通时候数据在DN和GDS之间压缩传输,目前仅支持snappy压缩算法普通文件的导入导出不支持该参数。 |
|
14 |
GDS外表新增dataencoding参数 |
用于表示latin1数据库中保存的数据的字符集。 |
|
15 |
gc_fdw互联互通外表(sql on other gaussdb外表)新增gds_compress参数 |
用于GDS外表互联互通时候数据在DN和GDS之间压缩传输,目前仅支持snappy压缩算法。 |
|
16 |
gc_fdw互联互通外表(sql on other gaussdb)新增dataencoding参数 |
用于表示执行端laint1数据库中保存的数据的字符集。 |
|
修改 |
17 |
CREATE/ALTER REDACTION POLICY |
表级参数deltarow_threshold的默认值设置为10000,指定列存表导入时小于多少行的数据进入delta表,只在表级参数enable_delta开启时生效。 |
18 |
资源池关联异常规则语法变更 |
新增INHERIT选项,说明策略是否继承自其他策略。 |
|
19 |
single_node支持obs外表语法 |
资源池旧版本可用于配置内存异常规则,8.2.0统一异常规则接口为 CREATE/ALTER RESOURCE POOL 'pool' with (EXCEPT_RULE='rule1,2'); |
|
20 |
OBS外表(dist_fdw)支持使用server指定AK、SK |
single_node支持obs外表(dfs_fdw)。 |
关键字
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
TRY_CAST |
新增非保留关键字TRY_CAST,用于兼容MySQL中的TRY_CAST函数,当类型转换失败时,返回NULL。 |
系统表
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
gs_blocklist_query |
新增系统表用于保存黑名单语句和异常规则触发信息。 |
2 |
pg_except_rule |
新增pg_except_rule系统表,用于存储当前集群所创建的异常规则信息,包括规则名称,具体规则阈值,以及规则触发的action。 |
|
修改 |
3 |
pg_redaction_policy,pg_redaction_column |
新增inherited列,说明策略是否由用户手动创建 |
系统函数
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
pg_stat_get_runtime_relstats |
新增函数,开启动态采样后autoanalyze生成的表级统计信息存放于内存中,该函数用于查询。 |
2 |
pg_stat_get_runtime_attstats |
新增函数,开启动态采样后autoanalyze生成的列级统计信息存放于内存中,该函数用于查询。 |
|
3 |
pg_stat_set_last_data_changed_num |
新增手动设置表历史累计修改量接口,用于pgstat内容丢失的补救措施 |
|
4 |
strcmp() |
字符串比较,相等返回0,小于返回-1,其他返回1,入参含null返回null |
|
5 |
hex() |
入参字符串的每个字符或十进制整数转化为十六进制数字。 |
|
6 |
unhex() |
执行从HEX(str)的反向操作。就是说,它将参数中的每一对十六进制数字理解为一个数字,并将其转化为该数字代表的字符。结果字符以bytea的形式返回。 |
|
7 |
space(n) |
返回n个空格构成的字符串 |
|
8 |
rand() |
获取0.0 到 1.0 之间的随机数。 |
|
9 |
truncate(x,d) |
将x截断为d位小数。d为负数时截断整数位为0。 |
|
10 |
addtime(expr1,expr2) |
增加时间。expr1是time或timestamp类型,expr2是interval类型。 |
|
11 |
subtime(expr1,expr2) |
特定时间减去指定的时间。expr1 - expr2 expr1为time、timestamp类型。expr2为interval类型,返回类型同expr1。 |
|
12 |
timediff(expr1,expr2) |
计算两个参数的时间差。expr1 - expr2,返回time类型, 入参需同为time类型或timestamp类型。 |
|
13 |
curdate() |
返回当前日期,date类型。 |
|
14 |
curtime([fsp]) |
返回当前时间,time类型 fsp-它指定返回的小数秒精度。 |
|
15 |
uuid() |
返回通用唯一标识符(UUID)。 |
|
16 |
convert_tz() |
进行时区转换。 |
|
17 |
cast(expr,typename) |
将expr转换为指定type。 |
|
18 |
digest() |
digest()函数可以根据不同的算法生成数据的二进制哈希值。 |
|
19 |
hmac() |
hmac()函数可以根据不同的算法为带有密钥的数据计算出MAC值。 |
|
20 |
crypt()和gen_salt() |
crypt()和gen_salt()函数专用于哈希密码。crypt()执行哈希用于加密数据,gen_salt()用于生成加盐哈希。 |
|
21 |
pgp_sym_encrypt() |
用于对称密钥加密。 |
|
22 |
pgp_sym_decrypt() |
用于解密PGP对称密钥加密后的消息。 |
|
23 |
pgp_pub_encrypt() |
用于公共密钥加密。 |
|
24 |
pgp_pub_decrypt() |
用于解密PGP公共密钥加密后的消息。 |
|
25 |
pgp_key_id() |
用于提取PGP公钥或者私钥的密钥ID;如果传入一个加密后的消息,将会返回加密该消息使用的密钥ID。 |
|
26 |
armor() |
用于将二进制数据转换为PGP ASCII-armor格式,相当于Base64加上CRC以及额外的格式化。 |
|
27 |
dearmor() |
用于执行与armor()函数相反的转换。 |
|
28 |
pgp_armor_headers() |
函数用于返回数据中的armor header。 |
|
29 |
encrypt |
原始加密函数,不支持PGP加密的任何高级功能。IV是0。 |
|
30 |
decrypt |
原始解密函数,不支持PGP加密的任何高级功能。IV是0。 |
|
31 |
encrypt_iv |
原始解密函数,不支持PGP加密的任何高级功能。IV可由用户设定。 |
|
32 |
decrypt_iv |
原始解密函数,不支持PGP加密的任何高级功能。IV可由用户设定。 |
|
33 |
gen_random_bytes |
gen_random_bytes()函数用于生成具有强加密性的随机字节。 |
|
34 |
gen_random_uuid() |
gen_random_uuid()函数用于返回一个version 4的随机UUID。 |
|
35 |
get_volatile_pg_class |
获取内存中volatile临时表的pg_class相关元数据(volatile临时表元数据不存储系统表)。 |
|
36 |
get_volatile_pg_attribute |
获取内存中volatile临时表的pg_attribute相关元数据。 |
|
37 |
gs_increase_except_num |
新增函数,用于增加查询异常触发次数。 |
|
38 |
gs_update_blocklist_hash_info |
新增函数用于更新内存中黑名单信息。 |
|
39 |
gs_append_blocklist |
新增函数用于新增黑名单语句。 |
|
40 |
gs_remove_blocklist |
新增函数用于将语句移出黑名单。 |
|
41 |
gs_wlm_rebuild_except_rule_hash |
新增gs_wlm_rebuild_except_rule_hash函数用于主动触发build异常规则内核hash表。 |
|
42 |
pg_stat_wal_write |
用于查询当前cn或dn上的线程信息,以及wal和数据页导入量及速率。 |
|
43 |
pgxc_stat_wal_write |
用于查询cn与dn交互的线程信息,以及wal和数据页导入量及速率。 |
|
44 |
get_col_file_info |
获取指定列存表的空CU文件数和总CU文件数。 |
|
45 |
get_all_col_file_info |
获取所有列存表的空CU文件数和总CU文件数。 |
|
46 |
col_rebuild_file_relation |
更换Relfilenode,重新整理指定列存表的CU文件,重整后变回连续的1GB文件。 |
|
修改 |
47 |
pg_query_audit/pgxc_query_audit |
修改thread_id字段为session id字段,记录语句执行所在的session。 |
48 |
login_audit_messages/login_audit_messages_pid |
新增session id字段,记录语句执行所在的session。 |
系统视图
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
gs_obs_latency |
新增视图用于监控OBS延迟。 |
2 |
pgxc_stat_wal |
查询当前query的wal日志和数据页的流量信息。 |
|
3 |
pgxc_lockwait_detail |
显示每个节点中锁等待链详细信息。 |
|
4 |
pgxc_wait_detail |
显示所有节点SQL等待从上至下的等待链详细信息,包括wait_node、query等。 |
|
修改 |
5 |
gs_obs_read_traffic |
OBS读写带宽视图,修改为按10分钟间隔聚集,增加logtime列显示时间分组。 |
6 |
gs_obs_write_traffic |
OBS读写带宽视图,修改为按10分钟间隔聚集,增加logtime列显示时间分组。 |
GUC参数
变更类型 |
序号 |
名称 |
变更描述 |
---|---|---|---|
新增 |
1 |
enable_wlm_internal_memory_limit |
控制是否打开wlm内部的限制,如:作业估算内存不超过80%/90%/40%的限制。 |
2 |
enable_strict_memory_expansion |
控制作业是否在DN上做内存扩展。 |
|
3 |
allow_zero_estimate_memory |
控制作业在没有统计信息情况下,是否允许将估算内存设置为0。 |
|
4 |
max_process_memory_auto_adjust |
控制CM在主备切换情况下是否对max_process_memory做动态调整。 |
|
5 |
wlm_memory_feedback_adjust |
控制CCN的动态负载管理中的内存负反馈功能是否开启,支持:on、off、on(50,40) 三种设置方式。 |
|
6 |
autoanalyze_mode |
新增系统级autoanalyze模式的控制参数(默认normal与前向行为一致,设置为light则启用动态采样)。 |
|
7 |
enable_redactcol_computable |
用于设置是否开启数据脱敏可算功能,默认关闭。 |
|
8 |
windowagg_pushdown_enhancement |
控制窗口函数和group by同时出现时是否将partition by和group by的交集下推。 |
|
9 |
enable_from_collapse_hint |
控制是否启用优先选择hint的计划,默认启用,并支持语句级hint参数。 |
|
10 |
enable_value_redistribute |
用于设置是否使用value partition stream优化windowagg。 |
|
11 |
setop_optmode |
控制setop操作的各个子查询分支是否做去重操作,默认值disable,即不去重,跟8.2.0之前版本保持一致;配置值force:强制走去重;配置值cost,基于cost选择是否去重。(注:setop分支的底层为stream算子的时候才会尝试去重)。 |
|
12 |
security_enable_options |
表示安全模式下部分操作解禁,默认为空。 |
|
13 |
audit_object_name_format |
控制审计日志中object_name字段显示对象名的格式,默认single,显示单对象。 |
|
14 |
enable_redactcol_equal_const |
用于限制新版本脱敏下允许常量套取的行为,默认关闭,禁止脱敏列与常量做等值比较。 |
|
15 |
enable_mixedagg |
用于控制是否生成Mixed Agg执行计划,默认关闭。 |
|
16 |
max_streams_per_query |
用于控制对stream数量过多的plan在优化器阶段报错,避免stream建连占用过多连接,默认值10000。 |
|
17 |
agg_max_mem |
用于控制Agg算子聚集列超过5个时,最大的估算内存,防止估算内存过大导致CCN排队。 |
|
18 |
max_volatile_memory |
volatile临时表相关内存context的最大量,单位kb,取值范围1024-INT_MAX,默认1GB。 |
|
19 |
max_volatile_tables |
单个session中volatile临时表(包括创建时的附属表,如toast、cudesc)的个数限制,默认300。 |
|
20 |
enable_hashfilter |
用来控制是否可以生成hashfilter。 |
|
21 |
volatile_shipping_version |
控制8.2.0版本sequence下推增强能力,默认1。 |
|
22 |
smp_thread_cost |
用于控制生成的query_dop值。默认值为1000。 |
|
23 |
enable_wal_decelerate |
用于带索引导入时的流控限速的总开关。 |
|
24 |
wal_decelerate_policy |
用于表示触发限速后的行为策略。 |
|
25 |
wal_write_speed |
用于表示单DN每个query每秒最大允许触发wal写入动作的速度Byte/s。 |
|
26 |
wal_decelerate_trigger_threshold |
用于表示单DN每个query触发wal写入限速的门限。 |
|
27 |
enable_cstore_ring_buffer |
控制是否开启列存RingBuffer。 |
|
28 |
enable_tsdb_multi_temperature |
控制是否开启时序表的obs冷热功能,默认为关闭。 |
|
29 |
enable_tsdb_multi_temperature |
控制是否开启时序表的obs冷热功能,默认为关闭。 |
|
30 |
ddl_lock_timeout |
用于单独指定阻塞DDL语句等锁的时间,让DDL拿不到锁快速终止,只对八级锁有效,默认值为0,表示不生效。 |
|
31 |
build_backup_param |
控制增量build过程中用于磁盘备份的最小满足规格。 |
|
修改 |
32 |
comm_tcp_mode |
参数类型从POSTMASTER修改为SIGHUP。 |
33 |
max_process_memory |
进程的最大内存,由POSTMASTER类型修改为SIGHUP;最小阈值为2G,不推荐设置为最小阈值。 |
|
34 |
rewrite_rule |
新增eager_magicset枚举值控制magic set增强功能。 |
|
35 |
behavior_compat_options |
behavior_compat_options新增normal_session_id取值,用于控制是否session id是否拼接node_name,默认关闭,session id拼接node_name。 |
|
36 |
behavior_compat_options |
merge_into_with_trigger新增behavior_compat_options,开启后支持对有触发器的表执行MERGE INTO,默认关闭 |
|
37 |
behavior_compat_options |
增加选项disable_jsonb_exact_match,控制操作符匹配规则,默认关闭; 参数关闭时,仅支持jsonb相关类型的精确匹配;若精确匹配失败,则会在剩余不含jsonb类型的备选中匹配; 参数打开时,行为回退,操作符匹配不区分类型; |
|
38 |
hashjoin_spill_strategy |
新增两种策略5,6。行为与原来0、1相同。原来0、1行为修改。从内表较大内存放不下,外表较小时进行内外表交换,改成内表较大内存放不下,继续划分内表,直到无法划分,再尝试内外表交换。 |
|
39 |
sql_use_spacelimit |
对sql_use_spacelimit参数初始值进行设置。将其修改为当前实例所在磁盘的10%(上限),不足10G(下限)时,设置为10G |
|
40 |
temp_file_limit |
对temp_file_limit参数初始值进行设置。将其修改为当前实例所在磁盘的10%(上限),不足10G(下限)时,设置为10G。 |
|
删除 |
41 |
enable_grant_public |
表示安全模式下不支持grant to public语法。 |
42 |
enable_grant_option |
表示安全模式下不支持grant with grant option语法。 |