iceberg-cpp
Loading...
Searching...
No Matches
Classes | Functions
catalog_store.h File Reference
#include <cstdint>
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <unordered_map>
#include <vector>
#include "iceberg/catalog/sql/iceberg_sql_catalog_export.h"
#include "iceberg/result.h"

Go to the source code of this file.

Classes

struct  iceberg::sql::NamespaceProperty
 A namespace property row. More...
 
struct  iceberg::sql::CatalogStoreOptions
 Connection parameters used to construct a built-in CatalogStore. More...
 
class  iceberg::sql::CatalogStore
 Semantic, driver-agnostic storage interface for the SQL catalog. More...
 

Functions

ICEBERG_SQL_CATALOG_EXPORT Result< std::shared_ptr< CatalogStore > > iceberg::sql::MakeSqliteCatalogStore (const CatalogStoreOptions &options)
 Build the built-in SQLite catalog store (sqlpp23 + SQLite3).
 
ICEBERG_SQL_CATALOG_EXPORT Result< std::shared_ptr< CatalogStore > > iceberg::sql::MakePostgreSqlCatalogStore (const CatalogStoreOptions &options)
 Build the built-in PostgreSQL catalog store (sqlpp23 + libpq).
 
ICEBERG_SQL_CATALOG_EXPORT Result< std::shared_ptr< CatalogStore > > iceberg::sql::MakeMySqlCatalogStore (const CatalogStoreOptions &options)
 Build the built-in MySQL catalog store (sqlpp23 + libmysqlclient).
 

Detailed Description

Storage abstraction for the SQL catalog.

CatalogStore persists SQL catalog rows. SqlCatalog owns Iceberg catalog semantics and uses this interface for database-specific row operations.

Function Documentation

◆ MakeMySqlCatalogStore()

Result< std::shared_ptr< CatalogStore > > iceberg::sql::MakeMySqlCatalogStore ( const CatalogStoreOptions options)

Build the built-in MySQL catalog store (sqlpp23 + libmysqlclient).

options.uri is parsed as [scheme://][user[:password]@]host[:port][/database].

Parameters
optionsStore connection options.
Returns
A catalog store instance, or ErrorKind::kNotSupported if the MySQL connector was not built.

◆ MakePostgreSqlCatalogStore()

Result< std::shared_ptr< CatalogStore > > iceberg::sql::MakePostgreSqlCatalogStore ( const CatalogStoreOptions options)

Build the built-in PostgreSQL catalog store (sqlpp23 + libpq).

options.uri is parsed as [scheme://][user[:password]@]host[:port][/database].

Parameters
optionsStore connection options.
Returns
A catalog store instance, or ErrorKind::kNotSupported if the PostgreSQL connector was not built.

◆ MakeSqliteCatalogStore()

Result< std::shared_ptr< CatalogStore > > iceberg::sql::MakeSqliteCatalogStore ( const CatalogStoreOptions options)

Build the built-in SQLite catalog store (sqlpp23 + SQLite3).

options.uri is the SQLite database file path, or ":memory:".

Parameters
optionsStore connection options.
Returns
A catalog store instance, or ErrorKind::kNotSupported if the SQLite connector was not built.