
# 8.1.0版本说明
**【发布日期】**：2021年5月15日
**【集群版本号】**：8.1.0.100
#### 特性变更
表18.1.0特性变更 
| 特性                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|
| Analyze强化，支持临时表，支持单事务操作            | 事务、存储过程支持analyze命令；analyze和alter table并发时不会报错；自动analyze支持临时表场景。                                                                                                                                                                                                                                                                                                                                                             |
| 向量化引擎性能提升                          | - 向量化执行增强（HASH FULL JOIN）  - string_agg/listagg支持向量化                                                                                                                      |
| 分区列过滤条件非常量时的分区剪枝                   | 分区剪枝优化，当前分区剪枝只能针对常量进行，而对于需要计算的变量不能剪枝，需要进行优化。                                                                                                                                                                                                                                                                                                                                                                                |
| 全量备份（schema粒度）+细粒度恢复（表级、schema级）   | 全量备份（schema粒度）+细粒度恢复（表级、schema级）                                                                                                                                                                                                                                                                                                                                                                                            |
| GDS支持第三方自定义数据转换                    | 支持第三方自定义数据转换。                                                                                                                                                                                                                                                                                                                                                                                                               |
| RTO优化                              | 集群内HA， RPO=0，RTO稳定\<60s，POC场景支持RTO\<30s。                                                                                                                                                                                                                                                                                                                                                                                    |
| SQL on HDFS                        | 支持OBS外表导出ORC格式数据。                                                                                                                                                                                                                                                                                                                                                                                                           |
| 支持解析XML函数                          | 支持解析XML函数。                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 支持修改分布列                            | 支持修改分布列。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 支持CN故障job自动迁移                      | 当前CN故障后，其对应的job任务可以自动迁移。                                                                                                                                                                                                                                                                                                                                                                                                    |
| 支持C函数平滑升级                          | 支持客户的C函数平滑升级。                                                                                                                                                                                                                                                                                                                                                                                                               |
| gsql支持TD DSQL兼容性                   | 1. 支持动态变量字符串等值比对（不包括其他逻辑操作，不包含与或非逻辑，不包含嵌套）。  2. GOTO label。  3. THEN模块只支持sql语句或GOTO语句。   |
| 支持时区和国际组织IANA Time Zone Database同步 | 支持时区和国际组织IANA Time Zone Database同步。                                                                                                                                                                                                                                                                                                                                                                                         |
   
#### SQL语法
表2SQL语法 
| 变更类型 | 序号 | 名称                                                     | 变更描述                                                                   |
|:---|:---|:---|:---|
| 新增   | 1  | 列存分区表支持split操作                                         | 列存分区表支持split操作。                                                        |
| 新增   | 2  | CREATE TABLE tbl(LIKE tbl2 INCLUDING DROPCOLUMNS )     | 新增支持LIKE DROPCOLUMNS语法。                                                |
| 新增   | 3  | ALTER TABLE tbl DISTRIBUTE BY                          | 新增支持修改表分布列语法。                                                          |
| 新增   | 4  | ALTER TABLE set version                                | 用于切换列存表的新老格式。                                                          |
| 新增   | 5  | CREATE/ALTER FOREIGN TABLE Write Only                  | 支持OBS的ORC格式写。                                                          |
| 新增   | 6  | CREATE/ALTER FOREIGN TABLE Write Only                  | 支持HDFS的ORC格式写。                                                         |
| 新增   | 7  | XML类型                                                  | 支持在表、函数中使用XML数据类型。                                                     |
| 新增   | 8  | ALTER VIEW                                             | alter view viewname REBUILD;                                           |
| 修改   | 9  | VACUUM FULL                                            | vacuum full同一张表并发操作时会发生死锁。                                             |
| 修改   | 10 | DROP TEXT SEARCH CONFIGURATION                         | 如果待删除的TEXT SEARCH CONFIGURATION是当前的default_text_search_config则报错，删除失败。 |
| 修改   | 11 | CREATE/ALTER ROLE/USER AUTHINFO 'ldap'                 | 修改原有的指定用户认证类型是ldap的语法，去除64个字符的限制。                                      |
| 修改   | 12 | CREATE USER/ROLE with authinfo 'ldap' password disable | 修改创建ldap用户的语法。                                                         |
| 修改   | 13 | ALTER USER/ROLE with authinfo 'ldap' password disable  | 修改更新ldap用户的语法。                                                         |
| 删除   | 14 | ALTER TABLE分区表exchange with unlogged表                  | 禁止分区表与unlogged表做exchange交换。                                            |
| 删除   | 15 | ALTER TABLE ... inherit修改继承关系功能                        | 优化器未对表继承做适配，需封禁alter table inherit接口。                                  |
   
