This topic describes the product feature updates for PolarDB for PostgreSQL (Compatible with Oracle), including details about minor engine version updates.
You can view the minor engine version number in the console or by running the
SHOW polardb_version;statement.The minor engine version number for PolarDB for PostgreSQL (Compatible with Oracle) was updated to a 6-digit format on February 26, 2025 (UTC+8). For more information about this change and the mapping between the old and new minor engine version numbers, see PolarDB minor engine version number format update.
2.0.14.18.37.0 (2025.10)
New features
Description | References |
The spatio-temporal database (GanosBase) is upgraded to version 7.8. | |
Adds support for the | |
Adds support for the | |
Adds a mechanism to prevent the global execution plan cache from caching a plan if the query plan includes a custom scan. | |
Adds support for audit logs to print information about binding parameters in SQL statements that use the extended protocol. | - |
Adds a distinction for the | - |
Adds support for | |
Adds support for the | |
Adds support for the | |
Adds support for using the | |
Adds support for Oracle-compatible system permission management. | |
Adds support for splitting the default partition of a partitioned table ( | - |
Adds support for the | - |
Adds support for using the | - |
Adds support for the | - |
Adds support for the | - |
Adds support for PIVOT queries whose preceding subqueries contain parentheses. | - |
Adds support for the | - |
Adds the feature that allows a | - |
Adds support for the | - |
Performance optimizations
Description |
Optimizes the performance of the asynchronous lock replay mechanism. |
Optimizes the default loading mechanism of the Use the pldebugger extension extension. This avoids performance impacts in specific PL/pgSQL scenarios. |
Bug fixes
Description |
Fixes an issue where the |
Fixes an issue where the memory protection mechanism was not triggered correctly because of an error in calculating container memory usage (the memory of |
Fixes an issue where an incorrect permission check error occurred in specific scenarios when you execute the |
Fixes an issue where specifying a partition using the |
Fixes an issue where an exception might occur when you call the |
Fixes an issue where the |
2.0.14.17.36.0 (2025.09)
New features
Description | References |
Adds compatibility with DynamoDB. | - |
Adds support for specifying a | - |
Adds the feature that allows subfunctions to use package variables and external variables as their default parameter values. | |
Adds compatibility with the Oracle built-in package | |
Adds support for Oracle-style | - |
Adds support for associative array constructors for compatibility with Oracle syntax. | |
Adds a feature to associate a sequence with a column using the | |
Adds support for | |
Adds support for privileged accounts to grant access permissions on system views such as | - |
Adds support for using the | - |
Adds compatibility with Oracle mode for the return type of the | |
Adds support for using the | - |
Adds compatibility with the Oracle built-in package | |
Adds support for the | - |
Adds support for the | |
Adds support for regular users to schedule tasks using the | - |
Adds support for accessing variables within a function using the | - |
Adds support for defining functions and stored procedures with the same name (overloading) in a package for compatibility with the PL/SQL specifications of Oracle. | - |
Adds the connection-level | - |
Adds support for the | - |
Adds support for calling exceptions defined in a package from a function using the | - |
Upgrades the | |
Adds support for users to create the | - |
Adds a connection-level permission management feature. This feature is used for fine-grained control over permissions for specific connections to improve database security. | - |
Adds support for a maximum length of 4,000 bytes for the | - |
Adds compatibility with the Oracle built-in package | |
Adds support for attaching read-only (RO) nodes to a standby cluster. This feature allows the standby cluster to provide normal read-only services. | - |
Adds a higher parsing priority for the schema of a package over other schemas in the | - |
Adds support for converting | |
Adds the | - |
Adds support for | - |
Adds the feature that allows regular functions to use package variables as their default parameter values. This improves code flexibility and modularity. | - |
Adds compatibility with some functions in the Oracle built-in package DBMS_LOB. This enhances the capability to operate on large objects (LOBs). | - |
Adds support for local replacement operations on materialized views. | - |
Adds support for cursors to be of the | - |
Performance optimizations
Description |
Optimizes the query performance of parent tables in partitioned tables. You can now use scan hints, such as |
Optimizes the performance of subqueries. The join condition in a subquery can be pushed down to the outer query by rewriting it with a |
Optimizes the execution performance of |
Optimizes the calculation performance of the |
Bug fixes
Description |
Fixes a cluster crash that might occur when a cursor name is truncated because it exceeds 63 bytes. The crash is caused by the failure to parse a |
Fixes an issue where the database generated a |
Fixes an adaptation issue of the vectorized engine on read-only nodes with columnstore indexes to ensure stable operation on such nodes. |
Fixes an issue where a cursor defined within a package could not reference other functions in the same package. |
Fixes a logic error that might be triggered by improper handling of specific transaction contexts in a PL/SQL block. |
Fixes a cluster crash that might occur during the scale-out of a serverless cluster. The crash is caused by parallel caching of an incorrect cache ID. |
Fixes an issue where slab memory might continuously increase during the replay of a two-phase commit (2PC) transaction. |
Fixes an issue where fields were incorrectly identified when a |
Fixes an issue where the |
Fixes a cluster crash that might occur when you use |
Fixes an issue where the |
Fixes a cluster crash that might occur when a package variable is used as the default value for a package function parameter and the function called in the package initialization block contains a |
Fixes a loopback write issue that might occur during the write process of the |
Fixes an error that occurred when the |
Fixes an issue where the calculation order of the |
Fixes an issue where an incorrect query result was returned because the optimizer incorrectly optimized the |
Fixes an issue where a subfunction that used a different collation could not be called because of improper handling of character collations. |
2.0.14.17.35.0 (2025.08)
New features
Description | References |
Adds support for case-insensitive usernames. After this feature is enabled, an object name in all uppercase letters is automatically converted to lowercase when the object is created. | - |
Adds support for the | - |
Adds the | - |
Adds implicit conversion from the | - |
Adds support for function calls after the | - |
Adds support for using two-dimensional or three-dimensional | - |
Adds the | - |
Adds support for using the | - |
Adds support for using collection type fields as | |
Adds the | |
Adds support for the | - |
Adds support for using common table expressions (CTEs) in cursor definitions. | - |
Adds support for using a | - |
Adds support for using | - |
Adds support for the | - |
Adds support for multi-level nested synonyms that point to database objects such as tables and views. | - |
Adds support for the empty file type in the | - |
Adds support for the | - |
Adds the | |
Adds support for controlling the default use of global indexes instead of local indexes when you create an index on a partitioned table. | - |
Adds support for | - |
Adds support for using the same alias to reference columns of different tables in a JOIN conditional expression. | - |
Adds support for referencing expressions from the | - |
Performance optimizations
Description |
Optimizes the data redistribution process for partitioned tables that use the |
Optimizes the internal logic of NVL2 when it processes parameters of different data types. |
Optimizes the selective use of the expression cache and cast cache in PL/SQL. This effectively resolves the issue of excessive memory consumption caused by these caches in short-transaction scenarios with frequent commits and enhances system stability in high-concurrency transaction processing. |
Optimizes the logic of the relation size cache (RSC) for handling empty tables in |
Optimizes the comparison rules for implicit type conversion. The upgraded rules are more aligned with the intuition and logic of mixed calculations of strings and numbers, improving data comparison accuracy and SQL compatibility. |
Optimizes the parallel replay feature to cover all database recovery scenarios. |
Optimizes the query cost estimation model for partitioned tables (PTS). The optimized model provides more accurate cost estimates in scenarios with many partitions, helping the query optimizer select more efficient execution plans. |
Optimizes the shared memory management of the |
Optimizes the I/O merging logic of the background checkpoint process. |
Bug fixes
Description |
Fixes a cluster crash that might occur when a cursor name is truncated because it exceeds 64 characters. The crash is caused by the accidental removal of the required |
Fixes a memory leak where slab memory might continuously increase during the replay of a two-phase commit transaction. |
Fixes a cluster crash that might occur during data backup and recovery from Object Storage Service (OSS). |
Fixes a cluster crash that might occur during the scale-out of a serverless cluster. The crash is caused by parallel caching of an incorrect cache ID. |
Fixes an issue with |
Fixes an accounting issue with |
Fixes an issue where the LSN iterator of the LogIndex might read an old log sequence number (LSN) in specific scenarios. |
Fixes a logic bug in the relation size cache (RSC) feature when it processes global tablespaces. |
Fixes a loading position issue with the |
Fixes an issue where the access condition for system tables was missing in the password_encryption check hook. |
Fixes an issue where a subsequent call failed because the recreation of an expired |
Fixes an issue where an autonomous transaction could not be executed normally when it was called in a |
Fixes a memory leak in the on-demand replay feature of the LogIndex. |
Fixes an issue where the shared memory parameter |
Fixes an issue where the rollback behavior was inconsistent with expectations when a transaction was rolled back to an existing savepoint with the same name. |
Fixes an issue where |
Fixes a parsing error that might occur when the same alias is used to reference columns in different tables in a join expression. |
2.0.14.17.34.0 (2025.07)
New features
Description | References |
Supports switching the default index type created for partitioned tables. You can set the index type to | |
Supports partition pruning when the partition key is C Collation and a LIKE prefix expression is used. | - |
Supports higher priority for regular functions over synonyms that point to functions with the same name during function calls. | - |
Supports creating public and private variables with the same name within a package. | |
Supports using collection type variables as default values for parameters in package functions. | |
Supports using | |
Supports the | |
Supports committing or rolling back transactions in the PL/SQL | |
Supports the | - |
Supports the | |
Supports the | |
Supports the | - |
Supports using SQLCODE error codes in exception scenarios such as | |
Supports the | |
Supports binding untyped parameters in DO anonymous blocks. | - |
Supports accessing rowid using the | - |
Upgrades the syntax logic for CALL functions to support more JDBC binding parameter usages. | |
Supports using externally declared cursors in subfunctions. | - |
Supports using package functions in cursor SQL definitions within packages. | - |
Supports DES and 3DES encryption and decryption algorithms in the DBMS_OBFUSCATION_TOOLKIT package. | |
Supports using duplicate aliases in JOIN conditional expressions under valid conditions. | - |
Supports retrieving rowid columns from subqueries. | - |
Performance optimizations
Description |
Optimizes |
Optimizes the execution efficiency of |
Optimizes the cost model for partitioned table plan acceleration (PartitionedTable Scan) to provide more accurate estimates in scenarios with many partitions. |
Bug fixes
Description |
Fixes an incorrect prompt message for the |
Fixes an issue where the get, get_Object, and get_Array methods for JSON composite types could not return NULL. |
Fixes an issue where typmod information for variable-length elements in collection types was lost, which caused length constraints to be ineffective. |
Fixes incorrect memory release issues in the PL/SQL context. |
Fixes an issue where OUT parameters in packages were not correctly assigned NULL values when used as input parameters. |
Fixes an issue where |
Fixes an issue where package record fields were incorrectly modified when passed as parameters. |
Fixes potential deadlocks in autonomous transactions. |
Fixes a logic error in parameter type validation when subfunction parameters have default values. |
Fixes compatibility issues with Date data types and adds support for the |
2.0.14.17.33.0 (2025.06)
New features
Description | References |
The spatio-temporal database (GanosBase) is upgraded to version 7.6. | |
Adds support for accessing variables declared in a function using the | |
Adds support for three-dimensional associative arrays and built-in methods. | |
Adds compatibility with DISTINCT aggregate functions. | |
Adds support for MULTISET CAST operations for collection types. This lets you convert query results to specified collection types. | |
Adds support for converting historical child partition tables of | |
Adds support for modifying the | |
Adds support for modifying the | |
Adds support for using function | |
Adds support for using variables of the | - |
Adds support for ignoring default values for function parameters in the | - |
Adds support for calling package functions from local functions. | - |
Adds support for calling private functions from subfunctions in a | - |
Adds support for | - |
Adds support for implicit type conversion from the | - |
Adds support for one-dimensional | - |
Adds support for ignoring | - |
Adds support for ignoring | - |
Adds support for graceful replacement of | - |
Adds support for more matching rules for the | - |
Adds support for using the | - |
Updates the | - |
Adds support for the | - |
Adds support for outputting Search Path information in error logs. | - |
Adds support for detailed error log printing in PL/SQL. | - |
Updates the length of a single audit log to 32 KB. | - |
Performance optimizations
Description | |
Optimized the implementation logic for | |
Improves the execution speed of | |
Bug fixes
Description |
Fixes an issue where uppercase column names were not properly adapted to |
Fixes several issues related to |
Fixes stability issues caused by incorrect context switching in PL/SQL. |
Fixes a crash that occurred when |
Fixes an issue in parallel replay where the |
Fixes an issue where |
2.0.14.17.32.0 (2025.05)
New features
Description | References |
The spatio-temporal database (GanosBase) is upgraded to version 7.5. | |
Supports the Oracle-compatible | - |
Supports the | - |
Supports constraints on | - |
Supports using the quoted | - |
Supports existence checks for | - |
Supports using reserved keywords as function parameter names when you call stored procedures or functions. | - |
Supports using | - |
The | - |
Supports directly using cursors without parameters in | - |
Does not support defining | - |
Supports the | |
Supports using multiple layers of nested parentheses around tables in SQL queries. | - |
Supports using reserved keywords as label names in | - |
Supports the | - |
Supports using the | - |
Supports using the | - |
Supports using keywords as loop variable names in | - |
Supports the REFRESH ON DEMAND syntax for materialized views. | - |
Supports the | - |
Supports the | - |
Allows skipping update check fields when you define views. | - |
Supports the | - |
Supports comments in the | - |
Makes the HIGH_VALUE column in the SER_TAB_PARTITIONS view compatible with Oracle. | - |
Supports creating child classes using FORCE UNDER. | - |
Supports using package variables as query conditions or parameters in subqueries. | - |
CREATE TABLE statements now support the CACHE and NOCACHE syntax. | - |
ALTER TYPE statements now support adding or dropping multiple columns at the same time using the ADD/DROP syntax. | - |
Supports the | - |
The XMLType type now includes the Extract, GetStringVal, Extract, ExtractValue, ExistsNode, and Xmlsequence functions. These functions enhance XML data parsing and processing capabilities. | |
ROW triggers for partitioned tables now support the ALTER TRIGGER ENABLE/DISABLE syntax. | |
Multiple built-in views and functions, including | - |
Bug fixes
Description |
Fixes an issue where |
Fixes the definition of DETERMINISTIC semantics in functions. |
Fixes an issue where Function Out parameters were registered but not executed in short-circuit evaluation scenarios. |
Fixes an issue where pkgvar nodes were not parsed and processed for output. |
Fixes an issue where |
2.0.14.15.31.0 (2025.04)
New features
Description | References |
The spatio-temporal database (GanosBase) is upgraded to version 7.4. | |
Supports the Oracle-compatible | - |
Supports the MONITORING keyword in table DDL statements to enable monitoring-related statistics collection. | - |
Supports functions in a Package that depend on types created later in the same package. | - |
Supports using the | - |
Supports creating DDL triggers based on SCHEMA and DATABASE. | - |
Supports managing system triggers using ALTER TRIGGER ENABLE/DISABLE. | - |
Supports creating temporary tables using parentheses for subqueries with aliases in the FROM clause of a SELECT statement. | - |
Supports using quoted ROWNUM. | - |
Supports the ALL_COL_COMMENTS view, which is used to display comments on all tables, views, and their related columns in the database. | - |
Supports MERGE INTO subqueries. | - |
Supports the USERENV function, which is used to obtain information about the current user session. | - |
Supports case-insensitive access to Package names. | - |
Optimizes the V$SESSION view with several new columns including |
Performance optimizations
Description | References |
Optimizes the DBMS_UTILITY.FORMAT_CALL_STACK format to avoid printing unnecessary FORMAT_CALL_STACK information. | |
Optimizes the execution efficiency of associative arrays as function parameters and reduces the default memory size of associative arrays to improve memory usage efficiency. | - |
Bug fixes
Description |
Fixes a crash that occurred when you returned associative arrays in the |
Fixes an issue where the STRICT attribute of functions in DBMS_APPLICATION_INFO prevented NULL values from being set. |
Fixes an issue where uppercase column names caused ORDER BY and other clauses to fail to recognize them. |
Fixes a crash that occurred when you viewed the definition of views created using nested aggregate syntax. |
Fixes an error in RECORD scenarios when stored procedure OUT parameters contain variable-length types and collection types. |
Fixes an issue in PL/SQL where resources might be accessed after they were released following a transaction commit. |
Fixes a crash caused using |
Fixes an issue where |
Fixes an issue where hour, minute, and second precision was lost for DATE types in JSON and XML. |
2.0.14.15.30.0 (2025.03)
New features
Description | References |
Adds the | |
Delays the wait for synchronous DDL until the transaction commit phase. | - |
Supports using | - |
Supports using different column names with the same alias in a statement and supports conflict detection based on | - |
Supports implicit type conversion for numeric types in function OUT parameters. | - |
Bug fixes
Description |
Fixes potential Global Index errors in cross-partition update and partition pruning scenarios. |
Fixes potential errors that occurred when you attached subpartitions when a Global Index was used as a foreign key. |
Prohibits attaching foreign tables to partitioned tables that have a Global Index. |
2.0.14.15.29.0 (2025.02)
New features
Description | References |
The spatio-temporal database (GanosBase) is upgraded to version 7.3. | |
Supports modifying parameters related to Cost Based Query Transformation (CBQT) in the console. | |
Supports running schema migration with redundant | - |
| - |
Performance optimizations
Description |
Improves the efficiency of |
2.0.14.13.28.0 (2025.01)
New features
Description | References |
Supports the statement outline feature. This feature automatically adds hints to specific types of SQL statements to accurately control the execution plan of SQL queries without affecting business applications. | |
Supports the Cost Based Query Transformation (CBQT) framework. This framework can significantly improve the execution efficiency of some complex queries based on cost-based query transformation. | |
Supports the subquery pushdown query rewrite feature to improve the execution efficiency of SQL statements that contain IN or ANY clauses. | |
The spatio-temporal database (GanosBase) is upgraded to version 7.2. | |
The | |
Supports modifying the | |
Supports modifying the | |
Tiered storage supports the | |
Supports scenarios in which concurrent updates or delete operations are performed on a partitioned table that uses a global index. The system waits until a row that is locked due to another transaction becomes available. After the lock is released, the system obtains the most recent version of the row, performs the necessary conditional calculations on the updated row, and then executes the intended operations. | - |
Supports the | - |
Supports the | - |
Supports the SYS.ODCIVarchar2List type. | - |
Supports the DBMS_TRANSACTION built-in package. | - |
Supports the UTL_TCP built-in package. | - |
Supports associative arrays in built-in packages such as DBMS_SQL and DBMS_OUTPUT. | |
Supports using | - |
Supports specifying default values for parameters when you define a cursor (CURSOR). | |
Supports deleting a range of a collection type. | - |
Supports declaring variable-length arrays using | - |
Performance optimizations
Description | References |
Supports iterative scanning of vector indexes. |
Bug fixes
Description |
Fixes an issue where indexes are not recommended for JOIN operations. |
Fixes an issue where the cost of using global indexes is overestimated in specific scenarios. |
Fixes potential out-of-memory (OOM) issues with |
Fixes an issue where the |
Fixes a stability error that occurs when a package is created and used. |
Fixes a crash that occurred when different functions in a package referenced fields of |
Fixes an exception that occurred when a function returned a |
Fixes an error with the |