Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Database.SQLite3.Bindings.Types
Synopsis
- data CDatabase
- data CStatement
- data CValue
- data CContext
- data CBlob
- data CBackup
- newtype CError = CError CInt
- decodeError :: CError -> Error
- encodeError :: Error -> CError
- data Error
- = ErrorOK
- | ErrorError
- | ErrorInternal
- | ErrorPermission
- | ErrorAbort
- | ErrorBusy
- | ErrorLocked
- | ErrorNoMemory
- | ErrorReadOnly
- | ErrorInterrupt
- | ErrorIO
- | ErrorCorrupt
- | ErrorNotFound
- | ErrorFull
- | ErrorCan'tOpen
- | ErrorProtocol
- | ErrorEmpty
- | ErrorSchema
- | ErrorTooBig
- | ErrorConstraint
- | ErrorMismatch
- | ErrorMisuse
- | ErrorNoLargeFileSupport
- | ErrorAuthorization
- | ErrorFormat
- | ErrorRange
- | ErrorNotADatabase
- | ErrorNotice
- | ErrorWarning
- | ErrorRow
- | ErrorDone
- | ErrorErrorMissingCollatingSquence
- | ErrorErrorRetry
- | ErrorErrorSnapshot
- | ErrorIORead
- | ErrorIOShortRead
- | ErrorIOWrite
- | ErrorIOFsync
- | ErrorIODirectoryFsync
- | ErrorIOTruncate
- | ErrorIOFstat
- | ErrorIOUnlock
- | ErrorIOReadLock
- | ErrorIOBlocked
- | ErrorIODelete
- | ErrorIONoMemory
- | ErrorIOAccess
- | ErrorIOCheckReservedLock
- | ErrorIOLock
- | ErrorIOClose
- | ErrorIODirectoryClose
- | ErrorIOShmOpen
- | ErrorIOShmSize
- | ErrorIOShmLock
- | ErrorIOShmMap
- | ErrorIOSeek
- | ErrorIODeleteNoEntity
- | ErrorIOMmap
- | ErrorIOGetTempPath
- | ErrorIOConvertedPath
- | ErrorIOVNode
- | ErrorIOAuth
- | ErrorIOBeginAtomic
- | ErrorIOCommitAtomic
- | ErrorIORollbackAtomic
- | ErrorIOData
- | ErrorIOCorruptFilesystem
- | ErrorLockedSharedCache
- | ErrorLockedVirtualTable
- | ErrorBusyRecovery
- | ErrorBusySnapshot
- | ErrorBusyTimeout
- | ErrorCan'tOpenNotTempDirectory
- | ErrorCan'tOpenIsDirectory
- | ErrorCan'tOpenFullPath
- | ErrorCan'tOpenConvertedPath
- | ErrorCan'tOpenDirtyWriteAheadLog
- | ErrorCan'tOpenSymlink
- | ErrorCorruptVirtualTable
- | ErrorCorruptSequence
- | ErrorCorruptIndex
- | ErrorReadOnlyRecovery
- | ErrorReadOnlyCan'tLock
- | ErrorReadOnlyRollback
- | ErrorReadOnlyDatabaseMoved
- | ErrorReadOnlyCan'tInit
- | ErrorReadOnlyDirectory
- | ErrorAbortRollback
- | ErrorConstraintCheck
- | ErrorConstraintCommitHook
- | ErrorConstraintForeignKey
- | ErrorConstraintFunction
- | ErrorConstraintNotNull
- | ErrorConstraintPrimaryKey
- | ErrorConstraintTrigger
- | ErrorConstraintUnique
- | ErrorConstraintVirtualTable
- | ErrorConstraintRowId
- | ErrorConstraintPinned
- | ErrorConstraintDataType
- | ErrorNoticeRecoverWriteAheadLog
- | ErrorNoticeRecoverRollback
- | ErrorWarningAutoIndex
- | ErrorAuthUser
- | ErrorOkLoadPermanently
- newtype CColumnType = CColumnType CInt
- decodeColumnType :: CColumnType -> ColumnType
- encodeColumnType :: ColumnType -> CColumnType
- data ColumnType
- newtype ParamIndex = ParamIndex Int
- newtype ColumnIndex = ColumnIndex Int
- type ColumnCount = ColumnIndex
- newtype CParamIndex = CParamIndex CInt
- newtype CColumnIndex = CColumnIndex CInt
- type CColumnCount = CColumnIndex
- newtype CNumBytes = CNumBytes CInt
- data CDestructor
- c_SQLITE_STATIC :: Ptr CDestructor
- c_SQLITE_TRANSIENT :: Ptr CDestructor
- c_SQLITE_UTF8 :: CInt
- newtype ArgCount = ArgCount Int
- type ArgIndex = ArgCount
- newtype CArgCount = CArgCount CInt
- c_SQLITE_DETERMINISTIC :: CInt
- class FFIType public ffi | public -> ffi, ffi -> public where
Objects
https://www.sqlite.org/c3ref/sqlite3.html
CDatabase
= sqlite3
data CStatement #
https://www.sqlite.org/c3ref/stmt.html
CStatement
= sqlite3_stmt
https://www.sqlite.org/c3ref/value.html
CValue
= sqlite3_value
https://www.sqlite.org/c3ref/context.html
CContext
= sqlite3_context
https://www.sqlite.org/c3ref/blob.html
CBlob
= sqlite3_blob
https://www.sqlite.org/c3ref/backup.html
CBackup
= sqlite3_backup
Enumerations
Error
decodeError :: CError -> Error #
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.24.0). If you do, ensure that decodeError
and decodeColumnType
are still exhaustive.
encodeError :: Error -> CError #
Constructors
Instances
Generic Error # | |
Show Error # | |
Eq Error # | |
FFIType Error CError # | |
type Rep Error # | |
Defined in Database.SQLite3.Bindings.Types type Rep Error = D1 ('MetaData "Error" "Database.SQLite3.Bindings.Types" "direct-sqlite-2.3.28-LDvFYM58b207OrnadFaYjS" 'False) ((((((C1 ('MetaCons "ErrorOK" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorError" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorInternal" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorPermission" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorAbort" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorBusy" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorLocked" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorNoMemory" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorReadOnly" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorInterrupt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorCorrupt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorNotFound" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "ErrorFull" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorCan'tOpen" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorProtocol" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorEmpty" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorSchema" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorTooBig" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorConstraint" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorMismatch" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorMisuse" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorNoLargeFileSupport" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorAuthorization" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorFormat" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorRange" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "ErrorNotADatabase" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorNotice" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorWarning" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorRow" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorDone" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorErrorMissingCollatingSquence" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorErrorRetry" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorErrorSnapshot" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIORead" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorIOShortRead" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOWrite" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorIOFsync" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIODirectoryFsync" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "ErrorIOTruncate" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIOFstat" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOUnlock" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorIOReadLock" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIOBlocked" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIODelete" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorIONoMemory" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIOAccess" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOCheckReservedLock" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorIOLock" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOClose" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorIODirectoryClose" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOShmOpen" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "ErrorIOShmSize" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIOShmLock" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOShmMap" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorIOSeek" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIODeleteNoEntity" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOMmap" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorIOGetTempPath" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIOConvertedPath" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOVNode" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorIOAuth" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIOBeginAtomic" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorIOCommitAtomic" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorIORollbackAtomic" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "ErrorIOData" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorIOCorruptFilesystem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorLockedSharedCache" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorLockedVirtualTable" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorBusyRecovery" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorBusySnapshot" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorBusyTimeout" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorCan'tOpenNotTempDirectory" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorCan'tOpenIsDirectory" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorCan'tOpenFullPath" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorCan'tOpenConvertedPath" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorCan'tOpenDirtyWriteAheadLog" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorCan'tOpenSymlink" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "ErrorCorruptVirtualTable" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorCorruptSequence" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorCorruptIndex" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ErrorReadOnlyRecovery" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorReadOnlyCan'tLock" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorReadOnlyRollback" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorReadOnlyDatabaseMoved" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorReadOnlyCan'tInit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorReadOnlyDirectory" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorAbortRollback" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorConstraintCheck" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorConstraintCommitHook" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorConstraintForeignKey" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "ErrorConstraintFunction" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorConstraintNotNull" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorConstraintPrimaryKey" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorConstraintTrigger" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorConstraintUnique" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorConstraintVirtualTable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorConstraintRowId" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErrorConstraintPinned" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorConstraintDataType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorNoticeRecoverWriteAheadLog" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorNoticeRecoverRollback" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorWarningAutoIndex" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ErrorAuthUser" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ErrorOkLoadPermanently" 'PrefixI 'False) (U1 :: Type -> Type)))))))) |
ColumnType
newtype CColumnType #
Constructors
CColumnType CInt |
Instances
Show CColumnType # | |
Defined in Database.SQLite3.Bindings.Types Methods showsPrec :: Int -> CColumnType -> ShowS show :: CColumnType -> String showList :: [CColumnType] -> ShowS | |
Eq CColumnType # | |
Defined in Database.SQLite3.Bindings.Types | |
FFIType ColumnType CColumnType # | |
Defined in Database.SQLite3.Bindings.Types |
decodeColumnType :: CColumnType -> ColumnType #
Note that this is a partial function.
See decodeError
for more information.
data ColumnType #
Constructors
IntegerColumn | |
FloatColumn | |
TextColumn | |
BlobColumn | |
NullColumn |
Instances
Show ColumnType # | |
Defined in Database.SQLite3.Bindings.Types Methods showsPrec :: Int -> ColumnType -> ShowS show :: ColumnType -> String showList :: [ColumnType] -> ShowS | |
Eq ColumnType # | |
Defined in Database.SQLite3.Bindings.Types | |
FFIType ColumnType CColumnType # | |
Defined in Database.SQLite3.Bindings.Types |
Indices
newtype ParamIndex #
Index of a parameter in a parameterized query. Parameter indices start from 1.
When a query is prepare
d, 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 https://www.sqlite.org/lang_expr.html#varparam for the syntax of parameter placeholders, and how parameter indices are assigned.
Constructors
ParamIndex Int |
Instances
newtype ColumnIndex #
Index of a column in a result set. Column indices start from 0.
Constructors
ColumnIndex Int |
Instances
type ColumnCount = ColumnIndex #
Number of columns in a result set.
Indices (FFI)
newtype CParamIndex #
Constructors
CParamIndex CInt |
Instances
newtype CColumnIndex #
Constructors
CColumnIndex CInt |
Instances
type CColumnCount = CColumnIndex #
Miscellaneous
Constructors
CNumBytes CInt |
Instances
Enum CNumBytes # | |
Defined in Database.SQLite3.Bindings.Types | |
Num CNumBytes # | |
Defined in Database.SQLite3.Bindings.Types | |
Integral CNumBytes # | |
Defined in Database.SQLite3.Bindings.Types | |
Real CNumBytes # | |
Defined in Database.SQLite3.Bindings.Types Methods toRational :: CNumBytes -> Rational | |
Show CNumBytes # | |
Eq CNumBytes # | |
Ord CNumBytes # | |
Defined in Database.SQLite3.Bindings.Types |
data CDestructor #
https://www.sqlite.org/c3ref/c_static.html
Ptr CDestructor
= sqlite3_destructor_type
c_SQLITE_STATIC :: Ptr CDestructor #
Tells SQLite3 that the content pointer is constant and will never change
c_SQLITE_TRANSIENT :: Ptr CDestructor #
Tells SQLite3 to make its own private copy of the data
c_SQLITE_UTF8 :: CInt #
Custom functions
Number of arguments of a user defined SQL function.
Constructors
ArgCount Int |
Instances
Bounded ArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Enum ArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Num ArgCount # | |
Integral ArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Real ArgCount # | |
Defined in Database.SQLite3.Bindings.Types Methods toRational :: ArgCount -> Rational | |
Show ArgCount # | This just shows the underlying integer, without the data constructor. |
Eq ArgCount # | |
Ord ArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
FFIType ArgCount CArgCount # | |
Constructors
CArgCount CInt |
Instances
Bounded CArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Enum CArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Num CArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Integral CArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
Real CArgCount # | |
Defined in Database.SQLite3.Bindings.Types Methods toRational :: CArgCount -> Rational | |
Show CArgCount # | This just shows the underlying integer, without the data constructor. |
Eq CArgCount # | |
Ord CArgCount # | |
Defined in Database.SQLite3.Bindings.Types | |
FFIType ArgCount CArgCount # | |
c_SQLITE_DETERMINISTIC :: CInt #
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 #
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.