Skip to content

[DISCUSSION] import sqlpp23 to support sqlcatalog #135

@zhjwpku

Description

@zhjwpku

SQLCatalog can be a valuable component for users to test the functionality of iceberg-cpp, as it can maintain some state persisted in a database. Initially, we didn't implement the SQLCatalog because we were not aware of a suitable C++ ORM framework. However, I recently came across sqlpp23 [1], a domain-specific language for SQL queries, which seems like a good fit for implementing SQLCatalog.

One consideration with sqlpp23 is that it requires C++23, whereas iceberg-cpp currently targets C++20. There is an alternative, sqlpp11 [2], from the same author, required C++11, however, according to its README, the author recommends migrating to sqlpp23. Therefore, I'd like to propose updating iceberg-cpp to C++23.

One immediate benefit of moving to C++23 is that we can leverage std::expected and eliminate the dependency on zeus-cpp/expected.

I've reviewed some potential users of iceberg-cpp: ClickHouse requires C++23, whereas DuckDB requires C++11 🤪

I'd like to hear your thoughts on two points:

  • Should we implement support for SQLCatalog?
  • Should we update the project to require C++23?

What are your opinions? @wgtmac @lidavidm @gty404 @mapleFU @Fokko @lishuxu

[1] https://github.com/rbock/sqlpp23
[2] https://github.com/rbock/sqlpp11

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions