Nickolay Ponomarev
56884dc700
Remove Value::DoubleQuotedString
...
...and parser support for the corresponding token, as "..." in SQL[*] is
not a literal string like we parse it - but a quoted identifier (which I
intend to implement later).
[*] in all the RBDMSes I know, except for sqlite which has complex rules
in the name of "compatibility": https://www.sqlite.org/lang_keywords.html
2019-01-20 19:26:58 +03:00
Nickolay Ponomarev
efdbf0f9dc
Remove Token::Identifier match arm from parse_value
...
An identifier is not a literal value, and parse_value is not called on
such a token anyway.
2019-01-20 19:26:57 +03:00
Nickolay Ponomarev
d0a65ffd05
Remove Token::String, as it's never emitted
...
Indeed, given that there is Token::SingleQuotedString and
Token::Identifier, there's no other "string" that would make sense...
2019-01-20 19:26:57 +03:00
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
f8c6fa96f4
fix regression
2019-01-12 11:11:18 -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
9d3906d655
Add LIKE token GenericSQLDialect
2018-12-16 11:47:01 -08:00
Clemens Winter
91aa985ed0
Add LIKE operator
2018-12-16 11:26:09 -08:00
Fredrik Roos
72024661a9
More tests and some small bugfixes
2018-11-18 00:53:39 +01: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
beb1a7a735
clean up use of modules
2018-10-06 10:04:22 -06:00
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
439f64dfe1
Make keywords public
2018-10-01 01:28:58 +08:00
Jovansonlee Cesar
24153aee53
keywords are now generated via macro to avoid misspellings, dialects should lookup to these list of keywords to avoid mispellings
2018-10-01 00:58:20 +08:00
Jovansonlee Cesar
d66e4848bd
modularize dialects into their own submodules
...
remove assertion in copy sql, conversion to_string is unfinished
2018-09-30 13:35:24 +08: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