#### 关键字
表3关键字 
| 变更类型 | 序号 | 名称            | 变更描述                        |
|:---|:---|:---|:---|
| 新增   | 1  | xmltable      | COL_NAME_KEYWORD关键字，已做巡检适配。 |
| 新增   | 2  | xmlnamespaces | COL_NAME_KEYWORD关键字，已做巡检适配。 |
   
#### 系统表
表4系统表 
| 变更类型 | 序号 | 名称                                 | 变更描述                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| 新增   | 1  | dbms_om.gs_wlm_session_info        | 新增系统表。                                                                                                                                                                                                                                                                                                                           |
| 新增   | 2  | dbms_om.gs_wlm_operator_info       | 新增系统表。                                                                                                                                                                                                                                                                                                                           |
| 修改   | 3  | pg_jobs                            | 对应老系统表pg_job，元数据关系使用oid关联，由于共享系统表已满，无法在一个事务中删除后添加，因此重命名pg_job_proc得来。                                                                                                                                                                                                                                                            |
| 修改   | 4  | pg_proc                            | 将函数textanycat和anytextcat修改为非STRICT函数。                                                                                                                                                                                                                                                                                            |
| 修改   | 5  | pg_proc                            | 修改函数database_to_xml、database_to_xmlschema、database_to_xml_and_xmlschema为非STRICT函数。                                                                                                                                                                                                                                               |
| 修改   | 6  | pg_catalog.gs_wlm_session_info     | 修改为同名视图。                                                                                                                                                                                                                                                                                                                         |
| 修改   | 7  | pg_catalog.gs_wlm_operator_info    | 1. 修改为同名视图。  2. 增加nodename字段。                                                  |
| 修改   | 8  | pg_catalog.gs_wlm_ec_operator_info | 修改为同名视图。                                                                                                                                                                                                                                                                                                                         |
| 修改   | 9  | pg_catalog.gs_wlm_ec_operator_info | 1. 修改为同名视图。  2. 增加nodename，plan_node_name，ec_operator，ec_fetch_count四个输出字段。   |
   
