Skip to content

feat: add SQL catalog#693

Open
zhjwpku wants to merge 2 commits into
apache:mainfrom
zhjwpku:sql_catalog
Open

feat: add SQL catalog#693
zhjwpku wants to merge 2 commits into
apache:mainfrom
zhjwpku:sql_catalog

Conversation

@zhjwpku
Copy link
Copy Markdown
Collaborator

@zhjwpku zhjwpku commented May 31, 2026

Add a relational database backed SqlCatalog with a CatalogStore abstraction, built-in sqlpp23 stores for SQLite, PostgreSQL, and MySQL, and Java-compatible catalog tables.

zhjwpku added 2 commits June 1, 2026 01:33
Add a relational database backed SqlCatalog with a CatalogStore
abstraction, built-in sqlpp23 stores for SQLite, PostgreSQL, and
MySQL, and Java-compatible catalog tables.
@zhjwpku zhjwpku changed the title feat(sql): add SQL catalog feat: add SQL catalog Jun 1, 2026
shell: pwsh
run: |
vcpkg install zlib:x64-windows nlohmann-json:x64-windows nanoarrow:x64-windows roaring:x64-windows cpr:x64-windows
vcpkg install zlib:x64-windows nlohmann-json:x64-windows nanoarrow:x64-windows roaring:x64-windows cpr:x64-windows sqlite3:x64-windows
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it better to add a dedicated ci workflow for the sql catalog? We can trigger it only when files related to sql catalog have been changed to reduce resource usage.

Comment thread CMakeLists.txt
option(ICEBERG_BUILD_REST "Build rest catalog client" ON)
option(ICEBERG_BUILD_REST_INTEGRATION_TESTS "Build rest catalog integration tests" OFF)
option(ICEBERG_BUILD_HIVE "Build hive (HMS) catalog client" OFF)
option(ICEBERG_BUILD_SQL_CATALOG "Build SQL catalog client" ON)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make it off by default? This follows the pattern used by rest catalog library.

~ under the License.
-->

# SQL Catalog
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it is good to add to the iceberg-cpp site as well.

const TableIdentifier& identifier,
const std::string& metadata_file_location) override;

#ifdef BUILD_SQLITE3_CONNECTOR
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be good to always make these functions visible to users? We can check BUILD_SQLITE3_CONNECTOR and other macros in the sql_catalog.cc file and return NotSupported if not built.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants