8.1.1版本说明
【V8.1.1.500版本发布时间】:2022年06月20日
【V8.1.1.300版本发布时间】:2022年04月15日
【V8.1.1.205版本发布时间】:2022年03月30日
【V8.1.1.203版本发布时间】:2022年03月18日
【V8.1.1.202版本发布时间】:2022年02月24日
【V8.1.1.201版本发布时间】:2022年01月25日
【V8.1.1.200版本发布时间】:2021年12月09日
【V8.1.1.100版本发布时间】:2021年07月30日

8.1.1.200、8.1.1.201、8.1.1.202、8.1.1.203、8.1.1.205、8.1.1.300、8.1.1.500与8.1.1.100的集群的数据库内核功能保持一致,仅增加管理控制台的功能适配,新适配功能请参见最新动态。
新增功能
特性 | 描述 | 参考文档 |
|---|---|---|
集群支持2048节点规格 | 支持2048集群节点数 | 技术指标 |
资源监控性能优化 |
|
|
UPDATE轻量化 |
|
|
列存支持主键CU | 列存表支持主键约束 |
|
垃圾空间管理 | 新增GUC参数bi_page_reuse_factor | bi_page_reuse_factor |
GDS产品化 | 新增系统视图PGXC_BULKLOAD_PROGRESS、PGXC_BULKLOAD_STATISTICS、PG_BULKLOAD_STATISTICS |
|
数据多温度存储特性 |
|
|
国密算法SM4 CBC模式的C函数 | 安全函数新增gs_encrypt(encryptstr, keystr, cryptotype, cryptomode, hashmethod)、gs_decrypt(decryptstr, keystr,cryptotype, cryptomode, hashmethod)和gs_hash(hashstr, hashmethod) 修改gs_encrypt_aes128(encryptstr,keystr)和gs_decrypt_aes128(decryptstr,keystr)的说明 | 安全函数 |
中位数median内置函数支持 | 新增函数median(expression) | 聚集函数 |
存在视图的表进行级联删除功能调整 |
|
|
支持自定义数据脱敏规则 |
|
|
数据库用户密码到期系统会提示用户修改密码 |
|
|
hash表适当增大处理 | 新增GUC参数expand_hashtable_ratio | expand_hashtable_ratio |
SMP自适应默认打开 | 新增“SMP相关参数配置建议” | SMP相关参数配置建议 |
explain默认显示为pretty | 修改explain默认显示为pretty格式。 新增算子中过滤及投影时间统计,显示位置与算子执行时间同行。 | SQL执行计划详解 |
并发SMP增强 |
|
|
row2vec优化 | 新增GUC参数enable_row_fast_numeric | enable_row_fast_numeric |
MySQL兼容性 |
|
|
支持UPSERT | 新增语法UPSERT INSERT语法补充IGNORE、AS、ON DUPLICATE KEY、ON CONFLICT | UPSERT |
支持视图的insert、update、delete功能 | CREATE VIEW新增“可更新的视图”内容 | CREATE VIEW |
一键式现场信息收集 | EXPLAIN语法新增STATS boolean参数 | EXPLAIN |
一键式锁等待关系分析 |
|
|
char类型空串拼接兼容 | behavior_compat_option参数新增bpchar_text_without_rtrim配置项 | behavior_compat_options |
支持Python 3.x | 支持python3 | 使用GDS从远端服务器导入数据 |
to_date与to_timestamp处理空串时返回0001-01-01,而TD返回null |
|
|
支持insert overwrite | INSERT语法支持overwrite | INSERT |
获得当前用户查询的全部视图 | 新增视图GS_VIEW_DEPENDENCY_PATH | GS_VIEW_DEPENDENCY_PATH |
支持percentile_disc、percentile_cont | 新增聚集函数: percentile_disc(const) within group(order by expression) percentile_cont(const) within group(order by expression) | 聚集函数 |
SQL语法
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | LIMIT offset,count | 支持LIMIT offset,count语法。 |
2 | EXPLAIN(STATS ON)... | 支持EXPLAIN(STATS ON)... 语法,用于导出计划复现的相关信息。 | |
3 | CREATE/ALTER/DROP REDACTION POLICY | 新增脱敏DDL语法。 | |
4 | INSERT IGNORE INTO INSERT INTO ON DUPLICATE KEY UPDATE INSERT INTO ON CONFLICT DO UPDATE INSERT INTO ON CONFLICT DO NOTHING | 支持UPSERT功能。 | |
5 | INSERT OVERWRITE INTO | INSERT OVERWRITE覆盖导入功能。 | |
6 | ALTER TABLE REFRESH STORAGE | 进行冷热表的冷热切换,将热数据变冷。 | |
7 | ALTER VIEW ONLY view_name REBUILD | alter view only viewname REBUILD。 | |
8 | ALTER SERVER REFRESH | 用于HDFS配置变动时,刷新HDFS SERVER的配置文件。 | |
修改 | 9 | 操作符^ | MySQL兼容模式下处理为异或,ora/td模式为幂运算。 |
10 | MERGE INTO | MERGE INTO语句的目标表上包含触发器时报错。 | |
11 | CREATE/ALTER Table | 新增Reloptions中cold_tablespace和storage_policy冷热表相关的选项。 |
关键字
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | TIMESTAMPDIFF | 新增关键字为COL_NAME_KEYWORD。 |
2 | IFNULL | 新增关键字为COL_NAME_KEYWORD。 | |
3 | REFRESH | 非保留关键字。 | |
修改 | 4 | IF | 由UNRESERVED_KEYWORD改为COL_NAME_KEYWORD。 |
5 | ISNULL | 由UNRESERVED_KEYWORD改为COL_NAME_KEYWORD。 | |
6 | VERIFY | 由保留关键字变为非保留关键字。 |
系统表
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
修改 | 1 | PG_REDACTION_COLUMN | 新增func_expr字段。 |
2 | PG_AUTHID | 增加rolpwdexpire和rolpwdtime字段。 |
系统函数
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | pgxc_wlm_readjust_schema_space() | Schema空间并行校准函数。 |
2 | pgxc_wlm_get_schema_space() | 查询集群Schema空间信息。 | |
3 | pgxc_wlm_analyze_schema_space() | 分析集群Schema空间信息。 | |
4 | gs_roach_enable_delay_ddl_recycle | 按照备份集的名称来开启延迟DDL。 | |
5 | gs_roach_disable_delay_ddl_recycle | 按照备份集的名称来关闭延迟DDL。 | |
6 | gs_roach_stop_backup | 按照备份集名称停止行存备份操作。 | |
7 | gs_roach_switch_xlog | switch xlog时是否执行checkpoint。 | |
8 | pgxc_get_lock_conflicts() | 返回各节点上存在冲突的锁信息。 | |
9 | mask_none/mask_full/mask_partial | 新增内置脱敏函数。 | |
10 | median | 中位数agg函数。 | |
11 | pgxc_node_stat_reset_time() | 查询每个节点的重置时间。 | |
12 | pgxc_rel_iostat() | 查询各节点IO统计信息。 | |
13 | pgxc_redo_stat() | 查询各节点Redo统计信息。 | |
14 | pgxc_instance_time() | 查询各实例时间统计信息。 | |
15 | pgxc_settings() | 查询各节点GUC设置情况。 | |
16 | pgxc_replication_slots() | 查询各节点复制slot统计信息。 | |
17 | pgxc_stat_replication() | 查询各节点replication统计信息。 | |
18 | pgxc_stat_bgwriter() | 查询各节点bgwriter统计信息。 | |
19 | pgxc_wait_events() | 查询各节点等待事件统计信息。 | |
20 | pgxc_os_run_info() | 查询各实例所在机器OS性能统计信息。 | |
21 | get_node_stat_reset_time() | 查询当前节点状态重置时间。 | |
22 | get_local_rel_iostat() | 查询当前节点IO统计信息。 | |
23 | get_instr_wait_event() | 查询当前节点等待事件统计信息。 | |
24 | pg_stat_get_db_total_blk_write_time() | 查询块写入总时间。 | |
25 | pg_stat_get_db_total_blk_read_time() | 查询块读取总时间。 | |
26 | pg_stat_get_db_total_temp_bytes() | 查询临时文件总大小。 | |
27 | pg_stat_get_db_total_temp_files() | 查询临时文件总数。 | |
28 | pg_stat_get_db_total_deadlocks() | 查询死锁总数。 | |
29 | pg_stat_get_db_total_conflict_all() | 查询冲突总数。 | |
30 | pg_stat_get_db_total_tuples_deleted() | 查询删除元组总数。 | |
31 | pg_stat_get_db_total_tuples_updated() | 查询更新元组总数。 | |
32 | pg_stat_get_db_total_tuples_inserted() | 查询插入元组总数。 | |
33 | pg_stat_get_db_total_tuples_fetched() | 查询fetch元组总数。 | |
34 | pg_stat_get_db_total_tuples_returned() | 查询return元组总数。 | |
35 | pg_stat_get_db_total_blocks_hit() | 查询内存命中数据块总数。 | |
36 | pg_stat_get_db_total_blocks_fetched() | 查询读取数据块总数。 | |
37 | pg_stat_get_db_total_xact_rollback() | 查询rollback事务总数。 | |
38 | pg_stat_get_db_total_xact_commit() | 查询commit事务总数。 | |
39 | pg_stat_get_db_total_numbackends() | 查询当前backend总数。 | |
40 | gs_encrypt() | 加密函数。 | |
41 | gs_decrypt() | 解密函数。 | |
42 | gs_hash() | 哈希函数。 | |
43 | gs_password_expiration() | 查询当前用户的密码剩余时间(对应系统表pg_authid中的rolpwdtime和rolpwdexpire)。 | |
44 | to_char(date) | 新增to_char(date)函数,兼容TD模式下to_char处理date类型时间戳的返回格式。 | |
45 | gs_wlm_set_queryband_action | 设置query_band负载行为。 | |
46 | gs_wlm_set_queryband_order | 设置query_band搜索优先级。 | |
47 | gs_wlm_get_queryband_action | 查询query_band负载行为。 | |
48 | CONCAT | 新增MYSQL兼容规则,入参含NULL则返回NULL。 | |
49 | TIMESTAMPDIFF | 支持TIMESTAMPDIFF函数返回指定单位的时间差。 | |
50 | TO_DAYS | 支持TO_DAYS函数返回输入时间到0的天数差 | |
51 | DATE_FORMAT | 支持DATE_FORMAT函数用于将输入日期时间转化为指定格式的字符串,格式为%开头的MYSQL形式。 | |
52 | IF | 实现IF函数,根据首个输入返回对应值。 | |
53 | IFNULL | 实现IFNULL函数,返回首个非NULL值。 | |
54 | ISNULL | 实现ISNULL函数,判断输入是否为NULL。 | |
修改 | 55 | pg_resume_bkp_flag | 用于备份恢复获取delay ddl标志。 |
56 | pg_query_audit | 审计日志记录新增五个字段:begintime、operation_type、command_text、transaction_xid、query_id;变更原字段:将原time变更为endtime,将原type变更为audit_type。另将原detail_info下存放的操作命令移至command_text,而detail_info存放命令执行结果。 | |
57 | pg_delete_audit | 基于安全考虑,不允许提供删除审计日志的接口,调用此函数将直接报错。 | |
58 | log() | 对数函数,ora/td模式下表现为底为10的对数,mysql兼容模式下表现为自然对数。 | |
59 | to_number | to_number函数原来调用numeric_in函数,现修改成调用to_number函数,兼容TD模式下to_number函数空串处理返回null。 | |
60 | left() | 字符串截取,当入参是负数时,ora/td模式下返回除最后|n|个字符以外的所有字符,mysql兼容模式下返回空串。 | |
61 | right() | 字符串截取,当入参是负数时,ora/td模式下返回除前|n|个字符以外的所有字符,mysql兼容模式下返回空串。 | |
62 | last_day | 入参增加timestamptz类型,mysql兼容模式下返回类型处理为date类型,ora/td模式返回timestamp。 | |
63 | next_day | 入参增加timestamptz类型,mysql兼容模式下返回类型处理为date类型,ora/td模式返回timestamp。 | |
64 | add_months | 入参增加timestamptz类型,mysql兼容模式下返回timestamptz类型,ora/td模式返回timestamp类型。 | |
65 | add_months | 入参增加date类型,mysql兼容模式下返回date类型,ora/td模式返回timestamp类型。 | |
66 | pg_cbm_recycle_file | 增加参数,支持备份和容灾并行特性对cbm的回收支持。 | |
67 | pgxc_query_audit | 新增字段:begintime、operation_type、command_text、transaction_xid、query_id;修改原字段:将原time变更为endtime,将原type变更为audit_type。另将原detail_info下存放的操作命令移至command_text,而detail_info存放命令执行结果。 | |
68 | login_audit_messages | 增强审计日志特性适配。 | |
删除 | 69 | add_policy/drop_policy/alter_policy/enable_policy/disable_policy | 删除脱敏旧的接口。 |
系统视图
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | GS_WLM_SQL_ALLOW | 新增视图供用户查询当前已设置的白名单。 |
2 | PG_TOTAL_SCHEMA_INFO | 查询节点Schema空间信息。 | |
3 | PGXC_TOTAL_SCHEMA_INFO | 查询集群Schema空间信息。 | |
4 | PGXC_TOTAL_SCHEMA_INFO_ANALYZE | 分析集群Schema空间信息。 | |
5 | PGXC_LOCK_CONFLICTS | 查询各节点上存在冲突的锁信息。 | |
6 | PGXC_DEADLOCK | 返回处于分布式死锁中的锁等待信息(包括锁定对象、持锁对象和等锁对象的信息)。 | |
7 | PGXC_NODE_STAT_RESET_TIME | 显示每个节点的重置时间。 | |
8 | GS_NODE_STAT_RESET_TIME | 显示当前节点的重置时间。 | |
9 | GLOBAL_STAT_DATABASE | 显示database全局统计信息。 | |
10 | GLOBAL_REL_IOSTAT | 显示全局IO统计信息。 | |
11 | PGXC_REL_IOSTAT | 显示各节点IO统计信息。 | |
12 | GS_REL_IOSTAT | 显示当前节点IO统计信息。 | |
13 | GLOBAL_REDO_STAT | 显示全局Redo统计信息。 | |
14 | PGXC_REDO_STAT | 显示各节点Redo统计信息。 | |
15 | GLOBAL_WORKLOAD_TRANSACTION | 显示全局workload事务统计信息。 | |
16 | PGXC_INSTANCE_TIME | 显示各实例时间统计信息。 | |
17 | PGXC_SETTINGS | 显示各节点GUC设置情况。 | |
18 | PGXC_REPLICATION_SLOTS | 显示各节点复制slot统计信息。 | |
19 | PGXC_STAT_REPLICATION | 显示各节点replication统计信息。 | |
20 | PGXC_STAT_BGWRITER | 显示各节点bgwriter统计信息。 | |
21 | PGXC_WAIT_EVENTS | 显示各节点等待事件统计信息。 | |
22 | GS_WAIT_EVENTS | 显示当前节点等待事件统计信息。 | |
23 | PGXC_OS_RUN_INFO | 显示各实例所在机器OS性能统计信息。 | |
24 | PG_LIFECYCLE_DATA_DISTRIBUTE | 获取obs冷热表的数据分布情况统计。 | |
25 | PG_BULKLOAD_STATISTICS | 对函数pg_stat_get_node_bulkload_statistics封装。 | |
26 | PGXC_BULKLOAD_STATISTICS | 对函数pgxc_stat_get_node_bulkload_statistics封装。 | |
27 | PGXC_BULKLOAD_PROGRESS | 基于视图pgxc_bulkload_statistics查询结果进行聚合,计算GDS业务进度百分比。 | |
28 | PG_QUERYBAND_ACTION | 查询所有query_band负载行为。 | |
29 | GS_VIEW_DEPENDENCY_PATH | 级联查询视图的依赖关系。 | |
修改 | 30 | REDACTION_COLUMNS | 修改系统视图定义,新增一列function_infos。 |
31 | PGXC_GET_TABLE_SKEWNESS | 修复了视图PGXC_GET_TABLE_SKEWNESS不显示round-robin表的问题。 | |
32 | PGXC_STAT_DATABASE | 显示各实例上的Database统计信息。 |
行为变更
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
修改 | 1 | not-null/check约束冲突时不打印整行数据的detail | not-null/check约束冲突时不打印整行数据的detail。 |
2 | 兼容C80行为默认不匹配interval到text隐式类型转换 | behavior_compat_options设置enable_interval_to_text后支持该隐式类型转换。 | |
3 | date类型 | ora兼容模式下,date类型反解析为pg_catalog.date。 | |
4 | agg计划 | agg生成stream计划时输出所需列。 | |
5 | median配套collate使用 | 禁用median/percentile_cont/percentile_disc中使用collate。 | |
6 | 多列分区的修改 | 调整分区修改时的多列边界检查规则,当某一列的边界值为maxvalue则忽略后面其他列的边界值。 | |
7 | enable_nestloop为off时无关联条件时的计划生成 | 对于两个表无等值关联条件,但与其它表存在等值关联条件,且join的行数膨胀时,原来可以走nestloop,修复完走不了nestloop的计划;对于不支持hashjoin的等值join列,mergejoin也为off时,会导致nestloop代价变化,原来走nestloop+indexscan的会变成nestloop+materialize。 |
GUC参数
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | behavior_compat_options |
|
2 | debug_group_dop | 可以设定每个stream group的dop,用于在SMP自适应时进行语句级调优使用。默认为空。 | |
3 | enable_row_fast_numeric | 行存表numeric落盘为bigint格式。 | |
4 | expand_hashtable_ratio | hash表动态扩展。 | |
5 | query_dop_ratio | 新增逻辑dop依据系统资源和代价进行判断,当判断不准时增加参数进行逃生。默认为1。 | |
6 | show_unshippable_warning | 新增参数,控制是否将不下推日志打印到客户端,默认关闭。 | |
7 | assign_abort_xid | 新增session级别参数,当客户误删(delete)数据后,进行快速有损恢复。默认值为空字符串。此guc参数的意思是需回滚指定xid提交的事务。 | |
8 | bi_page_reuse_factor | 批插页重用时空闲fsm因子(0表示回到旧逻辑)。 | |
9 | check_cu_size_threshold | userset级别,列存表插入时,如果一个CU里插入的数据量大于check_cu_size_threshold,启用行大小校验,避免产生大于1G的CU。 | |
10 | enable_light_colupdate | userset级别,表明是否使用轻量化update。 | |
修改 | 11 | cost_model_version | 增加参数值2,默认值1不变。小于2时analyze固定值采样使用原始函数,大于2时固定值采样使用增强随机性的优化函数。 |
12 | expected_computing_nodegroup | 就地升级后设置expected_computing_nodegroup为bind。 | |
13 | query_dop | 新安装集群默认值修改为1,升级集群维持原默认值不变。 |

