Commit graph

886 commits

Author SHA1 Message Date
sam
bbf32a9e81
Support create sequence with options INCREMENT, MINVALUE, MAXVALUE, START etc. (#681)
* Creat sequence options model

[ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
    [ OWNED BY { table_name.column_name | NONE } ]

* Fix for format! not avalable in --target thumbv6m-none-eabi

* Fix for format! not avalable in --target thumbv6m-none-eabi

* Fix for format! not avalable in --target thumbv6m-none-eabi

* Fix for format! not avalable in --target thumbv6m-none-eabi

* Updated parser for sequence options

* Updated parser for sequence options

* Update src/ast/mod.rs

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
2022-11-03 09:16:43 -04:00
yuval-illumex
93a050e5f0
Snowflake: Support semi-structured data (#693)
* Support parse json in snowflake

* MR Review

* Lint

* Try to fix right as value

* Fix tests

* Fix lint

* Add generic dialect

* Add support in key location
2022-11-02 12:05:35 -04:00
ding-young
27c3ec87db
Support ALTER TABLE DROP PRIMARY KEY (#682)
* parse alter table drop primary key

* cargo nightly fmt

* add Dialect validation
2022-11-02 10:15:33 -04:00
AugustoFKL
1b3778e2d5
feature!: added NUMERIC and DEC ANSI data types, and now the DECIMAL (#695)
type prints DECIMAL instead of NUMERIC.

BREAKING CHANGE: enum DATA TYPE variants changed, changing any API that
uses it.
2022-10-31 15:22:34 -04:00
Sarah Yurick
f0646c8c1a
add Date keyword (#691) 2022-10-31 15:20:57 -04:00
dependabot[bot]
b671dc62d3
Update simple_logger requirement from 2.1 to 4.0 (#692)
Updates the requirements on [simple_logger](https://github.com/borntyping/rust-simple_logger) to permit the latest version.
- [Release notes](https://github.com/borntyping/rust-simple_logger/releases)
- [Commits](https://github.com/borntyping/rust-simple_logger/compare/v2.1.0...v4.0.0)

---
updated-dependencies:
- dependency-name: simple_logger
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-30 07:28:37 -04:00
Ning Sun
914810d366
Modifier support for Custom Datatype (#680)
* feat: add support for custom types with argument

* refactor: add support for number and string as type arguments

* fix: ignore CustomWithArgs when parsing TypedString

* refactor: merge CustomWithArgs into Custom

* refactor: rename arguments to modifiers
2022-10-20 15:27:15 -04:00
Andrew Lamb
2c266a437c (cargo-release) version 0.26.0 2022-10-19 17:39:37 -04:00
Andrew Lamb
b525c9f2f7
Add changelog for 0.26.0 (#679) 2022-10-19 17:35:37 -04:00
AugustoFKL
2aba3f8c91
Adding MySQL table option {INDEX | KEY} to the CREATE TABLE definiton (partial). (#665)
Theoretically the behavior should be the same as CREATE INDEX, but we
cannot make that assumption, so the parse is (almost) identical as the
input.

Breaking changes:
- Now HASH and BTREE are KEYWORDS, and using them as names can result in
  errors.
- Now 'KEY' and 'INDEX' column names start the parsing of a table constraint if unquoted for the Generic dialect. This results in possible conficts if canonical results are compared for all dialects if a column is named 'key' without quotes.
2022-10-19 17:24:38 -04:00
sam
e3c936a6ce
mod, parser and test cases for CREATE [ { TEMPORARY | TEMP } ] SEQUENCE [ IF NOT EXISTS ] (#678) 2022-10-19 17:21:17 -04:00
sam
b32cbbd855
Support drop sequence statement (#673)
* Add ObjectType Sequence

* Drop sequence test cases added.

* Parser and Drop statement Display updated.

* Parser and Drop statement Display updated.

* Fix compile errors

* add new test case
2022-10-15 08:04:19 -04:00
AugustoFKL
b42632fa0d
Support for ANSI CHARACTER LARGE OBJECT[(p)] and CHAR LARGE OBJECT[(p)]. (#671)
Add tests for both and `CLOB[(p)]`.
2022-10-15 07:55:08 -04:00
Francis Du
a59874136d
Support cache/uncache table syntax (#670)
* feat: support cache/uncache table syntax

* fix: support the full cache table syntax
2022-10-15 07:53:43 -04:00
Mustafa akur
427bec4ccc
Support for INTERVAL inside window frames (#655)
* Add support to for INTERVAL inside window queries

* Remove the unnecessary ancillary struct Interval

* Convert Window Frame Bound to Expr

* remove unnecessary changes

* remove unnecessary changes

Co-authored-by: Mehmet Ozan Kabak <ozankabak@gmail.com>
2022-10-15 06:34:52 -04:00
AugustoFKL
cacdf3305f
Add support for unit on char length units for small character string types. (#663)
This results in complete support for ANSI CHARACTER, CHAR, CHARACTER VARYING,
CHAR VARYING, and VARCHAR.
2022-10-11 08:54:15 -04:00
AugustoFKL
777672625f
Replacing the two booleans from 'SET ROLE' to a single enum. (#664)
This way, we don't rely on the parser to have valid structures for that
statement, as the structure itself is valid.
2022-10-10 17:14:37 -04:00
AugustoFKL
a9939b0a4f
Enum to handle exact number precisios (#654) 2022-10-08 05:59:11 -04:00
AugustoFKL
a3194ddd52
Create table builder structure (#659)
* Create table builder structure

* Adding comments and examples and adjusting file structure
2022-10-07 16:57:10 -04:00
AugustoFKL
6392a216f0
Replacing 'disable-publish=true' flag by 'public=false', to allow compatibility with recent cargo-release versions (#660) 2022-10-07 16:56:27 -04:00
Ophir LOJKINE
f2b0efec0c
clippy fixes (#656) 2022-10-07 16:41:33 -04:00
Andrew Lamb
e7fb3d4fa7
Correct typo in readme (#658) 2022-10-06 15:21:56 -04:00
Sarah Yurick
cb397d19f9
Support CEIL(expr TO DateTimeField) and FLOOR(expr TO DateTimeField) (#635)
* support ceil/floor to datetime

* Update mod.rs

* Update parser.rs

* murphys law

* Update sqlparser_common.rs

* possible fix?

* remove question mark

* ceil to floor

* Update mod.rs

* Apply suggestions from code review

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

* refactor into parse_ceil_floor_expr

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
2022-10-06 15:21:25 -04:00
AugustoFKL
f7f14df4b1
647 Adding all ansii character string types, parsing them, and differentiating between each one (#648) 2022-10-04 06:42:29 -04:00
Andrew Lamb
977cdb2270 (cargo-release) version 0.25.0 2022-10-03 09:11:58 -04:00
Andrew Lamb
97a52cb85b
Changelog for 0.25.0 release (#651)
* Prepare for 0.25.0 release

* fixip
2022-10-03 09:01:26 -04:00
AugustoFKL
1ced0f6304
645 New schema name structure (#646) 2022-10-03 08:38:01 -04:00
AugustoFKL
95464ec72c
Change TIMESTAMP and TIME parsing so that time zone information is preserved (#641)
* 640 Fixing time zone printing format for TIMESTAMP and TIME

* 640 Removing unnecessary changes

* Update src/ast/data_type.rs

Fix comment typo

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
2022-10-03 08:37:17 -04:00
AugustoFKL
3beecc0a7a
Correct order of arguments in LIMIT x,y , restrict to MySql and generic dialects (#642)
* 613 Fixing MySQL LIMIT syntax

* 613 Reducing logic to real case scenario

* 613 Adding syntax to generic dialect
2022-10-01 17:23:06 -04:00
AugustoFKL
fb5a9747ae
Support optional precision for CLOB and BLOB (#639)
* 638 Adjusting CLOB and BLOB with optional precision

* 638 Adding integration tests to increase coverage

* 638 Adjusting BLOB test
2022-10-01 17:15:47 -04:00
AugustoFKL
300e28bd85
636 Adjusting VARBINARY and BINARY with optional precision (#637) 2022-10-01 16:52:44 -04:00
Andrew Lamb
c2d68255d0 (cargo-release) version 0.24.0 2022-09-28 16:46:33 -04:00
Andrew Lamb
e2a51ad649
Release notes for 0.24.0 (#634)
* Disambiguate CREATE ROLE ... USER and GROUP

* Add changelog for 0.24
2022-09-28 16:34:48 -04:00
Sarah Yurick
d87408bdaf
Parse MILLENNIUM (#633)
* add unknown, is not true/false/unknown

* millennium
2022-09-28 16:26:29 -04:00
AugustoFKL
e951cd5278
#625 adding mediumint support (#630) 2022-09-28 16:26:17 -04:00
AugustoFKL
46b7c03788
Adding DOUBLE PRECISION to data types, parsing it, and tests (#629) 2022-09-28 16:26:11 -04:00
ding-young
6c8f31c367
Fix parsing CLOB, BINARY, VARBINARY, BLOB data type (#618)
* fix(parser): parse clob, binary, varbinary, blob data type

* feat(tests): parse_cast tests for LOB, BINARY datatype
2022-09-28 07:02:30 -04:00
Andrew Lamb
6afd194e94
Disambiguate CREATE ROLE ... USER and GROUP (#628) 2022-09-27 13:56:29 -04:00
Andrew Lamb
2b21da2439
Add test for optional WITH in CREATE ROLE (#627) 2022-09-27 10:23:33 -04:00
Ben Cook
91087fcba0
Support CREATE ROLE and DROP ROLE (#598)
* Parse GRANT ROLE and DROP ROLE

* Gate create role on dialect

* cargo fmt

* clippy

* no-std

* clippy again
2022-09-27 09:58:36 -04:00
Ophir LOJKINE
604f755a59
Fix parse error on some prepared statement placeholders (#604)
sqlparser can now parse all the prepared statement placeholders supported by SQLite:

 - ?
 - ?NNN
 - @VVV
 - :VVV
 - $VVV

See: https://www.sqlite.org/lang_expr.html#varparam

This does not break existing support for postgresql's '@' operator

Fixes #603
2022-09-27 09:58:26 -04:00
ding-young
3ac1bb5b80
Move Value::Interval to Expr::Interval (#609)
* refactor(value): convert Value::Interval to Expr::Interval

* test(sqlparser_common): modify test case

* refactor(parser): rename func parse_interval

* refactor(tests) rename parse_interval test func
2022-09-27 09:30:48 -04:00
dependabot[bot]
d971a029dd
Update criterion requirement from 0.3 to 0.4 in /sqlparser_bench (#611)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Release notes](https://github.com/bheisler/criterion.rs/releases)
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.0...0.4.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-27 09:07:59 -04:00
Maciej Skrzypkowski
d4e5b4d5e8
Support National string literal with lower case n (#612)
* National string literal with lower case n

It's used by Snowflake

* Corrected DB name

Co-authored-by: Maciej Skrzypkowski <maciej.skrzypkowski@satoricyber.com>
2022-09-27 09:07:13 -04:00
Alex Qyoun-ae
0724ef13a4
Box Query in Cte (#572) 2022-09-27 09:03:58 -04:00
Daniël Heres
39761b0599
Add optional format for explain (#621)
* Add format for explain

* Add comment
2022-09-26 07:22:03 -04:00
Justin Joyce
495ab59aad
Support SHOW FUNCTIONS (#620)
* support SHOW FUNCTIONS

* Update keywords.rs

* Update mod.rs

* Update sqlparser_common.rs

* Fix CI issues
2022-09-26 08:33:53 +02:00
Wei-Ting Kuo
fccae77c5e
support "set time zone to 'some-timezone'" (#617)
* support "set time zone"

* fix clippy

* fix test cases
2022-09-20 09:44:51 -04:00
Andy Grove
48fa79d744
update changelog (#607) 2022-09-08 20:13:11 -06:00
Andy Grove
fd07a17101 (cargo-release) version 0.23.0 2022-09-08 15:15:40 -06:00