Updated on 2024-09-03 GMT+08:00

Version 8.2.0

[Release date of V8.2.0.107] September 25, 2023

[Release date of V8.2.0.106] July 17, 2023

[Release date of V8.2.0.103] May 25, 2023

[Release date of V8.2.0.102] April 15, 2023

[Release date of V8.2.0.101] March 13, 2023

[Release date of V8.2.0.100] January 14, 2023

[Release date of V8.2.0]: November 28, 2022

New Feature

Table 1 New Functions in 8.2.0

Feature

Description

Reference

The pgcrypto encryption extension plug-in is added.

You can use pgcrypto to encrypt data.

Developer Guide > Database Security Management> Sensitive Data Management> Use pgcrypto to Encrypt Data

The object_name column in the audit log records all read and write objects in the SQL statement.

  • The description about querying and auditing the records of multiple object names is added.
  • Added the GUC parameter audit_object_name_format.
  • Developer Guide > Database Security Management > Database Audit > Querying Audit Results
  • User Guide > Audit Logs > Database Audit Logs > Viewing Database Audit Logs
  • Developer Guide > GUC Parameters> Auditing> Audit Switch

Certain user operations can be allowed in security mode.

The GUC parameter security_enable_options is added to control whether the grant_to_public, grant_with_grant_option, and foreign_table_options functions can be used in security mode.

Developer Guide > GUC Parameters> Auditing> Operation Audit

Session IDs can be recorded in audit logs.

  • The configuration item normal_session_id is added to determine whether to generate session IDs in normal format.
  • Modified the session_id field in pg_query_audit().
  • Developer Guide > GUC Parameters > Miscellaneous Parameters > behavior_compat_options
  • SQL Syntax Reference > Functions and Operators> Security Functions

MIXED AGG

The GUC parameter enable_mixedagg is added to control how the optimizer uses the Mixed Agg type.

Developer Guide > GUC Parameters> Query Planning> Optimizer Method Configuration

The circuit breaker mechanism based on exception rules is optimized to prevent a slow SQL statement from affecting the entire cluster or resource pool.

  • Added the system catalog GS_BLOCKLIST_QUERY and system view GS_BLOCKLIST_QUERY for querying job blocklist information and exception information.
  • The query_exception_count_limit parameter is added to specify the maximum number of times that an exception rule can be triggered for a job. If this upper limit is exceeded, the job will be automatically added to the blocklist and cannot be executed. The job can be resumed only after it is removed from the blocklist.
  • Functions are added to record job exception information.

    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()

  • Developer Guide >System Catalogs and Views >System Catalogs/System Views
  • Developer Guide > GUC Parameters > Load Management
  • SQL Syntax Reference > Functions and Operators > System Administration Functions > Resource Management Functions

Full utilization of memory resources

  • The memory negative feedback mechanism is added to the PGXC_RESPOOL_RESOURCE_INFO view.
  • Changed the type of max_process_memory from postmaster to sighup. If a single DN is deployed on a server, max_process_memory = (Physical memory – vm.min_free_kbytes) x 0.6

    Added the max_process_memory_auto_adjust parameter to control whether to enable the automatic adjustment function of the max_process_memory parameter.

  • Added the enable_wlm_internal_memory_limit parameter to specify whether to enable the built-in limit on estimated statement memory usage in load management.

    Added the enable_strict_memory_expansion parameter to determine whether to strictly control the increase of statement memory usage.

    Added the allow_zero_estimate_memory parameter to control whether the estimated statement memory usage can be 0.

  • Developer Guide > System Catalogs and System Views > System Views > PGXC_RESPOOL_RESOURCE_INFO
  • Developer Guide > GUC Parameters > Resource Consumption > Memory
  • Developer Guide > GUC Parameters > Resource Management

The exception rule interface is implemented using the kernel syntax.

  • The PG_EXCEPT_RULE system catalog is added to store information about exception rules.
  • Added syntaxes ALTER EXCEPT RULE, CREATE EXCEPT RULE, and DROP EXCEPT RULE.
  • Developer Guide > System Catalogs and Views > System Catalogs > PG_EXCEPT_RULESQL
  • SQL Syntax Reference > DDL Syntax > ALTER/CREATE/DROP EXCEPT RULE

Reconstructed resource management

  • The system catalog GS_WLM_USER_RESOURCE_HISTORY contains data on both CNs and DNs.
  • The PGXC_TOTAL_USER_RESOURCE_INFO view is added to display real-time resource consumption information of users on all instances.

    The PGXC_WLM_USER_RESOURCE_HISTORY view is added to display historical information about resource consumption of all users on the corresponding instances.

  • Developer Guide > System Catalogs and Views > System Catalogs > GS_WLM_USER_RESOURCE_HISTORY
  • Developer Guide > System Catalogs and System Views > System Views > PGXC_TOTAL_USER_RESOURCE_INFO/PGXC_WLM_USER_RESOURCE_HISTORY

