All Products
Search
Document Center

PolarDB:2025

Last Updated:Oct 29, 2025

This topic describes the product feature updates for PolarDB for PostgreSQL (Compatible with Oracle), including details about minor engine version updates.

Note

2.0.14.18.37.0 (2025.10)

New features

Description

References

The spatio-temporal database (GanosBase) is upgraded to version 7.8.

Release notes for GanosBase

Adds support for the pg_partman extension for managing partitioned tables.

Use the pg_pathman extension

Adds support for the hypopg extension for virtual indexes.

hypopg

Adds a mechanism to prevent the global execution plan cache from caching a plan if the query plan includes a custom scan.

Global execution plan cache

Adds support for audit logs to print information about binding parameters in SQL statements that use the extended protocol.

-

Adds a distinction for the max_standby_streaming_delay parameter between read-only (RO) nodes and standby nodes.

-

Adds support for OUTER JOIN operations in real-time materialized views.

Real-time materialized views

Adds support for the TRANSLATE(... USING NCHAR_CS) expression, which is used to convert strings between character sets.

TRANSLATE USING expression

Adds support for the IS JSON and IS NOT JSON expressions, which are used to determine whether a field is in a valid JSON format.

JSON functions and expressions

Adds support for using the SYS_CONTEXT function to obtain attribute information such as INSTANCE_NAME.

SYS_CONTEXT

Adds support for Oracle-compatible system permission management.

System permissions

Adds support for splitting the default partition of a partitioned table (SPLIT PARTITION ... DEFAULT).

-

Adds support for the DBA_OBJECTS view to display trigger information on partitioned tables.

-

Adds support for using the mod operator for modulo operations in PL/SQL stored procedures.

-

Adds support for the DROP SYNONYM FORCE syntax.

-

Adds support for the CREATE VIEW FORCE syntax.

-

Adds support for PIVOT queries whose preceding subqueries contain parentheses.

-

Adds support for the USER_SOURCE system view to display the source code of stored procedures, triggers, and stored procedures in packages.

-

Adds the feature that allows a RECORD type variable in PL/SQL to be used as an input parameter for a function of the TABLE%ROWTYPE type.

-

Adds support for the ALTER TRIGGER command to find a lowercase trigger using its uppercase name.

-

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 commit CSN might not be updated on specific paths when the Commit Sequence Number (CSN) is in generation-advancing mode.

Fixes an issue where the memory protection mechanism was not triggered correctly because of an error in calculating container memory usage (the memory of pfsd was incorrectly included). This enhances the stability and accuracy of resource management for the cluster under high memory loads.

Fixes an issue where an incorrect permission check error occurred in specific scenarios when you execute the ALTER PACKAGE OWNER command.

Fixes an issue where specifying a partition using the PARTITION (...) syntax when you query a partitioned table might cause an unnecessary escalation of the lock level.

Fixes an issue where an exception might occur when you call the DBMS_UTILITY package in a CALL statement to print stack information.

Fixes an issue where the data_length column was displayed abnormally in the DBA/USER/ALL_TAB_COLUMN series of views.

2.0.14.17.36.0 (2025.09)

New features

Description

References

Adds compatibility with DynamoDB.

-

Adds support for specifying a NESTED TABLE in a CREATE TABLE statement for compatibility with Oracle syntax.

-

Adds the feature that allows subfunctions to use package variables and external variables as their default parameter values.

Local programs

Adds compatibility with the Oracle built-in package UTL_HTTP.

UTL_HTTP

Adds support for Oracle-style GRANT statements for authorizing database objects.

-

Adds support for associative array constructors for compatibility with Oracle syntax.

Associative array constructors

Adds a feature to associate a sequence with a column using the GENERATED BY DEFAULT ON NULL clause in a CREATE TABLE statement for compatibility with Oracle syntax. When a NULL value is inserted into this column, a value is automatically retrieved from the specified sequence.

Guide to using sequences and auto-generated columns

Adds support for MULTISET operations on collection types for compatibility with Oracle syntax.

Collection operations

Adds support for privileged accounts to grant access permissions on system views such as DBA_OBJECTS to other accounts.

-

Adds support for using the SQLCODE built-in function as the default value for package function parameters to improve code compatibility.

-

Adds compatibility with Oracle mode for the return type of the DECODE expression.

DECODE expression

Adds support for using the DO keyword as a package name.

