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