Skip to content

IvorySQL/IvorySQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61,343 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

LICENSE

build Contrib_regression meson_build pg_regression oracle_regression

IvorySQL

English | 中文

IvorySQL is developed based on PostgreSQL. IvorySQL is advanced, fully featured, open-source Oracle-compatible PostgreSQL with a firm commitment to always remain 100% compatible and a drop-in replacement for the latest PostgreSQL. IvorySQL adds the ivorysql.compatible_mode GUC parameter to switch between Oracle and PostgreSQL compatibility modes. One of the highlights of IvorySQL is PL/iSQL procedural language that supports oracle’s PL/SQL syntax and Oracle style Packages.

The IvorySQL project is released under the Apache 2 license and encourages all types of contributions. For IvorySQL community no contribution is too small, and we want to thank all our community contributors.


We are committed to following the principles of the open source way

We are committed to abiding by the principles of open-source ways and we strongly believe in building a healthy and inclusive community. We maintain that good ideas can come from anywhere, and the best ideas should win. Only by including diverse perspectives, we can reach the best decision. While the first version of IvorySQL is mainly focused on Oracle Compatibility features, going forward the future road map and feature set will be determined by the community in an open-source way.

Installation

We recommend following our Quick Start for how to install and running IvorySQL.

Furthermore, for more detailed installation instructions, please refer to the Installation Docs. We provide four installation methods for IvorySQL, as outlined below:

Development with Docker

For a consistent development environment, we provide a Docker-based setup that includes all build dependencies.

Quick Start

# Start the development containers
docker compose up -d

# Enter the development container
docker compose exec dev bash

# Configure and build IvorySQL
./configure --prefix=/home/ivorysql/ivorysql \
    --enable-debug --enable-cassert \
    --with-uuid=e2fs --with-libxml

make -j$(nproc)
make install

# Initialize database in Oracle mode
initdb -D data_ora -m oracle

# Start the server
pg_ctl -D data_ora start

# Run tests
make oracle-check

Meson Build (Alternative)

# Enter the development container
docker compose exec dev bash

# Configure with meson
meson setup build -Dcassert=true -Dbuildtype=debug

# Build with ninja
ninja -C build

# Run from build directory
./build/src/backend/postgres --version

Note: Meson requires a clean source tree. If you previously ran ./configure, run make distclean first.

Developer Formatting hooks and CI:

  • A pre-commit formatting hook is provided at .githooks/pre-commit. Enable it with git config core.hooksPath .githooks, or run make code-format (equivalently bash tools/enable-git-hooks.sh).
  • The hook depends only on in-tree tools src/tools/pgindent and src/tools/pg_bsd_indent. On commit it formats staged C/C++ files with pgindent and re-adds them to the staged area.
  • A Cirrus workflow FormatCheck runs pgindent --check on files changed in a PR.

Contributing to the IvorySQL

There are plenty of ways to contribute to IvorySQL. You can contribute by providing the documentation updates, by providing the translations for the documentation. If you have design skills you can contribute to the IvorySQL website project. Testing the IvorySQL and reporting issues or by issuing pull requests for bug fixes or new features or answering the questions on mailing lists are some ways to contribute to the IvorySQL project and all types of contributions are welcomed and appreciated by the IvorySQL community. For contribution guidelines, please refer to the Community Contribution Guide and the Developer Contribution Guide.

Important: Before submitting any code contribution, all contributors are required to sign the Contributor License Agreement (CLA). The CLA protects both contributors and the project, and helps the community build a more standardized and sustainable open-source governance system.

AI Coding Assistant

If you are an LLM or AI-powered coding assistant contributing to IvorySQL, you MUST read and follow the AI coding assistants documentation before making contributions.

This documentation contains essential requirements about licensing, attribution, and code quality standards that all AI tools must comply with.

Documentation

Please check the online documentation.

Community and Contact

IvorySQL is an open-source project built by and for the community. Whether you have questions, ideas, bug reports, or would like to contribute, you are welcome to connect with us through the following channels.

Community

Support and Feedback

Official Resources

About

Open Source Oracle Compatible PostgreSQL.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

1k stars

Watchers

35 watching

Forks

Packages

 
 
 

Contributors