Updated on 2024-12-18 GMT+08:00

Version 8.1.0

Release date: May 15, 2021

Cluster version: 8.1.0.100

Feature Changes

Table 1 8.1.0 feature changes

Feature

Description

Enhanced ANALYZE for temporary tables and single-transaction operations.

Transactions and stored procedures support the ANALYZE command. No error is reported when ANALYZE and ALTER TABLE are executed concurrently. The automatic analyze function supports temporary tables.

Improved performance of the vectorized executor.

  • Enhanced vectorized execution (HASH FULL JOIN)
  • string_agg/listagg supports vectorization.

Partition pruning with non-constant partition column filter criteria

Partition pruning is optimized. Currently, partition pruning can be performed only for constants. Variables that need to be calculated cannot be pruned and need to be optimized.

Schema-level full backup + Table- and schema-level fine-grained restoration

Schema-level full backup + Table- and schema-level fine-grained restoration

Supported third-party user-defined data conversion of GDS.

Supported third-party user-defined data conversion.

Optimized RTO.

RPO = 0 and RTO < 60s in intra-cluster HA scenarios; RTO < 30s in POC scenarios

SQL on HDFS

Supported ORC data export using OBS foreign tables.

Supported XML function parsing.

Supported XML function parsing.

Modified distribution columns.

Modified distribution columns.

Supported automatic job migration when a CN fails.

If the current CN is faulty, its jobs can be automatically migrated.

Supported smooth upgrade of C functions.

Supported smooth upgrade of C functions.

Supported Teradata DSQL compatibility of gsql.

  1. Supported equivalent comparison of dynamic variable strings (excluding other logical operations, AND/NOR logic, and nesting).
  2. GOTO label
  3. The THEN module supports only SQL and GOTO statements.

Synchronized the time zone with the IANA Time Zone Database (tz).

Synchronized the time zone with the IANA Time Zone Database (tz).

SQL Syntax

Table 2 SQL Syntax

Change Type

No.

Name

Change Description

Add

1

Column-store partitioned tables support the split operation.

Column-store partitioned tables support the split operation.

2

CREATE TABLE tbl(LIKE tbl2 INCLUDING DROPCOLUMNS )

The LIKE DROPCOLUMNS syntax is supported.

3

ALTER TABLE tbl DISTRIBUTE BY

Added the syntax for modifying the distribution column of a table.

4

ALTER TABLE set version

You can switch between the old and new formats of column-store tables.

5

CREATE/ALTER FOREIGN TABLE Write Only

Data can be written in OBS ORC format.

6

CREATE/ALTER FOREIGN TABLE Write Only

Data can be written in OBS HDFS format.

7

XML

The XML data type can be used in tables and functions.

8

ALTER VIEW

alter view viewname REBUILD;

Modify

9

VACUUM FULL

A deadlock occurs when concurrent VACUUM FULL operations are performed on the same table.

10

DROP TEXT SEARCH CONFIGURATION

If the text search configuration to be deleted is the current default_text_search_config, an error is reported and the deletion fails.

11

CREATE/ALTER ROLE/USER AUTHINFO 'ldap'

The syntax for specifying the user authentication type as LDAP is modified to remove the 64 character length limit.

12

CREATE USER/ROLE with authinfo 'ldap' password disable

Modified the syntax for creating an LDAP user.

13

ALTER USER/ROLE with authinfo 'ldap' password disable

Modified the syntax for creating an LDAP user.

Delete

14

ALTER TABLEPartitioned tableexchange with unloggTable

Forbid partitioned table exchange with unlogged tables.

15

Inheritance can be modified using ALTER TABLE ... inherit.

The optimizer is not adapted to table inheritance. The alter table inherit interface needs to be disabled.

Keywords

Table 3 Keywords

Change Type

No.

Name

Change Description

Add

1

xmltable

The COL_NAME_KEYWORD keyword has been adapted for inspection.

2

xmlnamespaces

The COL_NAME_KEYWORD keyword has been adapted for inspection.

System Catalogs

Table 4 System catalogs

Change Type

No.

Name

Change Description

Add

1

dbms_om.gs_wlm_session_info

New system catalog

2

dbms_om.gs_wlm_operator_info

New system catalog

Modify

3

pg_jobs

