parser: Adds new grammar to support user specified PK in CTAS query. #38884
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.
This change adds grammar rules to support users specifying the
primary key columns in a
CREATE TABLE...AS
query. It allows for both column level qualification, as well as constraint style declaration of PKs.eg:
CREATE TABLE a (id PRIMARY KEY) AS SELECT * FROM b
CREATE TABLE a (id, PRIMARY KEY(id)) AS SELECT * FROM b
CREATE TABLE a (id, idtwo, PRIMARY KEY(id, idtwo)) AS SELECT * FROM b
Due to
CREATE TABLE
andCREATE TABLE ... AS
having an identical syntax for declaring PKs, the logic resolving qualifiers and/or constraints had to be pushed to after acolumn_name
without a type is encountered. This avoids reduce/reduce conflicts, but introduces a restriction that aPRIMARY KEY
constraint must be preceded by at least one column name.Release note: sql change