更新时间:2024-11-05 GMT+08:00

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 8.2.0新增功能

特性

描述

参考文档

新增pgcrypto加密扩展插件

新增使用pgcrypto加密数据。

开发指南>管理数据库安全>敏感数据管理>使用pgcrypto加密数据

审计日志的object_name记录SQL中所有相关读写对象

  • 资料补充“查询审计多个对象名的记录”。
  • 新增GUC参数audit_object_name_format。
  • 开发指南>管理数据库安全>数据库审计>查看审计结果
  • 用户指南>审计日志>数据库审计日志>查看数据库审计日志
  • 开发指南>GUC参数>审计>审计开关

安全模式用户操作解禁

新增GUC参数security_enable_options控制是否允许安全模式下使用grant_to_public、grant_with_grant_option和foreign_table_options三种功能。

开发指南>GUC参数>审计>操作审计

审计日志支持记录session id

  • 新增配置项normal_session_id,控制是否生成normal格式的会话ID。
  • pg_query_audit() 修改字段thread_id为session_id
  • 开发指南>GUC参数>其他选项>behavior_compat_options
  • SQL语法参考>函数和操作符>安全函数

MIXED AGG

新增GUC参数enable_mixedagg,控制优化器对Mixed Agg聚集规划类型的使用

开发指南>GUC参数>查询规划>优化器方法配置

优化异常规则熔断机制,防止单条慢SQL阻塞整个集群或资源池。

  • 新增用于查询作业黑名单信息和异常信息的系统表GS_BLOCKLIST_QUERY和系统视图GS_BLOCKLIST_QUERY。
  • 新增query_exception_count_limit参数用于设置作业可以触发的异常规则次数上限,作业触发异常规则次数达到上限后自动加入黑名单,后续禁止执行,只有移除黑名单后才能恢复运行。
  • 新增作业异常信息记录函数:

    gs_increase_except_num(unique_sql_id int8)

    gs_increase_except_num(unique_sql_id int8,except_num int4)

    gs_increase_except_num(unique_sql_id int8,except_num int4, except_time int8)

    gs_update_blocklist_hash_info(unique_sql_id int8, is_remove boolean)

    gs_update_blocklist_hash_info()

    gs_append_blocklist(unique_sql_id int8)

    gs_remove_blocklist(unique_sql_id int8)

    gs_wlm_rebuild_except_rule_hash()

  • 开发指南>系统表和视图>系统表/系统视图
  • 开发指南>GUC参数>负载管理
  • SQL语法参考>函数和操作符>系统管理函数>资源管理函数

内存资源充分利用

  • PGXC_RESPOOL_RESOURCE_INFO视图新增了内存负反馈机制功能。
  • 修改max_process_memory参数类型postmaster为sighup,一个机器部署单个DN情况下,max_process_memory计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.6

    新增max_process_memory_auto_adjust参数,控制是否开启max_process_memory参数的自动调整功能。

  • 新增enable_wlm_internal_memory_limit参数,控制是否开启负载管理对语句估算内存的内置限制功能。

    新增enable_strict_memory_expansion参数,控制是否开启对语句内存扩展的严格控制。

    新增allow_zero_estimate_memory参数,控制是否允许语句估算内存为0。

  • 开发指南>系统表和视图>系统视图>PGXC_RESPOOL_RESOURCE_INFO
  • 开发指南>GUC参数>资源消耗>内存
  • 开发指南>GUC参数>资源管理

异常规则接口整改为内核语法实现

  • 新增PG_EXCEPT_RULE系统表存储关于异常规则的信息。
  • 新增ALTER EXCEPT RULE,CREATE EXCEPT RULE和DROP EXCEPT RULE语法
  • 开发指南>系统表和视图>系统表> PG_EXCEPT_RULESQL
  • SQL语法参考>DDL语法>ALTER/CREATE/DROP EXCEPT RULE

资源管理重构

  • 系统表GS_WLM_USER_RESOURCE_HISTORY“在CN和DN上均存有数据”
  • 新增PGXC_TOTAL_USER_RESOURCE_INFO视图,显示所有实例上用户实时资源消耗信息。

    新增PGXC_WLM_USER_RESOURCE_HISTORY视图,显示所有用户在对应实例上资源消耗的历史信息。

  • 开发指南>系统表和视图>系统表>GS_WLM_USER_RESOURCE_HISTORY
  • 开发指南>系统表和视图>系统视图>PGXC_TOTAL_USER_RESOURCE_INFO/PGXC_WLM_USER_RESOURCE_HISTORY