Same as the old system catalog pg_job, the metadata relationship is associated using OIDs. If the shared system catalog is full, and you cannot add a transaction after deleting one, pg_job will be renamed as pg_job_proc.

4

pg_proc

The textanycat and anytextcat functions are changed to non-STRICT functions.

5

pg_proc

The database_to_xml, database_to_xmlschema, and database_to_xml_and_xmlschema functions are changed to non-STRICT functions.

6

pg_catalog.gs_wlm_session_info

It is changed to a view.

7

pg_catalog.gs_wlm_operator_info

  1. It is changed to a view.
  2. The nodename column is added.

8

pg_catalog.gs_wlm_ec_operator_info

It is changed to a view.

9

pg_catalog.gs_wlm_ec_operator_info

  1. It is changed to a view.
  2. The nodename, plan_node_name, ec_operator, and ec_fetch_count columns are added.

System Functions

Table 5 System functions

Change Type

No.

Name

Change Description

Add

1

pgxc_get_residualfiles

Unified CN query function of pg_get_residualfiles.

2

pgxc_rm_residualfiles

Unified CN query function of pg_rm_residualfiles.

3

pgxc_verify_residualfiles

Unified CN query function of pg_verify_residualfiles.

4

query_to_xmlschema

It maps the query content to an XML schema document.

5

query_to_xml

Maps the query result to an XML file.

6

query_to_xml_and_xmlschema

It maps the contents of a query to XML values and schema documents.

7

table_to_xmlschema

It maps the contents of a relational table to an XML schema document.

8

table_to_xml

It maps the contents of the relation table to XML values.

9

table_to_xml_and_xmlschema

It maps the contents of a relational table to XML values and schema documents.

10

cursor_to_xmlschema

It maps the contents of a cursor query to an XML schema document.

11

cursor_to_xml

It maps the contents of a cursor query to an XML document.

12

schema_to_xmlschema

It maps the contents of the entire schema into an XML schema document.

13

schema_to_xml

It maps the contents of the entire schema to an XML document.

14

schema_to_xml_and_xmlschema

It maps the contents of the entire schema to XML values and schema documents.

15

database_to_xmlschema

It maps the contents of the entire database into XML schema documents.

16

database_to_xml

It maps the contents of the entire database to XML documents.

17

database_to_xml_and_xmlschema

It maps the contents of the entire database to XML values and schema documents.

18

xmlpi

It creates an XML processing instruction.

19

xmlcomment

It creates an XML comment with the specified text as the content.

20

xmlserialize

It generates a string from a value of the xml type.

21

xmlparse

It generates a value of the xml type from character data.

22

xpath

It returns an array of XML values corresponding to the node set generated by the XPath expression.

23

get_instr_unique_sql_remote_cns

It obtains the unique sql data on all CNs except the current CN.

24

xml_is_well_formed

It checks whether the text string is a well-formed XML value.

25

xml_is_well_formed_content

It checks whether the text string is well-formed.

26

xml_is_well_formed_document

It checks whether the text string is well-formed.

27

xmlconcat

It concatenates a list of XML values into a single value.

28

xmlagg

It combines a function that joins input values together.

29

IS DOCUMENT

It determines whether the parameter value is a correct XML file.

30

IS NOT DOCUMENT

It determines whether the parameter value is an incorrect XML file.

31

xmlexists

It determines whether the XPath expression in the parameter returns any node.

32

xpath_exists

It determines whether the XPath expression in the parameter returns any node.

33

xmlelement

It produces an XML element with the given name, attributes, and content.

34

xmlforest

It produces an XML forest (sequence) of an element using the given name and content.

35

pg_xlog_replay_completion

You can query the Xlog redo progress of the current DN.

36

pg_data_sync_from_dummy_completion

It displays the progress of transferring the current DN data page from the dummystandby.

37

pg_stat_xlog_space

It displays the Xlog space usage on the current DN.

38

pgxc_stat_xlog_space

It displays the Xlog space usage on all primary DNs.

39

xmlroot

It modifies the attributes of the root node of an XML value.

40

pg_get_residualfiles

It queries the list of all residual files on the current node.

41

pg_get_running_jobs

It queries jobs that are running on the current node.

42

pg_is_residualfiles

It can be used to check whether a specified relfilenode is a residual file in the current database.

43

