1
Fork 0
Commit graph

107 commits

Author SHA1 Message Date
Jake Wheat 247c7a26b7 improve error messages 2014-04-18 12:28:05 +03:00
Jake Wheat 2cad424379 change the names in the ast to be lists so can support qualified names
everywhere:
  TRSimple: replaces the TRQualified
  Iden
  App name
  AggregateApp name
  WindowApp name
  operator names (not sure if this is used in ansi sql)
  explicit table
  function in from clause
2014-04-18 11:43:37 +03:00
Jake Wheat 3df87a3cf9 change set quantifier and sort direction to represent default separately 2014-04-18 11:18:21 +03:00
Jake Wheat c814cc9437 tweak to error message for reserved keyword as identifier
add in some group by and order by tests
2014-04-18 10:47:39 +03:00
Jake Wheat 37dca6596b support character set literals, e.g. N'stuff'
support collate postfix operator
support escape and uescape as postfix operators
change the collate support in substring and trim which isn't a special
  case in the sql 2003 grammar anymore but just a normal collate postfix
  operator, the old code had the collation name as a string, but the
  new style is as an identifier
2014-04-18 00:16:24 +03:00
Jake Wheat 211174cfb4 work on array constructors and expressions 2014-04-17 22:57:33 +03:00
Jake Wheat d38a5a743a move the typed literal parser around
implement unique predicate, match predicate
change the representation of quantified comparison predicates
2014-04-17 22:35:43 +03:00
Jake Wheat 0d3f552ede move typed lit 2014-04-17 21:42:07 +03:00
Jake Wheat 490c84b7f1 split typed literal parser from cast parser 2014-04-17 21:27:54 +03:00
Jake Wheat df1f948b5d left factor identifier and app parsers 2014-04-17 21:05:47 +03:00
Jake Wheat a296b1ec31 left factor terms which start with parens (scalar subquery, paren value expr/row ctors) 2014-04-17 20:59:46 +03:00
Jake Wheat d202458808 refactor the interval literal parser to not use try 2014-04-17 20:53:16 +03:00
Jake Wheat 556f65ee22 refactor the join parsing to left factor and remove try
refactor the string token parser to reduce use of try
2014-04-17 20:46:16 +03:00
Jake Wheat 6720d3e3a3 add support for named host parameters 2014-04-17 19:27:18 +03:00
Jake Wheat 19df6f18aa don't include unfinished tests in the test suite
fix number literals to accept upper case E
implement multi part string literals
fix tests for string literals, typed literals, boolean literals and
  number literals in the sql 2003 tests
2014-04-17 19:19:41 +03:00
Jake Wheat 488310ff6a add some big improvements to parse error messages
change the parser to not attempt to parse the elements following
'from' unless there is a actual 'from'
improve the symbol parser to try to deal with issues when symbols are
  next to eachother with no intervening whitespaces
improve number literal parsing to fail if there are trailing letters
  or digits which aren't part of the number and aren't separated with
  whitespace
add some code to start analysing the quality of parse error messages
2014-04-17 18:32:41 +03:00
Jake Wheat dffd7b0d7a refactor more of the parser to update with ideas from the tutorial
parser
remove a huge number of 'try' calls in the parser
rename some of the parser functions which used prefix s to nicer names
2014-04-16 20:22:42 +03:00
Jake Wheat 89015144f9 change the ints in the syntax to be integers
partially add buildExprParser hack to deal with some nested prefix and
  postfix unary operators
add new file which starts going through the sql2003 grammar to try to
  create lots of examples for comprehensive testing of sql2003
  support.
