Commit graph

64 commits

Author SHA1 Message Date
Nickolay Ponomarev
ae06dc7901 Return bool from consume_token(), mark as #[must_use] 2019-01-13 01:09:47 +03:00
Nickolay Ponomarev
fd9e2818d7 Introduce expect_token(), failing when the expected token was not found 2019-01-13 01:08:17 +03:00
Nickolay Ponomarev
b3ab4aca88 Use expect_keyword() instead of consume_token() where appropriate
Before this missing keywords THEN/WHEN/AS would be parsed as if they
were in the text as the code didn't check the return value of
consume_token() - see upcoming commit.
2019-01-13 01:07:58 +03:00
Nickolay Ponomarev
de4ccd3cb7 Fail when expected keyword is not found
Add #[must_use] to warn against unchecked results of parse_keyword/s in
the future.
2019-01-13 01:07:58 +03:00
Nickolay Ponomarev
89cfa9e599 Don't consume a second DoubleColon in parse_pg_cast
The function is invoked after a DoubleColon was already matched.
2019-01-13 01:07:58 +03:00
Nickolay Ponomarev
dce09f8054 Fix a mistake in merge conflict resolution earlier 2019-01-13 00:56:51 +03:00
Andy Grove
c0cafb7308 specialized parser for DEFAULT expression in CREATE TABLE 2019-01-12 11:18:21 -07:00
Andy Grove
777fd4c2ee Merge branch 'master' into not 2019-01-12 11:14:07 -07:00
Andy Grove
8c351fe10a Merge branch 'join-support' of https://github.com/fredrikroos/sqlparser-rs into fredrikroos-join-support 2019-01-12 11:09:41 -07:00
Andy Grove
ab423bc9dc
Merge branch 'master' into join-support 2019-01-12 08:33:12 -07:00
Nickolay Ponomarev
3b13e153a8 Fix parse_time() handling of fractional seconds
There's no Token::Period in such situation, so fractional part (from sec) was silently truncated.

Can't uncomment the test yet, because parse_timestamp() is effectively
unused: the code added to parse_value() in 5abd9e7dec
was wrong as it attempted to handle unquoted date/time literals. One
part of it was commented out earlier, the other can't work as far as I
can see, as it tries to parse a Number token - `([0-9]|\.)+` - as a
timestamp, so I removed it as well.
2019-01-11 02:37:36 +03:00
Nickolay Ponomarev
52277c3025 Remove parse_function_or_pg_cast, since fn(...) :: type is taken care of in parse_infix() 2019-01-11 02:37:36 +03:00
Nickolay Ponomarev
eff92a2dc1 Remove special handling of ::type1::type2 from parse_pg_cast
...it gets handled just as well by the infix parser.
(Add a test while we're at it.)
2019-01-11 02:37:36 +03:00
Nickolay Ponomarev
f21cd697c3 Simplify custom datatypes handling and add a test
1) Simplified the bit in parse_datatype()
2) Made sure it was covered by the test (the "public.year" bit)
2a) ...the rest of changes in the test are to fix incorrect variable
 names: c_name/c_lat/c_lng were copy-pasted from a previous test.
