module Database.DuckDB.FFI.Validity ( c_duckdb_validity_row_is_valid, c_duckdb_validity_set_row_validity, c_duckdb_validity_set_row_invalid, c_duckdb_validity_set_row_valid, ) where import Data.Word (Word64) import Database.DuckDB.FFI.Types import Foreign.C.Types (CBool (..)) import Foreign.Ptr (Ptr) {- | Returns whether or not a row is valid (i.e., not NULL) in the given validity mask. Parameters: * @validity@: The validity mask, as obtained through @duckdb_vector_get_validity@ * @row@: The row index Returns true if the row is valid, false otherwise -} foreign import ccall safe "duckdb_validity_row_is_valid" c_duckdb_validity_row_is_valid :: Ptr Word64 -> DuckDBIdx -> IO CBool {- | In a validity mask, sets a specific row to either valid or invalid. Note that @duckdb_vector_ensure_validity_writable@ should be called before calling @duckdb_vector_get_validity@, to ensure that there is a validity mask to write to. Parameters: * @validity@: The validity mask, as obtained through @duckdb_vector_get_validity@. * @row@: The row index * @valid@: Whether or not to set the row to valid, or invalid -} foreign import ccall safe "duckdb_validity_set_row_validity" c_duckdb_validity_set_row_validity :: Ptr Word64 -> DuckDBIdx -> CBool -> IO () {- | In a validity mask, sets a specific row to invalid. Equivalent to @duckdb_validity_set_row_validity@ with valid set to false. Parameters: * @validity@: The validity mask * @row@: The row index -} foreign import ccall safe "duckdb_validity_set_row_invalid" c_duckdb_validity_set_row_invalid :: Ptr Word64 -> DuckDBIdx -> IO () {- | In a validity mask, sets a specific row to valid. Equivalent to @duckdb_validity_set_row_validity@ with valid set to true. Parameters: * @validity@: The validity mask * @row@: The row index -} foreign import ccall safe "duckdb_validity_set_row_valid" c_duckdb_validity_set_row_valid :: Ptr Word64 -> DuckDBIdx -> IO ()