úÎLÈIs1      !"#$%&'()*+,-./0NoneCAsks a ODBC database to infer selected types and placeholder types.Data source nameSQL (parameterinput -info, returncolumn/output -info)None     None3Like 0 but also considers if the SqlValue is nullable.Like 0 but also considers if the SqlValue is nullable.Given a 1~ it returns a function f which transforms a SqlValue into another type. The return type of f is dependent upon the value of 1(. The function f is encapsulated in an 2 . Also see .The opposite of / in that it returns a function from a type to 3+. Similarly the function is returned in a 2. See .4545 Safe-Inferredÿ Parses an extended SQL string. The extionsion is that we allow variable-ids after placeholders (question marks). We return the list of identifiers and the SQL string without the variable-ids. If no variable-id is found after a placeholder, the empty string is returned as variable-id.6767None!Parts used in prepared statements!Describing a positional parameterQCommon parts for both statements run directly (runStmt) and prepared statements.Positional parameters3Description of values returned from a SQL statement 5The SQL expression which is passed on to the database! Name of the  Connection parameter.":Makes the query result from prepareStmt or runStmt strict.8(Returns all parameters which is unbound.#^Contructs expression-parts. A database is contacted to parse the SQL and infer correct types.$6Statically typed one-off (not prepared) SQL statement.%JConstructs a lambda which given a connection and parameters will execute expr. See &.&¦Creates an exprresion which runs a SQL statement on a database server. It is expected that the connection variable and parameters has already been bound. See also %.'(Statically typed prepared SQL statement.(.Creates parts for a prepared statement. Calls #.)Lambda for prepared statements.*1A StmtQ which prepares a statement on a database.+-A StmtQ to execute a statement on a database.,dCreates a StmtQ of type: IO (a1-an -> IO ... ). Where a1-an are the parameters which must be bound.9xConverts parameters to SqlValue. The conversions is based upon the SqlTypeId-s retried from the database and stored in parts.-8Returns textual information about a query. The returned :B is useful as presentation to a user, not for further processing.;SExecutes a prepared statement and returns all rows. The rows are retrieved lazily.<_Parses sql and gets a database server to infer types for selected types and placeholder types.=šOutputs returned from running a SQL statement needs to be converted into Haskell types. This TH function returns an expression which do this conversion.>ÿÿParameters given to a SQL statement needs to be converted from there Haskell type to something HDBC understand - namely SqlValue. This TH function returns an expression to do the conversion. The returned function is split into its pattern and its body.& !"8#$Data source name (DSN):SQL statement extended with question marks for parameteresThe expression has type 1Connection -> a1 -> ... -> an -> IO [x1, ... xm]) , where a1-anB are inputs to the statement (due to placeholder arguments), and x1-xm$ are the outputs from the statement.oIf there are no outputs from the statement (e.g. an insert statement) the number of affected rows is returned.%3Expression which is expected to access the database&'Data source name (DSN):SQL statement extended with question marks for parameteresThe expression has type 5Connection -> IO (a1 -> ... -> an -> IO [x1, ... xm]) , where a1-anB are inputs to the statement (due to placeholder arguments), and x1-xm$ are the outputs from the statement.oIf there are no outputs from the statement (e.g. an insert statement) the number of affected rows is returned.()*+,9-;.<=/0?Data source name (DSN):SQL statement extended with question marks for parameteresThe expression has type 1Connection -> a1 -> ... -> an -> IO [x1, ... xm]) , where a1-anB are inputs to the statement (due to placeholder arguments), and x1-xm$ are the outputs from the statement.aIf there are no outputs from the statement (e.g. an insert statement) the unit type is returned.@>9(variable name, type). Variable names may be equal to "". !"#$%&'()*+,-./0$'" !.-#%&()*+,/0 !"8#$%&'()*+,9-;.<=/0?@>None)  !"#$%&'()*+,-./0 A     !!"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOMetaHDBC-0.1.4Database.MetaHDBC Database.MetaHDBC.OdbcInferTypesDatabase.MetaHDBC.ConnectionDatabase.MetaHDBC.SqlTypeIdExpQ!Database.MetaHDBC.SimpleSqlParserDatabase.MetaHDBC.SqlExpr HDBC-2.4.0.0Database.HDBC.Typesrollbackcommit disconnectHDBC-odbc-2.3.1.1!Database.HDBC.ODBC.ConnectionImpl ConnectionDatabase.HDBC.ODBC.Connection connectODBC dbInferTypes strictListCachingConnectionhdbcConnection statementMap HashTablecachingConnectioncachingPreparefromSqlColDesc toSqlColDesc fromSqlTypeId toSqlTypeIdsimpleSqlParser PrepareParts exprPartsstmtName ParameterparmNametypeIDisBound ExprParts parameters returnTypes dbSqlExprconnectionNamestrict makeExprPartsrunStmt runStmtLHS runStmtRHS prepareStmtmakePrepStmtParts prepStmtLHS prepStmtQexecPrepStmtRHSreturnExecPrepStmtLHSsqlInfo rethrowDoing runStmtML multilineDatabase.HDBC.ColTypes SqlTypeIdtemplate-haskellLanguage.Haskell.TH.LibExpQDatabase.HDBC.SqlValueSqlValuemaybeFromTypeId maybeToTypeIdparseVar splitWhenunboundParameters convertParamsbaseGHC.BaseString fetchRows inferTypesfromRow fromParams' cachingStmt prepareParts'