3) Removed the branch from parse_pg_cast, which duplicated what
parse_data_type already handled (added in the same commit even
2007995938 )
2019-01-11 02:37:36 +03:00
Nickolay Ponomarev
7c6e6970fa Simplify the {next|prev|peek}_token functions
Remove `pub` from the "internal" ones. Remove ones that duplicate each
other completely.
2019-01-11 02:37:36 +03:00
Nickolay Ponomarev
2873b0cee2 Combine multiple patterns with the same action in parse_prefix() 2019-01-11 01:49:13 +03:00
Andy Grove
ee1944b9d9 Implemented NOT LIKE 2018-12-16 16:30:32 -07:00
Andy Grove
5d62167d6e rename rex to expr in ASTNode 2018-12-16 14:04:51 -07:00
Andy Grove
7aab880387 implement NOT 2018-12-16 14:03:03 -07:00
Andy Grove
e863bc041c cargo fmt, fix compiler warnings 2018-12-16 13:57:01 -07:00
Clemens Winter
91aa985ed0 Add LIKE operator 2018-12-16 11:26:09 -08:00
Fredrik Roos
7624095738 Support for joins 2018-11-17 15:40:24 +01:00
virattara
b75a22ce2e consume semi colon at the end of select and delete queries 2018-10-17 15:52:11 +05:30
Andy Grove
70a3ae93c8
Merge pull request #25 from nickolay/master
Support "searched" CASE expressions
2018-10-16 20:03:34 -06:00
Andy Grove
7e152cd0a9 revert one timestamp parsing case 2018-10-14 12:26:47 -06:00
Andy Grove
1bb7149670 bug fix 2018-10-14 12:12:23 -06:00
Nickolay Ponomarev
5a396bb9b4 Support "searched" CASE expressions (#15)
https://jakewheat.github.io/sql-overview/sql-2011-foundation-grammar.html#searched-case
2018-10-14 20:45:32 +03:00
Andy Grove
633aeb9162
Merge pull request #26 from virattara/fix_order_limit
fix for queries with both order by and limit
2018-10-14 10:13:22 -06:00
virattara
9f47e8ac94 fix for queries with both order by and limit 2018-10-12 16:10:00 +05:30
virattara
94df7c22e6 added support for expressions with parentheses 2018-10-07 14:23:05 +05:30
Andy Grove
661ada0664 fix compiler warnings 2018-10-06 09:58:16 -06:00
Andy Grove
722ea7a91b ran cargo fmt 2018-10-06 09:39:26 -06:00
Andy Grove
9daba3ab49 move tests to tests dir 2018-10-06 09:39:06 -06:00
Jovansonlee Cesar
ba8a9bd48f NULL need to be detected in COPY 2018-09-30 04:19:15 +08:00
Jovansonlee Cesar
5abd9e7dec Modularized into separate files
Add ToString implementation on the components
2018-09-30 03:34:37 +08:00
Jovansonlee Cesar
34913c7051 Implement alter table constraint operation 2018-09-29 19:37:03 +08:00
Jovansonlee Cesar
639f01d4e7 Make Uuid a datatype in PostgreSQL dialect 2018-09-29 13:50:33 +08:00
Jovansonlee Cesar
da153bf848 Make a PostgreSQLDialect
Add is_primary and is_unique in the column definition

Initial code for testing alter table
2018-09-28 03:32:10 +08:00
Jovansonlee Cesar
74b34faaf1 Also tokenize non alphanumeric characters into some Char, since they can be tab separated values in COPY payload 2018-09-26 23:59:52 +08:00
Jovansonlee Cesar
7c7b67b0bc testing values for most common data dump 2018-09-26 22:51:50 +08:00
Jovansonlee Cesar
34412f7e3d Whitespace tokens are not skipped
Differentiate single quoted string and double quoted string
2018-09-26 22:46:16 +08:00
Jovansonlee Cesar
8dbb62cddd unify parsing of sql_values 2018-09-26 15:41:57 +08:00
Jovansonlee Cesar
6aca4de658 Remove unused functions 2018-09-26 15:11:49 +08:00
Jovansonlee Cesar
096b2bf7ba Parsing timestamp and datetime alongside 2018-09-26 14:56:46 +08:00
Jovansonlee Cesar
7803063ece Add parsing of timestamp values 2018-09-25 22:33:01 +08:00
Jovansonlee Cesar
9ab5c1358d Modularize SQLValue into an enum
Add capability of parsing dates
2018-09-25 15:54:29 +08:00
Jovansonlee Cesar
199ec67da7 Add implementation for parsing SQL COPY 2018-09-25 01:31:54 +08:00
Jovansonlee Cesar
719df789e4 Merging parse_inser and improve-create-table branch into these 2018-09-24 19:14:26 +08:00
Jovansonlee Cesar
78c054ea19 Add Boolean value data type
remove unecessary consume of LParen and RParen in default value
2018-09-24 05:53:58 +08:00
Jovansonlee Cesar
2007995938 Improve the create statement parser that uses create statements from pg database dump
Added PostgreSQL style casting
2018-09-24 03:34:40 +08:00