.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(Basic embedding of SQL types in Haskell. provisionalDon Stewart <dons@galois.com>/Data type representing the SQL DROP statement. Delete a table named SQLTable Delete a database %Data type for SQL CREATE statements. Create a table Create a database %Data type for SQL INSERT statements. %Data type for SQL DELETE statements. %Data type for SQL UPDATE statements. Expressions in SQL statements. Use empty string for no alias. Join with another table. %Data type for SQL SELECT statements.  UNION, etc !"DISTINCT, ALL etc. $ | result, alias. Empty list means  select all. #$FROM %WHERE & GROUP BY ' ORDER BY ( TOP n, etc. )*+,-./0123456789:;<=2MySQL slanted, but also SQLite friendly if you don't get  too fancy.. >?@ABCDEF4We parameterize over column type, since SQL engines 9 do tend to provide their own set of supported datatypes % (which may or may not map onto SQL99's set of types.) GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklAuto-increment? mnopqrstuvwPretty prints a ! Pretty prints a   Pretty prints a   Pretty prints a . Pretty prints a . Pretty prints a  x  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw{qpro)+*! "#$%&'(v   hnmlkjidgfe^cba`_W]\[ZYXSVUTLOMPQRPQRNFGHIJK=EDCBA@?>7<;:98165432,0/.-stuwx   ! "#$%&'( !"#$%&'()+**+,0/.--./0165432234567<;:9889:;<=EDCBA@?>>?@ABCDEFGHIJGHIJKL OMPQRPQRNMNOPQRSVUTTUVW]\[ZYXXYZ[\]^cba`__`abcdgfeefghnmlkjiijklmnopqrstuvwxy  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxxxportable provisionalDon Stewart <dons@galois.com>yz{|}~ SQLite types A BLOB handle >The context in which an SQL function executes is stored in an C sqlite3_context object. A pointer to an sqlite3_context object is > always first parameter to application-defined SQL functions. BSQLite uses the sqlite3_value object to represent all values that F are or can be stored in a database table. SQLite uses dynamic typing F for the values it stores. Values stored in sqlite3_value objects can A be be integers, floating point values, strings, BLOBs, or NULL. AAn instance of this object represent single SQL statements. This  object is variously known as a prepared statement or a compiled SQL statement or simply as a  statement.  An open SQLite database object. SQLite C status codes.   (http://www.sqlite.org/c3ref/c_abort.html SQLite extended result codes:   0http://www.sqlite.org/c3ref/c_ioerr_blocked.html "SQLite flags for open operations.   .http://www.sqlite.org/c3ref/c_open_create.html Device characteristics   /http://www.sqlite.org/c3ref/c_iocap_atomic.html File locking levels   1http://www.sqlite.org/c3ref/c_lock_exclusive.html Synchronization flags   0http://www.sqlite.org/c3ref/c_sync_dataonly.html xAccess methods   0http://www.sqlite.org/c3ref/c_access_exists.html Authorizer Action Codes   .http://www.sqlite.org/c3ref/c_alter_table.html Text encodings   &http://www.sqlite.org/c3ref/c_any.html     Fundamental datatypes   'http://www.sqlite.org/c3ref/c_blob.html  yz{|}~     ~}|{z   y  yz{|}~     #Bindings to the SQLite C interface. provisionalDon Stewart <dons@galois.com>} !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~} !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! } !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~portable provisionaldocserver-dev-team@galois.com:2This is the type of the function supported by the  H function. The first argument is the regular expression to match with G and the second argument is the string to match. The result shall be   for successful match and  otherwise. 4Open a new database connection, whose name is given  by the dbName) argument. A sqlite3 handle is returned. <An exception is thrown if the database could not be opened. Close a database connection. > Destroys the SQLite value associated with a database, closes F all open files relating to the database, and releases all resources. #Define a new table, populated from tab in the database. Insert a row into the table tab. 4Return the rowid (as an Integer) of the most recent & successful INSERT into the database. .Sets the value of a parameter in a statement.  Perofrms UTF8 encoding. /Called when we know that an error has occured. CPrepare and execute a parameterized statment, ignoring the result.  See also . .Prepare and execute a parameterized statment. < Statement parameter names start with a colon (for example, :col_id). ; Note that for the moment, column names should not contain 0 B characters because that part of the column name will be ignored. (Evaluate the SQL statement specified by sqlStmt Returns an error, or  if everything was OK. This function registers a  to be called when / REGEXP(regexp,str) is used in an SQL query. @Internal function to marshall the C types into Haskell types to 9 make a RegexpHandler compatible with the Sqlite3 API.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGGHIJKLMNLOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ sqlite-0.5Database.SQL.Types Database.SQLDatabase.SQLite.TypesDatabase.SQLite.BaseDatabase.SQLite PrettySQLpp_sqlSQLDrop SQLDropTable SQLDropDB SQLCreateSQLCreateTable SQLCreateDB SQLInsertSQLInsertQuery SQLDelete SQLUpdateSQLExpr ListSQLExpr CaseSQLExpr ConstSQLExpr FunSQLExprPostfixSQLExpr PrefixSQLExpr BinSQLExpr ColumnSQLExpr TableSource SrcSelectSrcTableJoin SelectSourceFrom SQLSelectSQLBinoptionsattrstablescriteriagroupbyorderbyextraSQLOrderSQLDescSQLAscBlobTypeLongBlob MediumBlob NormalBlobTinyBlob DateTimeTypeYEARTIME TIMESTAMPDATETIMEDATEIntTypeBIGNORMALMEDIUMSMALLTINYSQLTypeSQLFloat SQLDecimalSQLInt SQLDateTimeSQLBlob SQLVarCharSQLChar SQLBooleanColumncolNamecolType colClausesSQLTableTable VirtualTabletabUsingtabName tabColumnstabConstraints Constraint TableCheck TableUniqueTablePrimaryKey DefermentNotDeferrableInitiallyImmediateNotDeferrableInitiallyDeferred NotDeferrableDeferrableInitiallyImmediateDeferrableInitiallyDeferred DeferrableForeignUpdateActionNoActionRestrictCascade SetDefaultSetNullForeignUpdateConditionMatchOnUpdateOnDeleteClauseUnique Clustered ForeignKey PrimaryKey DefaultValue IsNullableOpName ColumnName TableName DatabaseNameshowType showClause toSQLString select_all export_sql sqlInsertFundamentalDatatypeTextEncodeFlagAuthCode AccessFlagSyncFlagLockFlagIOCap OpenFlagsStatus SQLiteType SQLiteNull SQLiteBlob SQLiteText SQLiteFloat SQLiteIntSQLiteCallbackUserDataSQLiteCallbackSQLiteContextBuffer SQLiteUTF16 SQLiteBLOB SQLiteContext SQLiteValue SQLiteStmtSQLite SQLiteWord64 SQLiteInt64 sQLITE_OK sQLITE_ERRORsQLITE_INTERNAL sQLITE_PERM sQLITE_ABORT sQLITE_BUSY sQLITE_LOCKED sQLITE_NOMEMsQLITE_READONLYsQLITE_INTERRUPT sQLITE_IOERRsQLITE_CORRUPTsQLITE_NOTFOUND sQLITE_FULLsQLITE_CANTOPENsQLITE_PROTOCOL sQLITE_EMPTY sQLITE_SCHEMA sQLITE_TOOBIGsQLITE_CONSTRAINTsQLITE_MISMATCH sQLITE_MISUSE sQLITE_NOLFS sQLITE_AUTH sQLITE_FORMAT sQLITE_RANGE sQLITE_NOTADB sQLITE_ROW sQLITE_DONEsQLITE_IOERR_READsQLITE_IOERR_SHORT_READsQLITE_IOERR_WRITEsQLITE_IOERR_FSYNCsQLITE_IOERR_DIR_FSYNCsQLITE_IOERR_TRUNCATEsQLITE_IOERR_FSTATsQLITE_IOERR_UNLOCKsQLITE_IOERR_RDLOCKsQLITE_IOERR_DELETEsQLITE_IOERR_BLOCKEDsQLITE_IOERR_NOMEMsQLITE_OPEN_READONLYsQLITE_OPEN_READWRITEsQLITE_OPEN_CREATEsQLITE_OPEN_DELETEONCLOSEsQLITE_OPEN_EXCLUSIVEsQLITE_OPEN_MAIN_DBsQLITE_OPEN_TEMP_DBsQLITE_OPEN_TRANSIENT_DBsQLITE_OPEN_MAIN_JOURNALsQLITE_OPEN_TEMP_JOURNALsQLITE_OPEN_SUBJOURNALsQLITE_OPEN_MASTER_JOURNALsQLITE_IOCAP_ATOMICsQLITE_IOCAP_ATOMIC512sQLITE_IOCAP_ATOMIC1KsQLITE_IOCAP_ATOMIC2KsQLITE_IOCAP_ATOMIC4KsQLITE_IOCAP_ATOMIC8KsQLITE_IOCAP_ATOMIC16KsQLITE_IOCAP_ATOMIC32KsQLITE_IOCAP_ATOMIC64KsQLITE_IOCAP_SAFE_APPENDsQLITE_IOCAP_SEQUENTIALsQLITE_LOCK_NONEsQLITE_LOCK_SHAREDsQLITE_LOCK_RESERVEDsQLITE_LOCK_PENDINGsQLITE_LOCK_EXCLUSIVEsQLITE_SYNC_NORMALsQLITE_SYNC_FULLsQLITE_SYNC_DATAONLYsQLITE_ACCESS_EXISTSsQLITE_ACCESS_READWRITEsQLITE_ACCESS_READ sQLITE_COPYsQLITE_CREATE_INDEXsQLITE_CREATE_TABLEsQLITE_CREATE_TEMP_INDEXsQLITE_CREATE_TEMP_TABLEsQLITE_CREATE_TEMP_TRIGGERsQLITE_CREATE_TEMP_VIEWsQLITE_CREATE_TRIGGERsQLITE_CREATE_VIEW sQLITE_DELETEsQLITE_DROP_INDEXsQLITE_DROP_TABLEsQLITE_DROP_TEMP_INDEXsQLITE_DROP_TEMP_TABLEsQLITE_DROP_TEMP_TRIGGERsQLITE_DROP_TEMP_VIEWsQLITE_DROP_TRIGGERsQLITE_DROP_VIEW sQLITE_INSERT sQLITE_PRAGMA sQLITE_READ sQLITE_SELECTsQLITE_TRANSACTION sQLITE_UPDATE sQLITE_ATTACH sQLITE_DETACHsQLITE_ALTER_TABLEsQLITE_REINDEXsQLITE_ANALYZEsQLITE_CREATE_VTABLEsQLITE_DROP_VTABLEsQLITE_FUNCTION sQLITE_UTF8sQLITE_UTF16LEsQLITE_UTF16BE sQLITE_UTF16 sQLITE_ANYsQLITE_UTF16_ALIGNEDsQLITE_INTEGER sQLITE_FLOAT sQLITE_BLOB sQLITE_NULL sQLITE_TEXT isNullStmt noCallback freeCallbacksqlite3_blob_writesqlite3_blob_readsqlite3_blob_bytessqlite3_blob_closesqlite3_blob_opensqlite3_enable_shared_cachesqlite3_update_hooksqlite3_rollback_hooksqlite3_commit_hooksqlite3_db_handlesqlite3_get_autocommitsqlite3_get_temp_directorysqlite3_set_temp_directory sqlite3_sleepsqlite3_collation_needed16sqlite3_collation_neededsqlite3_create_collation_v2sqlite3_create_collation16sqlite3_create_collationsqlite3_result_zeroblobsqlite3_result_valuesqlite3_result_text16besqlite3_result_text16lesqlite3_result_text16sqlite3_result_textsqlite3_result_nullsqlite3_result_int64sqlite3_result_intsqlite3_result_error_toobigsqlite3_result_error16sqlite3_result_errorsqlite3_result_doublesqlite3_result_blobsqlite3_transient_destructorsqlite3_static_destructorsqlite3_set_auxdatasqlite3_get_auxdatasqlite3_user_datasqlite3_aggregate_contextsqlite3_value_typesqlite3_value_numeric_typesqlite3_value_text16besqlite3_value_text16lesqlite3_value_text16sqlite3_value_textsqlite3_value_int64sqlite3_value_intsqlite3_value_doublesqlite3_value_bytes16sqlite3_value_bytessqlite3_value_blobsqlite3_create_functionsqlite3_finalizesqlite3_column_valuesqlite3_column_typesqlite3_column_text16sqlite3_column_textsqlite3_column_int64sqlite3_column_intsqlite3_column_doublesqlite3_column_bytes16sqlite3_column_bytessqlite3_column_blobsqlite3_data_count sqlite3_stepsqlite3_column_decltypesqlite3_column_namesqlite3_column_countsqlite3_clear_bindingssqlite3_bind_parameter_indexsqlite3_bind_parameter_namesqlite3_bind_parameter_countsqlite3_bind_zeroblobsqlite3_bind_valuesqlite3_bind_textsqlite3_bind_nullsqlite3_bind_int64sqlite3_bind_intsqlite3_bind_doublesqlite3_bind_blobsqlite3_preparesqlite3_errmsgsqlite3_errcodesqlite3_open16 sqlite3_opensqlite3_progress_handlersqlite3_profile sqlite3_tracesqlite3_set_authorizer sqlite3_freesqlite3_reallocsqlite3_mallocsqlite3_free_tablesqlite3_get_tablesqlite3_busy_timeoutsqlite3_busy_handlersqlite3_complete16sqlite3_completesqlite3_interruptsqlite3_total_changessqlite3_changessqlite3_last_insert_rowidsqlite3_extended_result_codes sqlite3_exec sqlite3_closesqlite3_libversion_numbersqlite3_libversionmkCollationHandler16mkCollationHandlermkCompareHandler mkStepHandlermkFinalizeContextHandlermkFilterHandler mkUpdateHook mkFreeHandler mkExecHandlerCollationHandler16CollationHandlerCompareHandler StepHandlerFinalizeContextHandler FilterHandler UpdateHook FreeHandler ExecHandlerIsValuefromSQLiteValuereturnSQLiteValueIsFunctionHandler funcArity funcHandler RegexpHandlerValueNullBlobTextIntDoubleRow SQLiteHandlenewSQLiteHandleopenConnectioncloseConnectionwithPrimdefineTableOpt defineTable insertRow getLastRowIDexecParamStatement_execParamStatement execStatementexecStatement_addRegexpSupportcreateFunctioncreateFunctionPrimcreateAggregatePrimppSelectppAttrsppSelectSourceppJoin ppJoinArg ppTableSourceppAliasppWhere ppGroupBy ppOrderByppUpdateppDeleteppInsertppCreateppColumnppClause ppConstraintppDrop ppSQLExprcommaHcommaVp_freeFunctionHandler FunctionNameArityghc-primGHC.BoolTrueFalse SQLiteResultget_sqlite_valaddSQLiteHandleFinalizer bindValueto_errorbase Data.MaybeNothingtupledebindeReturnensureensure_ get_text_valget_valsqlite3_value_valueregexp_callbackisNullCStringLensqlite3_value_cstringlenfunction_callbackfinalize_callbackget_aggr_contextset_aggr_context_SZ step_callback