Help Center/ GaussDB(DWS)/ Product Bulletin/ Product Notice/ Version 8.1.3/ New Features and Resolved Issues in 8.1.3.x
Updated on 2024-09-03 GMT+08:00

New Features and Resolved Issues in 8.1.3.x

8.1.3.333

Table 1 New features/Resolved issues in version 8.1.3.333

Category

Feature or Resolved Issue

Cause

Version

Handling Method

New feature

None

-

-

-

Resolved issue

Permissions are lost after a cluster upgrade.

Upon upgrading to version 8.1.3.330, an error message appears indicating insufficient permission for certain link services. An earlier version contains a vulnerability that allows improper permission bypass. Upgrading to a version that addresses this issue results in a change in behavior.

8.1.3.330

Upgrade the version to 8.1.3.333 or later.

The ceil function's output of -0 affects service judgment.

The ceil function may return -0 when rounding a float value. Use the normalize_negative_zero parameter to control whether -0 is returned.

Versions earlier than 8.1.3.333

The sqlbuil fuzzing test causes a core dump "(ctePlan != __null && ctePlan->isCtePlan&&InitStreamFlow" in complex queries.

During the finalize_node_id phase, initplan is copied, and the sequence of glob->subplans is adjusted. However, the position of the CTE pointed to by referencedCtePlanIds is not adjusted, causing the CTE to point to an incorrect subplan and be set to NULL.

Versions earlier than 8.1.3.333

In GaussDB(DWS), queries using the decimal data type in Hive display null values.

GaussDB(DWS) and Hive process decimal data differently.

Versions earlier than 8.1.3.333

The WITH RECURSIVE statement runs indefinitely.

In the Arm environment, thread information synchronization is abnormal during the WITH RECURSIVE statement execution, causing variables to not update synchronously.

8.1.3.323

8.1.3.330

Table 2 New features/Resolved issues in version 8.1.3.330

Type

Feature or Resolved Issue

Cause

Version

Handling Method

New feature

None

-

-

-

Resolved issue

Core dump during plan generation for insert into select statement.

Duplicate sublinks in ORCLAUSE conversion lead to double adjustment in OffsetVarNodes.

Versions earlier than 8.1.3.330

Upgrade the version to 8.1.3.330 or later.

Accidental core dump "core:CStorePartitionInsert::findBiggestPartition" during column storage lightweight test.

During statistics collection for bulkloadUsedMemSize in a partitioned table using column-store, both UPDATE and INSERT operators are gathered by the system. However, the adaptive memory size is calculated separately for each operator when data is flushed to disks, which can result in g_bulkloadUsedMemSize being higher than expected. If the memory usage of the UPDATE operator reaches the estimated threshold, it could prevent an INSERT operator data record from being inserted.

Versions earlier than 8.1.3.330

Wait ccn queuing without reaching threshold.

Inability to calibrate global memory during CCN queuing blocks jobs.

Versions earlier than 8.1.3.330

Unauthorized table queries possible through nesting.

The light proxy's permission check relies on the ExecCheckRTPerms function within the CN's checkLightQuery procedure. This check is not extended to DNs. For ExecCheckRTPerms to operate correctly, the rangeTables parameter should be set to RTE_RELATION. If not, the function defaults to returning true. However, this mechanism fails for nested SQL statements, where the type changes to RTE_SUBQUERY, skipping the necessary permission validation.

Versions earlier than 8.1.3.330

Occasional "canceling statement due to statement timeout" error with deletion statement.

The transaction time is not reset for the w packet, leading to thread reuse.

Versions earlier than 8.1.3.330

Memory leak when querying JSON type data.

Memory is not released in the jsonb out function, causing high usage.

Versions earlier than 8.1.3.330

"Tuple concurrently updated" error during concurrent job execution.

The OID of a partition is identical to that of its corresponding table. During the execution of the ANALYZE command, the pg_object catalog is updated with the OID of the partition. This update process also applies to the pg_object record of the table itself. Concurrently, DDL operations may be executed. For instance, if an ALTER TABLE command is executed, it will modify the pg_object record of the table, which could potentially result in an error.

Versions earlier than 8.1.3.330

8.1.3.325

Table 3 New features/Resolved issues in version 8.1.3.325

Type

Feature or Resolved Issue

Cause

Version

Handling Method

New feature

  • The GB18030_2022 character encoding is supported.
  • The subquery hint function can be disabled.
  • The GDS foreign table is compatible with invalid UTF-8 characters.

-

-

-

Resolved issue

Logs fail and the cluster is hung after DN restart.

When the stream thread error logs are printed, the stream thread responds to the cancel signal. When the logs are printed again, the stream thread is hung up.

8.1.3.320

Upgrade the version to 8.1.3.325.

  • When a service table is created, the following error message is occasionally displayed: relation "xxx" already exists.
  • The error could not read block xxx in file "xxx" is occasionally reported.

When the OID usage surpasses 4.2 billion, the system reallocates OIDs. During this reallocation process, intermittent errors may occur.

8.1.3.323 and earlier versions

Checkpoint failures on the standby DN prevent the reclamation of xlogs, leading to their continuous accumulation.

During the redo checkpoint operation on the standby DN, the detection of incomplete btree splitting triggers an RM 11 error. This may indicate a btree splitting failure or that the process is still ongoing.

8.1.3.323 and earlier versions