优化器阶段增加参数对stream线程很大的SQL报错

新增GUC参数max_streams_per_query,用于控制查询计划中Stream节点的数目。

开发指南>GUC参数>其他优化器选项

DWS集群只读之后,支持truncate和drop操作,能够快速释放磁盘空间,自动解除只读。

8.2.0集群版本开始支持只读状态下用户可以通过开启读写事务DROP/TRUNCATE TABLE的方式清理磁盘空间。

用户指南>集群运维>解除只读

hint子查询中生效

  • hint DML语句生效:现有hint参数增加运用于DML语句中,包括insert、update、merge、delete语句。
  • 多表场景hint增强:针对超过FROM列表的项数阈值的场景进行hint增强,避免hint失效,无法提升性能。
  • 新增enable_from_collapse_hint参数,控制是否优先以hint生效的方式重写FROM列表。
  • 开发指南>优化查询性能>改进查询>使用Plan Hint进行调优>指定子查询不提升的hint
  • 开发指南>GUC参数>查询规划>其他优化选项

动态采样

  • 新增autoanalyze_mode参数,控制autoanalyze或autovacuum的打开情况。
  • 新增autoanalyze_cache_num参数,设置轻量化autoanalyze最多缓存多少张表的统计信息。
  • 新增普通autoanalyze和轻量化autoanalyze对比。
  • 新增PV_RUNTIME_RELSTATS视图,显示autoanalyze产生的内存中表级统计信息。
  • 新增PV_RUNTIME_ATTSTATS视图,显示autoanalyze产生的内存中列级统计信息。
  • 新增pg_stat_get_runtime_relstats函数,返回轻量化autoanalyze生成的内存表级统计信息。
  • 新增pg_stat_get_runtime_attstats函数,返回轻量化autoanalyze生成的内存表列级统计信息。
  • 新增pg_stat_set_last_data_changed_num函数,设置该表上当前节点的历史累计修改计数。
  • 开发指南>GUC参数>自动清理
  • 开发指南>数据迁移>其他操作>分析表
  • 开发指南>系统表和系统视图>系统视图>PV_RUNTIME_RELSTATS
  • 开发指南>系统表和系统视图>系统视图>PV_RUNTIME_ATTSTATS
  • SQL语法参考>函数和操作符>统计信息函数

MERGE INTO语句的on条件支持系统列

新增修改索引的状态标记语法。

SQL语法参考>DDL语法>ALTER INDEX

支持sequence下推

新增volatile_shipping_version参数,控制volatile函数下推执行的范围。

开发指南>GUC参数>查询规划>优化器方法配置

支持Volatile临时表

  • 新增get_volatile_pg_class函数,获取volatile临时表对应pg_class基本信息,包括带表名参数和获取所有表。
  • 新增get_volatile_pg_attribute函数,获取volatile临时表对应pg_attribute基本信息,包括带列参数和获取所有列。
  • 新增VOLATILE关键字,包括DDL语法中的CREATE TABLE、CREATE TABLE AS,以及DQL语法SELECT INTO。
  • 新增释放当前session与数据库会话相关的内部资源语法DISCARD。
  • VACUUM FULL不支持对VOLATILE临时表操作。
  • 新增max_volatile_memory参数,指定所有session中volatile临时表相关context占用的最大使用总内存。
  • 新增max_volatile_tables参数,指定每个会话创建的volatile临时表最大个数。
  • 新增VOLATILE临时表功能约束。
  • SQL语法参考>函数和操作符>系统管理函数>其他函数
  • SQL语法参考>DDL语法>CREATE TABLE
  • SQL语法参考>DDL语法>CREATE TABLE AS
  • SQL语法参考>DQL语法>SELECT INTO
  • SQL语法参考>DDL语法>DISCARD
  • SQL语法参考>DDL语法>VACUUM
  • 开发指南>GUC参数>资源消耗>内存
  • 开发指南>优化查询性能>SQL执行troubleshooting>sql语句出错自动重试

