module Database.DuckDB.FFI.TableDescription ( c_duckdb_table_description_create, c_duckdb_table_description_create_ext, c_duckdb_table_description_destroy, c_duckdb_table_description_error, c_duckdb_column_has_default, c_duckdb_table_description_get_column_name, ) where import Database.DuckDB.FFI.Types import Foreign.C.String (CString) import Foreign.C.Types (CBool (..), CInt (..)) import Foreign.Ptr (Ptr) {- | Creates a table description object. Note that @duckdb_table_description_destroy@ should always be called on the resulting table_description, even if the function returns @DuckDBError@. Parameters: * @connection@: The connection context. * @schema@: The schema of the table, or @nullptr@ for the default schema. * @table@: The table name. * @out@: The resulting table description object. Returns @DuckDBSuccess@ on success or @DuckDBError@ on failure. -} foreign import ccall "duckdb_table_description_create" c_duckdb_table_description_create :: DuckDBConnection -> CString -> CString -> Ptr DuckDBTableDescription -> IO DuckDBState {- | Creates a table description object. Note that @duckdb_table_description_destroy@ must be called on the resulting table_description, even if the function returns @DuckDBError@. Parameters: * @connection@: The connection context. * @catalog@: The catalog (database) name of the table, or @nullptr@ for the default catalog. * @schema@: The schema of the table, or @nullptr@ for the default schema. * @table@: The table name. * @out@: The resulting table description object. Returns @DuckDBSuccess@ on success or @DuckDBError@ on failure. -} foreign import ccall "duckdb_table_description_create_ext" c_duckdb_table_description_create_ext :: DuckDBConnection -> CString -> CString -> CString -> Ptr DuckDBTableDescription -> IO DuckDBState {- | Destroy the TableDescription object. Parameters: * @table_description@: The table_description to destroy. -} foreign import ccall safe "duckdb_table_description_destroy" c_duckdb_table_description_destroy :: Ptr DuckDBTableDescription -> IO () {- | Returns the error message associated with the given table_description. If the table_description has no error message, this returns @nullptr@ instead. The error message should not be freed. It will be de-allocated when @duckdb_table_description_destroy@ is called. Parameters: * @table_description@: The table_description to get the error from. Returns The error message, or @nullptr@ if there is none. -} foreign import ccall safe "duckdb_table_description_error" c_duckdb_table_description_error :: DuckDBTableDescription -> IO CString {- | Check if the column at @index@ index of the table has a DEFAULT expression. Parameters: * @table_description@: The table_description to query. * @index@: The index of the column to query. * @out@: The out-parameter used to store the result. Returns @DuckDBSuccess@ on success or @DuckDBError@ on failure. -} foreign import ccall safe "duckdb_column_has_default" c_duckdb_column_has_default :: DuckDBTableDescription -> DuckDBIdx -> Ptr CBool -> IO DuckDBState {- | Obtain the column name at @index@. The out result must be destroyed with @duckdb_free@. Parameters: * @table_description@: The table_description to query. * @index@: The index of the column to query. Returns The column name. -} foreign import ccall safe "duckdb_table_description_get_column_name" c_duckdb_table_description_get_column_name :: DuckDBTableDescription -> DuckDBIdx -> IO CString