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