A parameter is added in the optimizer phase. An error will be reported for the SQL statement run with too many stream threads.

The GUC parameter max_streams_per_query is added to control the number of stream nodes in a query plan.

Developer Guide > GUC Parameters > Other Optimizer Options

If a GaussDB(DWS) cluster becomes read-only, you can perform TRUNCATE and DROP to quickly free up disk space and automatically cancel the read-only state.

In 8.2.0 and later versions, you can free up disk space by using DROP or TRUNCATE TABLE in a read-only cluster.

User Guide > Cluster O&M > Removing the Read-only Status

Hints can take effect in subqueries.

  • Hint parameters can be used in DML statements, including INSERT, UPDATE, MERGE, and DELETE.
  • Hint enhancement in multi-table scenarios: Hints are enhanced for scenarios where the number of items in the FROM list exceeds the threshold, preventing hint failures and improving performance.
  • The enable_from_collapse_hint parameter is added to control whether to preferentially rewrite the FROM list with hints in effect.
  • Developer Guide > Performance Optimization > Hint-based Tuning > Plan Hint Optimization > Hint That Disables Subquery Pull-up
  • Developer Guide > GUC Parameters > Query Planning > Other Optimization Options

Dynamic sampling

  • The autoanalyze_mode parameter is added to control whether autoanalyze or autovacuum is enabled.
  • The autoanalyze_cache_num parameter is added to set the maximum number of tables whose statistics can be cached by the lightweight autoanalyze.
  • The comparison between common autoanalyze and lightweight autoanalyze is added.
  • The PV_RUNTIME_RELSTATS view is added to display table-level statistics generated by autoanalyze in the memory.
  • The PV_RUNTIME_ATTSTATS view is added to display column-level statistics generated by autoanalyze in the memory.
  • The pg_stat_get_runtime_relstats function is added to return table-level statistics generated by lightweight autoanalyze in the memory.
  • The pg_stat_get_runtime_attstats function is added to return column-level statistics generated by lightweight autoanalyze in the memory.
  • The pg_stat_set_last_data_changed_num function is added to set the number of historical modifications on the current node in the table.
  • Developer Guide > GUC Parameters > Automatic Cleanup
  • Developer Guide > Data Migration > Other Operations > Analyzing a Table
  • Developer Guide > System Catalogs and System Views > System Views > PV_RUNTIME_RELSTATS
  • Developer Guide > System Catalogs and System Views > System Views > PV_RUNTIME_ATTSTATS
  • SQL Syntax Reference > Functions and Operators > Statistics Information Functions

The on condition in the MERGE INTO statement supports system columns.

Added the syntax for modifying the status flag of an index.

SQL Syntax Reference > DDL Syntax > ALTER INDEX

Sequence pushdown

Added the volatile_shipping_version parameter to control the pushdown scope of the volatile functions.

Developer Guide > GUC Parameters > Query Planning> Optimizer Method Configuration

Volatile temporary tables are supported.

  • The get_volatile_pg_class function is added to obtain the basic information about pg_class corresponding to the volatile temporary table, including table name parameters and the table list.
  • The get_volatile_pg_attribute function is added to obtain the basic information about pg_attribute corresponding to the volatile temporary table, including column parameters and the column list.
  • The VOLATILE keyword is added to CREATE TABLE and CREATE TABLE AS in the DDL syntax; and to SELECT INTO in the DQL syntax.
  • The DISCARD syntax is added to release internal resources related to database sessions in the current session.
  • VACUUM FULL does not support operations on volatile temporary tables.
  • The max_volatile_memory parameter is added to specify the maximum total memory occupied by contexts related to volatile temporary tables in all sessions.
  • The max_volatile_tables parameter is added to specify the maximum number of volatile temporary tables created for each session.
  • The constraints on the volatile temporary table are added.
  • SQL Syntax Reference > Functions and Operators > System Administration Functions > Other Functions
  • SQL Syntax Reference >DDL Syntax > CREATE TABLE
  • SQL Syntax Reference >DDL Syntax > CREATE TABLE AS
  • SQL Syntax Reference > DQL Syntax > SELECT INTO
  • SQL Syntax Reference >DDL Syntax > DISCARD
  • SQL Syntax Reference > DDL Syntax > VACUUM
  • Developer Guide > GUC Parameters > Resource Consumption > Memory
  • Developer Guide > Performance Optimization > SQL Execution Troubleshooting > Automatic Retry upon SQL Statement Errors

