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
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:
What are your opinions? @wgtmac @lidavidm @gty404 @mapleFU @Fokko @lishuxu
[1] https://github.com/rbock/sqlpp23
[2] https://github.com/rbock/sqlpp11