úÎ!¢/‘‡ÿ'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&SafeA'()*+,-.Safe^simple-sql-parserType to represent parse errors.simple-sql-parsercontains the error messagesimple-sql-parserfilename location for the errorsimple-sql-parser4line number and column number location for the errorsimple-sql-parserDformatted error with the position, error message and source context/Safe1wÄLsimple-sql-parser:Comment. Useful when generating SQL code programmatically.simple-sql-parser]Used to set the dialect used for parsing and pretty printing, very unfinished at the moment. simple-sql-parserThe join condition. simple-sql-parseron expr simple-sql-parserusing (column list)simple-sql-parserThe type of a join.simple-sql-parser²Represents an alias for a table valued expression, used in with queries and in from alias, e.g. select a from t u, select a from t u(b), with a(c) as select 1, select * from a.simple-sql-parser;Represents a entry in the csv of tables in the from clause.simple-sql-parserfrom t / from s.tsimple-sql-parser3from a join b, the bool is true if natural was usedsimple-sql-parserfrom (a)simple-sql-parserfrom a as b(c,d)simple-sql-parserfrom (query expr)simple-sql-parserfrom function(args)simple-sql-parserfrom lateral tsimple-sql-parser(Represents an item in a group by clause.$simple-sql-parser/Corresponding, an option for the set operators.'simple-sql-parserQuery expression set operators.+simple-sql-parser'The direction for a column in order by./simple-sql-parser¦Represents the Distinct or All keywords, which can be used before a select list, in an aggregate/window function application, or in a query expression set operator.3simple-sql-parser,Represents a query expression, which can be:a regular select;*a set operator (union, except, intersect);!a common table expression (with);2a table value constructor (values (1,2),(3,4)); oran explicit table (table t).;simple-sql-parser&the expressions and the column aliasesJsimple-sql-parser&represents the start or end of a framePsimple-sql-parser@Represents whether a window frame clause is over rows or ranges.Ssimple-sql-parser„Represents the frame clause of a window this can be [range | rows] frame_start or [range | rows] between frame_start and frame_endVsimple-sql-parser?Represents 'nulls first' or 'nulls last' in an order by clause.Zsimple-sql-parser)Represents one field in an order by list.`simple-sql-parser!A subquery in a value expression.asimple-sql-parserexists (query expr)bsimple-sql-parserunique (query expr)csimple-sql-parsera scalar subquerydsimple-sql-parserMUsed for 'expr in (value expression list)', and 'expr in (subquery)' syntax.rsimple-sql-parser&Represents a type name, used in casts.}simple-sql-parser?Represents an identifier name, which can be quoted or unquoted.simple-sql-parserWdialect quoted name, the fields are start quote, end quote and the string itself, e.g.  somethinga is parsed to DQName "`" "`" "something, and $a$ test $a$ is parsed to DQName "$a$" "$a" " test "‚simple-sql-parser¢Represents a value expression. This is used for the expressions in select lists. It is also used for expressions in where, group by, having, order by and so on.ƒsimple-sql-parserEa numeric literal optional decimal point, e+- integral exponent, e.g1010..110.11e512.34e-6„simple-sql-parserhstring literal, currently only basic strings between single quotes with a single quote escaped using ''…simple-sql-parserPtext of interval literal, units of interval precision, e.g. interval 3 days (3)†simple-sql-parser'identifier with parts separated by dots‡simple-sql-parser#star, as in select *, t.*, count(*)ˆsimple-sql-parser[function application (anything that looks like c style function application syntactically)‰simple-sql-parseraaggregate application, which adds distinct or all, and order by, to regular function applicationŠsimple-sql-parseraggregates with within group‹simple-sql-parserŽwindow application, which adds over (partition by a order by b) to regular function application. Explicit frames are not currently supportedŒsimple-sql-parser“Infix binary operators. This is used for symbol operators (a + b), keyword operators (a and b) and multiple keyword operators (a is similar to b)simple-sql-parsermPrefix unary operators. This is used for symbol operators, keyword operators and multiple keyword operators.Žsimple-sql-parsernPostfix unary operators. This is used for symbol operators, keyword operators and multiple keyword operators.simple-sql-parserrUsed for ternary, mixfix and other non orthodox operators. Currently used for row constructors, and for between.simple-sql-parseräUsed for the operators which look like functions except the arguments are separated by keywords instead of commas. The maybe is for the first unnamed argument if it is present, and the list is for the keyword argument pairs.‘simple-sql-parser(case expression. both flavours supported“simple-sql-parsercast(a as typename)”simple-sql-parser!prefix 'typed literal', e.g. int '42'•simple-sql-parser!exists, all, any, some subqueries–simple-sql-parserbin list literal and in subquery, if the bool is false it means not in was used ('a not in (1,2)')—simple-sql-parser'Represents a ? in a parameterized query˜simple-sql-parserhrepresents a host parameter, e.g. :a. The Maybe String is for the indicator, e.g. :var indicator :nl›simple-sql-parserrepresents an array access expression, or an array ctor e.g. a[3]. The first valueExpr is the array, the second is the subscripts/ctor argsœsimple-sql-parser`this is used for the query expression version of array constructors, e.g. array(select * from t)¦simple-sql-parsertrue if + used, false if - used§simple-sql-parser literal textªsimple-sql-parseraggregate function name«simple-sql-parserdistinct¬simple-sql-parserargs­simple-sql-parserorder by®simple-sql-parserfilter¯simple-sql-parser within group°simple-sql-parserwindow function name±simple-sql-parserargs²simple-sql-parser partition by³simple-sql-parserorder by´simple-sql-parser frame clauseµsimple-sql-parser test value¶simple-sql-parser when branches·simple-sql-parser else value¸simple-sql-parserHelper/ 'default'd value for query exprs to make creating query expr values a little easier. It is defined like this: ÿ|makeSelect :: QueryExpr makeSelect = Select {qeSetQuantifier = SQDefault ,qeSelectList = [] ,qeFrom = [] ,qeWhere = Nothing ,qeGroupBy = [] ,qeHaving = Nothing ,qeOrderBy = [] ,qeOffset = Nothing ,qeFetchFirst = Nothing}³  !"#$%&')(*+,-./2013845679:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚›šˆƒ„…†‡‰Š‹ŒŽ‘’“”•–—˜™œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸³‚›šˆƒ„…†‡‰Š‹ŒŽ‘’“”•–—˜™œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·}~€rstuvwxyz{|pqjklmnoghi/201Z[+,-.VWXYdef`abc\]^_STUPQRJKLMNO3845679:;<=>?@ABCDEFGHI¸')(*$%& !"#  Safel!simple-sql-parser,Convert a query expr ast to concrete syntax."simple-sql-parser,Convert a value expr ast to concrete syntax.#simple-sql-parserbConvert a list of query exprs to concrete syntax. A semi colon is inserted after each query expr.!"#!"#SafeN‘;$simple-sql-parser1Parses a query expr, trailing semicolon optional.%simple-sql-parserdParses a list of query expressions, with semi colons between them. The final semicolon is optional.&simple-sql-parserParses a value expression.$simple-sql-parserdialect of SQL to usesimple-sql-parser!filename to use in error messagessimple-sql-parser\line number and column number of the first character in the source to use in error messagessimple-sql-parserthe SQL source to parse%simple-sql-parserdialect of SQL to usesimple-sql-parser!filename to use in error messagessimple-sql-parser\line number and column number of the first character in the source to use in error messagessimple-sql-parserthe SQL source to parse&simple-sql-parserdialect of SQL to usesimple-sql-parser!filename to use in error messagessimple-sql-parser\line number and column number of the first character in the source to use in error messagessimple-sql-parserthe SQL source to parse $%& $&%0      !"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\\]^_`abcdefghijklmnopqrsstuvwxyz{|}}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./.simple-sql-parser-0.4.4-1ElQOsPk8ex64ZwIc9NSqYLanguage.SQL.SimpleSQL.ParserLanguage.SQL.SimpleSQL.SyntaxLanguage.SQL.SimpleSQL.Pretty"Language.SQL.SimpleSQL.CombinatorsLanguage.SQL.SimpleSQL.Errors ParseError peErrorString peFilename pePositionpeFormattedErrorComment BlockCommentDialectSQL2011MySQL JoinConditionJoinOn JoinUsingJoinTypeJInnerJLeftJRightJFullJCrossAliasTableRefTRSimpleTRJoinTRParensTRAlias TRQueryExpr TRFunction TRLateral GroupingExprGroupingParensCubeRollup GroupingSets SimpleGroup Corresponding Respectively CombineOpUnionExcept Intersect Direction DirDefaultAscDesc SetQuantifier SQDefaultDistinctAll QueryExprSelectCombineQueryExprWithValuesTable QECommentqeSetQuantifier qeSelectListqeFromqeWhere qeGroupByqeHaving qeOrderByqeOffset qeFetchFirstqe0qeCombOpqeCorrespondingqe1qeWithRecursiveqeViewsqeQueryExpressionFramePosUnboundedPreceding PrecedingCurrent FollowingUnboundedFollowing FrameRows FrameRangeFrame FrameFrom FrameBetween NullsOrderNullsOrderDefault NullsFirst NullsLastSortSpecCompPredQuantifierCPAnyCPSomeCPAllSubQueryExprTypeSqExistsSqUniqueSqSq InPredValueInList InQueryExpr PrecUnitsPrecCharacters PrecOctetsPrecMultiplierPrecKPrecMPrecGPrecTPrecPIntervalTypeFieldItfTypeName PrecTypeNamePrecScaleTypeNamePrecLengthTypeName CharTypeName TimeTypeName RowTypeNameIntervalTypeName ArrayTypeNameMultisetTypeNameNameQNameUQNameDQName ValueExprNumLit StringLit IntervalLitIdenStarApp AggregateAppAggregateAppGroup WindowAppBinOpPrefixOp PostfixOp SpecialOp SpecialOpKCaseParensCastTypedLit SubQueryExprIn Parameter HostParameterQuantifiedComparisonMatchArray ArrayCtor CSStringLitEscapeUEscapeCollate MultisetBinOp MultisetCtorMultisetQueryCtor NextValueFor VECommentilSign ilLiteralilFromilToaggName aggDistinctaggArgs aggOrderBy aggFilteraggGroupwnNamewnArgs wnPartition wnOrderBywnFramecaseTest caseWhenscaseElse makeSelect$fEqName $fShowName $fReadName $fDataName$fEqIntervalTypeField$fShowIntervalTypeField$fReadIntervalTypeField$fDataIntervalTypeField$fEqPrecMultiplier$fShowPrecMultiplier$fReadPrecMultiplier$fDataPrecMultiplier $fEqPrecUnits$fShowPrecUnits$fReadPrecUnits$fDataPrecUnits $fEqTypeName$fShowTypeName$fReadTypeName$fDataTypeName$fEqSubQueryExprType$fShowSubQueryExprType$fReadSubQueryExprType$fDataSubQueryExprType$fEqCompPredQuantifier$fShowCompPredQuantifier$fReadCompPredQuantifier$fDataCompPredQuantifier$fEqNullsOrder$fShowNullsOrder$fReadNullsOrder$fDataNullsOrder $fEqFrameRows$fShowFrameRows$fReadFrameRows$fDataFrameRows$fEqSetQuantifier$fShowSetQuantifier$fReadSetQuantifier$fDataSetQuantifier $fEqDirection$fShowDirection$fReadDirection$fDataDirection $fEqCombineOp$fShowCombineOp$fReadCombineOp$fDataCombineOp$fEqCorresponding$fShowCorresponding$fReadCorresponding$fDataCorresponding $fEqAlias $fShowAlias $fReadAlias $fDataAlias $fEqJoinType$fShowJoinType$fReadJoinType$fDataJoinType $fEqDialect $fShowDialect $fReadDialect $fDataDialect $fEqComment $fShowComment $fReadComment $fDataComment $fEqValueExpr$fShowValueExpr$fReadValueExpr$fDataValueExpr $fEqQueryExpr$fShowQueryExpr$fReadQueryExpr$fDataQueryExpr $fEqTableRef$fShowTableRef$fReadTableRef$fDataTableRef$fEqJoinCondition$fShowJoinCondition$fReadJoinCondition$fDataJoinCondition$fEqGroupingExpr$fShowGroupingExpr$fReadGroupingExpr$fDataGroupingExpr $fEqSortSpec$fShowSortSpec$fReadSortSpec$fDataSortSpec $fEqFrame $fShowFrame $fReadFrame $fDataFrame $fEqFramePos$fShowFramePos$fReadFramePos$fDataFramePos$fEqInPredValue$fShowInPredValue$fReadInPredValue$fDataInPredValueprettyQueryExprprettyValueExprprettyQueryExprsparseQueryExprparseQueryExprsparseValueExpr optionSuffix<$$><$$$><$$$$><$$$$$>convParseError