Enhanced MySQL compatibility

  • The TRY_CAST keyword is added.
  • The CONV function is added to convert the given value or string into the value of a specific number system, and to output the result as a string.
  • The HEX function is added to return a specified value or a hexadecimal string.
  • The UNHEX function is added to perform the reverse operation of HEX(n).
  • The SPACE function is added to return a string consisting of a specified number of spaces.
  • The STRCMP function is added to compare the sizes of two strings.
  • The BIN function is added to convert the bigint type from decimal to binary, and to return the result as a string.
  • The substring_index function is added to perform a case-sensitive search for delimiters and return the substring that appears before the delimiter for the specified count.
  • The rand function is added to return a random number in the range 0.0 to 1.0.
  • The truncate function is added to truncate a number to specified decimal places.
  • The addtime function is added to return the result of a given datetime plus a time interval of a specified unit.
  • The subtime function is added to return the result of a given datetime subtracted by a time interval of a specified unit.
  • The timediff function is added to subtract one date parameter from another.
  • The curdate function is added to return the current date.
  • The curtime function is added to return the current time.
  • The convert_tz function is added to convert the given date and time to those in the specified time zone.
  • The try_cast function is added to convert a parameter to the value of a specified type.
  • The cast(x, y) function is added to convert data types.
  • The uuid function is added to generate a sequence number of the UUID type.
  • The interval function is added to search for the last array index that is less than or equal to the target parameter n from the input integer array.
  • The split function is added to separate strings by delimiter and return an array.
  • The ON UPDATE on_update_expr syntax is added to the CREATE TABLE syntax.
  • The MODIFY [ COLUMN ] ON UPDATE on_update_expr syntax is added to the ALTER TABLE syntax.
  • The adbin_on_update and adsrc_on_update columns are added to the PG_ATTRDEF system catalog.
  • Improved MySQL compatibility with the CURDATE, CURTIME(p), and backquote syntaxes.
  • In the ALTER FUNCTION, ALTER INDEX, ALTER TABLE and ALTER VIEW syntaxes, the new name can be prefixed with the schema name of the original table. The schema name cannot be changed at the same time.
  • SQL Syntax Reference > Keyword
  • SQL Syntax Reference > Functions and Operators> Character Processing Functions and Operators
  • SQL Syntax Reference > Functions and Operators > Binary String Functions and Operators
  • SQL Syntax Reference >Functions and Operators > Mathematical Functions and Operators
  • SQL Syntax Reference >Functions and Operators > Date and Time Processing Functions and Operators
  • SQL Syntax Reference > Functions and Operators > Type Conversion Functions
  • SQL Syntax Reference > Functions and Operators> UUID Functions
  • SQL Syntax Reference > Functions and Operators > Array Functions and Operators
  • SQL Syntax Reference >DDL Syntax > CREATE TABLE
  • SQL Syntax Reference >DDL Syntax > ALTER TABLE
  • Developer Guide > System Catalogs and System Views > System Catalogs > PG_ATTRDEF
  • Developer Guide > Syntax Compatibility Differences Among Oracle, Teradata, and MySQL

Value-based redistribution

  • New GUC hint parameters are added. The enable_stream_ctescan parameter cannot be set at the subquery level, and the enable_value_redistribute parameter can be set at the subquery level.
  • The enable_value_redistribute parameter is added to specify whether to generate value-based redistribution plans.
  • Developer Guide > Query Performance Optimization > Query Improvement > Hint-based Tuning > Configuration Parameter Hints
  • Developer Guide > GUC Parameters > Query Planning> Optimizer Method Configuration

Magic set enhancement

  • The eager_magicset value is added to the rewrite_rule parameter. You can use eager_magicset to query rewriting rules (to push conditions from the main query to subqueries).
  • The windowagg_pushdown_enhancement parameter is added to specify whether to enable enhanced predicate pushdown for the window functions in aggregation scenarios.
  • Developer Guide > GUC Parameters > Developer Options
  • Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options

SetOp supports two-level computing.

The setop_optmode parameter is added to control whether to perform deduplication on the query branch statements of a set operation (UNION/EXCEPT/INTERSECT) without the ALL option.

Developer Guide > GUC Parameters > Query Planning> Optimizer Method Configuration

The performance of OBS foreign table import is optimized.

The file_split_threshold parameter is added, which is valid only for read only foreign tables in TEXT format. It is applicable to the import scenario where the number of files is smaller than the number of DNs.

SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (for OBS Import and Export)

GaussDB(DWS) can connect to OBS through an agency.

The security_token parameter is added to form a temporary security credential together with the temporary AK and SK.

  • SQL Syntax Reference > DDL Syntax > CREATE SERVER
  • SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (for OBS Import and Export)

The AK and SK can be specified using server when OBS foreign tables are exported in text format.

  • A description is added for the fdw_name parameter of FOREIGN DATA WRAPPER. GDS foreign table uses gsmpp_server and fdw_name is dist_fdw.
  • A constraint is added for the access_key, secret_access_key, and security_token parameters. FOREIGN DATA WRAPPER is set to dist_fdw.
  • The gsmpp_server parameter is changed to server_name. You can use the gsmpp_server created by the initial database by default, or use a custom server.
  • SQL Syntax Reference > DDL Syntax > CREATE SERVER
  • SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (for OBS Import and Export)

OBS read and write performance monitoring