If a lightweight update occurs on a column-store table while autovacuum runs in the background, the system may report an error Unsupported to update different rows with the same cuid and col in light update.

In lightweight update, the same cuid and col cannot be used to update different rows.

8.1.3.323 and earlier versions

The no_merge hint operation does not take effect in some scenarios.

The subquery hint function cannot be disabled.

8.1.3.323 and earlier versions

When a long-time query statement is executed on the background, if you press Ctrl+C to end the statement and then press Ctrl+Z to exit the gsql client, residual statements exist.

Upon receiving the CTRL+C signal, the CN thread enters the error jump process. In this case, the CN thread invokes EmitErrorReport, but EmitErrorReport does not respond to the signal.

8.1.3.323 and earlier versions

When a wide table is used with a real-time table for associated update, the memory usage is too high, affecting the performance.

Associating a wide table with a real-time table for updates introduces superfluous columns. This leads to excessive memory consumption during the optimizer's execution plan estimation, thereby deteriorating performance

8.1.3.323 and earlier versions

In the ShareScan plan, the memory of the tuplestore and batchstore for storing CTEs cannot be expanded. As a result, data may be written to disks.

cteMaxMem in the ShareScan execution plan is not copied, read, or written. As a result, the DN fails to obtain the value from the CTE execution plan, and the created tuplestore and batchstore for storing the CTE result set cannot be expanded in memory. As a result, data spills to disks.

8.1.3.323 and earlier versions

The error message could not determine data type of parameter is reported when a lightweight column-store update is performed.

In the remote query of the execution plan, the parame parameter is specified as its position in the base table, and the system column cannot match this parameter.

8.1.3.323 and earlier versions

8.1.3.322

Table 4 New features/Resolved issues in version 8.1.3.322

Type

Feature or Resolved Issue

Cause

Version

Handling Method

New feature

The default value of the GUC parameter enable_limit_stop is changed to on.

-

-

-

Resolved issue

None

-

-

-

8.1.3.320

Table 5 New features/Resolved issues in version 8.1.3.320

Type

Feature or Resolved Issue

Cause

Version

Handling Method

New feature

Concurrent truncate, exchange, and select operations

Added the GUC parameter ddl_select_concurrent_mode. This parameter is used to solve the problem that the query statement lasts for a long time and blocks DDL in the scenario where the data volume is large or the query is complex. The effect is the same as that of the Oracle database.

Application scenarios:

  • Concurrent truncate and select operations
  • Concurrent exchange and select operations

Scenario constraints

  • Concurrency is not supported when there are conflicts with locks of higher levels (more than one level). For example, autoanalyze is triggered by select when autoanalyze_mode is set to normal.
  • Concurrency is not supported when there are conflicts with locks in transaction blocks.

Connection constraints:

  • When the JDBC, ODBC, or Python driver is used, if autocommit is set to false, this feature is not supported.
  • This feature is not supported by query statements delivered by Data Studio and auto-committed transactions.

-

-

-

Whether to enable early stop optimization for LIMIT statements can be controlled.

Added the GUC parameter enable_limit_stop to specify whether to enable the early stop optimization for LIMIT statements.

-

-

-

Resolved issue

The statement-level estimated memory exceeds the value of max_process_memory and causes ccn queuing.

The statement-level estimated memory exceeds the value of max_process_memory.

8.1.3.310 and earlier versions

Upgrade the version to 8.1.3.320 or later.

When the MERGE operation is performed, an error messagevalue xxx is out of range for type integer is displayed.

The pg_toast_get_baseid() function uses an integer interface for OID processing.

8.1.3.310 and earlier versions

Querying the dirty page rate view of a large table containing 200,000 data rows results in significant memory consumption.

In the process of data querying, each node in the statistics-querying linked list requests memory to store tupStatus. Post-query, while the nodes' memory is freed, the allocated memory within the nodes for tupStatus remains unreleased.

8.1.1.x

When a Vacuum operation times out and is terminated, some DNs retain leftover threads, which then fail to respond to signals and obstruct the execution of subsequent statements.

The btvacuumscan thread does not respond to signals. As a result, after the Vacuum execution times out and is killed, some DNs have residual threads and cannot respond to signals.

8.1.1.x

Executing percentage sampling on partitioned and time series tables within the MySQL compatibility library triggers an error: "unsupported feature with temporary/unlogged table for partitioned table".

In 8.1.3, the default inheritance mode is INCLUDING ALL to match the CREATE TABLE LIKE syntax in MySQL. However, this causes an error during ANALYZE percentage sampling because the command for automatically creating temporary replication tables is included the sampling.

8.1.3.310 and earlier versions

The SELECT query of the cold and hot tables triggers runtime autoanalyze, deteriorating the query performance.

If the select operation is performed After the TRUNCATE PARITION, EXCHANGE PARTITION, DROP PARTITION, ALTER DISTRIBUTE, or ALTER COLUMN TYPE operation, AUTOANALYZE is triggered.

8.1.3.310 and earlier versions

The value of elapsed_time in pg_session_wlmstat is inconsistent with the actual execution time of the top SQL statement.

When querying the pg_session_wlmstat view, the elapsed_time value appears excessively high for statements in the RUNNING state.

8.0.x

When the SELECT permission is granted to a foreign table, the error message "has no distribute type" is displayed.

The default distribution mode is not specified for the OBS dfs server write-only foreign tables.

8.1.3.310 and earlier versions