postgres supports a bunch more json operators. See
https://www.postgresql.org/docs/15/functions-json.html
Skipping operators starting with a question mark for now, since those
are hard to distinguish from placeholders without more context.
Postgres supports more generalized locking clauses, for example:
FOR UPDATE OF <table_name> SKIP LOCKED
also, multiple locking clauses. Generalize the parser to support these.
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* support basic pg CREATE FUNCTION
Signed-off-by: Runji Wang <wangrunji0408@163.com>
* support function argument
Signed-off-by: Runji Wang <wangrunji0408@163.com>
* fix display and use verify in test
Signed-off-by: Runji Wang <wangrunji0408@163.com>
* support OR REPLACE
Signed-off-by: Runji Wang <wangrunji0408@163.com>
* fix compile error in bigdecimal
Signed-off-by: Runji Wang <wangrunji0408@163.com>
* unify all `CreateFunctionBody` to a structure
Signed-off-by: Runji Wang <wangrunji0408@163.com>
Signed-off-by: Runji Wang <wangrunji0408@163.com>
* first commit
* fix style and edit test
* fix test?
* remove unnecessary logic
* refactor implementation
* codestyle
* add schema support
* codestyle and lint
* Apply suggestions from code review
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* PartialOrd and Ord
* clean up parser logic
* codestyle and lint
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* Adapt VALUES to MySQL dialect
* Update src/ast/query.rs
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* remove *requirement* for ROW
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* add set time zone sometimezone as a exception while parsing keyword::set
* remove redundant parentheses
* add Statement::SetTimeZone
* delete useless comments
* Apply UPDATE SET FROM statement for some dialects
* Add GenericDialect to support
* Test SnowflakeDialect
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* Update SetOperation field all to op_option
* Implement parse_set_operator_option
cargo fmt
Fix parse_set_operator_option after next_token
* Add test for parsing union distinct
* Rename to SetQualifier and fix fmt space
* Add None to SetQualifier
* Update parse method
* Rename to SetQuantifier
* Rename parse_set_operator_option parse_set_operator
* Fix test to parse union, except, intersect
* Add some comments to SetQuantifier
* Fix comment