Moduledirect-sqlite-2.3.29Haskell2010
Database.SQLite3.Direct
This API is a slightly lower-level version of Database.SQLite3. Namely:
- 17 types
- 71 values
- Packagedirect-sqlite-2.3.29
- Exports88
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceDirect.hs
Connection management
10 declarationshttps://www.sqlite.org/c3ref/profile.html
Enable/disable tracing of SQL execution. Tracing can be disabled by setting Nothing as the logger callback.
Warning: If the logger callback throws an exception, your whole program will crash. Enable only for debugging!
https://www.sqlite.org/c3ref/get_autocommit.html
Return True if the connection is in autocommit mode, or False if a
transaction started with BEGIN is still active.
Be warned that some errors roll back the transaction automatically,
and that ROLLBACK will throw an error if no transaction is active.
Use getAutoCommit to avoid such an error:
autocommit <- getAutoCommit conn
when (not autocommit) $
exec conn "ROLLBACK"
Simple query execution
3 declarationsLike exec, but invoke the callback for each result row.
If the callback throws an exception, it will be rethrown by execWithCallback.
Statement management
8 declarationshttps://www.sqlite.org/c3ref/prepare.html
If the query contains no SQL statements, this returns
Right Nothing.
https://www.sqlite.org/c3ref/step.html
Faster step for statements that don't callback to Haskell functions (e.g. by using custom SQL functions).
https://www.sqlite.org/c3ref/reset.html
Warning:
If the most recent step call failed, this will return the corresponding error.
This does not reset the bindings on a prepared statement. Use clearBindings to do that.
https://www.sqlite.org/c3ref/finalize.html
Warning: If the most recent step call failed, this will return the corresponding error.
https://www.sqlite.org/c3ref/clear_bindings.html
Set all parameters in the prepared statement to null.
https://www.sqlite.org/c3ref/sql.html
Return a copy of the original SQL text used to compile the statement.
Parameter and column information
5 declarationshttps://www.sqlite.org/c3ref/bind_parameter_count.html
This returns the index of the largest (rightmost) parameter. Note that this
is not necessarily the number of parameters. If numbered parameters like
?5 are used, there may be gaps in the list.
See ParamIndex for more information.
Binding values to a prepared statement
6 declarationsReading the result row
5 declarationscontrol loading of extensions
1 declarationhttps://www.sqlite.org/c3ref/enable_load_extension.html
Enable or disable extension loading.
Result statistics
3 declarationshttps://www.sqlite.org/c3ref/changes.html
Return the number of rows that were changed, inserted, or deleted
by the most recent INSERT, DELETE, or UPDATE statement.
https://www.sqlite.org/c3ref/total_changes.html
Return the total number of row changes caused by INSERT, DELETE,
or UPDATE statements since the Database was opened.
Create custom SQL functions
3 declarationscreateFunction https://sqlite.org/c3ref/create_function.html
Create a custom SQL function or redefine the behavior of an existing function.
createAggregate :: Database-> Utf8Name of the function.
-> Maybe ArgCountNumber of arguments.
-> aInitial aggregate state.
-> (FuncContext -> FuncArgs -> a -> IO a)Process one row and update the aggregate state.
-> (FuncContext -> a -> IO ())Called after all rows have been processed. Can be used to construct the returned value from the aggregate state.
-> IO (Either Error ())
Like createFunction except that it creates an aggregate function.
Delete an SQL function (scalar or aggregate).
Extract function arguments
Set the result of a function
Create custom collations
2 declarationscreateCollation Delete a collation.
Interrupting a long-running query
1 declarationhttps://www.sqlite.org/c3ref/interrupt.html
Cause any pending operation on the Database handle to stop at its earliest opportunity. This simply sets a flag and returns immediately. It does not wait for the pending operation to finish.
You'll need to compile with -threaded for this to do any good.
Without -threaded, FFI calls block the whole RTS, meaning interrupt
would never run at the same time as step.
Incremental blob I/O
7 declarationsblobOpen https://www.sqlite.org/c3ref/blob_open.html
Open a blob for incremental I/O.
blobRead Online Backup API
5 declarationsbackupInit backupStep Types
7 declarationsConstructors
Instances3Eq, Show, FFIType
Eq ColumnTypeDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesShow ColumnTypeDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesFFIType ColumnType CColumnTypeDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.Types
The context in which a custom SQL function is executed.
Constructors
Instances2Eq, Show
Eq FuncContextDefined in direct-sqlite-2.3.29 · Database.SQLite3.DirectShow FuncContextDefined in direct-sqlite-2.3.29 · Database.SQLite3.Direct
Results and errors
Instances2Eq, Show
Eq StepResultDefined in direct-sqlite-2.3.29 · Database.SQLite3.DirectShow StepResultDefined in direct-sqlite-2.3.29 · Database.SQLite3.Direct
Constructors
BackupOKThere are still more pages to be copied.
BackupDoneAll pages were successfully copied.
Instances2Eq, Show
Eq BackupStepResultDefined in direct-sqlite-2.3.29 · Database.SQLite3.DirectShow BackupStepResultDefined in direct-sqlite-2.3.29 · Database.SQLite3.Direct
Constructors
ErrorOKSuccessful result
ErrorErrorSQL error or missing database
ErrorInternalInternal logic error in SQLite
ErrorPermissionAccess permission denied
ErrorAbortCallback routine requested an abort
ErrorBusyThe database file is locked
ErrorLockedA table in the database is locked
ErrorNoMemoryA
malloc()failedErrorReadOnlyAttempt to write a readonly database
ErrorInterruptOperation terminated by
sqlite3_interrupt()ErrorIOSome kind of disk I/O error occurred
ErrorCorruptThe database disk image is malformed
ErrorNotFoundUnknown opcode in
sqlite3_file_control()ErrorFullInsertion failed because database is full
ErrorCan'tOpenUnable to open the database file
ErrorProtocolDatabase lock protocol error
ErrorEmptyDatabase is empty
ErrorSchemaThe database schema changed
ErrorTooBigString or BLOB exceeds size limit
ErrorConstraintAbort due to constraint violation
ErrorMismatchData type mismatch
ErrorMisuseLibrary used incorrectly
ErrorNoLargeFileSupportUses OS features not supported on host
ErrorAuthorizationAuthorization denied
ErrorFormatAuxiliary database format error
ErrorRange2nd parameter to sqlite3_bind out of range
ErrorNotADatabaseFile opened that is not a database file
ErrorNoticeNotifications from sqlite3_log()
ErrorWarningWarnings from sqlite3_log()
ErrorRowsqlite3_step()has another row readyErrorDonesqlite3_step()has finished executingErrorErrorMissingCollatingSquenceErrorErrorRetryErrorErrorSnapshotErrorIOReadErrorIOShortReadErrorIOWriteErrorIOFsyncErrorIODirectoryFsyncErrorIOTruncateErrorIOFstatErrorIOUnlockErrorIOReadLockErrorIOBlockedErrorIODeleteErrorIONoMemoryErrorIOAccessErrorIOCheckReservedLockErrorIOLockErrorIOCloseErrorIODirectoryCloseErrorIOShmOpenErrorIOShmSizeErrorIOShmLockErrorIOShmMapErrorIOSeekErrorIODeleteNoEntityErrorIOMmapErrorIOGetTempPathErrorIOConvertedPathErrorIOVNodeErrorIOAuthErrorIOBeginAtomicErrorIOCommitAtomicErrorIORollbackAtomicErrorIODataErrorIOCorruptFilesystemErrorLockedVirtualTableErrorBusyRecoveryErrorBusySnapshotErrorBusyTimeoutErrorCan'tOpenNotTempDirectoryErrorCan'tOpenIsDirectoryErrorCan'tOpenFullPathErrorCan'tOpenConvertedPathErrorCan'tOpenDirtyWriteAheadLogErrorCan'tOpenSymlinkErrorCorruptVirtualTableErrorCorruptSequenceErrorCorruptIndexErrorReadOnlyRecoveryErrorReadOnlyCan'tLockErrorReadOnlyRollbackErrorReadOnlyDatabaseMovedErrorReadOnlyCan'tInitErrorReadOnlyDirectoryErrorAbortRollbackErrorConstraintCheckErrorConstraintCommitHookErrorConstraintForeignKeyErrorConstraintFunctionErrorConstraintNotNullErrorConstraintPrimaryKeyErrorConstraintTriggerErrorConstraintUniqueErrorConstraintVirtualTableErrorConstraintRowIdErrorConstraintPinnedErrorConstraintDataTypeErrorNoticeRecoverWriteAheadLogErrorNoticeRecoverRollbackErrorWarningAutoIndexErrorAuthUserErrorOkLoadPermanently
Instances5Eq, Show, Generic, FFIType, Rep
Eq ErrorDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesShow ErrorDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesGeneric ErrorDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesFFIType Error CErrorDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.Typestype Rep Error = D1 ('MetaDataDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.Types"Error"
"Database.SQLite3.Bindings.Types"
"direct-sqlite-2.3.29-LPSIgtYmnsA4GbWAuo8ZRP"
'False) ((((((C1 ('MetaCons"ErrorOK"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorError"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorInternal"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorPermission"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorAbort"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorBusy"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorLocked"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorNoMemory"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorReadOnly"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorInterrupt"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIO"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorCorrupt"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorNotFound"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"ErrorFull"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorCan'tOpen"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorProtocol"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorEmpty"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorSchema"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorTooBig"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorConstraint"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorMismatch"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorMisuse"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorNoLargeFileSupport"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorAuthorization"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorFormat"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorRange"
'PrefixI 'False) U1))))) :+: ((((C1 ('MetaCons"ErrorNotADatabase"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorNotice"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorWarning"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorRow"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorDone"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorErrorMissingCollatingSquence"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorErrorRetry"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorErrorSnapshot"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIORead"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorIOShortRead"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOWrite"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorIOFsync"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIODirectoryFsync"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"ErrorIOTruncate"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIOFstat"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOUnlock"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorIOReadLock"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIOBlocked"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIODelete"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorIONoMemory"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIOAccess"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOCheckReservedLock"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorIOLock"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOClose"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorIODirectoryClose"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOShmOpen"
'PrefixI 'False) U1)))))) :+: (((((C1 ('MetaCons"ErrorIOShmSize"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIOShmLock"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOShmMap"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorIOSeek"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIODeleteNoEntity"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOMmap"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorIOGetTempPath"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIOConvertedPath"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOVNode"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorIOAuth"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIOBeginAtomic"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorIOCommitAtomic"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorIORollbackAtomic"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"ErrorIOData"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorIOCorruptFilesystem"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorLockedSharedCache"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorLockedVirtualTable"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorBusyRecovery"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorBusySnapshot"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorBusyTimeout"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorCan'tOpenNotTempDirectory"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorCan'tOpenIsDirectory"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorCan'tOpenFullPath"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorCan'tOpenConvertedPath"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorCan'tOpenDirtyWriteAheadLog"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorCan'tOpenSymlink"
'PrefixI 'False) U1))))) :+: ((((C1 ('MetaCons"ErrorCorruptVirtualTable"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorCorruptSequence"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorCorruptIndex"
'PrefixI 'False) U1)) :+: (C1 ('MetaCons"ErrorReadOnlyRecovery"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorReadOnlyCan'tLock"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorReadOnlyRollback"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorReadOnlyDatabaseMoved"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorReadOnlyCan'tInit"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorReadOnlyDirectory"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorAbortRollback"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorConstraintCheck"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorConstraintCommitHook"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorConstraintForeignKey"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"ErrorConstraintFunction"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorConstraintNotNull"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorConstraintPrimaryKey"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorConstraintTrigger"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorConstraintUnique"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorConstraintVirtualTable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorConstraintRowId"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"ErrorConstraintPinned"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ErrorConstraintDataType"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorNoticeRecoverWriteAheadLog"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ErrorNoticeRecoverRollback"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorWarningAutoIndex"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ErrorAuthUser"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ErrorOkLoadPermanently"
'PrefixI 'False) U1)))))))
Special types
A ByteString containing UTF8-encoded text with no NUL characters.
Constructors
Instances6Eq, Ord, Show, IsString, Semigroup, Monoid
Eq Utf8Defined in direct-sqlite-2.3.29 · Database.SQLite3.DirectOrd Utf8Defined in direct-sqlite-2.3.29 · Database.SQLite3.DirectShow Utf8Defined in direct-sqlite-2.3.29 · Database.SQLite3.DirectIsString Utf8Defined in direct-sqlite-2.3.29 · Database.SQLite3.DirectfromString = Utf8 . encodeUtf8 . packSemigroup Utf8Defined in direct-sqlite-2.3.29 · Database.SQLite3.DirectMonoid Utf8Defined in direct-sqlite-2.3.29 · Database.SQLite3.Direct
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 6This 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
Instances9Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesLimit min/max bounds to fit into SQLite's native parameter ranges.
Enum ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesEq ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesIntegral ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesNum ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesOrd ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesReal ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesShow ParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesThis just shows the underlying integer, without the data constructor.
FFIType ParamIndex CParamIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.Types
Index of a column in a result set. Column indices start from 0.
Constructors
Instances9Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesLimit min/max bounds to fit into SQLite's native parameter ranges.
Enum ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesEq ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesIntegral ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesNum ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesOrd ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesReal ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesShow ColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesThis just shows the underlying integer, without the data constructor.
FFIType ColumnIndex CColumnIndexDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.Types
Number of columns in a result set.
Instances9Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesEnum ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesEq ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesIntegral ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesNum ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesOrd ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesReal ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesShow ArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.TypesThis just shows the underlying integer, without the data constructor.
FFIType ArgCount CArgCountDefined in direct-sqlite-2.3.29 · Database.SQLite3.Bindings.Types
Index of an argument to a custom function. Indices start from 0.