MySQL兼容性增强

  • 新增TRY_CAST关键字
  • 新增CONV函数,将给定的数值或者字符串转换成目标进制,并按照字符串的形式输出结果。
  • 新增HEX函数,返回给定的数值或者字符串的十六进制字符串。
  • 新增UNHEX函数,执行HEX(n)的反向操作。
  • 新增SPACE函数,返回指定个数空格组成的字符串。
  • 新增STRCMP函数,比较两个字符串大小。
  • 新增BIN函数,将bigint类型从十进制转换成二进制,并以字符串的形式返回结果值。
  • 新增substring_index函数,按照区分大小写匹配查找delimiter分隔符,返回string字符串中第count次出现delim分隔符之前的子串。
  • 新增rand函数,返回0.0到1.0之间的随机数。
  • 新增truncate函数,截断指定位数的小数。
  • 新增addtime函数,返回给定日期/时间加上指定时间间隔的结果。
  • 新增subtime函数,返回给定日期/时间减去指定时间间隔的结果。
  • 新增timediff函数,将两个日期参数相减。
  • 新增curdate函数,返回当前日期。
  • 新增curtime函数,返回当前时间。
  • 新增convert_tz函数,转换给定的时间日期值的时区,返回转换后的时区时间。
  • 新增try_cast函数,将给定参数转换成给定的type类型值。
  • 新增cast(x, y)函数,类型转换函数。
  • 新增uuid函数,生成一个UUID类型的序列号。
  • 新增interval函数,从输入的整数数组中,查找返回最后一个小于等于目标参数n的数组索引。
  • 新增split函数,将字符串string按分隔符delimiter进行分隔,并返回数组。
  • CREATE TABLE语法新增ON UPDATE on_update_expr语法。
  • ALTER TABLE语法新增MODIFY [ COLUMN ] ON UPDATE on_update_expr语法。
  • 系统表PG_ATTRDEF新增字段adbin_on_update、adsrc_on_update。
  • 新增CURDATE、CURTIME(p)、反引号语法MySQL兼容性差异。
  • ALTER FUNCTION、ALTER INDEX、ALTER TABLE、ALTER VIEW语法支持新名称前带有原表的schema名,不支持同时修改schema名。
  • SQL语法参考>关键字
  • SQL语法参考>函数和操作符>字符处理函数和操作符
  • SQL语法参考>函数和操作符>二进制字符处理函数和操作符
  • SQL语法参考>函数和操作符>数字操作函数和操作符
  • SQL语法参考>函数和操作符>时间日期函数和操作符
  • SQL语法参考>函数和操作符>类型转换函数
  • SQL语法参考>函数和操作符>uuid函数
  • SQL语法参考>函数和操作符>数组函数和操作符
  • SQL语法参考>DDL语法>CREATE TABLE
  • SQL语法参考>DDL语法>ALTER TABLE
  • 开发指南>系统表和系统视图>系统表>PG_ATTRDEF
  • 开发指南>Oracle、Teradata和MySQL语法兼容性差异

支持基于value的重分布

  • guc hint支持的配置参数新增参数enable_stream_ctescan不支持在子查询级别设置、enable_value_redistribute支持在子查询级别设置
  • 新增enable_value_redistribute参数,控制是否开启生成value redistribute优化计划。
  • 开发指南>优化性能查询>改进查询>使用Plan Hint进行调优>配置参数的hint
  • 开发指南>GUC参数>查询规划>优化器方法配置

Magic set增强

  • rewrite_rule参数新增eager_magicset取值,使用eager_magicset查询重写规则(从主查询中下推条件到子查询)。
  • 新增windowagg_pushdown_enhancement,标识是否在聚集场景下启用窗口函数谓词下推增强功能。
  • 开发指南>GUC参数>开发人员选项
  • 开发指南>GUC参数>查询规划>其他优化器选项

SetOp支持双层计算

新增setop_optmode参数,控制不带ALL选项的集合操作(UNION/EXCEPT/INTERSECT)语句的各个查询分支语句是否执行去重操作。

开发指南>GUC参数>查询规划>优化器方法配置

OBS外表导入性能优化

新增参数file_split_threshold,仅对TEXT格式的READ ONLY外表有效。适用于文件数少于DN数的导入场景。

SQL语法参考DDL语法>CREATE FOREIGN TABLE (OBS导入导出)

DWS支持委托方式连接OBS

新增参数security_token,与临时AK、SK共同组成临时安全凭证。

  • SQL语法参考>DDL语法>CREATE SERVER
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (OBS导入导出)

