module Database.DuckDB.FFI.ScalarFunctions (
c_duckdb_create_scalar_function,
c_duckdb_destroy_scalar_function,
c_duckdb_scalar_function_set_name,
c_duckdb_scalar_function_set_varargs,
c_duckdb_scalar_function_set_special_handling,
c_duckdb_scalar_function_set_volatile,
c_duckdb_scalar_function_add_parameter,
c_duckdb_scalar_function_set_return_type,
c_duckdb_scalar_function_set_extra_info,
c_duckdb_scalar_function_set_bind,
c_duckdb_scalar_function_set_bind_data,
c_duckdb_scalar_function_set_bind_data_copy,
c_duckdb_scalar_function_bind_set_error,
c_duckdb_scalar_function_set_function,
c_duckdb_scalar_function_set_init,
c_duckdb_register_scalar_function,
c_duckdb_scalar_function_get_extra_info,
c_duckdb_scalar_function_bind_get_extra_info,
c_duckdb_scalar_function_get_bind_data,
c_duckdb_scalar_function_get_state,
c_duckdb_scalar_function_get_client_context,
c_duckdb_scalar_function_set_error,
c_duckdb_scalar_function_init_set_error,
c_duckdb_scalar_function_init_set_state,
c_duckdb_scalar_function_init_get_client_context,
c_duckdb_scalar_function_init_get_bind_data,
c_duckdb_scalar_function_init_get_extra_info,
c_duckdb_create_scalar_function_set,
c_duckdb_destroy_scalar_function_set,
c_duckdb_add_scalar_function_to_set,
c_duckdb_register_scalar_function_set,
c_duckdb_scalar_function_bind_get_argument_count,
c_duckdb_scalar_function_bind_get_argument,
) where
import Database.DuckDB.FFI.Types
import Foreign.C.String (CString)
import Foreign.C.Types (CInt (..))
import Foreign.Ptr (Ptr)
foreign import ccall safe "duckdb_create_scalar_function"
c_duckdb_create_scalar_function :: IO DuckDBScalarFunction
foreign import ccall safe "duckdb_destroy_scalar_function"
c_duckdb_destroy_scalar_function :: Ptr DuckDBScalarFunction -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_name"
c_duckdb_scalar_function_set_name :: DuckDBScalarFunction -> CString -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_varargs"
c_duckdb_scalar_function_set_varargs :: DuckDBScalarFunction -> DuckDBLogicalType -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_special_handling"
c_duckdb_scalar_function_set_special_handling :: DuckDBScalarFunction -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_volatile"
c_duckdb_scalar_function_set_volatile :: DuckDBScalarFunction -> IO ()
foreign import ccall safe "duckdb_scalar_function_add_parameter"
c_duckdb_scalar_function_add_parameter :: DuckDBScalarFunction -> DuckDBLogicalType -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_return_type"
c_duckdb_scalar_function_set_return_type :: DuckDBScalarFunction -> DuckDBLogicalType -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_extra_info"
:: DuckDBScalarFunction -> Ptr () -> DuckDBDeleteCallback -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_bind"
c_duckdb_scalar_function_set_bind :: DuckDBScalarFunction -> DuckDBScalarFunctionBindFun -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_bind_data"
c_duckdb_scalar_function_set_bind_data :: DuckDBBindInfo -> Ptr () -> DuckDBDeleteCallback -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_bind_data_copy"
c_duckdb_scalar_function_set_bind_data_copy :: DuckDBBindInfo -> DuckDBCopyCallback -> IO ()
foreign import ccall safe "duckdb_scalar_function_bind_set_error"
c_duckdb_scalar_function_bind_set_error :: DuckDBBindInfo -> CString -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_function"
c_duckdb_scalar_function_set_function :: DuckDBScalarFunction -> DuckDBScalarFunctionFun -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_init"
c_duckdb_scalar_function_set_init :: DuckDBScalarFunction -> DuckDBScalarFunctionInitFun -> IO ()
foreign import ccall safe "duckdb_register_scalar_function"
c_duckdb_register_scalar_function :: DuckDBConnection -> DuckDBScalarFunction -> IO DuckDBState
foreign import ccall safe "duckdb_scalar_function_get_extra_info"
:: DuckDBFunctionInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_scalar_function_bind_get_extra_info"
:: DuckDBBindInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_scalar_function_get_bind_data"
c_duckdb_scalar_function_get_bind_data :: DuckDBFunctionInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_scalar_function_get_state"
c_duckdb_scalar_function_get_state :: DuckDBFunctionInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_scalar_function_get_client_context"
c_duckdb_scalar_function_get_client_context :: DuckDBBindInfo -> Ptr DuckDBClientContext -> IO ()
foreign import ccall safe "duckdb_scalar_function_set_error"
c_duckdb_scalar_function_set_error :: DuckDBFunctionInfo -> CString -> IO ()
foreign import ccall safe "duckdb_scalar_function_init_set_error"
c_duckdb_scalar_function_init_set_error :: DuckDBInitInfo -> CString -> IO ()
foreign import ccall safe "duckdb_scalar_function_init_set_state"
c_duckdb_scalar_function_init_set_state :: DuckDBInitInfo -> Ptr () -> DuckDBDeleteCallback -> IO ()
foreign import ccall safe "duckdb_scalar_function_init_get_client_context"
c_duckdb_scalar_function_init_get_client_context :: DuckDBInitInfo -> Ptr DuckDBClientContext -> IO ()
foreign import ccall safe "duckdb_scalar_function_init_get_bind_data"
c_duckdb_scalar_function_init_get_bind_data :: DuckDBInitInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_scalar_function_init_get_extra_info"
:: DuckDBInitInfo -> IO (Ptr ())
foreign import ccall safe "duckdb_create_scalar_function_set"
c_duckdb_create_scalar_function_set :: CString -> IO DuckDBScalarFunctionSet
foreign import ccall safe "duckdb_destroy_scalar_function_set"
c_duckdb_destroy_scalar_function_set :: Ptr DuckDBScalarFunctionSet -> IO ()
foreign import ccall safe "duckdb_add_scalar_function_to_set"
c_duckdb_add_scalar_function_to_set :: DuckDBScalarFunctionSet -> DuckDBScalarFunction -> IO DuckDBState
foreign import ccall safe "duckdb_register_scalar_function_set"
c_duckdb_register_scalar_function_set :: DuckDBConnection -> DuckDBScalarFunctionSet -> IO DuckDBState
foreign import ccall safe "duckdb_scalar_function_bind_get_argument_count"
c_duckdb_scalar_function_bind_get_argument_count :: DuckDBBindInfo -> IO DuckDBIdx
foreign import ccall safe "duckdb_scalar_function_bind_get_argument"
c_duckdb_scalar_function_bind_get_argument :: DuckDBBindInfo -> DuckDBIdx -> IO DuckDBExpression