All Products
Search
Document Center

PolarDB:2026

Last Updated:Mar 26, 2026

This topic describes the feature updates of and PolarDB for PostgreSQL (Compatible with Oracle), including the release notes for minor engine versions.

Note
  • 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) changed to a 6-digit format on February 26, 2025 (UTC+8). For more information about the changes and the mapping between the old and new version numbers, see PolarDB minor engine version format update.

2.0.14.20.42.0 (March 2026)

New features

Description

References

SQL capabilities

Supports restricting user logins to specific IP addresses.

-

Supports point-in-time recovery (PITR) based on timestamps (TSO).

-

Supports the DynamoDB capabilities: ReturnValuesOnConditionCheckFailure, UpdateTable, and TimeToLive.

Compatibility and limitations

Supports modifying the password_encryption parameter.

-

Supports using the substring keyword as a function parameter name.

-

Adds support for DATABASE LINK objects in the dba_views view.

-

The dba_roles view now supports more columns.

-

The fn_getpy function can now be used to obtain the pinyin of Chinese characters.

-

Adds support for the V$DATABASE view.

-

Adds support for the SYS_OP_MAP_NONNULL function.

-

The to_date function now supports the xff format.

-

The systimestamp function now includes time zone information in its return value.

-

Adds support for the DBMS_PARALLEL_EXECUTE built-in package.

-

Adds support for using the [schema_name].[package_name] syntax in the END statement when you create a PACKAGE or PACKAGE BODY.

-

Supports using aliases from the REFERENCING clause in a trigger's WHEN clause.

-

Supports converting uppercase names to lowercase for TYPE BODY objects.

-

Supports specifying a partition parent table as the target in an EXCHANGE PARTITION operation.

-

Extensions

Supports the pgmq extension.

-

Added support for the PolarDB sequence synchronization extension.

-

Performance optimizations

Description

Optimizes the relation size cache (RSC) replay performance for GiST WAL logs.

Optimizes the relation size cache (RSC) replay performance for GIN WAL logs.

Optimizes the execution performance of SQL value functions.

Bug fixes

Description

Fixes an issue where the GRANT ROLE command caused an error when adding the ADMIN OPTION to a user group.

Fixes an issue where package objects were not excluded from the DBA_TAB_COLUMNS view definition.

Fixes an issue where the to_number function behaved incorrectly when the first parameter was a numeric type.

Fixes an issue where flashback queries did not support Oracle mode.

Fixes an issue where SET ROLE in PL/SQL failed to initialize system permissions.

Fixes slow memory growth in DuckDB.

Fixes an issue where the polar_superuser role could not use the pg_squeeze extension.

Fixes an issue where dynamic changes to the polar_scc_enable parameter for global consistency did not take effect immediately.

2.0.14.20.41.0 (February 2026)

New features

Description

References

Compatible with community PostgreSQL 14.20.

Community PostgreSQL 14.20

SQL capabilities

The statement outline feature now supports the normalization of values list.

Statement Outline

Supports partitioned materialized views.

-

Adds support for comparison operators between the varchar and char types.

-

Adds several built-in data types and variables.

-

Supports directly specifying partition names in DML operations.

-

Improves the memory management mechanism of the Global Plan Cache (GPC).

Global Plan Cache (GPC)

Supports using different cases (uppercase or lowercase) for a type name in the CREATE TYPE statement and its constructor function.

-

The ALTER TABLE statement now supports the DISABLE keyword when you add a foreign key constraint or a CHECK constraint. This allows you to add a disabled constraint and enable it later.

-

Adds support for using log as a stored procedure name and calling it directly in PL/SQL.

-

Adds support for creating an index with the same name as a sequence. The system automatically appends an _idx suffix to the index name to prevent conflicts.

-

The NLS_DATE_LANGUAGE parameter of the TO_DATE function now supports the ENGLISH option.

-

Adds existence checks for TABLE and DATABASE LINK to the validity checks for PL/SQL stored procedures.

-

The return value length of the rawtohex(sys_guid()) function is adjusted to 32 characters to be consistent with Oracle Database behavior.

-

Field references in NEW and OLD pseudo-records within triggers are now case-insensitive.

-

Supports the syntax for creating shared tables. The SHARING keyword is ignored, and a regular table is created.

-

The dba_tab_privs view now displays permission information for materialized views.

-

The UTL_FILE package now supports encrypted transmission for remote file read and write operations.

-

The ora_sql_txt function can now be used in system triggers to get the currently executing DDL statement.

-

The built-in DBMS_SQL package now supports handling the ROWID type and the LAST_ERROR_POSITION function.

DBMS_SQL

Adds support for the syntax to grant the EXEMPT IDENTITY POLICY system permission.

-

Supports Oracle-style unique constraint checks, which include columns that contain null values.

-

The pg_get_function_identity_arguments function now supports parsing data types in PL/SQL packages.

-

Extensions

The SQL review extension now supports the schema parameter, which allows you to scope audit rules to a specific schema.

polar_sql_inception (SQL review)

Introduces the flashback query feature.

-

Updates the PGVector (vector search) extension.

PGVector (vector search)

IMCI

IMCI now supports character and numeric types for Oracle mode compatibility.

-

The IMCI extension is now enabled by default and supports using the USING CSI syntax to create an IMCI on all columns at once.

Performance optimizations

Description

Optimizes the statistics collection for I/O merging during dirty page flushing.

Optimizes WAL write-related parameters.

Enables I/O merging by default for background flushers (Checkpointer and BgWriter).

Bug fixes

Description

Fixes an error that occurred when using the set keyword in set operations.

Fixes an issue where operations on partitioned tables failed due to a missing internal Node definition.

Fixes a security vulnerability in the age/polar_age extensions when loading data from a file.

