module Bindings.Sqlite3 (

    -- * Run-Time Library Version Numbers
    -- <http://sqlite.org/c3ref/libversion.html>

    sqlite3_version,
    sqlite3_libversion,
    sqlite3_libversion_number,

    -- * Test To See If The Library Is Threadsafe
    -- <http://sqlite.org/c3ref/threadsafe.html>

    sqlite3_threadsafe,

    -- * Database Connection Handle
    -- <http://sqlite.org/c3ref/sqlite3.html>

    Sqlite3,

    -- * Closing A Database Connection
    -- <http://sqlite.org/c3ref/close.html>

    sqlite3_close,

    -- * One-Step Query Execution Interface
    -- <http://sqlite.org/c3ref/exec.html>

    sqlite3_exec,

    -- * Result Codes
    -- <http://sqlite.org/c3ref/c_abort.html>

    _SQLITE_OK,
    _SQLITE_ERROR,
    _SQLITE_INTERNAL,
    _SQLITE_PERM,
    _SQLITE_ABORT,
    _SQLITE_BUSY,
    _SQLITE_LOCKED,
    _SQLITE_NOMEM,
    _SQLITE_READONLY,
    _SQLITE_INTERRUPT,
    _SQLITE_IOERR,
    _SQLITE_CORRUPT,
    _SQLITE_NOTFOUND,
    _SQLITE_FULL,
    _SQLITE_CANTOPEN,
    _SQLITE_PROTOCOL,
    _SQLITE_EMPTY,
    _SQLITE_SCHEMA,
    _SQLITE_TOOBIG,
    _SQLITE_CONSTRAINT,
    _SQLITE_MISMATCH,
    _SQLITE_MISUSE,
    _SQLITE_NOLFS,
    _SQLITE_AUTH,
    _SQLITE_FORMAT,
    _SQLITE_RANGE,
    _SQLITE_NOTADB,
    _SQLITE_ROW,
    _SQLITE_DONE,

    -- * Extended Result Codes
    -- <http://sqlite.org/c3ref/c_ioerr_access.html>

    _SQLITE_IOERR_READ,
    _SQLITE_IOERR_SHORT_READ,
    _SQLITE_IOERR_WRITE,
    _SQLITE_IOERR_FSYNC,
    _SQLITE_IOERR_DIR_FSYNC,
    _SQLITE_IOERR_TRUNCATE,
    _SQLITE_IOERR_FSTAT,
    _SQLITE_IOERR_UNLOCK,
    _SQLITE_IOERR_RDLOCK,
    _SQLITE_IOERR_DELETE,
    _SQLITE_IOERR_BLOCKED,
    _SQLITE_IOERR_NOMEM,
    _SQLITE_IOERR_ACCESS,
    _SQLITE_IOERR_CHECKRESERVEDLOCK,
    _SQLITE_IOERR_LOCK,
    _SQLITE_IOERR_CLOSE,
    _SQLITE_IOERR_DIR_CLOSE,

    -- * Flags For File Open Operations
    -- <http://sqlite.org/c3ref/c_open_create.html>

    _SQLITE_OPEN_READONLY,
    _SQLITE_OPEN_READWRITE,
    _SQLITE_OPEN_CREATE,
    _SQLITE_OPEN_DELETEONCLOSE,
    _SQLITE_OPEN_EXCLUSIVE,
    _SQLITE_OPEN_MAIN_DB,
    _SQLITE_OPEN_TEMP_DB,
    _SQLITE_OPEN_TRANSIENT_DB,
    _SQLITE_OPEN_MAIN_JOURNAL,
    _SQLITE_OPEN_TEMP_JOURNAL,
    _SQLITE_OPEN_SUBJOURNAL,
    _SQLITE_OPEN_MASTER_JOURNAL,
    _SQLITE_OPEN_NOMUTEX,
    _SQLITE_OPEN_FULLMUTEX,

    -- * Device Characteristics
    -- <http://sqlite.org/c3ref/c_iocap_atomic.html>

    _SQLITE_IOCAP_ATOMIC,
    _SQLITE_IOCAP_ATOMIC512,
    _SQLITE_IOCAP_ATOMIC1K,
    _SQLITE_IOCAP_ATOMIC2K,
    _SQLITE_IOCAP_ATOMIC4K,
    _SQLITE_IOCAP_ATOMIC8K,
    _SQLITE_IOCAP_ATOMIC16K,
    _SQLITE_IOCAP_ATOMIC32K,
    _SQLITE_IOCAP_ATOMIC64K,
    _SQLITE_IOCAP_SAFE_APPEND,
    _SQLITE_IOCAP_SEQUENTIAL,

    -- * File Locking Levels
    -- <http://sqlite.org/c3ref/c_lock_exclusive.html>

    _SQLITE_LOCK_NONE,
    _SQLITE_LOCK_SHARED,
    _SQLITE_LOCK_RESERVED,
    _SQLITE_LOCK_PENDING,
    _SQLITE_LOCK_EXCLUSIVE,

    -- * Synchronization Type Flags
    -- <http://sqlite.org/c3ref/c_sync_dataonly.html>

    _SQLITE_SYNC_NORMAL,
    _SQLITE_SYNC_FULL,
    _SQLITE_SYNC_DATAONLY,

    -- * OS Interface Open File Handle
    -- <http://sqlite.org/c3ref/file.html>

    Sqlite3_file,

    -- * OS Interface File Virtual Methods Object
    -- <http://sqlite.org/c3ref/io_methods.html>

    Sqlite3_io_methods,

    -- * Standard File Control Opcodes
    -- <http://sqlite.org/c3ref/c_fcntl_lockstate.html>

    _SQLITE_FCNTL_LOCKSTATE,
    _SQLITE_GET_LOCKPROXYFILE,
    _SQLITE_SET_LOCKPROXYFILE,
    _SQLITE_LAST_ERRNO,

    -- * Mutex Handle
    -- <http://sqlite.org/c3ref/mutex.html>

    Sqlite3_mutex,

    -- * OS Interface Object
    -- <http://sqlite.org/c3ref/vfs.html>

    Sqlite3_vfs,

    -- * Flags for the xAccess VFS method
    -- <http://sqlite.org/c3ref/c_access_exists.html>

    _SQLITE_ACCESS_EXISTS,
    _SQLITE_ACCESS_READWRITE,
    _SQLITE_ACCESS_READ,

    -- * Initialize The SQLite Library
    -- <http://sqlite.org/c3ref/initialize.html>

    sqlite3_initialize,
    sqlite3_shutdown,
    sqlite3_os_init,
    sqlite3_os_end,

    -- * Enable Or Disable Extended Result Codes
    -- <http://sqlite.org/c3ref/extended_result_codes.html>

    sqlite3_extended_result_codes,

    -- * Last Insert Rowid
    -- <http://sqlite.org/c3ref/last_insert_rowid.html>

    sqlite3_last_insert_rowid,

    -- * Count The Number Of Rows Modified
    -- <http://sqlite.org/c3ref/changes.html>

    sqlite3_changes,

    -- * Total Number Of Rows Modified
    -- <http://sqlite.org/c3ref/total_changes.html>

    sqlite3_total_changes,

    -- * Interrupt A Long-Running Query
    -- <http://sqlite.org/c3ref/interrupt.html>

    sqlite3_interrupt,

    -- * Determine If An SQL Statement Is Complete
    -- <http://sqlite.org/c3ref/complete.html>

    sqlite3_complete,
    sqlite3_complete16,

    -- * Register A Callback To Handle SQLITE_BUSY Errors
    -- <http://sqlite.org/c3ref/busy_handler.html>

    sqlite3_busy_handler,

    -- * Set A Busy Timeout
    -- <http://sqlite.org/c3ref/busy_timeout.html>

    sqlite3_busy_timeout,

    -- * Convenience Routines For Running Queries
    -- <http://sqlite.org/c3ref/free_table.html>

    sqlite3_get_table,
    sqlite3_free_table,

    -- * Memory Allocation Subsystem
    -- <http://sqlite.org/c3ref/free.html>

    sqlite3_malloc,
    sqlite3_realloc,
    sqlite3_free,

    -- * Memory Allocator Statistics
    -- <http://sqlite.org/c3ref/memory_highwater.html>

    sqlite3_memory_used,
    sqlite3_memory_highwater,

    -- * Pseudo-Random Number Generator
    -- <http://sqlite.org/c3ref/randomness.html>

    sqlite3_randomness,

    -- * Compile-Time Authorization Callbacks
    -- <http://sqlite.org/c3ref/set_authorizer.html>

    sqlite3_set_authorizer,

    -- * Authorizer Return Codes
    -- <http://sqlite.org/c3ref/c_deny.html>

    _SQLITE_DENY,
    _SQLITE_IGNORE,

    -- * Authorizer Action Codes
    -- <http://sqlite.org/c3ref/c_alter_table.html>

    _SQLITE_CREATE_INDEX,
    _SQLITE_CREATE_TABLE,
    _SQLITE_CREATE_TEMP_INDEX,
    _SQLITE_CREATE_TEMP_TABLE,
    _SQLITE_CREATE_TEMP_TRIGGER,
    _SQLITE_CREATE_TEMP_VIEW,
    _SQLITE_CREATE_TRIGGER,
    _SQLITE_CREATE_VIEW,
    _SQLITE_DELETE,
    _SQLITE_DROP_INDEX,
    _SQLITE_DROP_TABLE,
    _SQLITE_DROP_TEMP_INDEX,
    _SQLITE_DROP_TEMP_TABLE,
    _SQLITE_DROP_TEMP_TRIGGER,
    _SQLITE_DROP_TEMP_VIEW,
    _SQLITE_DROP_TRIGGER,
    _SQLITE_DROP_VIEW,
    _SQLITE_INSERT,
    _SQLITE_PRAGMA,
    _SQLITE_READ,
    _SQLITE_SELECT,
    _SQLITE_TRANSACTION,
    _SQLITE_UPDATE,
    _SQLITE_ATTACH,
    _SQLITE_DETACH,
    _SQLITE_ALTER_TABLE,
    _SQLITE_REINDEX,
    _SQLITE_ANALYZE,
    _SQLITE_CREATE_VTABLE,
    _SQLITE_DROP_VTABLE,
    _SQLITE_FUNCTION,
    _SQLITE_SAVEPOINT,
    _SQLITE_COPY,

    -- * Query Progress Callbacks
    -- <http://sqlite.org/c3ref/progress_handler.html>

    sqlite3_progress_handler,

    -- * Opening A New Database Connection
    -- <http://sqlite.org/c3ref/open.html>

    sqlite3_open,
    sqlite3_open16,
    sqlite3_open_v2,

    -- * Error Codes And Messages
    -- <http://sqlite.org/c3ref/errcode.html>

    sqlite3_errcode,
    sqlite3_extended_errcode,
    sqlite3_errmsg,
    sqlite3_errmsg16,

    -- * SQL Statement Object
    -- <http://sqlite.org/c3ref/stmt.html>

    Sqlite3_stmt,

    -- * Run-time Limits
    -- <http://sqlite.org/c3ref/limit.html>

    sqlite3_limit,

    -- * Run-Time Limit Categories
    -- <http://sqlite.org/c3ref/c_limit_attached.html>

    _SQLITE_LIMIT_LENGTH,
    _SQLITE_LIMIT_SQL_LENGTH,
    _SQLITE_LIMIT_COLUMN,
    _SQLITE_LIMIT_EXPR_DEPTH,
    _SQLITE_LIMIT_COMPOUND_SELECT,
    _SQLITE_LIMIT_VDBE_OP,
    _SQLITE_LIMIT_FUNCTION_ARG,
    _SQLITE_LIMIT_ATTACHED,
    _SQLITE_LIMIT_LIKE_PATTERN_LENGTH,
    _SQLITE_LIMIT_VARIABLE_NUMBER,

    -- * Compiling An SQL Statement
    -- <http://sqlite.org/c3ref/prepare.html>

    sqlite3_prepare,
    sqlite3_prepare_v2,
    sqlite3_prepare16,
    sqlite3_prepare16_v2,

    -- * Retrieving Statement SQL
    -- <http://sqlite.org/c3ref/sql.html>

    sqlite3_sql,

    -- * Dynamically Typed Value Object
    -- <http://sqlite.org/c3ref/value.html>

    Sqlite3_value,

    -- * SQL Function Context Object
    -- <http://sqlite.org/c3ref/context.html>

    Sqlite3_context,

    -- * Binding Values To Prepared Statements
    -- <http://sqlite.org/c3ref/bind_blob.html>

    sqlite3_bind_blob,
    sqlite3_bind_double,
    sqlite3_bind_int,
    sqlite3_bind_int64,
    sqlite3_bind_null,
    sqlite3_bind_text,
    sqlite3_bind_text16,
    sqlite3_bind_value,
    sqlite3_bind_zeroblob,

    -- * Number Of SQL Parameters
    -- <http://sqlite.org/c3ref/bind_parameter_count.html>

    sqlite3_bind_parameter_count,

    -- * Name Of A Host Parameter
    -- <http://sqlite.org/c3ref/bind_parameter_name.html>

    sqlite3_bind_parameter_name,

    -- * Index Of A Parameter With A Given Name
    -- <http://sqlite.org/c3ref/bind_parameter_index.html>

    sqlite3_bind_parameter_index,

    -- * Reset All Bindings On A Prepared Statement
    -- <http://sqlite.org/c3ref/clear_bindings.html>

    sqlite3_clear_bindings,

    -- * Number Of Columns In A Result Set
    -- <http://sqlite.org/c3ref/column_count.html>

    sqlite3_column_count,

    -- * Column Names In A Result Set
    -- <http://sqlite.org/c3ref/column_name.html>

    sqlite3_column_name,
    sqlite3_column_name16,

    -- * Source Of Data In A Query Result
    -- <http://sqlite.org/c3ref/column_database_name.html>

    sqlite3_column_database_name,
    sqlite3_column_database_name16,
    sqlite3_column_table_name,
    sqlite3_column_table_name16,
    sqlite3_column_origin_name,
    sqlite3_column_origin_name16,

    -- * Declared Datatype Of A Query Result
    -- <http://sqlite.org/c3ref/column_decltype.html>

    sqlite3_column_decltype,
    sqlite3_column_decltype16,

    -- * Evaluate An SQL Statement
    -- <http://sqlite.org/c3ref/step.html>

    sqlite3_step,

    -- * Number of columns in a result set
    -- <http://sqlite.org/c3ref/data_count.html>

    sqlite3_data_count,

    -- * Fundamental Datatypes
    -- <http://sqlite.org/c3ref/c_blob.html>

    _SQLITE_INTEGER,
    _SQLITE_FLOAT,
    _SQLITE_BLOB,
    _SQLITE_NULL,
    _SQLITE3_TEXT,

    -- * Result Values From A Query
    -- <http://sqlite.org/c3ref/column_blob.html>

    sqlite3_column_blob,
    sqlite3_column_bytes,
    sqlite3_column_bytes16,
    sqlite3_column_double,
    sqlite3_column_int,
    sqlite3_column_int64,
    sqlite3_column_text,
    sqlite3_column_text16,
    sqlite3_column_type,
    sqlite3_column_value,

    -- * Destroy A Prepared Statement Object
    -- <http://sqlite.org/c3ref/finalize.html>

    sqlite3_finalize,

    -- * Reset A Prepared Statement Object
    -- <http://sqlite.org/c3ref/create_function.html>

    sqlite3_create_function,
    sqlite3_create_function16,

    -- * Text Encodings
    -- <http://sqlite.org/c3ref/c_any.html>

    _SQLITE_UTF8,
    _SQLITE_UTF16LE,
    _SQLITE_UTF16BE,
    _SQLITE_UTF16,
    _SQLITE_ANY,
    _SQLITE_UTF16_ALIGNED,

    -- * Obtaining SQL Function Parameter Values
    -- <http://sqlite.org/c3ref/value_blob.html>

    sqlite3_value_blob,
    sqlite3_value_bytes,
    sqlite3_value_bytes16,
    sqlite3_value_double,
    sqlite3_value_int,
    sqlite3_value_int64,
    sqlite3_value_text,
    sqlite3_value_text16,
    sqlite3_value_text16le,
    sqlite3_value_text16be,
    sqlite3_value_type,
    sqlite3_value_numeric_type,

    -- * Obtain Aggregate Function Context
    -- <http://sqlite.org/c3ref/aggregate_context.html>

    sqlite3_aggregate_context,

    -- * User Data For Functions
    -- <http://sqlite.org/c3ref/user_data.html>

    sqlite3_user_data,

    -- * Database Connection For Functions
    -- <http://sqlite.org/c3ref/context_db_handle.html>

    sqlite3_context_db_handle,

    -- * Function Auxiliary Data
    -- <http://sqlite.org/c3ref/get_auxdata.html>

    sqlite3_get_auxdata,
    sqlite3_set_auxdata,

    -- * Constants Defining Special Destructor Behavior
    -- <http://sqlite.org/c3ref/c_static.html>

    Sqlite3_destructor_type,
    _SQLITE_STATIC,
    _SQLITE_TRANSIENT,

    -- * Setting The Result Of An SQL Function
    -- <http://sqlite.org/c3ref/result_blob.html>

    sqlite3_result_blob,
    sqlite3_result_double,
    sqlite3_result_error,
    sqlite3_result_error16,
    sqlite3_result_error_toobig,
    sqlite3_result_error_nomem,
    sqlite3_result_error_code,
    sqlite3_result_int,
    sqlite3_result_int64,
    sqlite3_result_null,
    sqlite3_result_text,
    sqlite3_result_text16,
    sqlite3_result_text16le,
    sqlite3_result_text16be,
    sqlite3_result_value,
    sqlite3_result_zeroblob,

    -- * Define New Collating Sequences
    -- <http://sqlite.org/c3ref/create_collation.html>

    sqlite3_create_collation,
    sqlite3_create_collation_v2,
    sqlite3_create_collation16,

    -- * Collation Needed Callbacks
    -- <http://sqlite.org/c3ref/collation_needed.html>

    sqlite3_collation_needed,
    sqlite3_collation_needed16,

    -- * Suspend Execution For A Short Time
    -- <http://sqlite.org/c3ref/sleep.html>

    sqlite3_sleep,

    -- * Name Of The Folder Holding Temporary Files
    -- <http://sqlite.org/c3ref/temp_directory.html>

    sqlite_temp_directory,

    -- * Test For Auto-Commit Mode
    -- <http://sqlite.org/c3ref/get_autocommit.html>

    sqlite3_get_autocommit,

    -- * Find The Database Handle Of A Prepared Statement
    -- <http://sqlite.org/c3ref/db_handle.html>

    sqlite3_db_handle,

    -- * Find the next prepared statement
    -- <http://sqlite.org/c3ref/next_stmt.html>

    sqlite3_next_stmt,

    -- * Commit And Rollback Notification Callbacks
    -- <http://sqlite.org/c3ref/commit_hook.html>

    sqlite3_commit_hook,
    sqlite3_rollback_hook,

    -- * Data Change Notification Callbacks
    -- <http://sqlite.org/c3ref/update_hook.html>

    sqlite3_update_hook,

    -- * Enable Or Disable Shared Pager Cache
    -- <http://sqlite.org/c3ref/enable_shared_cache.html>

    sqlite3_enable_shared_cache,

    -- * Attempt To Free Heap Memory
    -- <http://sqlite.org/c3ref/release_memory.html>

    sqlite3_release_memory,

    -- * Impose A Limit On Heap Size
    -- <http://sqlite.org/c3ref/soft_heap_limit.html>

    sqlite3_soft_heap_limit,

    -- * Load An Extension
    -- <http://sqlite.org/c3ref/load_extension.html>

    sqlite3_load_extension,

    -- * Enable Or Disable Extension Loading
    -- <http://sqlite.org/c3ref/enable_load_extension.html>

    sqlite3_enable_load_extension,

    -- * Automatically Load An Extensions
    -- <http://sqlite.org/c3ref/auto_extension.html>

    sqlite3_auto_extension,

    -- * Reset Automatic Extension Loading
    -- <http://sqlite.org/c3ref/reset_auto_extension.html>

    sqlite3_reset_auto_extension,

    -- * A Handle To An Open BLOB
    -- <http://sqlite.org/c3ref/blob.html>

    Sqlite3_blob,

    -- * Open A BLOB For Incremental I/O
    -- <http://sqlite.org/c3ref/blob_open.html>

    sqlite3_blob_open,

    -- * Close A BLOB Handle
    -- <http://sqlite.org/c3ref/blob_close.html>

    sqlite3_blob_close,

    -- * Return The Size Of An Open BLOB
    -- <http://sqlite.org/c3ref/blob_bytes.html>

    sqlite3_blob_bytes,

    -- * Read Data From A BLOB Incrementally
    -- <http://sqlite.org/c3ref/blob_read.html>

    sqlite3_blob_read,

    -- * Write Data Into A BLOB Incrementally
    -- <http://sqlite.org/c3ref/blob_write.html>

    sqlite3_blob_write,

    -- * Virtual File System Objects
    -- <http://sqlite.org/c3ref/vfs_find.html>

    sqlite3_vfs_find,
    sqlite3_vfs_register,
    sqlite3_vfs_unregister,

    -- * Mutexes
    -- <http://sqlite.org/c3ref/mutex_alloc.html>

    sqlite3_mutex_alloc,
    sqlite3_mutex_free,
    sqlite3_mutex_enter,
    sqlite3_mutex_try,
    sqlite3_mutex_leave,

    -- * Mutex Verification Routines
    -- <http://sqlite.org/c3ref/mutex_held.html>

    sqlite3_mutex_held,
    sqlite3_mutex_notheld,

    -- * Mutex Types
    -- <http://sqlite.org/c3ref/c_mutex_fast.html>

    _SQLITE_MUTEX_FAST,
    _SQLITE_MUTEX_RECURSIVE,
    _SQLITE_MUTEX_STATIC_MASTER,
    _SQLITE_MUTEX_STATIC_MEM,
    _SQLITE_MUTEX_STATIC_MEM2,
    _SQLITE_MUTEX_STATIC_PRNG,
    _SQLITE_MUTEX_STATIC_LRU,
    _SQLITE_MUTEX_STATIC_LRU2,

    -- * Retrieve the mutex for a database connection
    -- <http://sqlite.org/c3ref/db_mutex.html>

    sqlite3_db_mutex,

    -- * Low-Level Control Of Database Files
    -- <http://sqlite.org/c3ref/file_control.html>

    sqlite3_file_control

 ) where

import Sqlite3Constants
import Sqlite3Types
import Sqlite3Functions