GeezerVison is showing github.com — feat: add support for snowflake merge statements by davidjgoss · Pull Request #1887 · JSQLParser/JSqlParser
Conversation
davidjgoss
commented
Nov 8, 2023
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
This PR changes the parser to account for some Snowflake-specific aspects of the MERGE statement, namely:
- Tolerance for the
ON condition not being wrapped in parentheses
- Support for an optional
AND predicate after the MATCHED/NOT MATCHED part
See Snowflake's docs on MERGE: https://docs.snowflake.com/en/sql-reference/sql/merge - the new tests are derived from that doc.
With the ON logic, I did the simplest parser change which for existing cases (i.e. with parens), will now result in the onCondition being a Parenthesis containing the expression, where before it would have just been the expression (e.g. EqualsTo or whatever) itself. This feels innocuous to me, but if we consider this a breaking change and would prefer to avoid it, I can refactor to ensure full backwards compatibility, perhaps by adding a choice point in the parser and retaining the presence/absence of original parens as a boolean.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Adds support for the ON clause of a MERGE statement to be without
enclosing parens, as is the convention in Snowflake.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
This depends fully on @wumpz who is under serious time constraints.
We could aim for an EoY release though.
|
davidjgoss reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.