OBS外表导出文本格式支持使用server指定AK、SK

  • FOREIGN DATA WRAPPER fdw_name参数下新增描述GDS外表使用gsmpp_server,fdw_name为dist_fdw。
  • access_key,secret_access_key,security_token参数中补充约束FOREIGN DATA WRAPPER为dist_fdw。
  • 修改参数gsmpp_server为server_name,可以使用初始数据库默认创建的gsmpp_server,也可以使用自定义的server。
  • SQL语法参考>DDL语法>CREATE SERVER
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (OBS导入导出)

OBS读写性能监控

新增视图GS_OBS_LATENCY,记录OBS的平均延迟信息。

开发指南>系统表和系统视图>系统视图>GS_OBS_LATENCY

OBS读写带宽视图

新增读写带宽视图GS_OBS_READ_TRAFFIC和GS_OBS_WRITE_TRAFFIC,按10分钟间隔聚集,增加logtime列显示时间分组。

开发指南>系统表和系统视图>系统视图

列存支持ring buffer

新增GUC参数enable_cstore_ring_buffer,设置列存RingBuffer的开关。

开发指南>GUC参数>资源消耗>内存>enable_cstore_ring_buffer

GaussDB(DWS) HStore列存vacuum适配

列存vacuum新增系统函数。

get_col_file_info(table_name)

get_all_col_file_info()

col_rebuild_file_relation(table_name)

SQL语法参考>函数和操作符>系统管理函数>其他函数

OBS外表(dfs_fdw)支持文本压缩格式导入

新增参数compression,导入导出时指定文件的压缩方式。

SQL语法参考>DDL语法>CREATE FOREIGN TABLE (SQL on OBS or Hadoop)

带索引导入优化,避免产生大量xlog。

  • 新增视图PGXC_STAT_WAL,显示当前query的wal日志和数据页的流量信息。
  • 新增GUC参数enable_wal_decelerate,设置wal日志限速的总开关。
  • 新增GUC参数wal_decelerate_policy,控制触发限速后的行为策略。
  • 新增GUC参数wal_write_speed,单DN上每个query每秒最大允许作业触发WAL写入的速度。
  • 新增GUC参数wal_decelerate_trigger_threshold,单DN每个query触发wal写入限速的阈值。
  • SQL语法新增两个函数:
  • 新增函数pg_stat_wal_write(),记录当前实例的线程信息,并统计wal日志和数据页导入量及速率。
  • 新增函数pgxc_stat_wal_write(),记录各个DN上与CN交互的线程信息,并统计wal日志和数据页导入量及速率。
  • 开发指南>系统表和系统视图>系统视图>PGXC_STAT_WAL
  • 开发指南>GUC参数>预写式日志>设置
  • SQL语法参考>函数和操作符>统计信息函数

LATIN1库的dist fdw外表支持dataencoding参数

新增参数dataencoding,实现GDS导入导出时数据从dataencoding与encoding之间的转换。

  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (GDS导入导出)
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (SQL on other GaussDB(DWS))

GDS互联互通支持网络压缩

新增参数gds_compress,用于降低用户使用GDS管道文件时集群之间互联互通的网络带宽。

  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (GDS导入导出)
  • SQL语法参考>DDL语法>CREATE FOREIGN TABLE (SQL on other GaussDB(DWS))

DDL锁超时配置

新增GUC参数ddl_lock_timeout,可对DDL锁超时时间进行配置。

开发指南>GUC参数>锁管理>ddl_lock_timeout

PG_LOCKS视图增强

  • 新增视图PGXC_WAIT_DETAIL和PGXC_LOCKWAIT_DETAIL
  • 增加wait_on_pid、query_id等字段。

开发指南>系统表和系统视图>系统视图>PGXC_WAIT_DETAIL

开发指南>系统表和系统视图>系统视图>PGXC_LOCKWAIT_DETAIL

修改原有下推计划

新增implied_quality_optmode参数,标识语句中等值列的条件传递优化策略。

开发指南>GUC参数>查询规划>其他优化器选项>implied_quality_optmode

Analyze采样自适应(8.2.0.100新增)

  • 新增GUC参数analyze_stats_mode、analyze_sample_mode
  • random_function_version默认值修改为1。
  • 开发指南>GUC参数>自动清理
  • 开发指南>GUC参数>查询规划>其他优化器选项