pg_rm_residualfiles

It deletes files from a specified residual file list.

44

pg_verify_residualfiles

It can verify if the list of remaining files recorded in a specific file are actually residual files.

45

table_distribution

It adds a table_distribution function whose parameter type is regclass.

46

XMLTABLE

The XMLTABLE function can be used to parse XML data.

Modify

47

pgxc_get_senders_catchup_time

The catchup process information field is added.

48

pg_stat_get_data_senders

The catchup process information field is added.

49

pgxc_get_thread_wait_status

The num_node_display parameter is added.

50

pg_stat_get_status

The num_node_display parameter is added.

51

pg_catalog.pgxc_get_wlm_session_info_bytime

The first parameter is changed from case-sensitive to case-insensitive.

System Views

Table 6 System views

Change Type

No.

Name

Change Description

Add

1

pg_job_single

Job information of a single node.

2

pg_job

Used for forward compatibility with the pg_job system catalog and distributed pg_job_single collection.

3

pgxc_get_stat_all_partitions

Obtain the number of insert/update/delete/live/dead tuples and dirty page rate of each partition in all partitioned tables.

4

gs_view_dependency

The dependency of the cascading query view is the union of the preceding two functions.

Modify

5

pgxc_get_instr_unique_sql

Run the get_instr_unique_sql_remote_cns statement to obtain the unique SQL data on other CNs.

6

pg_stat_replication

Debugged the function.

7

pg_get_senders_catchup_time

The catchup process information field is added.

8

pg_catalog.gs_wlm_operator_history

The nodename field is added.

9

pg_catalog.pgxc_wlm_operator_history

The nodename field is added.

10

pg_catalog.pgxc_wlm_operator_info

The nodename field is added.

Behavior Changes

Table 7 Behavior changes

Change Type

No.

Name

Change Description

Modify

1

CN retry supports the stored procedure that affects real-time printing.

The output of the stored procedure is printed in real time. If cn retry occurs, a notice is displayed, indicating that the output message is repeated. If cn retry occurs before printing, no notice is output.

GUC Parameters

Table 8 GUC parameters

Change Type

No.

Name

Change Description

Add

1

wal_compression_level

Zlib compression level of the PFI log compression function. The default value is 9.

2

wal_compression

Whether to enable the PFI log compression function. This function is disabled by default.

3

max_xlog_backup_size

Size of the Xlog backup file. When the size of a backup Xlog file exceeds the value of this parameter, the earliest backup Xlog file is automatically deleted until the size of the backup Xlog file is less than 90% of the value of this parameter.

4

max_cache_partition_num

Maximum number of partitions reserved in the memory during redistribution. If the number of partitions exceeds the value of this parameter, the earliest partition will be written to disks in CU format.

5

password_encryption_type

Encryption type of user passwords. The value 2 is added, indicating that the password is encrypted using SHA256.

If the current cluster is upgraded from 8.0.0 or an earlier version, the default value of this parameter is 1 for forward compatibility. The default value is 2 for a newly installed cluster.

6

join_num_distinct

Default distinct value of the join column. The default value is -20.

7

cost_model_version

Whether the cost estimation optimization takes effect. The default value is 1, indicating that the optimization takes effect.

8

qual_num_distinct

Default distinct value of the filter column. The default value is 200.

9

behavior_compat_options

The varray_verification option is added to roll back the new verification.

10

behavior_compat_options

The check_function_conflicts option is added to check whether the IMMUTABLE function has non-IMMUTABLE behavior.

11

auto_process_residualfile

Switch for automatically recording residual files. The default value is true, indicating that the function is enabled.

12

default_colversion

Default format for creating a column-store table. The default format is 1.0.

13

enable_partition_dynamic_pruning

Whether to support dynamic pruning during partition table scanning. Dynamic pruning is enabled by default.

14

enable_join_pseudoconst

Whether to generate a join expression on the join expression that is equal to a constant. Similar to the t1 inner join t2 on t1.a=t2.a where t1.a = 1 scenario, the join expression can be generated based on t1.a=t2.a. (In the earlier version, such join conditions cannot be used for join cond.)

15

view_independent

Whether to enable the view dependency decoupling function.

Default value: off

16

enable_view_update

Whether to enable single view update.

Modify

17

enable_index_nestloop

