IvorySQL

Use HighGo’s open-source IvorySQL kernel to achieve Oracle syntax/PLSQL compatibility based on PostgreSQL clusters.

IvorySQL is an open-source PostgreSQL kernel fork that aims to provide “Oracle compatibility” based on PG.


Overview

The Pigsty PGSQL repository directly provides IvorySQL 5.4 packages compatible with PostgreSQL 18.4 across the currently supported EL, Debian, Ubuntu, and dual-architecture platforms. Online installation uses Pigsty’s pgsql repository; the Professional Edition also provides offline delivery for the corresponding platforms.

Image

Pigsty’s ivorysql package alias points to IvorySQL 5, compatible with PostgreSQL 18. Real package names are mapped by platform variables under roles/node_id/vars/; for example, EL uses ivorysql5, while Debian/Ubuntu uses ivorysql-5.

The last IvorySQL version supporting EL7 was 3.3, corresponding to PostgreSQL 16.3; the last version based on PostgreSQL 17 is IvorySQL 4.4


Installation

Install with Pigsty’s built-in ivory configuration template:

./configure -c ivory
./deploy.yml

Configuration

The following parameters need to be configured for IvorySQL database clusters:

#----------------------------------#
# Ivory SQL Configuration
#----------------------------------#
node_repo_modules: node,infra,pgsql       # use Pigsty node/infra/pgsql repos
pg_mode: ivory                    # IvorySQL Oracle Compatible Mode
pg_packages: [ ivorysql, pgsql-common ]
pg_libs: 'liboracle_parser, pg_stat_statements, auto_explain'
pg_extensions: [ ]                # do not install any vanilla postgresql extensions

When using Oracle compatibility mode, you need to dynamically load the liboracle_parser extension plugin.


Client Access

IvorySQL 5 is equivalent to PostgreSQL 18, and any client tool compatible with the PostgreSQL wire protocol can access IvorySQL clusters.


Available Extensions

The IvorySQL kernel has 95 available extensions. After removing bundled PG Contrib extensions, the following extra extensions remain:

ExtensionVersionDescription
address_standardizer3.5.4Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us3.5.4Address Standardizer US dataset example
age1.7.0AGE database extension
ddlx0.31DDL eXtractor functions
gb18030_20221.0support gb18030 2022 with extension
http1.7HTTP client for PostgreSQL, allows web page retrieval inside the database.
ivorysql_ora1.0Oracle Compatible extenison on Postgres Database
ora_btree_gin1.0support for indexing oracle datatypes in GIN
ora_btree_gist1.0support for oracle indexing common datatypes in GiST
pg_bigm1.2text similarity measurement and index searching based on bigrams
pg_cron1.6Job scheduler for PostgreSQL
pg_curl2.4PostgreSQL cURL allows most curl actions, including data transfer with URL syntax via HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP
pg_get_functiondef1.0Get function’s definition
pg_hint_plan1.8.0optimizer hints for PostgreSQL
pg_jieba1.1.1a parser for full-text search of Chinese
pg_partman5.3.1Extension to manage partitioned tables by time or ID
pg_show_plans2.1show query plans of all currently running SQL statements
pg_stat_monitor2.3The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
pg_textsearch0.1.0Full-text search with BM25 ranking
pgagent4.2A PostgreSQL job scheduler
pgaudit18.0provides auditing functionality
pgroonga4.0.4Super fast and all languages supported full text search index based on Groonga
pgroonga_database4.0.4PGroonga database management module
pgrouting3.8.0pgRouting Extension
plisql1.0PL/iSQL procedural language
plpgsql_check2.8extended check for plpgsql functions
postgis3.5.4PostGIS geometry and geography spatial types and functions
postgis_raster3.5.4PostGIS raster types and functions
postgis_sfcgal3.5.4PostGIS SFCGAL functions
postgis_tiger_geocoder3.5.4PostGIS tiger geocoder and reverse geocoder
postgis_topology3.5.4PostGIS topology spatial types and functions
redis_fdw1.0Foreign data wrapper for querying a Redis server
system_stats3.0EnterpriseDB system statistics for PostgreSQL
vector0.8.1vector data type and ivfflat and hnsw access methods
zhparser2.3a parser for full-text search of Chinese

Please note that Pigsty does not assume any warranty responsibility for using the IvorySQL kernel. Any issues or requirements encountered when using this kernel should be addressed with the original vendor.


Last Modified 2026-07-11: calibrate v4.4 docs (a84dd72)