duckdb-simple
Safe HaskellNone
LanguageHaskell2010

Database.DuckDB.Simple.Function

Description

This module mirrors the high-level API provided by sqlite-simple for user defined functions, adapted to DuckDB's chunked execution model. It allows pure and IO-based Haskell functions to be exposed to SQL while reusing the existing field-decoding and result-marshalling machinery for arguments and return values.

Synopsis

Documentation

data ScalarType Source #

Tag DuckDB logical types we support for scalar return values.

data ScalarValue Source #

Runtime representation of values returned to DuckDB.

class FunctionArg a Source #

Argument types supported by the scalar function machinery.

Minimal complete definition

argumentType

Instances

Instances details
FunctionArg Int16 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Int32 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Int64 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Word16 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Word32 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Word64 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Text Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg String Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Bool Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Double Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Float Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Int Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg Word Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionArg a => FunctionArg (Maybe a) Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

class FunctionResult a Source #

Class of scalar results that can be produced by user-defined functions.

Minimal complete definition

scalarReturnType, toScalarValue

Instances

Instances details
FunctionResult Int16 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Int32 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Int64 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Word16 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Word32 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Word64 Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Text Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult String Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Bool Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Double Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Float Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Int Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult Word Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

FunctionResult a => FunctionResult (Maybe a) Source # 
Instance details

Defined in Database.DuckDB.Simple.Function

class Function a where Source #

Typeclass describing Haskell functions that can be exposed to DuckDB.

createFunction :: Function f => Connection -> Text -> f -> IO () Source #

Register a Haskell function under the supplied name.

createFunctionWithState :: forall s f. Function f => Connection -> Text -> IO s -> (s -> f) -> IO () Source #

Register a scalar function with per-worker thread-local state.

deleteFunction :: Connection -> Text -> IO () Source #

Drop a previously registered scalar function by issuing a DROP FUNCTION statement.