The GS_OBS_LATENCY view is added to record the average latency of OBS.

Developer Guide > System Catalogs and Views > System Views > GS_OBS_LATENCY

OBS read/write bandwidth views

The read/write bandwidth views GS_OBS_READ_TRAFFIC and GS_OBS_WRITE_TRAFFIC are added. Data is aggregated at an interval of 10 minutes. The logtime column is added to display time groups.

Developer Guide > System Catalogs and System Views > System Views

Column storage supports ring buffer.

The GUC parameter enable_cstore_ring_buffer is added to control the column-store ring buffer.

Developer Guide > GUC Parameters > Resource Consumption > Memory > enable_cstore_ring_buffer

Adaptation to GaussDB(DWS) hstore column-store vacuum

System functions are added for column-store vacuum.

get_col_file_info(table_name)

get_all_col_file_info()

col_rebuild_file_relation(table_name)

SQL Syntax Reference > Functions and Operators > System Administration Functions > Other Functions

Compressed text can be imported to OBS foreign tables dfs_fdw.

The compression parameter is added to specify the file compression mode for import and export.

SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (SQL on OBS or Hadoop)

The import with indexes is optimized to avoid generating too many Xlogs.

  • The PGXC_STAT_WAL view is added to show the WAL logs and data page traffic information of the current query.
  • The GUC parameter enable_wal_decelerate is added to set the WAL log rate limit.
  • The GUC parameter wal_decelerate_policy is added to control the action after rate limiting is triggered.
  • The GUC parameter wal_write_speed is added to specify the maximum WAL write speed allowed by each query on a single DN per second.
  • The GUC parameter wal_decelerate_trigger_threshold is added to specify the threshold for a query to trigger WAL write rate limiting on a single DN.
  • Two functions are dded to the SQL syntax.
  • The pg_stat_wal_write() function is added to record the thread information of the current instance and collect statistics on the import volume and rate of WAL logs and data pages.
  • The pgxc_stat_wal_write() function is added to record information about threads interacting with the CN on each DN and collect statistics on the import volume and rate of WAL logs and data pages.
  • Developer Guide > System Catalogs and Views > System Views > PGXC_STAT_WAL
  • Developer Guide > GUC Parameters > Write Ahead Logs > Settings
  • SQL Syntax Reference > Functions and Operators > Statistics Information Functions

The dist fdw foreign table in the LATIN1 database supports the dataencoding parameter.