#### 系统函数
表5系统函数 
| 变更类型 | 序号 | 名称                                          | 变更描述                                       |
|:---|:---|:---|:---|
| 新增   | 1  | pgxc_get_residualfiles                      | pg_get_residualfiles的cn统一查询函数。             |
| 新增   | 2  | pgxc_rm_residualfiles                       | pg_rm_residualfiles的cn统一查询函数。              |
| 新增   | 3  | pgxc_verify_residualfiles                   | pg_verify_residualfiles的cn统一查询函数。          |
| 新增   | 4  | query_to_xmlschema                          | 把Query查询的内容映射成XML模式文档。                     |
| 新增   | 5  | query_to_xml                                | 把Query查询的内容映射成XML文档。                       |
| 新增   | 6  | query_to_xml_and_xmlschema                  | 把Query查询的内容映射成XML值和模式文档。                   |
| 新增   | 7  | table_to_xmlschema                          | 把关系表的内容映射成XML模式文档。                         |
| 新增   | 8  | table_to_xml                                | 把关系表的内容映射成XML值。                            |
| 新增   | 9  | table_to_xml_and_xmlschema                  | 把关系表的内容映射成XML值和模式文档。                       |
| 新增   | 10 | cursor_to_xmlschema                         | 把游标查询的内容映射成XML模式文档。                        |
| 新增   | 11 | cursor_to_xml                               | 把游标查询的内容映射成XML文档。                          |
| 新增   | 12 | schema_to_xmlschema                         | 把整个模式的内容映射成XML模式文档。                        |
| 新增   | 13 | schema_to_xml                               | 把整个模式的内容映射成XML文档。                          |
| 新增   | 14 | schema_to_xml_and_xmlschema                 | 把整个模式的内容映射成XML值和模式文档。                      |
| 新增   | 15 | database_to_xmlschema                       | 把整个数据库的内容映射成XML模式文档。                       |
| 新增   | 16 | database_to_xml                             | 把整个数据库的内容映射成XML文档。                         |
| 新增   | 17 | database_to_xml_and_xmlschema               | 把整个数据库的内容映射成XML值和模式文档。                     |
| 新增   | 18 | xmlpi                                       | 创建一个XML处理指令。                               |
| 新增   | 19 | xmlcomment                                  | 创建一个使用指定文本作为内容的XML注释。                      |
| 新增   | 20 | xmlserialize                                | 从xml类型的值生成一个字符串。                           |
| 新增   | 21 | xmlparse                                    | 从字符数据中生成一个xml类型的值。                         |
| 新增   | 22 | xpath                                       | 返回一个xml值的数组对应xpath表达式所产生的节点集。              |
| 新增   | 23 | get_instr_unique_sql_remote_cns             | 获得除当前CN节点外所有其他CN上面的unique sql数据。           |
| 新增   | 24 | xml_is_well_formed                          | 检查text字符串是不是格式良好的xml值。                     |
| 新增   | 25 | xml_is_well_formed_content                  | 检查text字符串是不是格式良好的内容。                       |
| 新增   | 26 | xml_is_well_formed_document                 | 检查text字符串是不是格式良好的文档。                       |
| 新增   | 27 | xmlconcat                                   | 将XML值组成的列表串接成一个单独的值。                       |
| 新增   | 28 | xmlagg                                      | 聚集函数，将输入值串接起来。                             |
| 新增   | 29 | IS DOCUMENT                                 | 判断参数值是一个正确的XML文档。                          |
| 新增   | 30 | IS NOT DOCUMENT                             | 判断参数值不是一个正确的XML文档。                         |
| 新增   | 31 | xmlexists                                   | 判断参数中的XPath表达式是否返回任何结点。                    |
| 新增   | 32 | xpath_exists                                | 判断参数中的XPath表达式是否返回任何结点。                    |
| 新增   | 33 | xmlelement                                  | 使用给定名称、属性和内容产生一个XML元素。                     |
| 新增   | 34 | xmlforest                                   | 使用给定名称和内容产生一个元素的XML森林（序列）。                 |
| 新增   | 35 | pg_xlog_replay_completion                   | 显示当前DN Xlog redo的进度信息。                     |
| 新增   | 36 | pg_data_sync_from_dummy_completion          | 显示当前DN数据页从dummystandby传输的进度信息。             |
| 新增   | 37 | pg_stat_xlog_space                          | 显示当前DN上Xlog空间使用信息。                         |
| 新增   | 38 | pgxc_stat_xlog_space                        | 显示所有主DN上Xlog空间使用信息。                        |
| 新增   | 39 | xmlroot                                     | 修改一个XML值的根结点的属性。                           |
| 新增   | 40 | pg_get_residualfiles                        | 用于查询当前节点的所有残留文件列表。                         |
| 新增   | 41 | pg_get_running_jobs                         | 用于查询当前节点上正在运行的Job。                         |
| 新增   | 42 | pg_is_residualfiles                         | 用于从当前库中查询指定的relfilenode是否是残留文件。            |
| 新增   | 43 | pg_rm_residualfiles                         | 用于将指定的残留文件列表中的文件删除。                        |
| 新增   | 44 | pg_verify_residualfiles                     | 用于验证指定的文件中记录的残留文件列表是否确实为残留文件。              |
| 新增   | 45 | table_distribution                          | 增加一个参数、参数类型为regclass的table_distribution函数。 |
| 新增   | 46 | XMLTABLE                                    | 支持XMLTABLE函数用于解析XML数据。                     |
| 修改   | 47 | pgxc_get_senders_catchup_time               | 增加catchup过程信息字段。                           |
| 修改   | 48 | pg_stat_get_data_senders                    | 增加catchup过程信息字段。                           |
| 修改   | 49 | pgxc_get_thread_wait_status                 | 增加参数num_node_display。                      |
| 修改   | 50 | pg_stat_get_status                          | 增加参数num_node_display。                      |
| 修改   | 51 | pg_catalog.pgxc_get_wlm_session_info_bytime | 第一个参数从区分大小写修改为不区分大小写。                      |
   
#### 系统视图
表6系统视图 
| 变更类型 | 序号 | 名称                                   | 变更描述                                                   |
|:---|:---|:---|:---|
| 新增   | 1  | pg_job_single                        | 单节点job信息。                                              |
| 新增   | 2  | pg_job                               | 用于向前兼容pg_job系统表，分布式pg_job_single集合。                    |
| 新增   | 3  | pgxc_get_stat_all_partitions         | 获取所有分区表各个分区的insert/update/delete/live/dead元组数及脏页率信息。   |
| 新增   | 4  | gs_view_dependency                   | 级联查询视图的依赖关系，是上面两个函数的union。                             |
| 修改   | 5  | pgxc_get_instr_unique_sql            | 使用get_instr_unique_sql_remote_cns获得其他CN上的unique sql数据。 |
| 修改   | 6  | pg_stat_replication                  | 修复功能。                                                  |
| 修改   | 7  | pg_get_senders_catchup_time          | 增加catchup过程信息字段。                                       |
| 修改   | 8  | pg_catalog.gs_wlm_operator_history   | 增加nodename字段。                                          |
| 修改   | 9  | pg_catalog.pgxc_wlm_operator_history | 增加nodename字段。                                          |
| 修改   | 10 | pg_catalog.pgxc_wlm_operator_info    | 增加nodename字段。                                          |
   