Cost估算增强(8.2.0.100新增)

enable_extrapolation_stats放开了数据类型限制,修改默认值为on。

开发指南>GUC参数>查询规划>其他优化器选项

列存小CU视图(8.2.0.100新增)

新增列存表的CU信息函数:

  • get_col_cu_info
  • get_col_file_vacuum_info
  • get_all_col_cu_info

SQL语法>函数与操作符>系统管理函数>其他函数

脏页监控视图优化(8.2.0.100新增)

新增视图:PGXC_STAT_TABLE_DIRTY

新增函数:pg_stat_get_tuple()、pgxc_stat_single_table

  • 开发指南>系统表和系统视图>系统视图 > PGXC_STAT_TABLE_DIRTY
  • SQL语法>函数与操作符>统计信息函数

select不阻塞truncate(8.2.0.100新增)

新增GUC参数ddl_select_concurrent_mode,控制DDL语句和SELECT语句并发。

开发指南>GUC参数>锁管理

支持HStore表(8.2.0.100新增)

新增实时数仓独立场景,CREATE TABLE语法中新增enable_hstore参数。

  • 开发指南>实时数仓
  • SQL语法>DDL语法>CREATE TABLE

细粒度容灾(8.2.0.100新增)

  • 新增备份容灾系统表和系统视图。
  • CREATE TABLE语法中新增enable_disaster_cstore和fine_disaster_table_role参数。
  • LOCK语法中新增local coordinator only参数。
  • 新增发布与订阅SQL语法。
  • 开发指南>系统表和系统视图>系统表>PG_FINE_DR_INFO/PG_STAT_LAST_OPERATION/PG_PUBLICATION/PG_PUBLICATION_REL/PG_PUBLICATION_NAMESPACE
  • 开发指南>系统表和系统视图>系统视图>PG_PUBLICATION_TABLES
  • SQL语法>DDL语法>CREATE TABLE
  • SQL语法>DML语法>LOCK
  • SQL语法>DDL语法>ALTER PUBLICATION/CREATE PUBLICATION/DROP PUBLICATION/ALTER SUBSCRIPTION/CREATE SUBSCRIPTION/DROP SUBSCRIPTION

GROUP BY后不需体现任何非聚合函数查询字段(8.2.0.101新增)

GUC参数behavior_compat_options新增disable_full_group_by_mysql选项,控制查询中GROUP BY后是否可以不体现任何非聚合函数查询字段。

开发指南>GUC参数>其他参数>behavior_compat_options

distinct limit场景各DN limit数目返回优化(8.2.0.101新增)

新增GUC参数enable_agg_limit_opt,标识是否对select distinct col from table limit N场景优化。

开发指南>GUC参数>查询规划>其他优化器选项

单表查询性能优化,放开inlist roughcheck的限制(8.2.0.101新增)

新增GUC参数inlist_rough_check_threshold,控制IN条件中值的个数的最大值。

开发指南>GUC参数>查询规划>其他优化器选项

hstore冷热表特性优化(8.2.0.101新增)

HStore表支持冷热数据管理。

开发指南>实时数仓>实时数仓简介

PBE场景DN并行入库优化(8.2.0.102新增)

新增GUC参数enable_parallel_batch_insert,控制行存表和列存表是否开启并发入库功能。

开发指南>GUC参数>并行导入

行为变更

表2 行为变更

变更类型

序号

名称

变更描述

新增

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语法

表3 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)。

关键字

表4 关键字

变更类型

序号

名称

变更描述

新增

1

TRY_CAST

新增非保留关键字TRY_CAST,用于兼容MySQL中的TRY_CAST函数,当类型转换失败时,返回NULL。

系统表

表5 系统表

变更类型

序号

名称

变更描述

新增

1

gs_blocklist_query

新增系统表用于保存黑名单语句和异常规则触发信息。

2

pg_except_rule

新增pg_except_rule系统表,用于存储当前集群所创建的异常规则信息,包括规则名称,具体规则阈值,以及规则触发的action。

修改

3

pg_redaction_policy,pg_redaction_column

新增inherited列,说明策略是否由用户手动创建

系统函数

表6 系统函数

变更类型

序号

名称

变更描述

新增

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。

系统视图

表7 系统视图

变更类型

序号

名称

变更描述

新增

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参数

表8 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语法。