1. Version Overview
[Release Date: Nov 25, 2025]
IvorySQL 5.0, based on PostgreSQL 18.0, introduces significant Oracle compatibility improvements, PL/iSQL enhancements, and new globalization capabilities while refreshing packaging, automation, and tooling. For a comprehensive list of updates, please visit our documentation site.
2. Enhancements
-
PostgreSQL 18.0
-
An asynchronous I/O (AIO) subsystem that can improve performance of sequential scans, bitmap heap scans, vacuums, and other operations.
-
pg_upgrade now retains optimizer statistics.
-
Support for "skip scan" lookups that allow using multicolumn B-tree indexes in more cases.
-
uuidv7() function for generating timestamp-ordered UUIDs.
-
Virtual generated columns that compute their values during read operations. This is now the default for generated columns.
-
OAuth authentication support.
-
OLD and NEW support for RETURNING clauses in INSERT, UPDATE, DELETE, and MERGE commands.
-
Temporal constraints, or constraints over ranges, for PRIMARY KEY, UNIQUE, and FOREIGN KEY constraints.
-
For further details, visit PostgreSQL’s release notes.
3. New Features
3.1. 21 New Oracle Compatibility Features
-
Oracle-compatible ROWID support: Feature #126
Ensures IvorySQL row identifiers align with Oracle semantics for seamless cross-database tooling. -
PL/iSQL CALL invocation syntax: Feature #764
Adds the Oracle-styleCALLentry point so stored procedures can be invoked consistently. -
PL/iSQL
%ROWTYPEsupport: Feature #765
Allows variables to mirror entire table or cursor rows for concise PL/iSQL coding. -
PL/iSQL
%TYPEsupport: Feature #766
Enables variables to adopt the data type of existing columns or variables to reduce drift. -
Case-sensitive compatibility switch: Feature #767
Preserves identifier case to match Oracle behavior when required. -
NLS parameter compatibility: Feature #768
Honors Oracle-style NLS settings such asNLS_DATE_FORMATandNLS_TIMESTAMP_FORMAT. -
Empty string to NULL translation: Feature #769
Converts zero-length strings to NULL to match Oracle compatibility rules. -
Parser switching capability: Feature #770
Adds toggles between Oracle and PostgreSQL parsers for per-session flexibility. -
GB18030 database encoding: Feature #771
Provides GB18030 initialization and create-database options for full Chinese market coverage. -
Oracle-compatible
SYS_GUID: Feature #773
Implements the OracleSYS_GUIDfunction to generate RAW-based GUIDs. -
Oracle-compatible
SYS_CONTEXT: Feature #774
Delivers the OracleSYS_CONTEXTAPI for querying session and environment metadata. -
Oracle-compatible
USERENV: Feature #775
Adds theUSERENVfunction so sessions can inspect Oracle-style contextual details. -
Oracle-compatible function syntax: Feature #776
Supports Oracle constructs such as EDITIONABLE/NONEDITIONABLE,RETURN,IS, andOUT … NOCOPYoptions. -
Oracle-compatible procedure syntax: Feature #777
Enables procedure DDL with Oracle options, EXEC invocation, and ALTER PROCEDURE support. -
libpq OUT parameter plumbing: Feature #778
Extends client protocol handling so OUT parameters can be consumed like OCI. -
Procedure OUT parameter support: Feature #779
Allows stored procedures to declare IN, OUT, and IN OUT modes per Oracle conventions. -
Function OUT parameter support: Feature #780
Permits Oracle-style OUT parameters within functions, including IN OUT combinations. -
Nested subprograms: Feature #781
Introduces support for declaring functions or procedures within other subprograms, including overloading. -
Oracle-compatible
INSTR: Feature #782
Matches OracleINSTRbehavior for substring searches and position checks. -
Oracle-compatible FORCE VIEW: Feature #783
Lets views be created even when referenced objects do not yet exist, mirroring Oracle’s FORCE option. -
Oracle-compatible LIKE operator: Feature #784
Aligns pattern-matching semantics with Oracle for predictable wildcard behavior.
3.2. Online Trial and Multi-Platform Distribution Packages
-
Online Experience: IvorySQL v5.0: Featuare #887
An interactive, browser-based environment will be launched to allow users to explore and evaluate IvorySQL v5.0 in real time — no installation required. -
Packaging for All Platforms: Featuare #949
Provides multi-platform media packages for X86、ARM、MIPS、LoongArch architecture.
3.3. Cloud-Native & Containerized
-
Containerized Deployment Support (Docker Compose & Docker Swarm): Supports deployment of standalone IvorySQL databases and high-availability clusters in Docker Swarm and Docker Compose environments.
-
Containerized Deployment Support (Kubernetes): Supports deployment of standalone IvorySQL databases and high-availability clusters on Kubernetes (K8S) using Helm.
-
IvorySQL Operator v5 released (Kubernetes): The IvorySQL Operator v5 has been adapted to support IvorySQL v5.0, with upgrades to system component versions and database extension versions.
-
IvorySQL Cloud v5 released (Unified Lifecycle & Visual Control Plane): Offers a fully managed, graphical control plane that handles IvorySQL v5 database subscriptions, orchestrates end-to-end lifecycle operations, and integrates surrounding ecosystem services.
3.4. Support for 10 Additional PostgreSQL Extensions
-
pg_cron: Feature #882
Scheduled job execution within the database layer will be available through pg_cron integration. -
pgAudit: Feature #929
Provides detailed session and/or object audit logging via the standard PostgreSQL logging facility. -
PostGIS: Feature #880
Spatial data processing and geospatial analytics will be enabled through PostGIS compatibility. -
pgRouting: Feature #881
Network and routing analysis features will be introduced with pgRouting support. -
PGroonga: Feature #879
Full-text search capabilities will be enhanced via planned PGroonga support. -
ddlx: Feature #877
Support for ddlx to enable advanced schema introspection and automated DDL generation. -
pgsql-http: Feature #883
Allow the database to initiate HTTP/HTTPS requests internally, enabling seamless communication between the database and external web services. -
system_stats: Feature #946
System level statistics will be provided by system_stats support. -
plpgsql_check: Feature #915
Static code analysis on PL/pgSQL functions to identify errors, warnings, and potential issues before runtime execution -
pgvector: Feature #878
Integration with pgvector to empower AI/ML workloads through native vector similarity search.
4. Fixed Issues
-
Repaired
unused_oidsandduplicate_oidscatalog tooling so header scans correctly detect conflicts without false positives: Issue #841 -
Added
.gitignorecoverage forlibpq/ivytestartifacts to prevent generated binaries and logs from polluting developer trees: Issue #843 -
Extended GitHub workflow regression runs to cover builds configured with
--with-libnuma, preventing future breakages on NUMA-enabled hosts: Issue #869 -
Enabled
psqlusers to access CREATE PACKAGE syntax help via\h create package, closing the CLI documentation gap for PL/iSQL packages: Issue #936 -
Eliminated the MainLoop dangling-pointer scenario that triggered intermittent segmentation faults under concurrency stress: Issue #898
-
Re-enabled
oracle_test/modules/*/sqlcases by fixing harness assumptions so Oracle-compatibility suites execute end-to-end again: Issue #897 -
Updated
README.mdandREADME_CN.mdto reflect IvorySQL v5 feature set, packaging, and onboarding instructions: Issue #896 -
Corrected globally unique index enforcement so related regression tests now pass reliably across supported platforms: Issue #894
5. Source Code
IvorySQL’s development is maintained across four main repositories:
-
IvorySQL database source code: https://github.com/IvorySQL/IvorySQL
-
IvorySQL official website: https://github.com/IvorySQL/Ivory-www
-
IvorySQL documentation: https://github.com/IvorySQL/IvorySQL-docs
-
IvorySQL Docker: https://github.com/IvorySQL/docker_library
6. Contributors
The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.
-
Carlos Chong
-
ccwxl
-
Cédric Villemain
-
elodiefb
-
Fawei Zhao
-
Ge Sui
-
Grant Zhou
-
Imran Zaheer
-
jerome-peng
-
Jiaoshun Tian
-
luss
-
Martin Gerhardy
-
msdnchina
-
omstack
-
otegami
-
rophy
-
Shaolin Chu
-
Shawn Yan
-
Shihua Yang
-
Shiji Niu
-
Shuisen Tong
-
shlei6067
-
sjw1933
-
Xiangyu Liang
-
Xiaohui Liu
-
Xinjie Lv
-
xuexiaoganghs
-
Xueyu Gao
-
yangchunwanwusheng
-
Yanliang Lei
-
Yasir Hussain Shah
-
Yuan Li
-
Zheng Tao
-
Zhenhao Pan
-
Zhuoyan Shi