-

Adds compatibility with the Oracle built-in package DBMS_DESCRIBE. This package provides parameters of stored procedures and functions for dynamic code generation and analysis.

DBMS_DESCRIBE

Adds support for the NVL expression for compatibility with Oracle syntax.

-

Adds support for the PROFILE password restriction feature for compatibility with Oracle security policies. This feature includes managing the number of failed logon attempts, password lock time, password lifecycle, and password modification time.

CREATE PROFILE

Adds support for regular users to schedule tasks using the pg_cron extension. This update lowers the permission requirements for task scheduling, allowing non-privileged users to manage and execute scheduled jobs.

-

Adds support for accessing variables within a function using the function_name.variable syntax in PL/SQL expressions for compatibility with Oracle syntax.

-

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 DEFAULT ROLE feature for compatibility with Oracle syntax. This feature lets you set a default role for a user session to simplify permission management.

-

Adds support for the STRING built-in data type.

-

Adds support for calling exceptions defined in a package from a function using the func.exception syntax. This improves code readability and modularity.

-

Upgrades the (+) outer join operator. The upgraded operator supports JOIN operations between a single primary table and multiple foreign tables. This enhancement simplifies query statements that involve multi-table outer joins.

Guide to the Oracle (+) operator

Adds support for users to create the oracle_fdw and postgres_fdw extensions.

-

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 VARCHAR return value type of functions.

-

Adds compatibility with the Oracle built-in package UTL_MATCH. This package provides a series of functions for calculating the similarity between strings.

UTL_MATCH

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 search_path when the package is created. This ensures the correctness of object references and is compatible with Oracle's behavior.

-

Adds support for converting RECORD type elements in a collection type to a composite type. This facilitates the transfer of structured data between SQL and PL/SQL.

Associative arrays

Adds the REOPEN statement to reopen an existing explicit cursor for an associated query for compatibility with Oracle syntax.

-

Adds support for IN/OUT conversions between associative arrays and specific string formats. This facilitates data serialization and deserialization operations.

-

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 NON-SCROLL type by default.

-

Performance optimizations

Description

Optimizes the query performance of parent tables in partitioned tables. You can now use scan hints, such as global index scan or local index scan, on parent tables to guide the optimizer to select more efficient execution plans.

Optimizes the performance of subqueries. The join condition in a subquery can be pushed down to the outer query by rewriting it with a LATERAL join, which improves execution efficiency.

Optimizes the execution performance of NOT IN sublinks by rewriting them as anti-joins to obtain better execution plans.

Optimizes the calculation performance of the pg_total_relation_size function, reducing system overhead when obtaining the relation size.

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 cursor%attribute expression.

Fixes an issue where the database generated a coredump if a required parameter was missing when an aggregate function was created.

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 RECORD type was used as a collection element in a subquery of a cursor SQL.

Fixes an issue where the DBMS_UTILITY.FORMAT_CALL_STACK() function did not respond to interrupt signals while printing stack information.

Fixes a cluster crash that might occur when you use oracle_fdw during the commit of a PL transaction.

Fixes an issue where the saddr field in the v$session compatible view was displayed incorrectly because its content was too long.

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 COMMIT operation.

Fixes a loopback write issue that might occur during the write process of the csn cache.

Fixes an error that occurred when the DECODE function handled inconsistent data types in specific scenarios.

Fixes an issue where the calculation order of the cursor%rowcount attribute was inconsistent with that of Oracle when you fetch data into a FETCH INTO collection type element.

Fixes an issue where an incorrect query result was returned because the optimizer incorrectly optimized the ROWNUM pseudocolumn when it was used in an EXISTS correlated subquery.

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 unlogged table syntax.

-

Adds the postgresql_anonymizer extension, which provides powerful data masking capabilities.

-

Adds implicit conversion from the name type to the varchar type.

-

Adds support for function calls after the XMLELEMENT and XMLAGG functions are supported.

-

Adds support for using two-dimensional or three-dimensional record as elements of a one-dimensional associative array.

-

Adds the pg_permissions extension.

-

Adds support for using the :new and :old record variables in subfunctions of a trigger.

-

Adds support for using collection type fields as OUT parameters.

Adds the dbms_xmlgen built-in package and changes the return value of the newContext function to SUBTYPE.

DBMS_XMLGEN

