pub mod catalog;
pub mod column_rename;
pub mod delete_filter;
pub mod encryption;
pub mod error;
pub mod information_schema;
pub mod metadata_provider;
pub mod path_resolver;
pub(crate) mod positional_source;
pub mod row_id;
pub mod schema;
pub mod snapshot_filter;
pub mod table;
pub mod table_changes;
pub mod table_deletions;
pub mod table_functions;
pub mod types;
#[cfg(feature = "metadata-duckdb")]
pub mod metadata_provider_duckdb;
#[cfg(feature = "metadata-mysql")]
pub mod metadata_provider_mysql;
#[cfg(feature = "metadata-postgres")]
pub mod metadata_provider_postgres;
#[cfg(feature = "metadata-sqlite")]
pub mod metadata_provider_sqlite;
#[cfg(feature = "write")]
pub mod compaction;
#[cfg(feature = "write")]
pub mod delete_exec;
#[cfg(feature = "write")]
pub mod insert_exec;
#[cfg(feature = "write")]
pub mod maintenance;
#[cfg(feature = "write")]
pub mod metadata_writer;
#[cfg(feature = "write-duckdb")]
pub mod metadata_writer_duckdb;
#[cfg(feature = "write-mysql")]
pub mod metadata_writer_mysql;
#[cfg(feature = "write-postgres")]
pub mod metadata_writer_postgres;
#[cfg(feature = "write-sqlite")]
pub mod metadata_writer_sqlite;
#[cfg(feature = "write-postgres")]
pub mod multicatalog;
#[cfg(feature = "multicatalog-postgres")]
pub mod multicatalog_provider;
#[cfg(feature = "write")]
pub mod stats_collect;
#[cfg(feature = "write")]
pub mod stats_encode;
#[cfg(feature = "write")]
pub mod table_writer;
#[cfg(feature = "write")]
pub mod update_exec;
pub type Result<T> = std::result::Result<T, DuckLakeError>;
pub use catalog::DuckLakeCatalog;
pub use error::{DuckLakeError, TypeChangeOperation, TypeChangeWriteMode};
pub use metadata_provider::{DuckLakeFileData, DuckLakeTableFile, MetadataProvider};
pub use schema::DuckLakeSchema;
pub use table::DuckLakeTable;
pub use table_functions::register_ducklake_functions;
#[cfg(feature = "metadata-duckdb")]
pub use metadata_provider_duckdb::DuckdbMetadataProvider;
#[cfg(feature = "metadata-mysql")]
pub use metadata_provider_mysql::MySqlMetadataProvider;
#[cfg(feature = "metadata-postgres")]
pub use metadata_provider_postgres::PostgresMetadataProvider;
#[cfg(feature = "metadata-sqlite")]
pub use metadata_provider_sqlite::SqliteMetadataProvider;
#[cfg(feature = "write")]
pub use compaction::{CompactionResult, MergeOptions, RewriteOptions};
#[cfg(feature = "write")]
pub use delete_exec::DuckLakeDeleteExec;
#[cfg(feature = "write")]
pub use insert_exec::DuckLakeInsertExec;
#[cfg(feature = "write")]
pub use metadata_writer::{
ColumnDef, ColumnStat, CommitIds, CompactionOutputFile, CompactionSourceFile, DataFileInfo,
DeleteFileEntry, DeleteFileInfo, MetadataWriter, SourceRetirement, WriteMode, WriteResult,
WriteSetupResult,
};
#[cfg(feature = "write-duckdb")]
pub use metadata_writer_duckdb::DuckdbMetadataWriter;
#[cfg(feature = "write-mysql")]
pub use metadata_writer_mysql::MySqlMetadataWriter;
#[cfg(feature = "write-postgres")]
pub use metadata_writer_postgres::PostgresMetadataWriter;
#[cfg(feature = "write-sqlite")]
pub use metadata_writer_sqlite::SqliteMetadataWriter;
#[cfg(feature = "write-postgres")]
pub use multicatalog::{MulticatalogManager, initialize_multicatalog_schema};
#[cfg(feature = "multicatalog-postgres")]
pub use multicatalog_provider::MulticatalogProvider;
#[cfg(feature = "write")]
pub use table_writer::{DuckLakeTableWriter, TableWriteSession};
#[cfg(feature = "write")]
pub use update_exec::DuckLakeUpdateExec;