8.1.3版本新增功能
8.1.3.x版本新增功能参见新增功能,各补丁解决问题列表参见8.1.3.x补丁新增功能及解决问题。
【V8.1.3.355版本发布时间】:2026年2月
【V8.1.3.353版本发布时间】:2025年9月
【V8.1.3.352版本发布时间】:2025年7月
【V8.1.3.336版本发布时间】:2024年10月15日
【V8.1.3.333版本发布时间】:2024年06月30日
【V8.1.3.330版本发布时间】:2024年03月16日
【V8.1.3.325版本发布时间】:2023年11月02日
【V8.1.3.323版本发布时间】:2023年10月16日
【V8.1.3.322版本发布时间】:2023年08月04日
【V8.1.3.321版本发布时间】:2023年06月26日
【V8.1.3.320版本发布时间】:2023年05月19日
【V8.1.3.310版本发布时间】:2023年03月09日
【V8.1.3.300版本发布时间】:2022年12月19日
【V8.1.3.200版本发布时间】:2022年10月31日
【V8.1.3.110版本发布时间】:2022年08月23日
【V8.1.3.100版本发布时间】:2022年06月20日
【V8.1.3版本发布时间】:2022年04月15日
新增功能
特性 | 描述 | 参考文档 |
|---|---|---|
支持自增分区和分区表管理功能 | 分区管理新增PERIOD(interval类型)和TTL(interval类型) | |
外表支持json格式 |
| |
跨集群互联互通特性 |
| |
冷热表功能增强 | 冷热自动搬迁。 | |
行存ring buffer可通过开关控制 | ring buffer提供开关控制和阈值调整,大表批量更新不使用ring buffer | |
GDS支持欧元符 | GBK字符集支持欧元符。 | |
OBS外表支持XSKY S3 | OBS外表适配XSKY,新增eol参数。 | |
SQL支持了位图功能(RoaringBitmap) | 支持位图功能(RoaringBitmap),更好支撑互联网业务常见的客户画像业务。 | |
TD兼容支持不区分大小写 | TD数据源迁移至DWS的大量存储过程涉及到去重操作,源数据中存在大量内容相同但是大小写不同的数据,DWS中使用distinct去重后会有大量重复数据,使用upper函数会改变源数据,存储过程数量多,逻辑复杂,手动修改难度大,需要增加DWS不区分大小写的特性。 | |
List分区 | 分区表支持List分区。 | |
MySQL兼容性增强 | ALTER TABLE支持同时修改多个列。 ALTER TABLE支持COMMENT。 ALTER TABLE支持CHANGE、DROP KEY、DROP PARTITION和FIRST/AFTER。 | |
projection pushdown | 对于多列视图场景,引用时自动去除无用的列,避免多余计算。 | rewrite_rule新增projection pushdown描述。 |
share scan | share scan | stream计划CTE支持share scan: logging_module增加取值STREAM_CTESCAN SELECT语法的WITH子句中增加可选的[[NOT] MATERIALIZED]支持是否物化语法。 |
列存Bloom Filter | 外表侧同线程包含有HDFS内外表或列存表的HASH JOIN会触发Bloom Filter。 | |
列存复制表支持UPDATE | 复制表支持UPDATE、DELETE和MERGE INTO等操作。 | |
细粒度权限管理 |
| |
解决INSERT OVERWRITE多CN死锁问题 | 多CN同时触发INSERT OVERWRITE不会造成死锁。 | - |
执行计划优化 |
| rewrite_rule新增projection_pushdown和or_conversion。 |
基于Relfile的空间统计与空间管控 |
| |
性能定位定界增强专项 |
|
|
资源负载管理优化重构 |
| |
分区表特性修改 |
| |
Agg重分布列Hint | Oracle数仓迁移过程中,通过增强Hint特性手动指定分布列。 | |
新增除零返回NULL(8.1.3.110新增) | MySQL兼容模式下,除数为0时,控制除法取余操作是否报错。参数behavior_compat_options新增兼容配置项enable_division_by_zero_mysql。 | |
DDL锁超时配置(8.1.3.200新增) | 新增GUC参数ddl_lock_timeout,可对DDL锁超时时间进行配置。 | |
PG_LOCKS视图增强(8.1.3.200新增) |
| |
数据脱敏可算不可见兼容配置(8.1.3.310新增) | 新增GUC参数redact_compat_options,用于设置数据脱敏可算不可见兼容性行为配置项。 | |
truncate、exchange与select并发(8.1.3.320新增) | 新增GUC参数ddl_select_concurrent_mode,该特性主要解决数据量较大或复杂查询的场景中,查询语句持续时间过长,阻塞DDL的场景,与Oracle效果一致。 支持场景:
场景约束:
DWS常用连接方式约束:
| |
支持控制LIMIT语句是否启用early stop优化(8.1.3.320新增) | 新增GUC参数enable_limit_stop,控制LIMIT语句是否启用early stop优化。 | |
early stop功能行为变更(8.1.3.322新增) | GUC参数enable_limit_stop默认值改为on。 | |
normalize_negative_zero(8.1.3.333新增) | behavior_compat_options参数中新增选项normalize_negative_zero,控制ceil(),round()函数在处理float类型特定值时返回-0与否。 | 开发指南 > GUC参数> 其他选项 >behavior_compat_options |
internal_compat_options (8.1.3.333新增) | 新增参数GUC参数internal_compat_options控制数据库兼容性行为配置项。其中light_proxy_permission_compat选项用于light Proxy场景下嵌套查询权限配置项。 | 开发指南 > GUC参数>其他选项 |
disable_client_detection_commit (8.1.3.333新增) | behavior_compat_options参数中新增disable_client_detection_commit选项,控制是否在每次事务提交之前,检测与客户端的连接是否存在。 | 开发指南 > GUC参数> 其他选项 >behavior_compat_options |
enable_stream_ctescan新装默认关闭 (8.1.3.333修改) | 修改enable_stream_ctescan参数,升级前向兼容,新装默认关闭。 | 开发指南 > GUC参数> 优化器方法配置 |
enable_trunc_orc_string (8.1.3.336新增) | 控制orc格式外表字段为varchar(n),但是orc文件字段类型为string,且string长度超过n时,外表查询的行为。 | 开发指南 > GUC参数> 其他选项 >behavior_compat_options |
gds_fill_multi_missing_fields (8.1.3.336新增) | gds_fill_multi_missing_fields 控制GDS外表容错性参数fill_missing_fields设置为true/on时的行为。 | 开发指南 > GUC参数> 其他选项 >behavior_compat_options |
SQL语法
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | create foreign table (SQL on Hadoop or OBS) | OPTION选项format参数新增json。 |
2 | create foreign table (SQL on Hadoop or OBS) | OPTION选项新增force_mapping。 | |
3 | 列类型kvtype | 建表和alter column语法在列类型后面指定kvtype类型(tstag, tsfield, tstime),用于指定时序表的列类型。 | |
4 | 表级参数sub_partition_count | 用于设置时序表二级分区的个数。 | |
5 | 表级参数ttl | 用于指定自增分区的过期时间。 | |
6 | 表级参数period | 用于指定add分区任务和drop分区任务的触发时间间隔、单个分区时间范围。 | |
7 | 支持List分区 | 新增list分区操作语法,包括创建、ALTER各项操作。其中创建语法是单独的语法分支;AT语法除split外,其它和range分区类似。 | |
8 | alter table add index/drop index | alter table语法分支支持新增和删除索引。 | |
9 | create table ... like | 新增create table ... like不带括号的语法形式 。 | |
10 | alter table ... add/modify column | 新增alter table对column的添加和修改语句,现支持设置comment和default。 | |
11 | with cte as后新增[NOT] MATERIALIZED语法 | with cte as后新增[NOT] MATERIALIZED语法。 | |
12 | alter index ... comment | 增加alter index语法支持comment子句。 | |
13 | alter table ... add index comment | 增加alter table add index语法支持comment子句。 | |
14 | create index index_name on table_name comment | 增加create index语法适配comment子句。 | |
15 | copy to | copy to语句OPTION选项新增server、bom、fileprefix、maxrow。 | |
16 | create foreign table(obs导入导出) | create foreign table(obs导入导出)语句OPTION选项新增bom。 | |
17 | 操作符= | 如果两个roaringbitmap相等则返回true,否则返回false。 | |
18 | 操作符<> | 如果两个roaringbitmap不相等则返回true,否则返回false。 | |
19 | 操作符& | 计算两个roaringbitmap求交集以后的结果。 | |
20 | 操作符| | 计算两个roaringbitmap求并集以后的结果。 | |
21 | 操作符| | 计算一个roaringbitmap中增加一个id以后的结果。 | |
22 | 操作符# | 计算两个roaringbitmap做异或运算后的结果。 | |
23 | 操作符- | 计算在第一个roaringbitmap,但是不在第二个roaringbitmap中的集合。 | |
24 | 操作符- | 在roaringbitmap中去掉指定的id后的结果。 | |
25 | 操作符@> | 前面的roaringbitmap如果包含后面的元素则返回true,否则返回false。 | |
26 | 操作符<@ | 前面的roaringbitmap如果被后面的元素包含则返回true,否则返回false。 | |
27 | 操作符&& | 两个roaringbitmap如果有交集则返回true,否则返回false。 | |
28 | ALTER TABLE DROP KEY | 新增删除索引语法,与alter table drop index用法相同。 | |
29 | ALTER TABLE CHANGE | 兼容MySQL中的change语法,可以同时修改列名以及列属性。 | |
30 | ALTER TABLE ... FIRST/AFTER colname | 语法层实现支持FIRST/AFTER语法,但不实现实际语义,适用alter table add/modify/change column场景,受参数skip_first_after_mysql控制。 | |
31 | AGG HINT | 新增对于agg的hint,可用于性能调优。 | |
32 | ALTER TABLE ... ALTER COLUMN cstore_cu_sample_ratio | 为了少解压CU,样本都集中在随机选择的CU里,样本比较集中,不容易获取数据特征。 加这个字段属性是为了在不增大采样率的情况下,多筛选一些CU,易于获取数据特征。 | |
修改 | 33 | 表级参数deltarow_threshold | 表级参数deltarow_threshold的默认值设置为10000,指定列存表导入时小于多少行的数据进入delta表,只在表级参数enable_delta开启时生效。 |
34 | btree索引支持类型扩展 | 该开源的引入,将btree索引支持的类型进一步扩展,在满足对应表支持类型的基础上,对行存表、列存表和时序表等都是适用的。btree_gin提供了一个为数据类型int2、int4、int8、float4、float8、timestamp with time zone、timestamp without time zone、time with time zone、time without time zone、date、interval、oid、money、"char"、varchar、text、bytea、bit、varbit、macaddr、macaddr8、inet、cidr、uuid、name、bool、bpchar和所有enum类型。 | |
35 | grant/revoke/alter default privileges语法 | 增加Alter/Drop/Vacuum权限。 | |
36 | ALTER TABLE ... DROP PARTITION | drop partition语法可支持删除多个分区。 | |
37 | CREATE/ALTER TABLE中字段DEFAULT子句 | create/alter table中的DEFAULT子句,不再支持后缀操作符(当前唯一的后缀操作符是阶乘!),如:create table t (a int default 3!); |
关键字
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | MATERIALIZED | with cte as后新增[NOT] MATERIALIZED语法。作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 |
2 | time_fill | 用于时间填充表达式输出time_fill列,作为关键字,不能用作函数名和自定义数据类型名。 | |
3 | fill_first/fill_last/fill_avg | 用于时间填充表达式,输出填充列,作为关键字,不能用作函数名和自定义数据类型名。 | |
4 | list | 用于指定分区表类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 | |
5 | tsfield/tstag/tstime | 用于指定时序表kvtype类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 |
系统表
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | rb_added | RoaringBitmap中增加一个值。 |
2 | pg_partition | pg_partition新增字段boundexprs。 | |
3 | pg_relfilenode_size | 新增系统表。 | |
4 | pg_attribute | pg_attribute新增attkvtype列,记录列的kvtype类型。 | |
5 | pg_collation | 新增一条记录case_insensitive,用于支持大小写不敏感行为。 |
系统函数
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | rb_build | 将int数组转成一个bitmap类型。 |
2 | rb_to_array | rb_build的逆向操作,把RoaringBitmap转成int数组。 | |
3 | rb_and | 两个RoaringBitmap做交集操作。 | |
4 | rb_or | 两个RoaringBitmap做并集操作。 | |
5 | rb_xor | 两个RoaringBitmap做异或操作。 | |
6 | rb_andnot | 两个RoaringBitmap做and后取反。 | |
7 | rb_cardinality | 计算一个RoaringBitmap的基数。 | |
8 | rb_and_cardinality | 计算两个RoaringBitmap求and以后的基数。 | |
9 | rb_or_cardinality | 计算两个RoaringBitmap求or以后的基数。 | |
10 | rb_xor_cardinality | 计算两个RoaringBitmap求xor以后的基数。 | |
11 | rb_andnot_cardinality | 计算两个RoaringBitmap求andnot以后的基数。 | |
12 | rb_is_empty | 判断一个RoaringBitmap是否为空。 | |
13 | rb_equals | 判断两个RoaringBitmap是否相等。 | |
14 | rb_intersect | 判断两个RoaringBitmap是否相交。 | |
15 | rb_contain | 判断第一个RoaringBitmap是否包含指定的值。 | |
16 | rb_add | RoaringBitmap中增加一个值。 | |
17 | rb_remove | RoaringBitmap中删除一个值。 | |
18 | rb_flip | 翻转指定范围的RoaringBitmap。 | |
19 | rb_min | 求一个RoaringBitmap的最小值。 | |
20 | rb_max | 求一个RoaringBitmap的最大值。 | |
21 | rb_rank | 返回Bitmap中小于等于指定Offset的基数。 | |
22 | rb_contain_rb | 判断第一个RoaringBitmap是否包含第二个roaringbitmap。 | |
23 | rb_containedby_rb | 判断第二个RoaringBitmap是否包含第一个roaringbitmap。 | |
24 | rb_containedby | 判断指定的值是否被指定的roaringbitmap包含。 | |
25 | rb_iterate | 返回RoaringBitmap对应的int 。 | |
26 | rb_and_agg | 将RoaringBitmap列按照and逻辑做聚合。 | |
27 | rb_or_agg | 将RoaringBitmap列按照or逻辑做聚合。 | |
28 | rb_xor_agg | 将RoaringBitmap列按照xor逻辑做聚合。 | |
29 | rb_and_cardinality_agg | 将RoaringBitmap列按照and逻辑做聚合后的基数。 | |
30 | rb_or_cardinality_agg | 将RoaringBitmap列按照or逻辑做聚合后的基数。 | |
31 | rb_xor_cardinality_agg | 将RoaringBitmap列按照xor逻辑做聚合后的基数。 | |
32 | rb_build_agg | 将int列聚合成RoaringBitmap类型数据。 | |
33 | pgxc_wlm_readjust_relfilenode_size_table() | 空间统计校准函数,不重建PG_RELFILENODE_SIZE系统表,重新校准用户和schema空间。 | |
34 | gs_table_distribution() | 快速查询系统中表大小的函数。 | |
35 | pg_obs_cold_refresh_time | 修改obs多温表自动切换任务时间。 | |
36 | gs_clean_tag_relation | 清理tag表中无用的tagid行数据。该函数入参为时序表OID,每个分区遍历cudesc表tagid列的最小值,从而得到整个时序表tagid的最小值。 | |
37 | proc_drop_partition | 用于将分区boundary时间超过TTL的分区进行drop。 | |
38 | proc_add_partition | 用于为分区表创建分区。 | |
39 | pg_collation_actual_version | 返回ICU排序规则的实际版本号。 | |
40 | first | 分组内第一个元素。 | |
41 | last | 分组内最后一个元素。 | |
42 | mode | 分组内出现频率最高的值。 | |
43 | delta | 相邻两行的差值。 | |
44 | percentile_of_value | 近似百分位的值。 | |
45 | value_of_percentile | 近似百分位。 | |
46 | spread | 分组内最大值和最小值的差值。 | |
47 | pg_flush_buffers | 刷出所有行存脏页。 | |
修改 | 48 | pg_stat_activity系列视图 | pg_stat_get_activity_with_conninfo、pg_stat_activity、pgxc_stat_activity、pg_stat_get_activity视图新增stmt_type和lwtid列。 |
49 | pg_authid系统表新增两行 | 新增pg_role_signal_backend,pg_role_read_all_stats预置角色。 | |
50 | vac_fileclear_relation | 可以返回指定表真实清理文件的数量,不清理返回0。 | |
51 | vac_fileclear_all_relation | 可以返回所有列存表真实清理文件的数量,不清理则返回0。 |
系统视图
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | pgxc_session_wlmstat | 新增视图。 |
2 | pg_comm_query_speed | 新增视图,根据query_id查询发送信息。 | |
3 | pgxc_respool_resource_info pgxc_respool_runtime_info pgxc_respool_resource_history gs_respool_resource_info gs_respool_runtime_info | 资源监控新增相关视图。 | |
4 | pgxc_wait_detail pgxc_lockwait_detail | 新增pg_locks增强视图。 | |
修改 | 5 | DBA_PART_INDEXES DBA_PART_TABLES DBA_TAB_PARTITIONS USER_IND_PARTITIONS USER_PART_INDEXES USER_TAB_PARTITIONS | 增加相关list分区描述。 |
6 | pgxc_wlm_session_statistics | 视图从所有CN查询TopSQL实时信息的逻辑由串行修改为并行,提升性能,功能不变。 | |
7 | all_indexes | sys和pg_catalog下面的视图all_indexes定义存在问题,不同schema下存在同名对象的场景下会导致结果集膨胀。 |
行为变更
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
修改 | 1 | create index目标表为时序表时 | 时序表创建的任何索引都会转换为tag表上的双索引,该双索引的索引列为指定的建索引的列。 |
2 | 负载管理新增二次管控 | 负载管理引入二次管控,提供更精细化的管控,FUNCTION、函数和多语句中包含复杂查询的可能触发多次管控,设置enable_transaction_parctl=off可以关闭二次管控,但同时会关闭事务块语句和多语句管控。 | |
3 | 负载管理autoanalyze纳管 | 查询触发autoanalyze管控逻辑由不管控修改为管控,设置enable_transaction_parctl=off可以关闭autoanalyze管控。 | |
4 | 用户监控视图pg_total_user_resource_info |
| |
5 | 审计日志 |
|
GUC参数
变更类型 | 序号 | 名称 | 变更描述 |
|---|---|---|---|
新增 | 1 | space_readjust_schedule | 用户、schema空间是否自动校准的参数,默认值:auto,支持范围:off/auto/auto(xxxK/M/G)。 |
2 | space_once_adjust_num | 空间管控和空间统计功能中,控制慢速构建与细粒度校准操作中每次处理的文件个数阈值,默认值:300。 | |
3 | tag_cache_max_number | 该参数用于设置全局哈希表tag cache缓存item的最大阈值,默认值10000000。 | |
4 | enable_tagbucket_auto_adapt | 该参数用于设置是否开启tagbucket自适应调整,默认值on。 | |
5 | cache_tag_value_num | 该参数用于在tag列lateread场景时,设置缓存的tag元组数量,默认值60000。 | |
6 | buffer_ring_ratio | 用于控制行存Ringbuffer的阈值和开关,默认值250,即1/4(250/1000),与以前逻辑一致。 | |
7 | enable_stream_ctescan | 新增参数,升级默认关闭,新装默认打开。控制stream计划是否开启share scan功能。 | |
8 | behavior_compat_options | 新增disable_including_all_mysql选项用于控制MySQL兼容模式下create table like语法是否为including all模式,默认不设置,create table like语法为including_all模式。 | |
9 | profile_logging_module | 增加GUC参数profile_logging_module配置记录性能日志的类型,升级和新装均默认打开OBS、HADOOP、REMOTE_DATANODE,关闭MD。该参数方法与日志模块开关logging_module相同。 | |
10 | object_mtime_record_mode | 控制pg_object记录修改时间的行为,默认保持老版本行为,新增选项可控制不记录分区/truncate/grant/revoke。 | |
11 | skew_option | 控制是否使用优化策略。 | |
12 | ddl_lock_timeout | 配置ddl锁超时的时间。 | |
修改 | 13 | rewrite_rule | |
14 | max_process_memory | 初始化安装时OM设置max_process_memory公式为:可用内存*0.7/(1+DN数),其中系数0.7改为0.8。老集群升级、扩容等场景不变。 | |
15 | enable_bloom_filter | 复用原参数,现用于控制列存BloomFilter,默认值不变(打开)。 | |
16 | retry_ecode_list | 默认值新增45003,主要是处理list分区表查询和add分区并发场景下,查询分区可能错位的问题。 | |
17 | auth_iteration_count | 将默认值从50000减少到10000,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。 |