Adds support for the PRAGMA SERIALLY_REUSABLE syntax to optimize package performance.

-

Adds support for using common table expressions (CTEs) in cursor definitions.

-

Adds support for using a record array as the type for a function parameter.

-

Adds support for using auto_explain at the user session level to troubleshoot slow SQL statements.

-

Adds support for the SET ROLE IDENTIFIED BY syntax.

-

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 UTL_FILE built-in package.

-

Adds support for the COUNT(DISTINCT column) OVER (PARTITION BY column) window syntax. This feature facilitates distinct counting within partitions in analytical queries and simplifies complex data statistics SQL.

-

Adds the fn_getpy and get_pyjm functions. These functions are used to obtain the Pinyin of Chinese characters, which facilitates the processing of Chinese data in business scenarios that require sorting or searching by Pinyin.

Pinyin-related functions

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 rowid in subqueries. This feature lets you use the rowid pseudocolumn in subqueries.

-

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 GROUP BY clause of an upper-level query in a subquery.

-

Performance optimizations

Description

Optimizes the data redistribution process for partitioned tables that use the shard split feature in a PolarDB for PostgreSQL distributed cluster. The execution efficiency of large-scale data redistribution is significantly improved by adjusting the order to first copy data and then create a primary key.

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 DROP BUFFER operations. This reduces unnecessary resource overhead and improves operational efficiency.

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 stats collector process. By detaching the shared memory, the coupling between processes is reduced, and the stability and resource usage efficiency of the statistics collection system are improved.

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 % symbol when you access cursor attributes such as %FOUND.

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 EXISTS correlated subqueries where using ROWNUM could cause ROWNUM to be incorrectly optimized, returning an incorrect result set.

Fixes an accounting issue with mapped_file in the resource manager. A check and handling mechanism for mapped_file resource leaks is added to improve the accuracy and stability of resource management.

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 pg_pathman partitioning extension to ensure that its configuration in the shared_preload_libraries parameter is correctly parsed and loaded.

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 record cache in a package failed.

Fixes an issue where an autonomous transaction could not be executed normally when it was called in a SELECT query statement.

Fixes a memory leak in the on-demand replay feature of the LogIndex.

Fixes an issue where the shared memory parameter polar_forget_queue_shmem_size was incorrectly allocated because of a calculation error.

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 polar_stat_proxy might cause an exception because it was not properly initialized.

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 Global Index or Local Index.

Partitioned table indexes

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.

CREATE PACKAGE

Supports using collection type variables as default values for parameters in package functions.

Collection types

Supports using cursor%rowtype as a function parameter in a package.

Use %ROWTYPE with cursors

Supports the SAVEPOINT feature in the EXECUTE context.

DBMS_TRANSACTION

Supports committing or rolling back transactions in the PL/SQL EXECUTE syntax.

DBMS_TRANSACTION

Supports the DROP TABLE PURGE syntax.

-

Supports the DBMS_TYPES built-in package.

DBMS_TYPES

Supports the NOT INMEMORY clause in CREATE TABLE statements.

CREATE TABLE

Supports the WMSYS.WM_CONCAT function.

-

Supports using SQLCODE error codes in exception scenarios such as no_data_found.

Error handling

Supports the DROP PACKAGE BODY syntax.

DROP PACKAGE BODY

Supports binding untyped parameters in DO anonymous blocks.

-

Supports accessing rowid using the NEW and OLD variables in triggers, such as NEW.rowid and OLD.rowid. NEW and OLD are used to access the new and old row data when the trigger is executed.

-

Upgrades the syntax logic for CALL functions to support more JDBC binding parameter usages.

Java Database Connectivity

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.

DBMS_OBFUSCATION_TOOLKIT

Supports using duplicate aliases in JOIN conditional expressions under valid conditions.

-

Supports retrieving rowid columns from subqueries.

-

Performance optimizations

Description

Optimizes Bitmap Index creation hints.

Optimizes the execution efficiency of UPDATE operations with columnstore index.

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 polar_super_call_all_trigger_event parameter.

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 UPDATE/DELETE RETURNING statements in PL/SQL incorrectly performed variable assignments when 0 rows were affected.

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 limit clause in query syntax.

2.0.14.17.33.0 (2025.06)

New features

Description

References

The spatio-temporal database (GanosBase) is upgraded to version 7.6.

Spatio-temporal database release notes

