/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe V Test for P or QY]maximum message lenth Vendors may increase this constant but its value must be at lieast 512Zmaximum identifier lengthbenvironment attributecconnection attributed connection and schema attributesf  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! NoneCf"information in a diagnostic recordlgconcise information about a column of a result set, mapping the result of SQL CLI API call DescribeColsinformation about column in the database; the meaning of fields is detailed in the SQL CLI specification in the documenation of Columns API call?configuration values dependent on the actual CLI implementationJposition of TABLE_CAT column in the resultset returned by Columns API callLposition of TABLE_SCHEM column in the resultset returned by Columns API callKposition of TABLE_NAME column in the resultset returned by Columns API callLposition of COLUMN_NAME column in the resultset returned by Columns API callJposition of DATA_TYPE column in the resultset returned by Columns API callJposition of TYPE_NAME column in the resultset returned by Columns API callLposition of COLUMN_SIZE column in the resultset returned by Columns API callNposition of BUFFER_LENGTH column in the resultset returned by Columns API callOposition of DECIMAL_DIGITS column in the resultset returned by Columns API callOposition of NUM_PREC_RADIX column in the resultset returned by Columns API callIposition of NULLABLE column in the resultset returned by Columns API callHposition of REMARKS column in the resultset returned by Columns API callKposition of COLUMN_DEF column in the resultset returned by Columns API callNposition of DATETIME_CODE column in the resultset returned by Columns API callRposition of CHAR_OCTET_LENGTH column in the resultset returned by Columns API callQposition of ORDINAL_POSITION column in the resultset returned by Columns API callLposition of IS_NULLABLE column in the resultset returned by Columns API callconvert an implementation type to a SQL/CLI known type; checks if the type identifier is a SQL/CLI type; if not returns sql_varcharRRead columns information for a given table on a database connection. It returns a u value that will get implementation dependent fieled numbers in the result set returned by Columns API call from a  value.Implements the logic of < getting the handle to the statement that was used to call D on3Checks if a table exists on the current connection.wrapper to SQL/CLI function EndTran; it creates a monadic action to call the foreign API function and to log diagnostics on the standard output; it fails if the API call failswrapper for SQL/CLI function SetConnectAttr; it creates a monadic action that calls the foreign API function and logs diagnostics on standard error; it fails if the API call failswrapper for SQL/CLI function SetDescField; it creates a monadic action that calls the API function, logs diagnostic on standard output and fails if the API call failswrapper for SQL/CLI function GetDescField; it creates a monadic action that calls the API function, logs disgnostic on standard output and fails if the API call failswrapper for SQL/CLI function SetDescRec; it gets the same parameters as the function described in the API and creates a monadic action that fails if the API call fails and logs the diagnostics to standard errorwrapper for SQL/CLI function GetDescRec; it gets the same parameters as the function described in the API and creates a monadic action that fails if the API call fails and logs the diagnostics to standard errorwrapper for SQL/CLI function NumResultCols; it fails if the API call fails and it displays diagnostic information on the standard error&helper function to get the value of a  statement attributewrapper for SQL/CLI function GetStmtAttr; it displays diagnostic info on the standard error and it fails if the call SQL/CLI call failsSwrapper for SQL/CLI function, BindParam; it displayes diagnostics on standard errorOwrapper for PutData SQL/CLI api call; it displays diagnostics on standard error8wrapper for ParamData SQL/CLI API call; it gets a statement handle and a function that knows how to supply parameter data; this function gets the value DATA_PTR field of the record in the application parameter descriptor that relates to the dynamic parameter for which the implementation requires information.|The successful return of this call means that all parameter data has been supplied and the sql statement has been executed.$wrapper for Prepare SQL/CLI API callwrapper for Execute SQL/CLI API call; it receives ab handle to a prepared statement and a monadic action that should provide dynamic arguments data using calls to # and %(; this action will be used in the case ; returns U, that is, if the prepared statement specifies some dynamic parameters that are not described in the application parameter descriptor (for example, by calling H for that parameter); the action must provide the data for parameters in the order the parameters appear in the sql statement and call %, after each parameter data has been provided(wrapper for DescribeCol SQL CLI API call$wrapper for SQL CLI Columns API call#wrapper for SQL CLI Tables API callapplies a function through all the records in a statment, passing an accumulator value and combining the actions returned by the function%applies a function through all the records in a statment, passing an accumulator value and combining the actions returned by the function; if all records have been successfully fetched, the second function is called; if an error occures, the third function is called, with the error messageUexhaust all data of a column extracting all data chunks with GetData SQL/CLI call, and calling a function after extraction of each chunk passing it an accumulator value; the function should construct a monadic action that will deal with the extracted data chunk; in the end, these actions are combined in the monadic value returned by the @Read data from a column and checks the diagnostics, returning a  or , value inside a monadic action. It returns ) if more data is available for read, and  otherwise. It fails in  \ monad if an error occured. It displays the diagnostics on the error on the standard error.Read data available in a column of a fetched database record inside a monadic action. It fails if an error occurs, displaying the diagnostics on the standard error. It receives 2 monadic actions parameters:moreendIt executes the more action if there is more data available and it executes the end action if all data in the column has been read.UCreate a monadic action to fetch the next record in an executed statement producing ( if there are more records available or # if all the records have been read.gIf an error occurs, the monadic action fails, displaying the error diagnostics on the standard error.Create a monadic action to fetch the next record in an excecuted statement. It, then, executes one of the 2 actions received as parameters. If :A returns a success code, it executes the first action, else, if R] is received as result (there were no more records to fetch), it executes the second action.bIf an error occrus, the monadic action fails, displaying error diagnostics on the standard error.Create a monadic action to fetch the next record in an excecuted statement. It, then, executes one of the 3 actions received as parameters depending on the result of calling : function.If :g call returns a success code, then the first action is called, that should process the fetched record.If : returns R, meaning there are no more records to fetch, the second action is called that should terminate the data fetching on this statement.If :| returns an error, the third action is executed that should process the error condition, passing it the fail error message.bIf an error occrus, the monadic action fails, displaying error diagnostics on the standard error.)helper function to bind a SMALLINT column)helper function to bind an INTEGER columnzhelper function to bind a VARCHAR column. The buffer length parameter must include the NULL terminating character of the .wrapper for BindCol SQL CLI API call; if an error occurs the computation is stopped and diagnostics are displayed on the standard errorwrapper for SQL CLI ExecDirect API call; if an error occurs, the computation exits displaying diagnostics on the standard error.SIt gets 3 parameters: a handle statement, a sql string and a feed data action; if < returns U$, it executes the feed data action.fThe feed data action is responsible with supplying the needed data for dynamic parameters by calling # and %^. See more details on SQL/CLI specification for ExecDirect, PutData and ParamData API calls.[utility function that allocates a database connection handle and connects to the database.KOn success, the computation returns the handle to the database conncection.NOn error, the computation exits, displaying diagnostics on the standard error.Uwrapper for SQL CLI Disconnect API call; displays diagnostics on the standard error.wrapper to SQL CLI AllocHandle API call; it displays diagnostics info on the standard error and fails if the handle could not be allocatediwrapper for SQL CLI FreeHandle API call; it displays diagnostics on the standard error; it does not fail create an m action that displays diagnostic records for a given handle on the standard error; this action will not failcreate a monadic action to display the diagnostic records for a given handle on the standard error; it fails if an error occurs while reading diagnostic records.-display a diagnostic record on standard errorcreate a monadic action to read the number of the diagnostic records for a given handle; it fails if an error occurs and it displays diagnostics on standard errorwrapper for SQL CLI GetDiagRec API call; the computation fails if an error occurs and it displays diagnostics on standard errorhelper function to allocate a ; it calls the function received as parameter with the address of the allocated string or with a null pointer if no string was received as input (i.e. )Qhelper function to read a nullable column; returns Nothing if the column is nullVhelper function to read a nullable text column; returns Nothing if the column is null connection handle schema name table nameconnection handle schema name table name handle typehandle2completion type; either sql_commit or sql_rollbackdescriptor handle record numberfield identifier'pointer to the buffer holding the valueRlength in octets of the value; if the field is not a string, the field is ignoreddescriptor handleErecord number, starts with 1; when getting header fields it must be 0field identifier3pointer to buffer to receive the value of the field)the length in bytes of the value's bufferxpointer to a buffer to receive the length in octets of the value, if the value si a character string; otherwise, unused (input) descriptor handle((input) record number; it starts from 1"(input) the TYPE field for recordQ(input) the DATETIME_INTERVAL_CODE field, for records whose TYPE is SQL_DATETIME.(input) the OCTET_LENGTH field for the record+(input) the PRECISION field for the record'(input) the SCALE field for the record&(input) DATA_PTR field for the record.(input) OCTET_LENGTH_PTR field for the record +(input) INDICATOR_PTR field for the record (input) descriptor handle%(input) record number, starts from 1*(output) buffer to receive the column name(input) name buffer length8(output) buffer to receive the actual length of the name%(output) the TYPE field of the recordQ(output) the DATETIME_INTERVAL_CODE field, for records whose TYPE is SQL_DATETIME/(output) the OCTET_LENGTH field of the recorrd /(output) the PRECISION field of the record /(output) the SCALE field of the record )(output) the NULLABLE field of the recordstatement handlethe attribute identifier'buffer to receive the attribute's value_the length of the buffer in octets, if the attribute's value is string, otherwise it is unusedypointer to buffer to receive the actual length of the attribute's value, if it is a string value, otherwise it is unusedstatement handleparameter number value typeparameter typelength precisionparameter scaleparameter valuestring length or indicatorstatement handlecolumn number (starting with 1)buffer to receive the value9buffer to receive the indicator or length; it can be nullstatement handlecolumn number (starting with 1)buffer to receive the value9buffer to receive the indicator or length; it can be nullstatement handlecolumn number (starting with 1)/buffer to receive the null terminated text data@buffer length in bytes, including the null terminating character.pointer to indicator or length; it can be nullbfgkjhilmrqponst~}|{zyxwvucstuvwxyz{|}~lmnopqrfghijkfghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiijklmnnopqrsttuvwxyz{|}~%sqlcli-0.2.0.0-HrgLc5Qxtqd3TpDofg4DIPSQL.CLI SQL.CLI.UtilsSQLULENSQLLENSQLHDESCSQLHSTMTSQLHDBCSQLHENV SQLHANDLE SQLRETURN SQLNUMERIC SQLDECIMAL SQLVARCHAR SQLTIMESTAMPSQLTIMESQLDATE SQLPOINTERSQLREALSQLFLOAT SQLDOUBLE SQLSMALLINT SQLINTEGERSQLCHAR sqltransact sqltables sqlstatisticssqlspecialcolumnssqlsetstmtoptionsqlsetstmtattr sqlsetparam sqlsetenvattr sqlsetdescrecsqlsetdescfieldsqlsetcursornamesqlsetconnectoptionsqlsetconnectattr sqlrowcount sqlputdata sqlprepare sqlparamdatasqlnumresultcolssqlgettypeinfosqlgetstmtoptionsqlgetstmtattr sqlgetinfosqlgetfunctions sqlgetenvattr sqlgetdiagrecsqlgetdiagfield sqlgetdescrecsqlgetdescfield sqlgetdatasqlgetcursornamesqlgetconnectoptionsqlgetconnectattr sqlfreestmt sqlfreehandle sqlfreeenvsqlfreeconnectsqlfetchscrollsqlfetch sqlexecute sqlexecdirectsqlerror sqlendtran sqldisconnectsqldescribecolsqldatasources sqlopydesc sqlconnect sqlcolumnssqlcolattributesqlclosecursor sqlcancel sqlbindparam sqlbindcol sqlallocstmtsqlallochandle sqlallocenvsqlallocconnect sql_null_datasql_data_at_exec sql_successsql_success_with_info sql_no_data sql_errorsql_invalid_handle sql_need_data sql_succeededsql_ntssql_ntslsql_max_message_lengthsql_max_id_length sql_date_len sql_time_lensql_timestamp_lensql_handle_envsql_handle_dbcsql_handle_stmtsql_handle_descsql_attr_output_ntssql_attr_auto_ipdsql_attr_metadata_idsql_attr_app_row_descsql_attr_app_param_descsql_attr_imp_row_descsql_attr_imp_param_descsql_attr_cursor_scrollablesql_attr_cursor_sensitivitysql_desc_count sql_desc_typesql_desc_lengthsql_desc_octet_length_ptrsql_desc_precisionsql_desc_scalesql_desc_datetime_interval_codesql_desc_nullablesql_desc_indicator_ptrsql_desc_data_ptr sql_desc_namesql_desc_unnamedsql_desc_octet_lengthsql_desc_alloc_typesql_diag_returncodesql_diag_numbersql_diag_row_countsql_diag_sqlstatesql_diag_nativesql_diag_message_textsql_diag_dynamic_functionsql_diag_class_originsql_diag_subclass_originsql_diag_connection_namesql_diag_server_namesql_diag_dynamic_function_codesql_diag_alter_tablesql_diag_create_indexsql_diag_create_tablesql_diag_create_viewsql_diag_delete_wheresql_diag_drop_indexsql_diag_drop_tablesql_diag_drop_viewsql_diag_dynamic_delete_cursorsql_diag_dynamic_update_cursorsql_diag_grantsql_diag_insertsql_diag_revokesql_diag_select_cursorsql_diag_unknown_statementsql_diag_update_wheresql_char sql_numeric sql_decimal sql_integer sql_smallint sql_floatsql_real sql_double sql_datetime sql_varchar sql_type_date sql_type_timesql_type_timestampsql_unspecifiedsql_insensitive sql_sensitive sql_all_types sql_default sql_ard_type sql_code_date sql_code_timesql_code_timestamp sql_falsesql_true sql_no_nulls sql_nullablesql_nullable_unknown sql_pred_none sql_pred_charsql_pred_basic sql_named sql_unnamedsql_desc_alloc_autosql_desc_alloc_user sql_closesql_drop sql_unbindsql_reset_paramssql_fetch_nextsql_fetch_firstsql_fetch_lastsql_fetch_priorsql_fetch_absolutesql_fetch_relative sql_commit sql_rollback sql_null_henv sql_null_hdbcsql_null_hstmtsql_null_hdescsql_null_handlesql_scope_currowsql_scope_transactionsql_scope_sessionsql_pc_unknownsql_pc_non_pseudo sql_pc_pseudosql_row_identifiersql_index_unique sql_index_allsql_index_clusteredsql_index_hashedsql_index_othersql_api_sqlallocconnectsql_api_sqlallocenvsql_api_sqlallochandlesql_api_sqlallocstmtsql_api_sqlbindcolsql_api_sqlbindparamsql_api_sqlcancelsql_api_sqlclosecursorsql_api_sqlcolattributesql_api_sqlcolumnssql_api_sqlconnectsql_api_sqlcopydescsql_api_sqldatasourcessql_api_sqldescribecolsql_api_sqldisconnectsql_api_sqlendtransql_api_sqlerrorsql_api_sqlexecdirectsql_api_sqlexecutesql_api_sqlfetchsql_api_sqlfetchscrollsql_api_sqlfreeconnectsql_api_sqlfreeenvsql_api_sqlfreehandlesql_api_sqlfreestmtsql_api_sqlgetconnectattrsql_api_sqlgetconnectoptionsql_api_sqlgetcursornamesql_api_sqlgetdatasql_api_sqlgetdescfieldsql_api_sqlgetdescrecsql_api_sqlgetdiagfieldsql_api_sqlgetdiagrecsql_api_sqlgetenvattrsql_api_sqlgetfunctionssql_api_sqlgetinfosql_api_sqlgetstmtattrsql_api_sqlgetstmtoptionsql_api_sqlgettypeinfosql_api_sqllanguagessql_api_sqlnumresultcolssql_api_sqlparamdatasql_api_sqlpreparesql_api_sqlputdatasql_api_sqlreleaseenvsql_api_sqlrowcountsql_api_sqlserverinfosql_api_sqlsetconnectattrsql_api_sqlsetconnectoptionsql_api_sqlsetcursornamesql_api_sqlsetdescfieldsql_api_sqlsetdescrecsql_api_sqlsetenvattrsql_api_sqlsetparamsql_api_sqlsetstmtattrsql_api_sqlsetstmtoptionsql_api_sqlspecialcolumnssql_api_sqlstatisticssql_api_sqltablessql_api_sqltransactsql_max_driver_connectionssql_max_concurrent_activitiessql_data_source_namesql_fetch_directionsql_server_namesql_search_pattern_escape sql_dbms_name sql_dbms_versql_accessible_tablessql_cursor_commit_behaviorsql_data_source_read_onlysql_default_txn_isolationsql_identifier_casesql_identifier_quote_charsql_max_column_name_lensql_max_cursor_name_lensql_max_schema_name_lensql_max_catalog_name_lensql_max_table_name_lensql_scroll_concurrencysql_txn_capable sql_user_namesql_txn_isolation_option sql_integritysql_getdata_extensionssql_null_collationsql_alter_tablesql_order_by_columns_in_selectsql_special_characterssql_max_columns_in_group_bysql_max_columns_in_indexsql_max_columns_in_order_bysql_max_columns_in_selectsql_max_columns_in_tablesql_max_index_sizesql_max_row_sizesql_max_statement_lensql_max_tables_in_selectsql_max_user_name_lensql_oj_capabilitiessql_xopen_cli_yearsql_cursor_sensitivitysql_describe_parametersql_catalog_namesql_collation_seqsql_max_identifier_lensql_at_add_columnsql_at_drop_columnsql_at_alter_columnsql_at_add_constraintsql_at_drop_constraint sql_cb_delete sql_cb_closesql_cb_preservesql_fd_fetch_nextsql_fd_fetch_firstsql_fd_fetch_lastsql_fd_fetch_priorsql_fd_fetch_absolutesql_fd_fetch_relativesql_gd_any_columnsql_gd_any_order sql_ic_upper sql_ic_lowersql_ic_sensitive sql_ic_mixed sql_oj_left sql_oj_right sql_oj_full sql_oj_nestedsql_oj_not_ordered sql_oj_innersql_oj_all_comparison_opssql_scco_read_only sql_scco_locksql_scco_opt_rowversql_scco_opt_values sql_tc_none sql_tc_dml sql_tc_allsql_tc_ddl_commitsql_tc_ddl_ignoresql_txn_read_uncommittedsql_txn_read_committedsql_txn_repeatable_readsql_txn_serializable DiagRecord diagrec_isqlstate nativeError messageTextConciseColInfocci_ColumnName cci_DataTypecci_ColumnSizecci_DecimalDigits cci_Nullable ColumnInfo ci_TableCat ci_TableSchem ci_TableName ci_ColumnName ci_DataType ci_TypeName ci_ColumnSizeci_BufferLengthci_DecimalDigitsci_NumPrecRadix ci_Nullable ci_Remarks ci_ColumnDefci_DatetimeCodeci_CharOctetLengthci_OrdinalPosition ci_IsNullable SQLConfigsql_cli_flds_table_catsql_cli_flds_table_schemsql_cli_flds_table_namesql_cli_flds_column_namesql_cli_flds_data_typesql_cli_flds_type_namesql_cli_flds_column_sizesql_cli_flds_buffer_lengthsql_cli_flds_decimal_digitssql_cli_flds_num_prec_radixsql_cli_flds_nullablesql_cli_flds_remarkssql_cli_flds_column_defsql_cli_flds_datetime_codesql_cli_flds_char_octet_lengthsql_cli_flds_ordinal_positionsql_cli_flds_is_nullablelogsrc toCLITypecollectColumnsInfocollectColumnsInfo' tableExistsendTransetConnectAttr setDescField getDescField setDescRec getDescRec numResultColsgetStorableStmtAttr getStmtAttr bindParamputData paramDataprepareexecute describeColcolumnstables forAllRecordsforAllRecordsWithEndAndFail forAllDatagetData getDataAndRunfetch fetchAndRunfetchAndRunWithFailbindSmallIntColbindIntegerColbindVarcharColbindCol execDirectconnect disconnect allocHandle freeHandledisplayDiagInfodisplayDiagInfo'displayDiagRecgetCountOfDiagRecs getDiagRecwithMaybeCStringLen peekMaybeColpeekMaybeTextCol$fOrdColumnInfo$fEqColumnInfo$fShowColumnInfotransformers-0.5.2.0Control.Monad.Trans.ReaderReaderTbaseForeign.StorableStorableghc-prim GHC.TypesTrueFalseControl.Monad.Trans.MaybeMaybeTIOForeign.C.StringCString CStringLenGHC.BaseNothing