The dataencoding parameter is added to convert between dataencoding and encoding during GDS import and export.

  • SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (for GDS Import and Export)
  • SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (SQL on other GaussDB(DWS)

Bandwidth compression for GDS communication

The gds_compress is added to reduce the bandwidth usage for interconnection between clusters when users use GDS pipe files.

  • SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (for GDS Import and Export)
  • SQL Syntax Reference > DDL Syntax > CREATE FOREIGN TABLE (SQL on other GaussDB(DWS)

DDL lock timeout configuration

The GUC parameter ddl_lock_timeout is added to specify the DDL lock timeout interval.

Developer Guide > GUC Parameters > Lock Management > ddl_lock_timeout

PG_LOCKS view enhancement

  • Added the views PGXC_WAIT_DETAIL and PGXC_LOCKWAIT_DETAIL.
  • Columns including wait_on_pid and query_id are added.

Developer Guide > System Catalogs and System Views > System Views > PGXC_WAIT_DETAIL

Developer Guide > System Catalogs and System Views > System Views > PGXC_LOCKWAIT_DETAIL

The original pushdown plan is modified.

The implied_quality_optmode parameter is added to specify how to pass conditions for the equivalent columns in a statement.

Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options > implied_quality_optmode

ANALYZE sampling adaptation (added in 8.2.0.100)

  • Added GUC parameters analyze_stats_mode and analyze_sample_mode.
  • The default value of random_function_version is changed to 1.
  • Developer Guide > GUC Parameters > Automatic Cleanup
  • Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options

Cost estimation enhancement (added in 8.2.0.100)

The default value of enable_extrapolation_stats is changed to on.

Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options

Column-store small CU view (added in 8.2.0.100)

Add the CU information function for column-store tables.

  • get_col_cu_info
  • get_col_file_vacuum_info
  • get_all_col_cu_info

SQL Syntax Reference > Functions and Operators > System Administration Functions > Other Functions

Optimized dirty page monitoring view (added in 8.2.0.100)

Added view: PGXC_STAT_TABLE_DIRTY

Added functions: pg_stat_get_tuple() and pgxc_stat_single_table

  • Developer Guide > System Catalogs and System Views > System Views > PGXC_STAT_TABLE_DIRTY
  • "Functions and Operators > Statistics Information Functions" in the SQL Syntax Reference

SELECT does not block TRUNCATE (add in 8.2.0.100)

Added the GUC parameter ddl_select_concurrent_mode to control the concurrency of DDL and SELECT statements.

Developer Guide > GUC Parameters > Lock Management

Support for HStore tables (added in 8.2.0.100)

Added the enable_hstore parameter to the CREATE TABLE syntax in the standalone hybrid data warehouse scenario.

  • Developer Guide > Hybrid Data Warehouse
  • SQL Syntax Reference >DDL Syntax > CREATE TABLE

Fine-grained DR (added in 8.2.0.100)

  • Added the function of backing up DR system catalogs and system views.
  • Added the enable_disaster_cstore and fine_disaster_table_role parameters to the CREATE TABLE syntax.
  • Added the local coordinator only parameter to the LOCK syntax.
  • Added the release and subscription SQL syntax.
  • Developer Guide > System Catalogs and System Views > System Catalogs >PG_FINE_DR_INFO/PG_STAT_LAST_OPERATION/PG_PUBLICATION/PG_PUBLICATION_REL/PG_PUBLICATION_NAMESPACE
  • Developer Guide > System Catalogs and System Views > System Views > PG_PUBLICATION_TABLES
  • SQL Syntax Reference >DDL Syntax > CREATE TABLE
  • SQL Syntax > DML Syntax > LOCK
  • SQL Syntax > DDL Syntax > ALTER PUBLICATION/CREATE PUBLICATION/DROP PUBLICATION/ALTER SUBSCRIPTION/CREATE SUBSCRIPTION/DROP SUBSCRIPTION

Display none of the non-aggregation function query columns after GROUP BY (added in 8.2.0.101)

The disable_full_group_by_mysql option is added to the GUC parameter behavior_compat_options. Users can set this parameter to display none of the non-aggregation function query columns after GROUP BY in a query.

Developer Guide > GUC Parameters > Miscellaneous Parameters > behavior_compat_options

Optimization of the returned number of limits on each DN in the distinct limit scenario (added in 8.2.0.101)

The enable_agg_limit_opt parameter is added to specify whether to optimize select distinct col from table limit N.

Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options

The query performance of a single table is improved, and the restriction on inlist roughcheck is removed. (Added in 8.2.0.101)

The inlist_rough_check_threshold parameter is added to control the maximum number of values in the IN condition.

Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options

Optimized hstore hot and cold table features (added in 8.2.0.101)

Hot and cold data can be managed in HStore tables.

Developer Guide > Hybrid Data Warehouse > Introduction to Hybrid Data Warehouse

Optimized DN Parallel Import in the PBE Scenario (added in 8.2.0.102)

Added the GUC parameter enable_parallel_batch_insert to control whether to enable concurrent data import to row-store and column-store tables.

Developer Guide > GUC Parameters > Parallel Import

Behavior changes

Table 2 Behavior changes

Change Type

No.

Change

Description

Added

1

Added WindowAgg support for value partition execution plans

The window function is executed at the outermost layer of statements. If ORDER BY is not used, the data behaviors are in a default order. In version 8.2.0, after enable_value_redistribute is enabled by default, the data becomes unordered. You need to use the ORDER BY clause to specify the order.

Modified

2

Changed the exception rule configuration mode from tool configuration to syntax configuration.

In earlier versions, exception rules are configured for Cgroups using gs_cgroup. In 8.2.0, exception rules are configured using the CREATE/ALTER/DROP EXCEPT RULE syntax.

3

Replaced the exception rule qualificationtime with elapsedtime.

In earlier versions, qualificationtime is used as a rule, but it can only be used together with cpuskewpercent. Their effect is the same as that of elapsedtime. Therefore, this configuration item can be replaced with elapsedtime.

4

Tid column name

Row storage supports the tid column names, which are not supported before.

5

max_process_memory

Changed the number of CNs to half of that of DNs.

SQL Syntax

Table 3 SQL syntax changes

Change Type

No.

Feature

Change Description

Added

1

Table parameter analyze_mode

Added the parameter analyze_mode, which specifies the ANALYZE modes supported by a table. If this parameter is not set, the previous mode remains unchanged.

2

Hints for disabling subqueries

Added the hints for disabling subqueries. Format: no_merge (current query) and no_merge(relid) (specified object).

3

DML hints

Added support for hints in INSERT, UPDATE, MERGE, and DELETE statements.

4

AGG redistribution hints support specified column names.

Column names can be specified for AGG redistribution hints. The format is /+ redistribute ((*) (a b c d)) */.

5

Count(distinct) hints

Added hints for specifying the count(distinct) column, effective only in the double Hash Agg scenario.

6

invisible

Added index OPTIONS to specify whether the index scan is visible in the execution plan.

7

Backquotes

Backquotes can be used to distinguish common characters from special characters.

8

ON UPDATE in column definition

When the ON UPDATE attribute is specified in the column definition, the update timestamp is automatically filled when data is updated.

9

CREATE/ALTER/DROP EXCEPT RULE

Added the syntax to add, create, and delete kernel exception rules.

10

OPTIONS security_token in CREATE SERVER statements

Added OPTIONS security_token to transfer security tokens for using temporary AKs and SKs to access OBS.

11

OPTIONS security_token in CREATE FOREIGN TABLE statements

Added OPTIONS security_token to transfer security tokens for using temporary AKs and SKs to access OBS.

12

file_split_ threshold in (dist_fdw) option in OBS foreign tables

Added the file_split_ threshold to the OBS foreign table parameter (dist_fdw) option.

13

gds_compress in GDS foreign tables

Added the gds_compress parameter, which is used for compressed transmission of data between DNs and GDSs during GDS foreign table interconnection. Currently, only the Snappy compression algorithm is supported.

14

dataencoding in GDS foreign tables

Added the dataencoding parameter, which specifies the character set of the data stored in the latin1 database.

15

gds_compress in gc_fdw foreign tables (sql on other gaussdb foreign tables)

Added the gds_compress parameter, which is used for compressed transmission of data between DNs and GDSs during GDS foreign table interconnection. Currently, only the Snappy compression algorithm is supported.

16

dataencoding in gc_fdw foreign tables (sql on other gaussdb).

Added the dataencoding parameter, which specifies the character set of the data stored in the latin1 database.

Modified

17

CREATE/ALTER REDACTION POLICY

The default value of deltarow_threshold is set to 10000, which specifies the upper limit of rows when column-store tables are imported to the Delta table. This parameter is valid only when the table-level parameter enable_delta is enabled.

18

Syntax of association between resource pools exception rules

Added the INHERIT option, which specifies whether a policy is inherited from other policies.

19

single_node support for OBS foreign table syntax

In earlier versions, memory exception rules can be configured for resource pools. The exception rules in 8.2.0 are configured via the unified interface:

CREATE/ALTER RESOURCE POOL 'pool' with (EXCEPT_RULE='rule1,2');

20

Use server to specify the AK and SK of an OBS foreign table (dist_fdw).

Single_node supports OBS foreign tables (dfs_fdw).

Keywords

Table 4 Keywords

Change Type

No.

Keyword

Change Description

Added

1

TRY_CAST

Added the non-reserved keyword TRY_CAST for the compatibility with the TRY_CAST function in MySQL. If the type conversion fails, NULL is returned.

System Catalogs

Table 5 System catalogs

Change Type

No.

Name

Change Description

Added

1

gs_blocklist_query

Added the system catalog gs_blocklist_query, which is used to store blocklist statements and exception rule triggering information.

2

pg_except_rule

Added the system catalog pg_except_rule, which is used to store information about exception rules created in the cluster, including the rule name, rule threshold, and action triggered by the rule.

Modified

3

pg_redaction_policy, pg_redaction_column

Added the inherited column, which specifies whether a policy is manually created or inherited.

System Functions

Table 6 System functions

Change Type

No.

Function

Description

Added

1

pg_stat_get_runtime_relstats

Queries table-level statistics generated by AUTOANALYZE.

2

pg_stat_get_runtime_attstats

Queries column-level statistics generated by AUTOANALYZE.

3

pg_stat_set_last_data_changed_num

Interface for manually setting the total size of historical modification for the remedy of the pgstat content loss.

4

strcmp()

Compares two strings. If the first string equals the second string, 0 is returned. If the first string is less than the second string, -1 is returned. If the second string is less than the first string, 1 is returned. If the input parameters contain null, null is returned.

5

hex()

Converts each character or decimal integer in the input parameter into a hexadecimal number.

6

unhex()

Performs the reverse operation of hex(). This function interprets each pair of hexadecimal digits (in the argument) as a number and converts it into a character. The result character is returned in bytea format.

7

space(n)

Returns a string consisting of n spaces.

8

rand()

Obtains a random number ranging from 0.0 to 1.0.

9

truncate(x,d)

Truncates x to d decimal places. If d is a negative number, then the number is truncated to the left side of the decimal point.

10

addtime(expr1,expr2)

Adds time. expr1 is of the time or timestamp type, and expr2 is of the interval type.

11

subtime(expr1,expr2)

Subtracts a time period expr2 from the time expr1.

expr1 is of the time or timestamp type. expr2 is of the interval type. The return type is the same as that of expr1.

12

timediff(expr1,expr2)

Calculates the time difference between two expr1 and expr2 (expr1 - expr2). Returns the time type.

The arguments must be both of the time or timestamp type.

13

curdate()

Returns the current date (date type).

14

curtime([fsp])

Returns the current time (time type). fsp indicates the precision of the returned time.

15

uuid()

Returns a universally unique identifier (UUID).

16

convert_tz()

Convert the time zone.

17

cast(expr,typename)

Converts expr to a specified type.

18

digest()

Generates binary hash values of the given data based on different algorithms.

19

hmac()

Calculates the MAC value for the data with the key.

20

crypt () and gen_salt ()

The crypt() and gen_salt() functions are used for password hashing. crypt() executes hashes to encrypt data, and gen_salt() generates salted hashes.

21

pgp_sym_encrypt()

Used for symmetric key encryption.

22

pgp_sym_decrypt()

Decrypts a message encrypted using a PGP symmetric key.

23

pgp_pub_encrypt()

Used for public key encryption.

24

pgp_pub_decrypt()

Decrypts a message encrypted using a PGP public key.

25

pgp_key_id()

Extracts the key ID of the PGP public or private key. If an encrypted message is used as the input, the ID of the key used to encrypt the message will be returned.

26

armor()

Converts binary data into PGP ASCII-armor format by the CRC calculation and formatting of a Base64 string.

27

dearmor()

Performs the conversion opposite to the armor() function.

28

pgp_armor_headers()

Returns the armor header in data.

29

encrypt

Original encryption function, which does not support any advanced functions of PGP encryption. The IV is 0.

30

decrypt

Original decryption function, which does not support any advanced functions of PGP encryption. The IV is 0.

31

encrypt_iv

Original decryption function, which does not support any advanced functions of PGP encryption. The IV can be set by users.

32

decrypt_iv

Original decryption function, which does not support any advanced functions of PGP encryption. The IV can be set by users.

33

gen_random_bytes

Generates cryptographically strong random bytes.

34

gen_random_uuid()

Returns a random UUID of version 4.

35

get_volatile_pg_class

Obtains the pg_class metadata related to all volatile temporary tables in memory (metadata in volatile temporary tables is not stored in system catalogs).

36

get_volatile_pg_attribute

Obtains the pg_attribute metadata related to all volatile temporary tables in memory.

37

gs_increase_except_num

Increases the number of query exceptions.

38

gs_update_blocklist_hash_info

Updates the blocklist information in memory.

39

gs_append_blocklist

Adds blocklist statements.

40

gs_remove_blocklist

Removes statements from a blocklist.

41

gs_wlm_rebuild_except_rule_hash

Triggers the building of an exception rule kernel hash table.

42

pg_stat_wal_write

Queries the thread information on the current CN or DN, and the import volume and rate of WAL and data pages.

43

pgxc_stat_wal_write

Queries the thread information about the interaction between CNs and DNs, and the import volume and rate of WALs and data pages.

44

get_col_file_info

Obtains the number of empty CU files and the total number of CU files of a specified column-store table.

45

get_all_col_file_info

Obtains the number of empty CU files and the total number of CU files of all column-store tables.

46

col_rebuild_file_relation

Replaces the Relfilenode and reorganize the CU files of the specified column-store table. After the reorganization, the CU files become consecutive 1 GB files.

Modified

47

pg_query_audit/pgxc_query_audit

Changed the thread_id field to the session id field to record the session where the statement is executed.

48

login_audit_messages/login_audit_messages_pid

Added the session id field to record the session where the statement is executed.

System Views

Table 7 System views

Change Type

No.

View

Change Description

Added

1

gs_obs_latency

Monitors OBS latency.

2

pgxc_stat_wal

Queries the traffic information about WAL logs and data pages of the current query.

3

pgxc_lockwait_detail

Displays detailed information about the lock wait chain on each node.

4

pgxc_wait_detail

Displays details about the SQL waiting chains of all nodes, including the wait nodes and queries.

Modified

5

gs_obs_read_traffic

Data aggregation interval is changed to 10 minutes, and the logtime column is added to display time groups.

6

gs_obs_write_traffic

Data aggregation interval is changed to 10 minutes, and the logtime column is added to display time groups.

GUC Parameters

Table 8 GUC parameters

Change Type

No.

Parameter

Change Description

Added

1

enable_wlm_internal_memory_limit

Controls whether to enable the internal restriction of the WLM. For example, the estimated memory of a job cannot exceed 80%, 90%, or 40%.

2

enable_strict_memory_expansion

Controls whether job memory expansion is performed on DNs.

3

allow_zero_estimate_memory

Controls whether the estimated memory of a job can be set to 0 when there is no statistics for the job.

4

max_process_memory_auto_adjust

Controls whether to dynamically adjust max_process_memory during a primary/standby CM switchover.

5

wlm_memory_feedback_adjust

Specifies whether to enable the memory negative feedback function in dynamic load management. The value can be on, off, or on(50,40).

6

autoanalyze_mode

A system-level AUTOANALYZE control parameter. By default, the normal mode is the same as before. If the mode is set to light, dynamic sampling is enabled.

7

enable_redactcol_computable

This parameter specifies whether to enable the computable data redaction. By default, this function is disabled.

8

windowagg_pushdown_enhancement

Controls whether to push down the intersection of PARTITION BY and GROUP BY when the window function and GROUP BY appear at the same time.

9

enable_from_collapse_hint

Specifies whether the plans with hints take precedence in execution. By default, the parameter is enabled and statement-level hints are supported.

10

enable_value_redistribute

Specifies whether to use value partition streams to optimize WindowAgg.

11

setop_optmode

Specifies whether to perform deduplication on subqueries of the setop operation. The default value is disable, indicating that deduplication is not performed, which is the same as that in versions earlier than 8.2.0. The value force indicates that deduplication is forcibly performed. The value cost indicates that deduplication is performed based on the cost. (Note: Deduplication is performed only when the bottom layer of the setop branch is the stream operator.)

12

security_enable_options

Indicates that some operations are enabled in security mode. By default, this parameter is left blank.

13

audit_object_name_format

Specifies the displaying mode of objects in the object_name column in audit logs. The default value is single, indicating that a single object is displayed.

14

enable_redactcol_equal_const

Restricts the constant obtaining behaviors in the new version. By default, this function is disabled, and equivalent comparison between anonymized columns and constants is prohibited.

15

enable_mixedagg

Indicates whether to generate a mixed aggregate execution plan. This parameter is disabled by default.

16

max_streams_per_query

Controls whether to report an error in the optimizer phase for a plan with a large number of streams to prevent streams from occupying too many connections. The default value is 10000.

17

agg_max_mem

Controls the maximum estimated memory when the number of aggregation columns exceeds 5. This prevents CCN queuing caused by high estimated memory.

18

max_volatile_memory

Maximum number of memory contexts related to the volatile temporary table. The unit is KB. The value ranges from 1024 to INT_MAX. The default value is 1 GB.

19

max_volatile_tables

Maximum number of volatile temporary tables (including auxiliary tables such as TOAST and CUDESC) in a single session. The default value is 300.

20

enable_hashfilter

Determines whether to generate hash filters.

21

volatile_shipping_version

Controls the sequence pushdown enhancing in 8.2.0. The default value is 1.

22

smp_thread_cost

Control the generated query_dop value. The default value is 1000.

23

enable_wal_decelerate

Specifies whether to limit the flow control rate when data is imported with indexes.

24

wal_decelerate_policy

Specifies the behavior policy after rate limiting is triggered.

25

wal_write_speed

Indicates the maximum WAL write speed (byte/s) of each query on a single DN per second.

26

wal_decelerate_trigger_threshold

Specifies the WAL write rate limit triggered by each query on a single DN.

27

enable_cstore_ring_buffer

Controls whether to enable the column-store ring buffer.

28

enable_tsdb_multi_temperature

Specifies whether to enable the OBS cold and hot storage for time series tables. By default, the OBS cold and hot storage is disabled.

29

enable_tsdb_multi_temperature

Specifies whether to enable the OBS cold and hot storage for time series tables. By default, the OBS cold and hot storage is disabled.

30

ddl_lock_timeout

Specifies the lockwait time for DDL statements. If the lockwait times out, DDL statements are terminated. This parameter is valid only for level-8 locks. The default value is 0, indicating that this parameter does not take effect.

31

build_backup_param

Specifies the minimum specifications for disk backup during incremental build.

Modified

32

comm_tcp_mode

The parameter type is changed from POSTMASTER to SIGHUP.

33

max_process_memory

Indicates the maximum memory usage of a process. The type of the parameter is changed from POSTMASTER to SIGHUP. The minimum threshold is 2 GB. You are not advised to set it to the minimum threshold.

34

rewrite_rule

The enumerated value eager_magicset is added to control the magic set enhancement.

35

behavior_compat_options

The normal_session_id parameter is added to behavior_compat_options to determine whether to concatenate the session ID with node_name. By default, normal_session_id is disabled, and the session ID is concatenated with node_name.

36

behavior_compat_options

Added behavior_compat_options to merge_into_with_trigger. After the parameter is enabled, MERGE INTO can be executed on tables with triggers. This parameter is disabled by default.

37

behavior_compat_options

Added the option disable_jsonb_exact_match to control the operator matching. By default, this option is disabled.

When this option is disabled, only exact match of JSONB types is supported. If exact match fails, the non-JSONB types are matched.

When this option is enabled, and the operator matching does not distinguish types.

38

hashjoin_spill_strategy

Policies 5 and 6 are added. The behavior is the same as that of policies 0 and 1. The original policies 0 and 1 are modified. Originally, if the memory of the internal table is large and the memory of the external table is small, exchange the internal and external tables. After the modification, if the memory of the internal table is large and the memory of the external table is small, continue to divide the internal table until the internal table cannot be divided. Then try to exchange internal and external tables

39

sql_use_spacelimit

Modified the initial value of sql_use_spacelimit to 10% (upper limit) of the disk space where the current instance resides. If the value is less than 10 GB (lower limit), set the value to 10 GB.

40

temp_file_limit

Modified the initial value of temp_file_limit to 10% (upper limit) of the disk space where the current instance resides. If the value is less than 10 GB (lower limit), set the value to 10 GB.

Deleted

41

enable_grant_public

Indicates that the grant to public syntax is not supported in security mode.

42

enable_grant_option

Indicates that the grant with grant option syntax is not supported in security mode.