Adds support for accessing variables declared in a function using the function_name.variable_name syntax within subfunctions.

Support for function namespace access to local variables

Adds support for three-dimensional associative arrays and built-in methods.

Three-dimensional associative arrays

Adds compatibility with DISTINCT aggregate functions.

Support for DISTINCT function feature extensions

Adds support for MULTISET CAST operations for collection types. This lets you convert query results to specified collection types.

Collection type conversion

Adds support for converting historical child partition tables of pg_pathman partitioned tables to OSS storage.

polar_alter_pathman_to_oss

Adds support for modifying the polar_case_sensitive_for_columnref parameter in the console. When this parameter is enabled, you can use uppercase table names to query lowercase table data.

Set cluster parameters

Adds support for modifying the wal_sender_timeout parameter in the console. This parameter controls the timeout period for WAL streaming replication.

Set cluster parameters

Adds support for using function OUT parameters to update external variables in JDBC drivers.

Java Database Connectivity

Adds support for using variables of the SUBTYPE type in a PACKAGE as function return values.

-

Adds support for ignoring default values for function parameters in the PACKAGE BODY to maintain consistency with definitions in the PACKAGE HEADER.

-

Adds support for calling package functions from local functions.

-

Adds support for calling private functions from subfunctions in a PACKAGE.

-

Adds support for UNION ALL operations between the TEXT type and other data types.

-

Adds support for implicit type conversion from the XmlType type to the TEXT type and for the || operator.

-

Adds support for one-dimensional SUBTYPE as the index type and element type of a collection type.

-

Adds support for ignoring typmod for the %type of the VARCHAR2 type.

-

Adds support for ignoring typmod when cursor parameters use the %type type.

-

Adds support for graceful replacement of type body objects.

-

Adds support for more matching rules for the format of the to_date function.

-

Adds support for using the GET keyword as a function name.

-

Updates the dba_objects view with a new created field to record the creation time of objects.

-

Adds support for the gv$lock, gv$open_cursor, gv$session, gv$session_wait, and gv$sqltext views.

-

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 cursor%rowtype and added support for defining a cursor with a SELECT INTO statement.

Improves the execution speed of pg_switch_wal.

Bug fixes

Description

Fixes an issue where uppercase column names were not properly adapted to ORDER BY statements.

Fixes several issues related to cursor in PL transactions.

Fixes stability issues caused by incorrect context switching in PL/SQL.

Fixes a crash that occurred when record was used as a function parameter and its fields contained varray/nested table.

Fixes an issue in parallel replay where the XLOG_BTREE_REUSE_PAGE replay logic did not use a 64-bit FullTransactionId, which caused repeated execution of replay conflict checks.

Fixes an issue where MERGE INTO with nested subqueries would crash.

2.0.14.17.32.0 (2025.05)

New features

Description

References

The spatio-temporal database (GanosBase) is upgraded to version 7.5.

Spatio-temporal database release notes

Supports the Oracle-compatible FOR .. LOOP REVERSE syntax for reverse iteration.

-

Supports the LEVEL keyword in CONNECT BY hierarchical queries and allows TYPE to be used as a field name in a record (RECORD).

-

Supports constraints on RECORD type fields, including DEFAULT value constraints and NOT NULL constraints.

-

Supports using the quoted USER function.

-

Supports existence checks for RECORD fields in the A.B format and effectively avoids potential conflicts with function calls in TYPE BODY.

-

Supports using reserved keywords as function parameter names when you call stored procedures or functions.

-

Supports using OFFSET as a variable, including in variable declarations, as left operands (assignment targets), and as right operands (assignment sources) in SQL statements.

-

The NLSSORT function now supports the SCHINESE_PINYIN_M and SCHINESE_STROKE_M rules.

-

Supports directly using cursors without parameters in OPEN CURSOR() calls.

-

Does not support defining RECORD fields directly as the relation%ROWTYPE type.

-

Supports the ALTER TYPE ADD FUNCTION syntax.

ALTER TYPE

Supports using multiple layers of nested parentheses around tables in SQL queries.

-

Supports using reserved keywords as label names in GOTO statements in PL/SQL.

-

Supports the JSON_OBJECT_T, JSON_ARRAY_T, and JSON_ELEMENT_T types, along with the JSON_OBJECT, JSON_ARRAYAGG, and JSON_SERIALIZE expressions.

