!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH 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 { | } ~                                                                                                                                                       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ non-portable experimental%haskelldb-users@lists.sourceforge.netGeneralization of  and " to any separating character set.  non-portable experimental%haskelldb-users@lists.sourceforge.net      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm n o p q rstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     Shrinks the   supplied if ; it can do so without truncating the list. Returns Nothing ! if the list inside was to long.  Takes a   add grows it size. Takes a   and return the list inside. Returns the length of a  . $Takes a list and transforms it to a  .  If the list doesn't fit, Nothing is returned. $Takes a list and transforms it to a  .  If the list doesn'n fit, the list is truncated ' to make it fit into the bounded list.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      non-portable experimental%haskelldb-users@lists.sourceforge.net !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      non-portable experimental%haskelldb-users@lists.sourceforge.net-/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. "#$%&'()*+%Data type for SQL SELECT statements. ,Empty select. -Select a whole table. .Binary relational operator /0DISTINCT, ALL etc. 1result 2FROM 3WHERE 4 GROUP BY 5 ORDER BY 6 TOP n, etc. 789:;<=>?@- !"#$%&'()*+,-./0123456789:;<=>?@-?>;=<7:98+/.-,0123456 !*)('&%$#"@-  ! *)('&%$#""#$%&'()*+ /.-,0123456,-./01234567:9889:;=<<=>?@ non-portable experimental%haskelldb-users@lists.sourceforge.netAPretty prints a /+ BPretty prints a   CPretty prints a  DEPretty prints a . FPretty prints a . GPretty prints a ! ABCDEFGABCDEFGABCDEFG  non portable experimental%haskelldb-users@lists.sourceforge.net^HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqused for hacking in custom SQL rstuvwrepresents a default value xyz{|}~.Creates a projection of some attributes while > keeping all other attributes in the relation visible too. ,Takes the cartesian product of two queries. /Returns the schema (the attributes) of a query &Returns a one-to-one association of a  schema. ie. assocFromScheme [name,city] becomes:  [(name ,AttrExpr name), (city ,AttrExpr city)] )Returns all attributes in an expression. :Returns all attributes in a list of ordering expressions. -Substitute attribute names in an expression. Fold on  Fold on y \HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\y~}|{zYonmlkjihgfedcba`_^]\[ZSXWVUTHRQPONMLKJIpxwvutsrq\H RQPONMLKJIIJKLMNOPQRSXWVUTTUVWXYonmlkjihgfedcba`_^]\[ZZ[\]^_`abcdefghijklmnopxwvutsrqqrstuvwxy~}|{zz{|}~  non portable experimental%haskelldb-users@lists.sourceforge.netOptimize a PrimQuery Optimize a set of criteria.  Hacks needed by some back-ends.  FIXME: this is silly. AHACK: All fields that we order by must also be in the result in - PostgreSQL, since we use SELECT DISTINCT. +Remove unused attributes from projections. *All live attributes (i.e. all attributes & that are in the result of the query) !Remove unused parts of the query Collapse adjacent projections ;Push restrictions down through projections and binary ops.   non-portable experimental%haskelldb-users@lists.sourceforge.net :Convert a list of labels and strins representating values  to a record. <Convert a record to a list of label names and field values. 'Sets the value of a field in a record.  Field label New field value Record  New record %Class which does the actual work of / getting the value of a field from a record. 5 FIXME: would like the dependency f r -> a here, but 5 that makes Hugs complain about conflicting instaces )Gets the value of a field from a record.  Field label Record  Field value 3Field selection operator. It is overloaded so that 5 users (read HaskellDB) can redefine it for things  with phantom record types. Concatenates two records.  The record r has the field f if there is an instance of   HasField f r. Class for field labels. Gets the name of the label. .The type used for records. This is a function  that takes a $ so that the user does not have to  put a  at the end of every record. +Constructor that adds a field to a record. K f is the field tag, a is the field value and b is the rest of the record. The empty record. 2Creates one-field record from a label and a value Label Value  New record :Adds the field from a one-field record to another record.  Field to add Rest of record  New record The empty record &Get the label name of a record entry. Dummy to get return type right   non portable experimental%haskelldb-users@lists.sourceforge.neta'Class of records that can be used with . + All all the values must be instances of  for the  record to be an instance of . +Class of expressions that can be used with . 'Class of records that can be used with insert. + All all the values must be instances of  for the  record to be an instance of . +Class of expressions that can be used with insert. Class of expression types. Get the underlying untyped y. .A Query monad provides unique names (aliases)  and constructs a PrimQuery. Typed attributes )Basic tables, contains table name and an , association from attributes to attribute  names in the real table. !The type of default expressions. Type of aggregate expressions. ;Type of normal expressions, contains the untyped PrimExpr. +Type of relations, contains the attributes  of the relation and an  to which the ! attributes are renamed in the . Creates a record field.  Similar to '(.=.)'#, but gets the field label from an . Label  Expression  New record <Convenience operator for constructing records of constants.  Useful primarily with insert.  f <<- x is the same as f << constant x  Field label  Field value  New record 0Specifies a subset of the columns in the table. 7Restricts the records to only those who evaluates the  expression to True. CRestricts the relation given to only return unique records. Upshot % is all projected attributes will be grouped 1Return all records which are present in at least  one of the relations. 8Return all records which are present in both relations. Not in SQL92. 9Return all records from the first relation that are not # present in the second relation. *Return all records from a specific table. Get the name of a table. ;(.==.) is used in a similar way as the standard op (==) in % Haskell and = in SQL, but takes two  as arguments and  returns an  Bool. (.<1>.) is used in a similar way as the standard op (/=) in  Haskell and <> in SQL, but takes two  as arguments and  returns an  Bool. As with (.==.) and (.<$>.), this op has a standard Haskell  op counterpart; (<) and an SQL counterpart; < As with (.==.) and (.<%>.), this op have a standard Haskell  op counterpart, (<=) and an SQL counterpart; <=. As with (.==.) and (.<%>.), this op have a standard Haskell 0 op counterpart, (>) and an SQL counterpart; >. As with (.==.) and (.<%>.), this op have a standard Haskell 2 op counterpart, (>=) and an SQL counterpart; >=. The inverse of an Expr Bool. " Logical and" on , similar to the (&&) op in  Haskell and AND in SQL. " Logical or" on , similar to the (||) op in  Haskell and OR in SQL. 3The HaskellDB counterpart to the SQL LIKE keyword. @ In the expresions, % is a wildcard representing any characters < in the same position relavtive to the given characters and 1 _ is a wildcard representing one character e.g. 0 like (constant "ABCDEFFF") (constant "AB%F_F") is true while - like (constant "ABCDEF") (constant "AC%F")  is false. HNote that SQL92 does not specify whether LIKE is case-sensitive or not. 8 Different database systems implement this differently. 2Returns true if the value of the first operand is 8 equal to the value of any of the expressions in the  list operand. 6Produces the concatenation of two String-expressions. &Concatenates two String-expressions. Gets the length of a string.  Addition  Subtraction Multiplication  Division Modulo (Returns true if the expression is Null. The inverse of , returns false % if the expression supplied is Null. "Creates a conditional expression. C Returns the value of the expression corresponding to the first D true condition. If none of the conditions are true, the value of $ the else-expression is returned. &A list of conditions and expressions. Else-expression. DTakes a default value a and a nullable value. If the value is NULL, J the default value is returned, otherwise the value itself is returned.  Simliar to  fromMaybe "Default value (to be returned for ) A nullable expression 1The default value of the column. Only works with insert. 4Creates a constant expression from a haskell value. 0Turn constant data into a nullable expression.  Same as constant . Just 2Returns the number of records (=rows) in a query. #Returns the total sum of a column. 'Returns the highest value of a column. &Returns the lowest value of a column. !Returns the average of a column. ,Returns the standard deviation of a column. +Returns the standard variance of a column. Return the n topmost records. $Use this together with the function  to 2 order the results of a query in ascending order. ; Takes a relation and an attribute of that relation, which  is used for the ordering. $Use this together with the function  to 3 order the results of a query in descending order. ; Takes a relation and an attribute of that relation, which  is used for the ordering. Order the results of a query.  Use this with the  or  functions. KKJ  non-portable experimental%haskelldb-users@lists.sourceforge.net;Class which returns a list of field descriptions. Gets the ( descriptions of all columns in a Record/query. Most useful when B the columns associated with each field in a (Rel r) type must be @ recovered. Note that this occurs at the type level only and no  values are inspected. =Class which retrieves a field description from a given type. ; Instances are provided for most concrete types. Instances @ for Maybe automatically make the field nullable, and instances @ for all (Expr a) types where a has an ExprType instance allows B type information to be recovered from a given column expression.  A database column type      The type and nullable flag of a database column ;Given a query, returns a list of the field names and their B types used by the query. Useful for recovering field information " once a query has been built up.                     non-portable experimental%haskelldb-users@lists.sourceforge.net !"@Ensures non-aggregate expressions in the select are included in  group by clause. #$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( non-portable experimental%haskelldb-users@lists.sourceforge.net")*+, Creates a /+ based on the  supplied. * Corresponds to the SQL statement SELECT. -./0CTakes all non-aggregate expressions in the select and adds them to  the 'group by' clause. 12345 Creates a  #. Corresponds to the SQL statement ' UPDATE which updates data in a table. Name of the table to update. ,Conditions which must all be true for a row  to be updated. Update the data with this. 6 Creates a . Name of the table What to insert. 7 Creates a #. Corresponds to the SQL statement : INSERT INTO which is used to insert new rows in a table. Name of the table What to insert 8 Creates a #. Corresponds to the SQL statement ' DELETE which deletes rows in a table. Name of the table *Criteria which must all be true for a row  to be deleted. 9Use this to create a  data type corresponding to A the SQL statement CREATE DATABASE which creates a new database. name of the database. :Use this to create a  data type corresponding to 5 the SQL statement CREATE which creates a new table. !name of the table to be created. Column descriptions ; Creates a $ that delete the database with the # name given as the first argument. < Creates a  that delete the database named  in the first argument. =>8Quote a string and escape characters that need escaping $ FIXME: this is backend dependent %Escape characters that need escaping )*+,-./0123456789:;<=>)*,58679:;<-./1203=>+4)*+,-./0123456789:;<=> non-portable experimental%haskelldb-users@lists.sourceforge.net???? non-portable experimental%haskelldb-users@lists.sourceforge.net@@@@ non-portable experimental%haskelldb-users@lists.sourceforge.net)ABCreate a result record. $Driver functions for getting values  of different types. .Phantom argument to the the return type right Fields to get. Driver-specific result data $ (for example a Statement object) Result record. C?Functions for getting values of a given type. Database drivers = need to implement these functions and pass this record to B  when getting query results. "All these functions should return  if the value is NULL. DEGet a  value. FGet an  value. GGet an  value. HGet a  value. IGet a  value. JGet a  value. KLMNOPQRSTUVWXY5The (!.) operator selects over returned records from  the database (= rows)  Non-overloaded version of . For backwards compatibility. 2Get a non-NULL value. Fails if the value is NULL. Zperforms a query on a database [)Inserts values from a query into a table \Inserts a record into a table ]deletes a bunch of records  The database !The table to delete records from +Predicate used to select records to delete ^Updates records  The database The table to update +Predicate used to select records to update )Function used to modify selected records _ List all tables in the database  Database $Names of all tables in the database `4List all columns in a table, along with their types  Database 2Name of the tables whose columns are to be listed #Name and type info for each column aKPerforms some database action in a transaction. If no exception is thrown,  the changes are committed.  Database Action to run b4Is not very useful. You need to be root to use it. , We suggest you solve this in another way  Database Name of database to create c Database Name of table to create The fields of the table d Database Name of database to drop e Database Name of table to drop %ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde%YKLMNOPQRSTUVWXABCDEFGHIJZ\]^[_`abcde%ABBCDEFGHIJDEFGHIJK LMNOPQRSTUVWXLMNOPQRSTUVWXYZ[\]^_`abcde non-portable experimental%haskelldb-users@lists.sourceforge.net$fghUse Bounded Strings? iEConversion routines from Database identifiers to Haskell identifiers jklThe name of this column mThe description of this column nopThe name of the table qThe columns in this table r%Defines a database layout, top level stThe name of the database u Any options (i.e whether to use  Bounded Strings) vTables this database contains wGCreates a valid declaration of a DBInfo. The variable name will be the  same as the database name xPretty prints a DBInfo yz{| Does a final  touching up0 of a DBInfo before it is used by i.e DBDirect. L This converts any Bounded Strings to ordinary strings if that flag is set. *Converts all BStrings to ordinary Strings }Creates a DBInfo The name of the Database Options Tables The generated DBInfo ~Creates a TInfo The table name  Columns The generated TInfo Creates a CInfo The column name What the column contains The generated CInfo Constructs a DBInfo that doesn't cause nameclashes 6Makes a table name unique among all other table names 6Makes a field name unique among all other field names &makes the dbname unique in a database :makes a supplied name unique in a table and its subfields  (makes a supplied name unique in a field  1Gives a String a new name, according to its type Either a Table or a Field  The new name  JCase insensitive String comparison (there probably is a standard function & for this, there ought to be anyway fghijklmnopqrstuvwxyz{|}~rstuvnopqjklmfghi}~xyz{w|fghighijklmklmnopqopqrstuvstuvwxyz{|}~ non-portable experimental%haskelldb-users@lists.sourceforge.net Common header for all files  @Adds an appropriate -fcontext-stackXX OPTIONS pragma at the top  of the generated file. AAll imports generated files have dependencies on. Nowadays, this . should only be Database.HaskellDB.DBLayout @Create module files in the given directory for the given DBInfo base directory top-level module name Creates modules Base directory @Name of directory and top-level module for the database modules !Module names and module contents #Make a filename from a module name 9Like createDirectory, but creates all the directories in  the path. ;Converts a database specification to a set of module names ? and module contents. The first element of the returned list  is the top-level module. Top level module name  Does the actual conversion work Top-level module name +list of module name, module contents pairs Makes a module from a TInfo The name of our main module  Module name and module contents Pretty prints a TableInfo #Pretty prints a list of ColumnInfo -Pretty prints the type field in a ColumnInfo .Pretty prints the value field in a ColumnInfo  Pretty prints Field definitions /Extracts all the column names from a TableInfo /Extracts all the column types from a TableInfo 4Combines the results of columnNames and columnTypes  non-portable experimental%haskelldb-users@lists.sourceforge.netGConverts a DBInfo to a real life Database, note that the database must  exist for this to work  A Database The DBInfo to generate from 'Create a database table specified by a on.   non-portable experimental%haskelldb-users@lists.sourceforge.net!"portable experimentalchucky@dtek.chalmers.se *Interface which drivers should implement.  The 7 function takes some driver specific name, value pairs G use to setup the database connection, and a database action to run.  6 lists all required options with a short description, 4 that is printed as help in the DBDirect program. 8Default dummy driver, real drivers should overload this ;Can be used by drivers to get option values from the given  list of name, value pairs. names of options to get options given 0a list of the same length as the first argument 6 with the values of each option. Fails in the given & monad if any options is not found. ;Can be used by drivers to get option values from the given  list of name, value pairs. # It is intended for use with the  value of the driver. )names and descriptions of options to get options given 0a list of the same length as the first argument 6 with the values of each option. Fails in the given & monad if any options is not found. Gets an  from the  generator option in the given list. # Currently available generators: mysql,  postgresql, sqlite, default options given "An SQL generator. If there was no   generator option, the default is used. # Fails if the generator is unknown #   non portable experimental%haskelldb-users@lists.sourceforge.netShows the optimized . Shows the unoptimized . Shows the optimized SQL query. !Shows the unoptimized SQL query. JKYZ[\]^_`aJYKZ\]^[_`aportable experimental%haskelldb-users@lists.sourceforge.net=Connects to a database and generates a specification from it Use bounded strings? Cstyle of generated Haskell identifiers, cOLUMN_NAME vs. columnName "the name our database should have the database connection return a DBInfo  non-portable experimental%haskelldb-users@lists.sourceforge.net&     fghijklmnopqrstuvwxyz{|}~&rstuvnopqjklmfghi     }~xyz{w| non-portable experimental%haskelldb-users@lists.sourceforge.net*Constructs a table entry from a field tag  Field tag Make an  for a field.  Field tag 4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          fghijklmnopqrstuvwxyz{|}~ portable experimental%haskelldb-users@lists.sourceforge.net$%&'()*+,-./0Shows usage information 1 !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234567898::;;<=>?@ABCDEFGHIFJKLMNOPQRSQTUVWHXYZ[\]^_ ` 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 { | } ~                                                                                                                                                                          ! " # $%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQRRSTUVWXYYZ[\]^_`abcdefghijkLlmnopqrrstuuvwxxyz{{|}~O()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'(                                                        !"#$%&'()*++,-.J/01&234haskelldb-0.12Database.HaskellDB.DriverAPIDatabase.HaskellDB.DBLayoutDatabase.HaskellDB.Version#Database.HaskellDB.DBSpec.PPHelpersDatabase.HaskellDB.BoundedList Database.HaskellDB.BoundedStringDatabase.HaskellDB.SqlDatabase.HaskellDB.Sql.PrintDatabase.HaskellDB.PrimQueryDatabase.HaskellDB.OptimizeDatabase.HaskellDB.HDBRecDatabase.HaskellDB.QueryDatabase.HaskellDB.FieldTypeDatabase.HaskellDB.Sql.GenerateDatabase.HaskellDB.Sql.DefaultDatabase.HaskellDB.Sql.MySQLDatabase.HaskellDB.Sql.SQLiteDatabase.HaskellDB.Database Database.HaskellDB.DBSpec.DBInfo*Database.HaskellDB.DBSpec.DBSpecToDBDirect*Database.HaskellDB.DBSpec.DBSpecToDatabase!Database.HaskellDB.Sql.PostgreSQLDatabase.HaskellDB*Database.HaskellDB.DBSpec.DatabaseToDBSpecDatabase.HaskellDB.DBDirectDatabase.HaskellDB.DBSpec mtl-1.1.0.2Control.Monad.TransMonadIOold-time-1.0.0.3 System.Time CalendarTimeversionMakeIdentifiers moduleName identifiertoTypesplit BoundedListN65535N255N254N253N252N251N250N249N248N247N246N245N244N243N242N241N240N239N238N237N236N235N234N233N232N231N230N229N228N227N226N225N224N223N222N221N220N219N218N217N216N215N214N213N212N211N210N209N208N207N206N205N204N203N202N201N200N199N198N197N196N195N194N193N192N191N190N189N188N187N186N185N184N183N182N181N180N179N178N177N176N175N174N173N172N171N170N169N168N167N166N165N164N163N162N161N160N159N158N157N156N155N154N153N152N151N150N149N148N147N146N145N144N143N142N141N140N139N138N137N136N135N134N133N132N131N130N129N128N127N126N125N124N123N122N121N120N119N118N117N116N115N114N113N112N111N110N109N108N107N106N105N104N103N102N101N100N99N98N97N96N95N94N93N92N91N90N89N88N87N86N85N84N83N82N81N80N79N78N77N76N75N74N73N72N71N70N69N68N67N66N65N64N63N62N61N60N59N58N57N56N55N54N53N52N51N50N49N48N47N46N45N44N43N42N41N40N39N38N37N36N35N34N33N32N31N30N29N28N27N26N25N24N23N22N21N20N19N18N17N16N15N14N13N12N11N10N9N8N7N6N5N4N3N2N1N0Sizeshrinkgrow fromBounded listBound toBoundedtrunc BStr65535BStr255BStr254BStr253BStr252BStr251BStr250BStr249BStr248BStr247BStr246BStr245BStr244BStr243BStr242BStr241BStr240BStr239BStr238BStr237BStr236BStr235BStr234BStr233BStr232BStr231BStr230BStr229BStr228BStr227BStr226BStr225BStr224BStr223BStr222BStr221BStr220BStr219BStr218BStr217BStr216BStr215BStr214BStr213BStr212BStr211BStr210BStr209BStr208BStr207BStr206BStr205BStr204BStr203BStr202BStr201BStr200BStr199BStr198BStr197BStr196BStr195BStr194BStr193BStr192BStr191BStr190BStr189BStr188BStr187BStr186BStr185BStr184BStr183BStr182BStr181BStr180BStr179BStr178BStr177BStr176BStr175BStr174BStr173BStr172BStr171BStr170BStr169BStr168BStr167BStr166BStr165BStr164BStr163BStr162BStr161BStr160BStr159BStr158BStr157BStr156BStr155BStr154BStr153BStr152BStr151BStr150BStr149BStr148BStr147BStr146BStr145BStr144BStr143BStr142BStr141BStr140BStr139BStr138BStr137BStr136BStr135BStr134BStr133BStr132BStr131BStr130BStr129BStr128BStr127BStr126BStr125BStr124BStr123BStr122BStr121BStr120BStr119BStr118BStr117BStr116BStr115BStr114BStr113BStr112BStr111BStr110BStr109BStr108BStr107BStr106BStr105BStr104BStr103BStr102BStr101BStr100BStr99BStr98BStr97BStr96BStr95BStr94BStr93BStr92BStr91BStr90BStr89BStr88BStr87BStr86BStr85BStr84BStr83BStr82BStr81BStr80BStr79BStr78BStr77BStr76BStr75BStr74BStr73BStr72BStr71BStr70BStr69BStr68BStr67BStr66BStr65BStr64BStr63BStr62BStr61BStr60BStr59BStr58BStr57BStr56BStr55BStr54BStr53BStr52BStr51BStr50BStr49BStr48BStr47BStr46BStr45BStr44BStr43BStr42BStr41BStr40BStr39BStr38BStr37BStr36BStr35BStr34BStr33BStr32BStr31BStr30BStr29BStr28BStr27BStr26BStr25BStr24BStr23BStr22BStr21BStr20BStr19BStr18BStr17BStr16BStr15BStr14BStr13BStr12BStr11BStr10BStr9BStr8BStr7BStr6BStr5BStr4BStr3BStr2BStr1BStr0 BoundedStringSqlDrop SqlDropTable SqlDropDB SqlCreateSqlCreateTable SqlCreateDB SqlInsertSqlInsertQuery SqlDelete SqlUpdateSqlExpr ExistsSqlExpr ListSqlExpr CaseSqlExpr ConstSqlExpr FunSqlExprPostfixSqlExpr PrefixSqlExpr BinSqlExpr ColumnSqlExpr SqlSelectSqlEmptySqlTableSqlBinoptionsattrstablescriteriagroupbyorderbyextraSqlTypeSqlType2SqlType1SqlOrderSqlDescSqlAsc SqlColumn newSelectppSqlppUpdateppDeleteppInsertppCreateppDrop ppSqlExprAggrOp AggrOtherAggrVarPAggrVar AggrStdDevP AggrStdDevAggrMaxAggrMinAggrAvgAggrSum AggrCountUnOp UnOpOtherOpLength OpIsNotNullOpIsNullOpNotBinOpOpAsgOpBitXorOpBitOrOpBitAndOpBitNotOpModOpDivOpMulOpMinusOpPlusOpCatOpOtherOpInOpLikeOpOrOpAndOpNotEqOpGtEqOpGtOpLtEqOpLtOpEqLiteralOtherLitDateLit DoubleLit IntegerLit StringLitBoolLit DefaultLitNullLitPrimExprListExprCaseExpr ConstExprAggrExprUnExprBinExprAttrExprOrderOpOpDescOpAsc OrderExpr SpecialOpTopOrderRelOp DifferenceDivide IntersectUnionTimes PrimQueryEmptySpecialBinaryGroupRestrictProject BaseTableAssocScheme Attribute TableNameextendtimes attributes attrInExpr attrInOrder substAttr isAggregate foldPrimQuery foldPrimExproptimizeoptimizeCriteria ReadRecRow readRecRow ShowRecRow showRecRow ShowLabels recordLabelsSetFieldSelect!HasFieldFieldTag fieldNameRecordRecConsRecNil.=.# emptyRecordsetField ToPrimExprsConstantRecordconstantRecord ShowConstant ProjectRec ProjectExpr InsertRecExprCQueryAttrTableExprRel attributeName<<<<-projectrestrictuniqueunion intersectdivideminustable tableName baseTable attribute.==..<>..<..<=..>..>=._not.&&..||.like_incat.++._length.+..-..*../..%.isNullnotNull_casefromNull_defaultconstant constJustcount_sum_max_minavgstddevstddevPvariance variancePtopascdescorderrunQuery runQueryRellabelsexprs ExprTypesfromHaskellTypesExprTypefromHaskellType FieldTypeBStrT CalendarTimeTBoolTDoubleTIntegerTIntTStringT FieldDesc toHaskellType queryFields SqlGeneratorsqlQuery sqlUpdate sqlDelete sqlInsertsqlInsertQuery sqlCreateDBsqlCreateTable sqlDropDB sqlDropTablesqlEmptysqlTable sqlProjectsqlGroup sqlRestrict sqlBinary sqlSpecialsqlExpr sqlLiteralsqlTypemkSqlGeneratordefaultSqlGeneratordefaultSqlTypedefaultSqlQuerydefaultSqlEmptydefaultSqlTabledefaultSqlProjectdefaultSqlGroupdefaultSqlRestrictdefaultSqlBinarydefaultSqlSpecial toSqlSelectdefaultSqlUpdatedefaultSqlInsertdefaultSqlInsertQuerydefaultSqlDeletedefaultSqlCreateDBdefaultSqlCreateTabledefaultSqlDropDBdefaultSqlDropTabledefaultSqlExprdefaultSqlLiteral generatorGetRecgetRec GetInstances getStringgetInt getInteger getDoublegetBoolgetCalendarTimeDatabasedbQuerydbInsert dbInsertQuerydbDeletedbUpdatedbTables dbDescribe dbTransaction dbCreateDB dbCreateTabledbDropDB dbDropTable!.query insertQueryinsertdeleteupdatedescribe transactioncreateDB createTabledropDB dropTable DBOptions useBString makeIdentCInfocnamedescrTInfotnamecolsDBInfodbnameoptstbls dbInfoToDocppDBInfoppTInfoppCInfo ppDBOptions finalizeSpec makeDBSpec makeTInfo makeCInfoconstructNonClashingDBInfodbInfoToModuleFiles specToHDBdbSpecToDatabase tInfoToTableDriverInterfaceconnectrequiredOptions defaultdriver getOptionsgetAnnotatedOptions getGenerator showQueryshowQueryUnOptshowSql showSqlUnOpt dbToDBSpec hdbMakeEntrymkAttrdbdirectbase Data.Listwordslinesnewline ppCommentfileNamemkIdentPreservingmkIdentCamelCasetoLowerCamelCasetoUpperCamelCase checkChars checkKeyword checkUpper checkLower checkUpperDef checkLowerDefLLessEqLesssize listLength listBoundTypeppAttrsppTablesppWhere ppGroupBy ppOrderByppAs ppSqlTypeNull ppSqlTypecommaHcommaVassocFromSchemecountAggregatehacksincludeOrderFieldsInSelect removeDeadremoveD removeEmpty mergeProject pushRestrict optimizeExprs optimizeExprexprTrue exprFalse exprIsTrue exprIsFalse setField_ SelectField selectFieldRecCat labelType consFieldName consFieldTypeshowsShowRecRow readRecEntryreadsReadRecRow toPrimExprs showConstant InsertExprprimExprQStateAlias ExprDefaultExprAggrschemeselectbinrelunopbinopnumop Data.MaybeNothing aggregateorderOpupdatePrimQueryupdatePrimQuery_newAliasfreshUnOpType UnOpPostfix UnOpPrefixUnOpFun toSqlOrder toSqlAssoctoSqlOp showBinOpsqlUnOp showAggrOpquoteescape mySqlBinarymySqlDifferenceliteralGetValuegetValueGHC.BaseStringghc-prim GHC.TypesInt integer-gmpGHC.Integer.TypeIntegerDoubleGHC.BoolBool recTailType getNonNull stripBStrequalObjectNamesmakeTblNamesUniquemakeFieldNamesUniquemakeDBNameUniquemakeTblNameUniquemakeFieldNameUniquenewName compNamesheadercontextStackPragmaimports createModulesmoduleNameToFile withPrefixreplace createPathcreateDirIfNotExistsgenDocs tInfoToModule ppTableTypeppTable ppColumns ppColumnType ppColumnValueppField columnNames columnTypescolumnNamesTypes tInfoColspostgresqlSpecialpostgresqlType generatorsFlagsoptHelpoptBoundedStringsoptIdentifierStyle parseOptions exitWithError splitOptionssplit2showHelp