IvorySQL 5.0
Version Overview
[Release Date: Nov 25, 2025]
IvorySQL 5.0 is built on PostgreSQL 18.0 and introduces major upgrades in Oracle compatibility, ecosystem component integration, and cloud-native capabilities. It also significantly enhances usability by providing mainstream full-platform installation packages and a smooth, seamless online experience. For a comprehensive list of updates, please visit our documentation site.
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.
New Features
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-style
CALLentry 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 as
NLS_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.
Online Trial and Multi-Platform Distribution Packages
-
Online Experience: IvorySQL 5.0: Feature #887 An interactive, browser-based environment will be launched to allow users to explore and evaluate IvorySQL 5.0 in real time — no installation required.
-
Packaging for All Platforms: Feature #949 Provides multi-platform media packages for X86, ARM, MIPS, LoongArch architecture.
Cloud-Native & Containerized
-
Containerized Deployment Support (Docker Compose & podman & Docker Swarm): Supports deployment of standalone IvorySQL databases and high-availability clusters in Docker Compose , podman and Docker Swarm environments.
-
Containerized Deployment Support (Kubernetes): Supports deployment of standalone IvorySQL databases and high-availability clusters on Kubernetes (K8s) using Helm.
-
IvorySQL Operator 5 released (Kubernetes): The IvorySQL Operator 5.0 has been adapted to support IvorySQL 5.0, with upgrades to system component versions and database extension versions.
-
IvorySQL Cloud 5.0 released (Visual Database Lifecycle Management Platform): Offers a fully managed, graphical control plane that handles IvorySQL 5.0 database subscriptions, orchestrates end-to-end lifecycle operations, and integrates surrounding ecosystem services.
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.
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 - 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 5.0 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
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
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
- Fu Bei
- Fawei Zhao
- Ge Sui
- Grant Zhou
- Imran Zaheer
- jerome-peng
- Jiaoshun Tian
- luss
- Martin Gerhardy
- Mingran Feng
- omstack
- otegami
- Ruike Sun
- rophy
- Shaolin Chu
- Shawn Yan
- Shihua Yang
- shlei6067
- Shuisen Tong
- Shuntian Jiao
- Steven Niu
- sjw1933
- Xiangyu Liang
- Xiaohui Liu
- Xinjie Lv
- xuexiaoganghs
- Xueyu Gao
- yangchunwanwusheng
- Yanliang Lei
- Yasir Hussain Shah
- Yuan Li
- Zhe Zhang
- Zheng Tao
- Zhenhao Pan
- Zhuoyan Shi