-

Supports using the POSITION keyword as a parameter name.

-

Supports using the SELECT FOR UPDATE syntax with ORDER BY.

-

Supports using keywords as loop variable names in FOR LOOP loops.

-

Supports the REFRESH ON DEMAND syntax for materialized views.

-

Supports the DBMS_SPACE built-in package.

-

Supports the DBMS_XMLGEN package.

-

Allows skipping update check fields when you define views.

-

Supports the DBMS_DDL built-in package.

-

Supports comments in the /_ xxx / format and ignores comment nesting checks. For example, /_ */ is treated as a complete comment.

-

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 DBMS_SCHEDULER built-in package, which can be used to configure and manage advanced scheduled tasks.

-

The XMLType type now includes the Extract, GetStringVal, Extract, ExtractValue, ExistsNode, and Xmlsequence functions. These functions enhance XML data parsing and processing capabilities.

XMLType type

ROW triggers for partitioned tables now support the ALTER TRIGGER ENABLE/DISABLE syntax.

Partitioned tables

Multiple built-in views and functions, including STANDARD_HASH, have been comprehensively upgraded.

-

Bug fixes

Description

Fixes an issue where MERGE INTO statements did not support processing source tables that contain subqueries.

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 Record Field in collection types was unexpectedly modified when used as a function parameter.

2.0.14.15.31.0 (2025.04)

New features

Description

References

The spatio-temporal database (GanosBase) is upgraded to version 7.4.

Spatio-temporal database release notes

Supports the Oracle-compatible FOR .. LOOP REVERSE syntax for reverse iteration.

-

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 extract keyword as a function name.

-

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 os_user to enhance view compatibility.

V$SESSION

Performance optimizations

Description

References

Optimizes the DBMS_UTILITY.FORMAT_CALL_STACK format to avoid printing unnecessary FORMAT_CALL_STACK information.

DBMS_UTILITY

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 exception section after you used savepoint in a stored procedure.

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 :new/:old in trigger subfunctions.

Fixes an issue where invisible columns were not processed when you inserted or updated collection type elements.

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 polar_optimizer_enable_limit_adjust_cost parameter to control whether the optimizer uses limit information to generate plans.

Set cluster parameters

Delays the wait for synchronous DDL until the transaction commit phase.

-

Supports using => to specify names for cursor named parameters.

-

Supports using different column names with the same alias in a statement and supports conflict detection based on alias.column_name.

-

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.

Spatio-temporal database release notes

Supports modifying parameters related to Cost Based Query Transformation (CBQT) in the console.

Cost Based Query Transformation (CBQT)

Supports running schema migration with redundant / statements.

-

Upper series functions are adapted for the GBK character set.

-

Performance optimizations

Description

Improves the efficiency of COPY operations during data migration and reduces write blocking time.

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.

Statement outline

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.

Cost Based Query Transformation (CBQT)

Supports the subquery pushdown query rewrite feature to improve the execution efficiency of SQL statements that contain IN or ANY clauses.

Subquery pushdown

The spatio-temporal database (GanosBase) is upgraded to version 7.2.

Spatio-temporal database release notes

The wal2json extension is updated to version 2.6.

wal2json (decode to JSON)

Supports modifying the intervalstyle parameter in the console.

Set cluster parameters

Supports modifying the cron.timezone parameter for the pg_cron extension in the console.

pg_cron (scheduled task)

Tiered storage supports the bigint (millisecond) type when you archive data by timeline.

Tiered storage of cold data

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 ALTER SESSION ENABLE/DISABLE syntax.

-

Supports the CONVERT function.

-

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.

DBMS_SQL, DBMS_OUTPUT

Supports using package.variable % type as a package function parameter type.

-

Supports specifying default values for parameters when you define a cursor (CURSOR).

Cursors

Supports deleting a range of a collection type.

-

Supports declaring variable-length arrays using ARRAY / VARYING ARRAY.

-

Performance optimizations

Description

References

Supports iterative scanning of vector indexes.

PGVector (vector search)

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 bulk write when you query distributed tables with extra-long rows (single rows that exceed 4 MB).

Fixes an issue where the to_date function reported an error for dates in the syyyy format.

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 record type variables from other packages.

Fixes an exception that occurred when a function returned a NULL value for a package variable.

Fixes an error with the dblink extension in rowid scenarios.