Fixes a memory leak issue in parallel replay processes caused by SMgrRelationHash.

Fixed an error that could occur with the anydata type when you call stored procedures such as setNumber.

Fixes an issue where the ALTER TYPE statement failed to correctly modify the associated namespace and FUNCTION owner.

Fixes a crash that could occur when debugging the initialization section of a PACKAGE with the DBMS_DEBUG tool.

Fixes an issue where the ALTER EVENT TRIGGER statement failed to correctly modify the FUNCTION owner.

2.0.14.19.40.0 (January 2026)

New features

Description

References

Materialized views now support the use of subqueries, EXISTS expressions, and common table expressions (CTEs) in their definitions.

Adds support for columns related to password management and identity authentication in the dba_users, all_users, and user_users views.

-

When you connect to PolarDB with a DATABASE LINK, built-in function operators are pushed down to the remote database for execution by default.

CREATE [PUBLIC] DATABASE LINK

Adds support for disabling the WITH RECURSIVE behavior by default.

WITH queries (common table expressions)

The ALTER TABLE ADD CONSTRAINT statement now supports the USING INDEX ENABLE clause.

Add constraints

The escape semantics of the LIKE expression are now consistent with Oracle. The backslash (\) is no longer the default escape character, ensuring SQL migration compatibility.

-

Column types in CREATE TABLE statements now support case-insensitive comparison. This allows you to specify data types in either uppercase or lowercase when defining a table schema.

-

Adds support for using SQLERRM as the default value for function parameters.

-

You can now use the [stored_procedure_name].[sub_function/sub_stored_procedure_name] syntax to reference sub-functions or sub-stored procedures within a package.

-

The oracle_fdw foreign table now supports the pushdown of the 64-bit date type and access to the remote dual table. This improves foreign table query performance and compatibility.

oracle_fdw (Oracle foreign tables)

PL/SQL now supports using a parameterized cursor%rowtype as a parameter type.

-

Adds support for using package variables as default values for fields in TYPE IS RECORD.

-

Added support for sys_context('USERENV', 'NLS_SORT') to retrieve the sort order of the current session.

SYS_CONTEXT

Supports the CREATE BITMAP INDEX syntax for improved Oracle compatibility. Indexes created with this syntax are B-tree indexes.

-

Privileged accounts can now use the DBMS_STATS built-in package to collect and manage database statistics.

DBMS_STATS

Adds support for the ALTER SESSION SET CURRENT_SCHEMA command to switch the default schema of the current session.

-

Adds support for standard data types in the DBMS_STANDARD package to enhance PL/SQL compatibility.

-

Elements of one-dimensional associative arrays can now be variable-length arrays or nested tables, allowing you to build more complex data structures.

-

References to :new.field and :old.field in triggers are now case-insensitive to improve code compatibility.

-

The CREATE SEQUENCE statement now supports the GLOBAL keyword to be compatible with Oracle syntax.

CREATE SEQUENCE

PL/SQL code blocks can now catch the no_constraint exception to handle specific constraint violations.

-

PL/SQL now supports the INTEGER(precision) type definition to be compatible with Oracle's numeric type precision specifications.

-

The CREATE VIEW statement now supports the WITH READ ONLY syntax to create a read-only view.

CREATE VIEW

Adds support for directly using RECORD variables defined in a package in the INSERT statement of a package function. This simplifies data insertion operations.

-

References to record.field in PL/SQL now support case-insensitive matching to improve code compatibility.

-

Introduces PolarPlus, a client compatible with SQLPlus.

PolarPlus

Introduces the pg_partman extension to simplify managing time-based or ID-based table partitions.

pg_partman (partition manager)

Upgrades the rum extension to version 1.3.15, enhancing the performance and stability of full-text search based on RUM indexes.

rum (full-text search acceleration)

The polar_sql_inception (SQL review) extension now supports an execution feature.

polar_sql_inception (SQL review)

Introduces the polar_plsql_profiler extension to monitor and analyze the performance of PL/SQL functions and stored procedures, helping you identify code bottlenecks.

polar_plsql_profiler

Performance optimizations

Description

Optimizes the pre-allocation mechanism for the xlog queue.

Optimizes the initialization process of the WAL buffer.

Optimizes the sleep time of the WAL sender process on read-only nodes.

Optimizes the processing logic of the relation size cache (RSC) for WAL logs of the SMGR_TRUNCATE type to accelerate the replay speed on read-only nodes.

Bug fixes

Description

Fixes an issue where parameters set by using set_config are returned inconsistently when the proxy enforces keyword settings.

Fixes an issue where adding a column with a default value to a partitioned table caused the database to crash.

Fixes an issue that could occur when you nest function_name.variable expressions in PL/SQL.

Fixes an error when using the UTL_FILE package to write a NULL field to a remote file.

Fixes an error that occurred when converting a string that contains a decimal point to an integer.

Fixed an issue where the ALTER TRIGGER statement incorrectly reported that a trigger does not exist because a synonym (SYNONYM) affected the visibility check.

Fixes an issue where the to_date function did not support non-numeric month representations when the MM format was used.

Fixes a syntax conflict between the TIMESTAMP and XML types in EXTRACT expressions.

Fixes an issue where DBMS_MVIEW.REFRESH did not support refresh modes such as FORCE and FAST. In this version, all modes perform a full refresh.

Fixed an issue that caused an error when creating a global temporary table with a generated column (Generated Column).

Fixes a syntax error that occurred when the pg_dump tool exported SYNONYM and DIRECTORY objects.

Fixes a potential database stability issue caused by exceeding the maximum number of bound parameters in an inline procedural language block.

Fixes an incorrect internal partition mapping after splitting a partitioned table.

Fixes incorrect handling of wildcard characters in LIKE expressions.