Add IN PARTITION clause support for ALTER TABLE UPDATE #205
+322
−5
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.
Implements the
IN PARTITIONclause forALTER TABLE ... UPDATEstatements per ClickHouse SQL reference.Changes
Parser
parseUpdateAssignment()to useparseSubExpr(pos, precedenceIn)instead ofparseExpr(pos), preventing the expression parser from consuming theINkeyword as part of a binary operationparseAlterTableUpdate()to parse optionalIN PARTITIONclause before WHERE clause (not after)AST
InPartition *PartitionClausefield toAlterTableUpdatestructString()method to outputIN PARTITIONbefore WHERE clauseAccept()andWalk()methods to handle the new fieldTests
Syntax
Note: The
IN PARTITIONclause appears between assignments and WHERE, not after WHERE.The implementation preserves backward compatibility—standard expressions in assignments and WHERE clauses continue to work correctly.
Known Limitation
The
IDkeyword inPARTITION IDsyntax is not preserved in formatted output (e.g.,IN PARTITION ID '202401'formats asIN PARTITION '202401'). This is consistent with existing behavior in other ALTER commands due toPartitionClause.String()implementation.IN PARTITIONexpression for ALTER TABLE ... UPDATE #204Original prompt
IN PARTITIONexpression for ALTER TABLE ... UPDATE #204💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.