If the system is upgraded from C80 or an earlier version to the latest patch version, set enable_index_nestloop to off.

Enabling the upgrade of enable_index_nestloop from 6.5.0 or 6.5.0 will maintain forward compatibility.

The default value of enable_index_nestloop is on.

18

archive_mode

The default value of the xlog archive switch is changed from off to on. In some scenarios, the performance is slightly affected. In POC scenarios such as performance comparison, you are advised to manually avoid this problem.

19

cost_param

The default value is changed to 16, which corresponds to the optimized cost estimation.

20

rewrite_rule

The partialpush option is removed.

21

behavior_compat_options

Added the strict_concat_functions parameter for forward compatibility of the textanycat and anytextcat functions.

22

behavior_compat_options

The 'strict_text_concat_td' option has been added to change textcat, textanycat, and anytextcat functions to strict functions in TD mode.

23

behavior_compat_options

The strict_text_concat_td option is added to be compatible with the null stitching behavior in T/D mode.

24

behavior_compat_options

The bpchar_text_without_rtrim option is added to be compatible with the style of processing spaces at the end of the bpchar string in TD mode.

Time Zone

Table 9 Time zone

Change Type

No.

Name

Change Description

Modify

1

Asia/Beijing: The definition of the Beijing time zone is changed to be the same as that of Asia/Shanghai.

  1. The time zone offset before 1901 is changed from 08:00:00 to 08:05:43.
  2. The DST rules from 1940 to 1949 are added.
    • The DST is used from June 1 to October 12, 1940.
    • The DST is used from March 15, 1941 to November 1, 1941.
    • The daylight saving time (DST) was used from January 31, 1942 to September 1, 1945. The DST was used in the three years because the government did not adjust the time zone rules nationwide during World War II.
    • The DST is used from May 15, 1946 to September 31, 1946.
    • The DST is used from April 15, 1947 to October 31, 1947.
    • The DST is used from May 1, 1948 to September 30, 1948.
    • DST is used from May 1, 1949 to September 30, 1949.
  3. DST rules were also adjusted between 1986 and 1991.
    • From 1986 to 1991, the DST was changed from 00:00 to 02:00.
    • From 1987 to 1991, the DST was adjusted to the standard time zone, and the first Sunday after September 10 was changed to the first Sunday after September 11.

2

Modified the definition of Asia/Shanghai.

  1. The time zone offset before 1901 is changed from 08:05:57 to 08:05:43.
  2. Adjust the DST rules from 1940 to 1941.
    • The DST time in 1940 is changed from June 3 to October 1 to June 1 to October 12.
    • The DST time in 1941 is changed from March 16 to October 1 to March 15 to November 1.
  3. The DST rules from 1942 to 1949 are added.
    • Daylight saving time (DST) was used from January 31, 1942 to September 1, 1945, as the government did not modify the time zone rules during World War II.
    • The DST is used from May 15, 1946 to September 31, 1946.
    • The DST is used from April 15, 1947 to October 31, 1947.
    • The DST is used from May 1, 1948 to September 30, 1948.
    • DST is used from May 1, 1949 to September 30, 1949.
  4. DST rules were also adjusted between 1986 and 1991.
    • From 1986 to 1991, the DST was changed from 00:00 to 02:00.
    • From 1987 to 1991, the DST was adjusted to the standard time zone, and the first Sunday after September 10 was changed to the first Sunday after September 11.

3

Asia/Urumqi

After May 1980, the time zone offset is changed from GMT+8 to GMT+6.

4

The five time zones defined based on the physical time zone are changed to two time zones.

  1. The time zone names Asia/Harbin (long white time zone), Asia/Chongqing (longshu time zone), and Asia/Shanghai (original standard time zone) are reserved. All the time zone names point to the newly defined Asia/Shanghai (standard time zone of China). It is used in the whole country.
  2. The Asia/Kashgar (Kunlun time zone) and Asia/Urumqi (New Tibet time zone) time zone names are reserved, and the definitions point to the newly defined Asia/Urumqi (Urumqi time zone). Two time zone definitions are used in the local area.

5

The initial default time zone may change.

During database initialization, a time zone that best matches the operating system time zone is used as the default time zone. The time zone definition supported by the database is changed. As a result, the initial default time zone may be changed.