direct-sqlite-2.3.21: Low-level binding to SQLite3. Includes UTF8 and BLOB support.

Safe HaskellNone
LanguageHaskell2010

Database.SQLite3.Bindings.Types

Contents

Synopsis

Objects

Enumerations

Error

decodeError :: CError -> Error Source #

Note that this is a partial function. If the error code is invalid, or perhaps introduced in a newer version of SQLite but this library has not been updated to support it, the result is undefined.

To be clear, if decodeError fails, it is undefined behavior, not an exception you can handle.

Therefore, do not use direct-sqlite with a different version of SQLite than the one bundled (currently, 3.7.13). If you do, ensure that decodeError and decodeColumnType are still exhaustive.

data Error Source #

Constructors

ErrorOK

Successful result

ErrorError

SQL error or missing database

ErrorInternal

Internal logic error in SQLite

ErrorPermission

Access permission denied

ErrorAbort

Callback routine requested an abort

ErrorBusy

The database file is locked

ErrorLocked

A table in the database is locked

ErrorNoMemory

A malloc() failed

ErrorReadOnly

Attempt to write a readonly database

ErrorInterrupt

Operation terminated by sqlite3_interrupt()

ErrorIO

Some kind of disk I/O error occurred

ErrorCorrupt

The database disk image is malformed

ErrorNotFound

Unknown opcode in sqlite3_file_control()

ErrorFull

Insertion failed because database is full

ErrorCan'tOpen

Unable to open the database file

ErrorProtocol

Database lock protocol error

ErrorEmpty

Database is empty

ErrorSchema

The database schema changed

ErrorTooBig

String or BLOB exceeds size limit

ErrorConstraint

Abort due to constraint violation

ErrorMismatch

Data type mismatch

ErrorMisuse

Library used incorrectly

ErrorNoLargeFileSupport

Uses OS features not supported on host

ErrorAuthorization

Authorization denied

ErrorFormat

Auxiliary database format error

ErrorRange

2nd parameter to sqlite3_bind out of range

ErrorNotADatabase

File opened that is not a database file

ErrorRow

sqlite3_step() has another row ready

ErrorDone

sqlite3_step() has finished executing

ColumnType

decodeColumnType :: CColumnType -> ColumnType Source #

Note that this is a partial function. See decodeError for more information.

Indices

newtype ParamIndex Source #

Index of a parameter in a parameterized query. Parameter indices start from 1.

When a query is prepared, SQLite allocates an array indexed from 1 to the highest parameter index. For example:

>Right stmt <- prepare conn "SELECT ?1, ?5, ?3, ?"
>bindParameterCount stmt
ParamIndex 6

This will allocate an array indexed from 1 to 6 (? takes the highest preceding index plus one). The array is initialized with null values. When you bind a parameter with bindSQLData, it assigns a new value to one of these indices.

See http://www.sqlite.org/lang_expr.html#varparam for the syntax of parameter placeholders, and how parameter indices are assigned.

Constructors

ParamIndex Int 

Instances

Bounded ParamIndex Source #

Limit min/max bounds to fit into SQLite's native parameter ranges.

Enum ParamIndex Source # 
Eq ParamIndex Source # 
Integral ParamIndex Source # 
Num ParamIndex Source # 
Ord ParamIndex Source # 
Real ParamIndex Source # 
Show ParamIndex Source #

This just shows the underlying integer, without the data constructor.

FFIType ParamIndex CParamIndex Source # 

newtype ColumnIndex Source #

Index of a column in a result set. Column indices start from 0.

Constructors

ColumnIndex Int 

Instances

Bounded ColumnIndex Source #

Limit min/max bounds to fit into SQLite's native parameter ranges.

Enum ColumnIndex Source # 
Eq ColumnIndex Source # 
Integral ColumnIndex Source # 
Num ColumnIndex Source # 
Ord ColumnIndex Source # 
Real ColumnIndex Source # 
Show ColumnIndex Source #

This just shows the underlying integer, without the data constructor.

FFIType ColumnIndex CColumnIndex Source # 

type ColumnCount = ColumnIndex Source #

Number of columns in a result set.

Indices (FFI)

newtype CParamIndex Source #

Constructors

CParamIndex CInt 

Instances

Enum CParamIndex Source # 
Eq CParamIndex Source # 
Integral CParamIndex Source # 
Num CParamIndex Source # 
Ord CParamIndex Source # 
Real CParamIndex Source # 
Show CParamIndex Source #

This just shows the underlying integer, without the data constructor.

FFIType ParamIndex CParamIndex Source # 

newtype CColumnIndex Source #

Constructors

CColumnIndex CInt 

Instances

Enum CColumnIndex Source # 
Eq CColumnIndex Source # 
Integral CColumnIndex Source # 
Num CColumnIndex Source # 
Ord CColumnIndex Source # 
Real CColumnIndex Source # 
Show CColumnIndex Source #

This just shows the underlying integer, without the data constructor.

FFIType ColumnIndex CColumnIndex Source # 

Miscellaneous

newtype CNumBytes Source #

Constructors

CNumBytes CInt 

Instances

Enum CNumBytes Source # 
Eq CNumBytes Source # 
Integral CNumBytes Source # 
Num CNumBytes Source # 
Ord CNumBytes Source # 
Real CNumBytes Source # 
Show CNumBytes Source # 

data CDestructor Source #

http://www.sqlite.org/c3ref/c_static.html

Ptr CDestructor = sqlite3_destructor_type

c_SQLITE_TRANSIENT :: Ptr CDestructor Source #

Tells SQLite3 to make its own private copy of the data

Custom functions

newtype ArgCount Source #

Number of arguments of a user defined SQL function.

Constructors

ArgCount Int 

Instances

Bounded ArgCount Source # 
Enum ArgCount Source # 
Eq ArgCount Source # 
Integral ArgCount Source # 
Num ArgCount Source # 
Ord ArgCount Source # 
Real ArgCount Source # 
Show ArgCount Source #

This just shows the underlying integer, without the data constructor.

FFIType ArgCount CArgCount Source # 

type ArgIndex = ArgCount Source #

Index of an argument to a custom function. Indices start from 0.

newtype CArgCount Source #

Constructors

CArgCount CInt 

Instances

Bounded CArgCount Source # 
Enum CArgCount Source # 
Eq CArgCount Source # 
Integral CArgCount Source # 
Num CArgCount Source # 
Ord CArgCount Source # 
Real CArgCount Source # 
Show CArgCount Source #

This just shows the underlying integer, without the data constructor.

FFIType ArgCount CArgCount Source # 

c_SQLITE_DETERMINISTIC :: CInt Source #

Tells SQLite3 that the defined custom SQL function is deterministic.

Conversion to and from FFI types

class FFIType public ffi | public -> ffi, ffi -> public where Source #

The Database.SQLite3 and Database.SQLite3.Direct modules use higher-level representations of some types than those used in the FFI signatures (Database.SQLite3.Bindings). This typeclass helps with the conversions.

Minimal complete definition

toFFI, fromFFI

Methods

toFFI :: public -> ffi Source #

fromFFI :: ffi -> public Source #