module Database.DuckDB.FFI.ResultFunctions ( c_duckdb_result_get_chunk, c_duckdb_result_is_streaming, c_duckdb_result_chunk_count, c_duckdb_result_return_type, ) where import Database.DuckDB.FFI.Types import Foreign.C.Types (CBool (..), CInt (..)) import Foreign.Ptr (Ptr) {- | > Warning Deprecation notice. This method is scheduled for removal in a future release. Fetches a data chunk from the duckdb_result. This function should be called repeatedly until the result is exhausted. The result must be destroyed with @duckdb_destroy_data_chunk@. This function supersedes all @duckdb_value@ functions, as well as the @duckdb_column_data@ and @duckdb_nullmask_data@ functions. It results in significantly better performance, and should be preferred in newer code-bases. If this function is used, none of the other result functions can be used and vice versa (i.e., this function cannot be mixed with the legacy result functions). Use @duckdb_result_chunk_count@ to figure out how many chunks there are in the result. Parameters: * @result@: The result object to fetch the data chunk from. * @chunk_index@: The chunk index to fetch from. Returns The resulting data chunk. Returns @NULL@ if the chunk index is out of bounds. These bindings call the wrapper symbol @wrapped_duckdb_result_get_chunk@ but mirror the DuckDB C API semantics of @duckdb_result_get_chunk@. -} foreign import ccall safe "wrapped_duckdb_result_get_chunk" c_duckdb_result_get_chunk :: Ptr DuckDBResult -> DuckDBIdx -> IO DuckDBDataChunk {- | > Warning Deprecation notice. This method is scheduled for removal in a future release. Checks if the type of the internal result is StreamQueryResult. Parameters: * @result@: The result object to check. Returns Whether or not the result object is of the type StreamQueryResult These bindings call the wrapper symbol @wrapped_duckdb_result_is_streaming@ but mirror the DuckDB C API semantics of @duckdb_result_is_streaming@. -} foreign import ccall safe "wrapped_duckdb_result_is_streaming" c_duckdb_result_is_streaming :: Ptr DuckDBResult -> IO CBool {- | > Warning Deprecation notice. This method is scheduled for removal in a future release. Returns the number of data chunks present in the result. Parameters: * @result@: The result object Returns Number of data chunks present in the result. These bindings call the wrapper symbol @wrapped_duckdb_result_chunk_count@ but mirror the DuckDB C API semantics of @duckdb_result_chunk_count@. -} foreign import ccall safe "wrapped_duckdb_result_chunk_count" c_duckdb_result_chunk_count :: Ptr DuckDBResult -> IO DuckDBIdx {- | Returns the return_type of the given result, or DUCKDB_RETURN_TYPE_INVALID on error Parameters: * @result@: The result object Returns The return_type These bindings call the wrapper symbol @wrapped_duckdb_result_return_type@ but mirror the DuckDB C API semantics of @duckdb_result_return_type@. -} foreign import ccall safe "wrapped_duckdb_result_return_type" c_duckdb_result_return_type :: Ptr DuckDBResult -> IO DuckDBResultType