yׂ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ z z z   Generate all $ instances for tuples within range.  Generate all $ instances for tuples within range.  Generate all $ instances for tuples within range.  Derive the # instance for a record definition. Add A instance to a record without adding the actual data definition.  Usefull in combination with   Derive the ' instance for a record definition. See   for an example. Add A instance to a record without adding the actual data definition.  Usefull in combination with  Derive  instances Create lifted record selectors  JGenerate table declarations for all tables in the database. This function I should be used in conjunction with generateDatabaseRecordInstances. For C example, this function generates the following code for the table users:  users :: Q [User]  users = table "users" Database connection HCreate corresponding Haskell record data types and generate QA and View F instances for all tables in the database (except for system tables). Example usage:  1 $(generateDatabaseRecordInstances myConnection) PNote that the database information is queried at compile time, not at run time! Database connection HLookup a database table, create corresponding Haskell record data types $ and generate QA and View instances Example usage:  K $(generateTableRecordInstances myConnection "users" "User" [''Show,''Eq]) MNote that the table information is queried at compile time, not at run time! Database connection  Table name )Data type name for each row of the table Default deriving instances 4Derive QA and View instances for record definitions Example usage:   $(generateRecordInstances [d|   data User = User  { userId :: Int  , userName :: String  }   |]) MThis generates the following record type, which can be used in view patterns   data UserV = UserV  { userIdV :: Q Int  , userNameV :: Q String  }   instance View (Q User) UserV !and the liftet record selectors: ! userIdQ :: Q User -> Q Int $ userNameQ :: Q User -> Q String   `Type of the environment under which we reconstruct ordinary haskell data from the query result. a The first component of the reader monad contains a mapping from (queryNumber, columnNumber) to e the number of a nested query. The second component is a tuple consisting of query number associated ` with a pair of the raw result data partitioned by iter, and a description of this result data. UDescription of result data of a query. The field iterR contains the column number of ^ the iter column. resCols contains a for all items columns their column number in the result.    MDescription of a table. The field iterN contains the name of the iter column \ the items field contains a list of item column names and their position within the result.   HType representing a query bundle, the type variable represents the type S of the result of the query bundle. A bundle consists of pair of numbered queries. I Each query consists of the query itself, a schema explaining its types. V If the query is a nested value in the result of another query the optional attribute ] represents (queryID, columnID). The queryId refers to the number of the query in the bundle  the columnID refers ,Wrapper type with phantom type for SQL plan A The type variable represents the type of the result of the plan 2Wrapper type with phantom type for algebraic plan A The type variable represents the type of the result of the plan LTranslate the algebraic plan to SQL and then execute it using the provided J DB connection. If debug is switchd on the SQL code is written to a file  named query.sql ;Translate an algebraic plan into SQL code using Pathfinder GExtract the SQL queries from the XML structure generated by pathfinder JExecute the given SQL queries and assemble the results into one structure *Retrieve the data asociated with query i. &Get the position of item i of query q ?Get the id of the query that is nested in column c of query q. IReconstruct the haskell value out of the result of query i with type ty. TReconstruct the values for column c of query q out of the rawData vals with type t. Partition by iter column 8 The first argument is the position of the iter column. " The second argument the raw data < It returns a list of pairs (iterVal, rawdata within iter)  CExecute the given query plan bundle, over the provided connection. X It returns the raw data for each query along with a description on how to reconstruct  ordinary haskell data !"5Transform algebraic plan scheme info into resultinfo #      !"#          !"#$ % &The HDBC connection '()*Read SQL values into  values "Table name, used to generate more  informative error messages + Check if a , matches a  -.3Provide a fresh identifier name during compilation /BGet from the state the connection to the database 0BLookup information that describes a table. If the information is F not present in the state then the connection is used to retrieve the & table information from the Database. 1;Turn a given integer into a variable beginning with prefix __fv_ 2/Execute the transformation computation. During 5 compilation table information can be retrieved from 8 the database, therefor the result is wrapped in the IO  Monad. "Execute the query on the database 2Convert the query into unoptimised algebraic plan 0Convert the query into optimised algebraic plan  Convert the query into SQL 3Xevaluate compiles the given Q query into an executable plan, executes this and returns \ the result as norm. For execution it uses the given connection. If the boolean flag is set = to true it outputs the intermediate algebraic plan to disk. 4=Transform a query into an algebraic plan. 5/Transform the Query into a ferry core program. 6Transform a function argument 72Construct a flat-FerryCore type out of a DSH type D A flat type consists out of two tuples, a record is translated as: ? {r1 :: t1, r2 :: t2, r3 :: t3, r4 :: t4} (t1, (t2, (t3, t4))) 898Transform an arbitrary DSH-type into a ferry core type :,Transform a ferry-core type into a DSH-type ;3Translate the DSH operator to Ferry Core operators <STransform a DSH-primitive-function (f) with an instantiated typed into a FerryCore  expression =/Retrieve all DB-table names from a DSH program >cRetrieve through the given database connection information on the table (columns with their types) 5 which name is given as the second argument.    a!"#$%&'()*+,-./012345 Boolean fold  | It'.s first argument is used in the case of False  | It'.s second argument is used in the case of True % | The third argument is the boolean 6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~a!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~a!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ! " # $ % &''()*+ , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+, ,-Z./0123456789:-;<=>?@ABCDEFGHFIJFGKLMNFOPFGQFGRFSTFSUFVWFXYFXZFX[FX\FS]FG^FG_F`aFVbFVcFVdFVeFXfFXgFhiFjkFVlFVmFGnFGoFSpFhqFrsFVtFjuFVvFwxF`yLz{Lz|Lz}Lz~LzLFVLzFFGLzLzFFF2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222232323232323232323232323232323 23 23 23 23 232323232323232323FFOFOFOFOFOFOFOFO FO!FO"FO#FO$F%&F'(F)*F)+F,-F,.F,/F,0F,1F,2Fr3Fr4Fr5Fr6F78Fj9Fj:Fj;Fj<Fj=Fj>Fj?Fj@FjAFjBFjCFjDFjEFjFFjGFjHFjIFjJFjKFjLFjMFjNFjOFjPFjQFjRFjSFjTFjUFjVFjWFjXFYZF'[F'\FV]FV^FV_FV`FVaFVbFVcFVdFVeFVfFVgFVhFViFVjFVkFVlFVmFVnFVoFIpFqrFqsFqtFquFqvFSwFSxFSyFSzFS{Fw|Fw}Fw~FwFwFwFwFwFFFFFFFFFFFFFFFFXFXFXFXFXFXFFFGFGFGFGFGFGFhLLL DSH-0.7.8 Database.DSHDatabase.DSH.InterpreterDatabase.DSH.CompilerDatabase.DSH.ImpossibleDatabase.DSH.DataDatabase.DSH.THDatabase.DSH.CompileDatabase.DSH.XHTMLDatabase.DSH.JSONDatabase.DSH.CSVDatabase.DSH.CombinatorsViewviewfromViewTA BasicTypeQAQtabletableDB tableWithKeystableCSVtuplerecordgenerateTableDeclarationsgenerateDatabaseRecordInstancesgenerateTableRecordInstancesgenerateRecordInstances xhtmlExportxhtmlExportStdoutxhtmlExportHandle jsonExportjsonExportStdoutjsonExportHandle csvExportcsvExportStdoutcsvExportHandle csvImportfromQ debugPlan debugPlanOpt debugCoredebugSQLunitfalsetruenot&&||eq==neq/=lt<lte<=gte>=gt>minmaxboolcond? listToMaybe maybeToListnothingjust isNothingisJustfromJustmaybe fromMaybe catMaybesmapMaybeleftrightisLeftisRighteitherleftsrightspartitionEithersnilemptycons<|snoc|> singletonheadtailtakedropmapappend><filter groupWithsortWiththelastinitnulllengthindex!!reverseandoranyallsumconcat concatMapmaximumminimumsplitAt takeWhile dropWhilespanbreakelemnotElemlookupzipzipWithunzipnubfstsndintegerToDoubletoQreturn>>=>>mzipguard impossibletablePersistencereifytoNormfromNormTableTableCSVTableDBTypeArrowTListTTupleTTextTDoubleTIntegerTCharTBoolTUnitTNormListNTupleNTextNDoubleNIntegerNCharNBoolNUnitNFun3ZipWithCondFun2MinMaxGtGteLteLtDisjConjEquSplitAt TakeWhile DropWhileSpanBreakZip GroupWithFilterAppendMapDropTakeSnocConsSortWithIndexAnyAllDivSubMulAddFun1NubTheLastInitNullLengthReverseOrAndSumConcatMaximumMinimumUnzipTailHeadIntegerToDoubleNotSndFstExpVarETableEAppE3AppE2AppE1LamEListETupleETextEDoubleEIntegerECharEBoolEUnitEtypeExptypeArrowResult typeTupleFst typeTupleSndtypeNorm tupleToEither eitherToTupleforgettoLam1toLam2 unfoldType arrowChainT applyChainT applyChainEapplyChainTuplePapplyChainTupleE deriveTupleQAgenerateDeriveTupleQARange deriveTupleTAgenerateDeriveTupleTARangederiveTupleViewgenerateDeriveTupleViewRangederiveQAForRecordderiveQAForRecord'deriveViewForRecordderiveViewForRecord'deriveTAForRecordderiveTAForRecord'recordQSelectorsrecordQSelectors'generateTableDeclaration dataTypeNamecleanUnderscoresQueryR ResultInfoiterRresCols SchemaInfoiterNitems QueryBundleBundleSQLXMLSQL AlgebraXMLAlgebra executePlanalgToAlgalgToSQL extractSQLrunSQL getResults getColResPos findQueryprocessResultsprocessResults' partByIterrunQuerydshFetchAllRowsStrictschemeToResult buildRefMapdeTupleevaluateescapeevalLamsqlToNormWithType typeMatch HDBC-2.3.1.0Database.HDBC.SqlValueSqlValueNfreshVar getConnection tableInfo prefixVarrunN doCompile transformE transformArgflatFTysizeOfTy transformTy transformTy' transformOp transformF getTableNames getTableInfobaseGHC.Base++GHC.Errerrorfoldrghc-primGHC.Primseq System.IOprint otherwise$GHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTonegatefailfmap Data.String fromString fromIntegral realToFrac toInteger toRationalBoundedEnum GHC.ClassesEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShowIsString GHC.TypesBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeInteger GHC.OrderingOrderingRationalIO Data.EitherEitherStringFalseTrueLeftRight Data.MaybeNothingDatabase.HDBC.Utils throwSqlError quickQuery' quickQueryfetchAllRowsMap'fetchAllRowsMapfetchAllRowsAL'fetchAllRowsAL fetchRowMap fetchRowALsFetchAllRows' sFetchAllRows fetchAllRows' fetchAllRowswithTransaction sFetchRow sExecuteManysExecutesRunhandleSqlError sqlExceptions handleSqlcatchSqlDatabase.HDBC.Types withWConn describeTable getTablesdbTransactionSupport dbServerVerproxiedClientVerproxiedClientName hdbcClientVerhdbcDriverNameclonepreparerunrunRawrollbackcommit disconnect IConnection ConnWrapperDatabase.HDBC.StatementdescribeResult originalQuerygetColumnNamesfetchRowfinish executeMany executeRawexecute Statement seErrorMsg seNativeErrorseStateSqlErrorDatabase.HDBC.ColTypes colNullable colDecDigitscolOctetLengthcolSizecolType SqlColDescSqlCharT SqlVarCharTSqlLongVarCharT SqlWCharT SqlWVarCharTSqlWLongVarCharT SqlDecimalT SqlNumericT SqlSmallIntT SqlIntegerTSqlRealT SqlFloatT SqlDoubleTSqlBitT SqlTinyIntT SqlBigIntT SqlBinaryT SqlVarBinaryTSqlLongVarBinaryTSqlDateTSqlTimeTSqlTimeWithZoneT SqlTimestampTSqlTimestampWithZoneTSqlUTCDateTimeT SqlUTCTimeT SqlIntervalTSqlGUIDT SqlUnknownT SqlTypeIdSqlIntervalMonthTSqlIntervalYearTSqlIntervalYearToMonthTSqlIntervalDayTSqlIntervalHourTSqlIntervalMinuteTSqlIntervalSecondTSqlIntervalDayToHourTSqlIntervalDayToMinuteTSqlIntervalDayToSecondTSqlIntervalHourToMinuteTSqlIntervalHourToSecondTSqlIntervalMinuteToSecondT SqlInterval posixToSqliToSqlnToSqlfromSql safeFromSqltoSql SqlString SqlByteString SqlWord32 SqlWord64SqlInt32SqlInt64 SqlIntegerSqlCharSqlBool SqlDouble SqlRational SqlLocalDateSqlLocalTimeOfDaySqlZonedLocalTimeOfDay SqlLocalTime SqlZonedTime SqlUTCTime SqlDiffTime SqlPOSIXTime SqlEpochTime SqlTimeDiffSqlNullPrelude$!readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharSystem.IO.ErrorcatchGHC.IO.ExceptionioError Text.Readreadreads Data.Listunwordswordsunlineslinesproductfoldl1lex readParenreadList readsPrecText.ParserCombinators.ReadPReadSacoshatanhasinhcoshtanhsinhacosatanasincostansinlogBase**logsqrtexppiatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadixGHC.IOFilePath userErrorIOErrorlcmgcd^^^oddevendivModquotRemmoddivremquotrecip/floorceilingroundtruncateproperFraction undefined Control.MonadmapM_mapM sequence_sequence=<<subtractsignumabs*+ showParen showStringshowCharshowsShowSshowListshow showsPrecGHC.Listunzip3zipWith3zip3cycle replicaterepeatiteratescanr1scanrfoldr1scanl1scanlfoldlJustMaybemaxBoundminBoundfromEnumtoEnumpredsucc Data.TupleuncurrycurryasTypeOfuntilflip.constidcompareGTEQLT text-0.11.1.9Data.Text.InternalText