H       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < =>?@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      !"#$%&'()*+,-./01234567 8 9 : ; <=>?@ABCDEFGHIJKLMN O!P"Q#R$S%T&U'V(W)X*Y+Z,[-\.]/^0_1`2a3b4c5d6e7f8g9h:i;j<k=l>m?n@oApBqCrDsEtFuGvHwIxJyKzL{M|N}O~PQRSTUVWXYZ[\]^_`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.net8/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. "#$%&'()*4Aggregate functions separate from normal functions. +,-./0%Data type for SQL SELECT statements. 1Empty select. 2Select a whole table. 3Binary relational operator 45DISTINCT, ALL etc. 6result 7FROM 8WHERE 9 GROUP BY : ORDER BY ; TOP n, etc. <=>?@ABCDEF"A valid SQL name for a parameter. GHITransform a SqlSelect value. JTransform a SqlExpr value. K8 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK8HGFCED?BA@0432156789:; !/.-,+*)('&%$#"<>=KJI8  !/.-,+*)('&%$#""#$%&'()*+,-./0 432156789:;123456789:;<>==>?BA@@ABCEDDEFGHIJK non-portable experimental%haskelldb-users@lists.sourceforge.netLPretty prints a 40 MPretty prints a   NPretty prints a  OPPretty prints a . QPretty prints a . RPretty prints a ! LMNOPQRLMNOPQRLMNOPQR  non portable experimental%haskelldb-users@lists.sourceforge.netcSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|used for hacking in custom SQL }~represents a default value $Cast an expression to a given type. .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. ;Determines if a primitive expression represents a constant / or is an expression only involving constants. Fold on  Fold on  aSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~adzyxwvutsrqponmlkjihgfe^cba`_S]\[ZYXWVUT{~}|aS ]\[ZYXWVUTTUVWXYZ[\]^cba`__`abcdzyxwvutsrqponmlkjihgfeefghijklmnopqrstuvwxyz{~}||}~   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) )Determines if the given column (attribute/expression pair)  exists in the scheme given. !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.netxConverts records w/o Expr (usually from database ' queries) to records with Expr types. (Used to limit variable argument form of func to only take Expr types,  and ignore ExprAggr types. /Used to implement variable length arguments to func , below.   :Class which can convert BoundedStrings to normal strings, 4 even inside type constructors. Useful when a field % is defined as a BoundedString (e.g.  Expr BStr10 or Expr (Maybe BStr20)) but O it needs to be used in an expression context. The example below illustrates a Q table with at least two fields, strField and bStrField. The first is defined as T containing strings, the second as containing strings up to 10 characters long. The  toStrN function must be used to convert the bStrField into the appropriate type for  projecting as the strField:  2 type SomeTable = (RecCons StrField (Expr String) < (RecCons BStrField (Expr BStr10) ... ))   someTable :: Table SomeTable  someTable = ... " strField :: Attr StrField String  strField = ...  & bstrField :: Attr BStrField (BStr10)  bstrField = ...   query = do  t <- table someTable . project $ strField << toStr $ t ! bstrField +Convert a bounded string to a real string. 'Helper class which gives a polymorphic 2 copy function that can turn a Rel into a Record.  '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 . .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 DCreates a single-field record from an attribute and a table. Useful D for building projections that will re-use the same attribute name.  copy attr tbl is  equivalent to: attr .=. (tbl .!. attr)?Copies all columns in the relation given. Useful for appending @ the remaining columns in a table to a projection. For example:   query = do  tbl <- table some_table  project $ copyAll tbl will add all columns in  some_table to the query. 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. )For queries against fake tables, such as  4'information_schema.information_schema_catalog_name' . Useful for D constructing queries that contain constant data (and do not select 0 from columns) but need a table to select from. /Create a named parameter with a default value. Name of the parameter. !Default value for the parameter. 4Create an anonymous parameter with a default value. Default value. (Equality comparison on Exprs, = in SQL. Inequality on Exprs,   in SQL. The inverse of an Expr Bool. " Logical and" on , AND in SQL. " Logical or" on  . 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. /Can be used to define SQL functions which will Wappear in queries. Each argument for the function is specified by its own Expr value. Examples include:  * lower :: Expr a -> Expr (Maybe String)  lower str = func "lower" str AThe arguments to the function do not have to be Expr if they can be converted to Expr:  / data DatePart = Day | Century deriving Show  I datePart :: DatePart -> Expr (Maybe CalendarTime) -> Expr (Maybe Int) B datePart date col = func "date_part" (constant $ show date) col 6Aggregate functions can also be defined. For example:  ' every :: Expr Bool -> ExprAggr Bool  every col = func "every" col JAggregates are implemented to always take one argument, so any attempt to Mdefine an aggregate with any more or less arguments will result in an error. JNote that type signatures are usually required for each function defined, &unless the arguments can be inferred. 1The default value of the column. Only works with insert. 4Creates a constant expression from a haskell value. 8Inserts the string literally - no escaping, no quoting. 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 "Similar to fromNull, but takes a % value argument rather than an Expr. 0Turn constant data into a nullable expression.  Same as constant . Just 0Turn constant data into a nullable expression.  Same as constant . Just Represents a null value.  Generates a CAST expression for the given 9 expression, using the argument given as the destination  type. Destination type. Source expression. !Coerce the type of an expression - to another type. Does not affect the actual  primitive value - only the phantom type. Source expression Destination type. 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. ()*+:Allows a subquery to be created between another query and K this query. Normally query definition is associative and query definition < is interleaved. This combinator ensures the given query is  added as a whole piece. ,-<Field selection operator. It is overloaded to work for both 3 relations in a query and the result of a query. # That is, it corresponds to both  and !. from the original @ HaskellDB. An overloaded operator was selected because users = (and the developers) always forgot to use !. instead of !  on query results. b      !"#$%&'()*+,-b      !"#%&'$)*(+-,a      !"#$%&'()*+,-  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. /0=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. 12A database column type 3456789: 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. ./0123456789:;<:29876543;01./<.//011298765433456789:;< non-portable experimental%haskelldb-users@lists.sourceforge.net=>?@ABCDEFGHIJK@Ensures non-aggregate expressions in the select are included in  group by clause. LMNOPQR5Turn a string into a quoted string. Quote characters 0 and any escaping are handled by this function. =>?@ABCDEFGHIJKLMNOPQR=>?@ABCDEFGHIJKLMNOPQR=>?@ABCDEFGHIJKLMNOPQR>?@ABCDEFGHIJKLMNOPQR non-portable experimental%haskelldb-users@lists.sourceforge.net# !STUV Creates a 40 based on the  supplied. * Corresponds to the SQL statement SELECT. WXYZFEnsures the groupby value on the SqlSelect either preserves existing C grouping or that it will group on all columns (i.e, Mark == All). [\]"^@Make sure our SqlSelect statement is really a SqlSelect and not  another constructor. #$_ 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. ` Creates a . Name of the table What to insert. a 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 b 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. cUse this to create a  data type corresponding to A the SQL statement CREATE DATABASE which creates a new database. name of the database. dUse 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 e Creates a $ that delete the database with the # name given as the first argument. f Creates a  that delete the database named  in the first argument. g%&'hi(8Quote a string and escape characters that need escaping $ FIXME: this is backend dependent )%Escape characters that need escaping STUVWXYZ[\]^_`abcdefghiSTV_b`acdefWXY[\Z]ghUi^STUVWXYZ[\]^_`abcdefghi non portable  experimental &haskelldb-users@lists.sourceforge.net j5Take a query, turn it into a SqlSelect and print it. k5Take a query, turn it into a SqlSelect and print it. l5Take a query, turn it into a SqlSelect and print it. mITake a query, turn it into a SqlSelect and print it, with optimizations. nBOptimize the query and pretty print the primitive representation. oCPretty print the primitive representation of an unoptimized query. p Pretty print a PrimQuery value. *<Transform a PrimQuery according to the function given, then  pretty print it. 5Transformation function to apply to PrimQuery first. PrimQuery to print. +3Function to turn primitive query into a SqlSelect. *Transformation to apply to query, if any. ,The primitive query to transform and print. q,-./0Nesting level. jklmnopqnolmqpjkjklmnopq non-portable experimental%haskelldb-users@lists.sourceforge.netr12rrr non-portable experimental%haskelldb-users@lists.sourceforge.nets345sss non-portable experimental%haskelldb-users@lists.sourceforge.net)t6uvCreate 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. w?Functions for getting values of a given type. Database drivers = need to implement these functions and pass this record to v  when getting query results. "All these functions should return  if the value is NULL. xyGet a 7 value. zGet an 8 value. {Get an 9 value. |Get a : value. }Get a ; value. ~Get a < value. 5The (!.) 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. performs 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 KPerforms some database action in a transaction. If no exception is thrown,  the changes are committed.  Database Action to run 4Is 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  Database Name of table to create The fields of the table  Database Name of database to drop  Database Name of table to drop &tuvwxyz{|}~&uvwxyz{|}~t&tuvvwxyz{|}~xyz{|}~  non-portable experimental%haskelldb-users@lists.sourceforge.net$Use Bounded Strings? EConversion routines from Database identifiers to Haskell identifiers The name of this column The description of this column The name of the table The columns in this table %Defines a database layout, top level The name of the database  Any options (i.e whether to use  Bounded Strings) Tables this database contains GCreates a valid declaration of a DBInfo. The variable name will be the  same as the database name Pretty prints a DBInfo  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 @A6Makes a table name unique among all other table names B6Makes a field name unique among all other field names C&makes the dbname unique in a database D:makes a supplied name unique in a table and its subfields E(makes a supplied name unique in a field F1Gives a String a new name, according to its type Either a Table or a Field  The new name GJCase insensitive String comparison (there probably is a standard function & for this, there ought to be anyway  non-portable experimental%haskelldb-users@lists.sourceforge.netHCommon header for all files I5Adds LANGUAGE pragrams to the top of generated files J@Adds an appropriate -fcontext-stackXX OPTIONS pragma at the top  of the generated file. KAAll 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 LCreates modules Base directory @Name of directory and top-level module for the database modules !Module names and module contents M#Make a filename from a module name NOP9Like createDirectory, but creates all the directories in  the path. Q;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 R Does the actual conversion work Top-level module name +list of module name, module contents pairs SMakes a module from a TInfo The name of our main module  Module name and module contents TUPretty prints a TableInfo V#Pretty prints a list of ColumnInfo -Pretty prints the type field in a ColumnInfo W.Pretty prints the value field in a ColumnInfo X Pretty prints Field definitions Y/Extracts all the column names from a TableInfo Z/Extracts all the column types from a TableInfo [4Combines the results of columnNames and columnTypes portable 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.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 . \ non-portable experimental%haskelldb-users@lists.sourceforge.net&23456789:&:29876543 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 5 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     23456789:  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 a   non portable experimental$"Justin Bailey" <jgbailey@gmail.com>:Represents a query parameter. Left parameters are indexed 0 by position, while right parameters are named. Shows the optimized . Shows the unoptimized . Shows the optimized SQL query. !Shows the unoptimized SQL query. &Get paramaters from a query in order. b'Shows the optimized SQL for the query. \      !"#$%&'+\+      !"#%&'$portable experimental%haskelldb-users@lists.sourceforge.netcdefghijklmnoShows usage information p !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:9;;<<=>?@ABCDEFGHIJKLMNOLPQRSTUVWXYZ[\Z]^_`aNbcdefghijk l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K LMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxeyz{|}~R)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()                                                ! "#$%&'()*+,-./0123k456#-.789:;<=>?:;@:AB !CDEFGHIJKLMNOPQRSTUVWXYZ1[\]^_`abcdefghhijkRPlmn'opqhaskelldb-2.1.0Database.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.PrintQueryDatabase.HaskellDB.Sql.MySQLDatabase.HaskellDB.Sql.SQLiteDatabase.HaskellDB.Database Database.HaskellDB.DBSpec.DBInfo*Database.HaskellDB.DBSpec.DBSpecToDBDirect*Database.HaskellDB.DBSpec.DatabaseToDBSpec*Database.HaskellDB.DBSpec.DBSpecToDatabase!Database.HaskellDB.Sql.PostgreSQLDatabase.HaskellDBDatabase.HaskellDB.DBDirectDatabase.HaskellDB.DBSpectransformers-0.2.2.0Control.Monad.IO.ClassMonadIOold-time-1.0.0.6 System.Time CalendarTimeversionMakeIdentifiers moduleName identifiertoTypesplit BoundedListN65535N255N254N253N252N251N250N249N248N247N246N245N244N243N242N241N240N239N238N237N236N235N234N233N232N231N230N229N228N227N226N225N224N223N222N221N220N219N218N217N216N215N214N213N212N211N210N209N208N207N206N205N204N203N202N201N200N199N198N197N196N195N194N193N192N191N190N189N188N187N186N185N184N183N182N181N180N179N178N177N176N175N174N173N172N171N170N169N168N167N166N165N164N163N162N161N160N159N158N157N156N155N154N153N152N151N150N149N148N147N146N145N144N143N142N141N140N139N138N137N136N135N134N133N132N131N130N129N128N127N126N125N124N123N122N121N120N119N118N117N116N115N114N113N112N111N110N109N108N107N106N105N104N103N102N101N100N99N98N97N96N95N94N93N92N91N90N89N88N87N86N85N84N83N82N81N80N79N78N77N76N75N74N73N72N71N70N69N68N67N66N65N64N63N62N61N60N59N58N57N56N55N54N53N52N51N50N49N48N47N46N45N44N43N42N41N40N39N38N37N36N35N34N33N32N31N30N29N28N27N26N25N24N23N22N21N20N19N18N17N16N15N14N13N12N11N10N9N8N7N6N5N4N3N2N1N0Sizeshrinkgrow fromBounded listBound toBoundedtrunc BStr65535BStr255BStr254BStr253BStr252BStr251BStr250BStr249BStr248BStr247BStr246BStr245BStr244BStr243BStr242BStr241BStr240BStr239BStr238BStr237BStr236BStr235BStr234BStr233BStr232BStr231BStr230BStr229BStr228BStr227BStr226BStr225BStr224BStr223BStr222BStr221BStr220BStr219BStr218BStr217BStr216BStr215BStr214BStr213BStr212BStr211BStr210BStr209BStr208BStr207BStr206BStr205BStr204BStr203BStr202BStr201BStr200BStr199BStr198BStr197BStr196BStr195BStr194BStr193BStr192BStr191BStr190BStr189BStr188BStr187BStr186BStr185BStr184BStr183BStr182BStr181BStr180BStr179BStr178BStr177BStr176BStr175BStr174BStr173BStr172BStr171BStr170BStr169BStr168BStr167BStr166BStr165BStr164BStr163BStr162BStr161BStr160BStr159BStr158BStr157BStr156BStr155BStr154BStr153BStr152BStr151BStr150BStr149BStr148BStr147BStr146BStr145BStr144BStr143BStr142BStr141BStr140BStr139BStr138BStr137BStr136BStr135BStr134BStr133BStr132BStr131BStr130BStr129BStr128BStr127BStr126BStr125BStr124BStr123BStr122BStr121BStr120BStr119BStr118BStr117BStr116BStr115BStr114BStr113BStr112BStr111BStr110BStr109BStr108BStr107BStr106BStr105BStr104BStr103BStr102BStr101BStr100BStr99BStr98BStr97BStr96BStr95BStr94BStr93BStr92BStr91BStr90BStr89BStr88BStr87BStr86BStr85BStr84BStr83BStr82BStr81BStr80BStr79BStr78BStr77BStr76BStr75BStr74BStr73BStr72BStr71BStr70BStr69BStr68BStr67BStr66BStr65BStr64BStr63BStr62BStr61BStr60BStr59BStr58BStr57BStr56BStr55BStr54BStr53BStr52BStr51BStr50BStr49BStr48BStr47BStr46BStr45BStr44BStr43BStr42BStr41BStr40BStr39BStr38BStr37BStr36BStr35BStr34BStr33BStr32BStr31BStr30BStr29BStr28BStr27BStr26BStr25BStr24BStr23BStr22BStr21BStr20BStr19BStr18BStr17BStr16BStr15BStr14BStr13BStr12BStr11BStr10BStr9BStr8BStr7BStr6BStr5BStr4BStr3BStr2BStr1BStr0 BoundedStringSqlDrop SqlDropTable SqlDropDB SqlCreateSqlCreateTable SqlCreateDB SqlInsertSqlInsertQuery SqlDelete SqlUpdateSqlExpr CastSqlExpr ParensSqlExprPlaceHolderSqlExpr ParamSqlExpr ExistsSqlExpr ListSqlExpr CaseSqlExpr ConstSqlExprAggrFunSqlExpr FunSqlExprPostfixSqlExpr PrefixSqlExpr BinSqlExpr ColumnSqlExpr SqlSelectSqlEmptySqlTableSqlBinoptionsattrstablescriteriagroupbyorderbyextraMarkColumnsAllSqlTypeSqlType2SqlType1SqlOrderSqlDescSqlAscSqlName SqlColumn foldSqlSelect foldSqlExpr newSelectppSqlppUpdateppDeleteppInsertppCreateppDrop ppSqlExprAggrOp AggrOtherAggrVarPAggrVar AggrStdDevP AggrStdDevAggrMaxAggrMinAggrAvgAggrSum AggrCountUnOp UnOpOtherOpLength OpIsNotNullOpIsNullOpNotBinOpOpAsgOpBitXorOpBitOrOpBitAndOpBitNotOpModOpDivOpMulOpMinusOpPlusOpCatOpOtherOpInOpLikeOpOrOpAndOpNotEqOpGtEqOpGtOpLtEqOpLtOpEqLiteralOtherLitDateLit DoubleLit IntegerLit StringLitBoolLit DefaultLitNullLitPrimExprCastExprFunExpr ParamExprListExprCaseExpr ConstExprAggrExprUnExprBinExprAttrExprOrderOpOpDescOpAsc OrderExpr SpecialOpTopOrderRelOp DifferenceDivide IntersectUnionTimes PrimQueryEmptySpecialBinaryGroupRestrictProject BaseTableAssocSchemeName Attribute TableNameextendtimes attributes attrInExpr attrInOrder substAttr isConstant isAggregate foldPrimQuery foldPrimExproptimizeoptimizeCriteria ReadRecRow readRecRow ShowRecRow showRecRow ShowLabels recordLabelsSetFieldSelect!RecCatrecCatHasFieldFieldTag fieldNameRecordRecConsRecNil.=.# emptyRecordsetField ToPrimExprsConstantRecordconstantRecord ShowConstantArgstoStrRelToRec ProjectRec ProjectExpr InsertRecExprCQueryAttrTable ExprDefaultExprAggrExprRel attributeName<<<<-copycopyAllselectprojectrestrictuniqueunion intersectdivideminustable tableNametableRec baseTable emptyTable attribute namedParamparam.==..<>..<..<=..>..>=._not.&&..||.like_incat.++._length.+..-..*../..%.isNullnotNull_casefunc_defaultconstantliteralfromNullfromVal constExprconstVal constNullcastcoercecount_sum_max_minavgstddevstddevPvariance variancePtopascdescorderunQueryrunQuery runQueryRelsubQuerylabelsexprs ExprTypesfromHaskellTypesExprTypefromHaskellType FieldTypeBStrT CalendarTimeTBoolTDoubleTIntegerTIntTStringT FieldDesc toHaskellType queryFields SqlGeneratorsqlQuery sqlUpdate sqlDelete sqlInsertsqlInsertQuery sqlCreateDBsqlCreateTable sqlDropDB sqlDropTablesqlEmptysqlTable sqlProjectsqlGroup sqlRestrict sqlBinary sqlSpecialsqlExpr sqlLiteralsqlTypesqlQuotemkSqlGeneratordefaultSqlGeneratordefaultSqlTypedefaultSqlQuerydefaultSqlEmptydefaultSqlTabledefaultSqlProjectdefaultSqlGroupdefaultSqlRestrictdefaultSqlBinarydefaultSqlSpecial toSqlSelectdefaultSqlUpdatedefaultSqlInsertdefaultSqlInsertQuerydefaultSqlDeletedefaultSqlCreateDBdefaultSqlCreateTabledefaultSqlDropDBdefaultSqlDropTabledefaultSqlExprdefaultSqlLiteraldefaultSqlQuote ppSqlUnOptppSelect ppSelectUnOptppQuery ppQueryUnOptppPrim ppSqlSelect generatorGetValueGetRecgetRec GetInstances getStringgetInt getInteger getDoublegetBoolgetCalendarTimeDatabasedbQuerydbInsert dbInsertQuerydbDeletedbUpdatedbTables dbDescribe dbTransaction dbCreateDB dbCreateTabledbDropDB dbDropTable!.query insertQueryinsertdeleteupdatedescribe transactioncreateDB createTabledropDB dropTable DBOptions useBString makeIdentCInfocnamedescrTInfotnamecolsDBInfodbnameoptstbls dbInfoToDocppDBInfoppTInfoppCInfo ppDBOptions finalizeSpec makeDBSpec makeTInfo makeCInfoconstructNonClashingDBInfodbInfoToModuleFiles specToHDB dbToDBSpecdbSpecToDatabase tInfoToTable hdbMakeEntrymkAttrDriverInterfaceconnectrequiredOptions defaultdriver getOptionsgetAnnotatedOptions getGeneratorParam showQueryshowQueryUnOptshowSql showSqlUnOpt queryParamsdbdirectbase Data.Listwordslinesnewline ppCommentfileNamemkIdentPreservingmkIdentCamelCasetoLowerCamelCasetoUpperCamelCase checkChars checkKeyword checkUpper checkLower checkUpperDef checkLowerDefLLessEqLesssize listLength listBoundTypeppAttrsppTablesppWhere ppGroupBy ppOrderByppAs ppSqlTypeNull ppSqlTypecommaHcommaVassocFromSchemecountAggregatehacksincludeOrderFieldsInSelect removeDeadremoveDisLiveschemeOf removeEmpty mergeProject pushRestrict optimizeExprs optimizeExprexprTrue exprFalse exprIsTrue exprIsFalse setField_ SelectField selectField labelType consFieldName consFieldTypeshowsShowRecRow readRecEntryreadsReadRecRow toPrimExprs showConstantIsExprarg_ BStrToStrrelToRec InsertExprprimExprQStateAliasschemebinrelunopbinopnumop Data.MaybeNothing aggregateorderOpupdatePrimQueryupdatePrimQuery_newAliasfresh$fSelectAttrRelExprUnOpType UnOpPostfix UnOpPrefixUnOpFun toSqlOrder toSqlAssoctoSqlOp showBinOpsqlUnOp showAggrOpquoteescapeppPrimFppPQppTableppAttrppOrdernesting mySqlBinarymySqlDifferencegetValueGHC.BaseStringghc-prim GHC.TypesInt integer-gmpGHC.Integer.TypeIntegerDoubleGHC.BoolBool recTailType getNonNull stripBStrequalObjectNamesmakeTblNamesUniquemakeFieldNamesUniquemakeDBNameUniquemakeTblNameUniquemakeFieldNameUniquenewName compNamesheaderlanguageOptionscontextStackPragmaimports createModulesmoduleNameToFile withPrefixreplace createPathcreateDirIfNotExistsgenDocs tInfoToModule ppTableType ppColumnType ppColumnValueppField columnNames columnTypescolumnNamesTypes tInfoColspostgresqlSpecialpostgresqlLiteralpostgresqlTypepostgresqlExpr generators $fShowQueryFlagsoptHelpoptBoundedStringsoptIdentifierStyle parseOptions exitWithError splitOptionssplit2showHelp