replace the lexers with lexers from the tutorial project
2014-04-16 18:58:17 +03:00
Jake Wheat 8b1fa81de7 fix bug in parsing default as all instead of distinct for set operations 2014-04-15 13:47:34 +03:00
Jake Wheat 4989f5251b add Data and Typeable to the syntax 2014-04-10 18:53:11 +03:00
Jake Wheat 79fde02d81 fix default for distinct/all in union in the pretty printer 2014-04-09 18:31:14 +03:00
Sönke Hahn 2e91fb9e81 Allow qualified names ('schema.table') in from clauses 2014-01-22 15:54:14 +08:00
Jake Wheat 9611885448 update changelog, small haddock fixes 2013-12-31 12:20:07 +02:00
Jake Wheat 9e75fa9365 hlint 2013-12-31 11:44:10 +02:00
Jake Wheat 7cf5275615 swap order in select lists so the expression comes first then the alias to match the order in the concrete syntax 2013-12-31 11:31:00 +02:00
Jake Wheat 552d3f5383 use Parser type from Text.Parsec.String, make imports explicit 2013-12-31 11:21:03 +02:00
jake 9d8c1badbd give in and use the parsec buildExpressionParser for now 2013-12-31 11:02:26 +02:00
Jake Wheat 40c64c7631 rename qeFetch to qeFetchFirst 2013-12-19 17:50:25 +02:00
Jake Wheat df7e6f87da change pretty printer to output 'fetch first' instead of 'fetch next' 2013-12-19 12:54:48 +02:00
Jake Wheat 692f8f84ad fixes to haddock and update changelog 2013-12-19 12:15:05 +02:00
Jake Wheat 3b2730fd99 rename ScalarExpr -> ValueExpr which is slightly more standard, add notes on new fixity implementation 2013-12-19 11:46:51 +02:00
Jake Wheat b68c116839 add support for ? for parameterized queries 2013-12-19 10:44:20 +02:00
Jake Wheat 72d7b9428f add parsing for more multi keyword type names 2013-12-19 10:35:38 +02:00
Jake Wheat 1be27eca58 rename Duplicates -> SetQuantifier + qeDuplicates -> qeSetQuantifier 2013-12-19 10:34:32 +02:00
Jake Wheat b631497a04 renames OrderField->SortSpec, InThing->InPredValue 2013-12-18 16:27:06 +02:00
Jake Wheat b89f2a011c fixes for substring, change the abstract syntax for extract and
substring, and add the addition operators position, convert,
  translate, overlay and trim
2013-12-18 15:51:55 +02:00
Jake Wheat 02e8452f8c prepare for the github project name rename to be the same as the haskage package 2013-12-17 22:54:20 +02:00
Jake Wheat bcd06d1ef9 spelling fixes 2013-12-17 22:15:19 +02:00
Jake Wheat 60cf309953 fix haddock, hlint, rename Prec2TypeName to PrecScaleTypeName 2013-12-17 20:46:29 +02:00
Jake Wheat e61672ebf8 hlint 2013-12-17 20:27:11 +02:00
Jake Wheat 558d44140a add support for typenames with precision and scale 2013-12-17 19:52:14 +02:00
Jake Wheat 74c6d39b23 get group by variations working 2013-12-17 19:27:09 +02:00
Jake Wheat b703e04af3 add syntax for new grouping expressions 2013-12-17 19:17:03 +02:00
Jake Wheat 7d094182b7 add support for multiple case when expressions 2013-12-17 18:42:00 +02:00
Jake Wheat ebe522b21d add support for nulls first/last 2013-12-17 18:28:31 +02:00
Jake Wheat e85ab8b831 add names/docs to some of the scalar expr constuctor fields, add partial support for explicit window frames 2013-12-17 17:29:49 +02:00
Jake Wheat bfe07dce53 fix the lateral parsing issue and broken test 2013-12-17 16:33:56 +02:00
Jake Wheat e03090a6a1 add support for rowctor without row, e.g. (1,2) 2013-12-17 16:20:05 +02:00
Jake Wheat 89a4dd0e3e add a few more operators: % & ^ | ~ 2013-12-17 16:15:19 +02:00
Jake Wheat b2728ec9bf add support for ansi standard offset and fetch syntax 2013-12-17 16:00:17 +02:00