#### 行为变更
表7行为变更 
| 变更类型                                                     | 序号 | 名称                   | 变更描述                                                                   |
|:---|:---|:---|:---|
| 修改  | 1  | cn retry支持存储过程影响实时打印 | 存储过程打印输出则实时打印，如遇到cn retry则输出notice提示输出消息会重复。还未输出打印时遇cn retry不输出notice。 |
   
#### GUC参数
表8GUC参数 
| 变更类型 | 序号 | 名称                               | 变更描述                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| 新增   | 1  | wal_compression_level            | PFI日志压缩功能zlib压缩级别，默认9。                                                                                                                                                                                                   |
| 新增   | 2  | wal_compression                  | PFI日志压缩功能开关，默认关闭。                                                                                                                                                                                                        |
| 新增   | 3  | max_xlog_backup_size             | xlog日志备份大小。当节点备份的xlog日志size超过该值时，自动删除备份的最旧xlog日志，直到备份日志size小于该值的90%。                                                                                                                                                     |
| 新增   | 4  | max_cache_partition_num          | 表示在重分布过程中，最多在内存中保留的分区数量，多余该数量，把最早的分区按CU格式下盘。                                                                                                                                                                             |
| 新增   | 5  | password_encryption_type         | 该参数决定采用何种加密方式对用户密码进行加密存储。新增取值2，表示采用sha256方式对密码加密。 如果当前集群为8.0.0及以下版本升级到当前版本，该参数的默认值为保持前向兼容和原低版本集群一致，即默认值保持向前兼容仍旧是1；新安装集群默认值为2。                                              |
| 新增   | 6  | join_num_distinct                | 控制join列的默认distinct值，默认值-20。                                                                                                                                                                                              |
| 新增   | 7  | cost_model_version               | 控制本次cost估算优化是否生效的参数，默认值为1，代表生效。                                                                                                                                                                                          |
| 新增   | 8  | qual_num_distinct                | 控制过滤列的默认distinct值，默认值200。                                                                                                                                                                                                |
| 新增   | 9  | behavior_compat_options          | 新增varray_verification选项，支持回退此次新增的校验。                                                                                                                                                                                     |
| 新增   | 10 | behavior_compat_options          | 新增check_function_conflicts选项支持对IMMUTABLE函数内部是否有非IMMUTABLE行为的校验。                                                                                                                                                          |
| 新增   | 11 | auto_process_residualfile        | 自动记录残留文件功能开关。默认为true，表示功能打开。                                                                                                                                                                                             |
| 新增   | 12 | default_colversion               | 用于指定用户创建列存表时的默认建表格式，默认格式为1.0。                                                                                                                                                                                            |
| 新增   | 13 | enable_partition_dynamic_pruning | 分区表扫描是否支持动态剪枝，默认打开（支持动态剪枝）。                                                                                                                                                                                              |
| 新增   | 14 | enable_join_pseudoconst          | 控制是否在等于常量的join表达式上生成join表达式，类似t1 inner join t2 on t1.a=t2.a where t1.a = 1场景下，可以根据t1.a=t2.a生成join表达式（以前的时候这类join条件不能做join cond）。                                                                                         |
| 新增   | 15 | view_independent                 | 参数作用：控制视图依赖解耦功能的开关。 默认值：off。                                                                                                                                                 |
| 新增   | 16 | enable_view_update               | 支持单表视图更新。                                                                                                                                                                                                                |
| 修改   | 17 | enable_index_nestloop            | enable_index_nestloop从C80以及之前的版本升级到最新的补丁版本保持off。 enable_index_nestloop从6.5.0或6.5.0版本升级上来，保持前向兼容。 enable_index_nestloop安装默认on. |
| 修改   | 18 | archive_mode                     | xlog日志归档开关，默认值从off变更为on；在部分场景对性能有小幅影响，性能比拼等POC场景建议手动规避。                                                                                                                                                                  |
| 修改   | 19 | cost_param                       | 默认值修改为16，对应本次的cost估算优化内容。                                                                                                                                                                                                |
| 修改   | 20 | rewrite_rule                     | 去除partialpush（部分下推）参数选项。                                                                                                                                                                                                 |
| 修改   | 21 | behavior_compat_options          | 新增strict_concat_functions参数选项，用作函数textanycat和anytextcat的前向兼容。                                                                                                                                                            |
| 修改   | 22 | behavior_compat_options          | 增加'strict_text_concat_td'选项，TD模式下使textcat/textanycat/anytextcat变为strict函数。                                                                                                                                               |
| 修改   | 23 | behavior_compat_options          | 增加strict_text_concat_td选项，兼容TD模式下NULL的拼接行为。                                                                                                                                                                              |
| 修改   | 24 | behavior_compat_options          | 增加bpchar_text_without_rtrim选项，兼容TD模式下bpchar字符串操作对尾部空格处理的风格。                                                                                                                                                              |
   
