MCPcopy Create free account
hub / github.com/AfterShip/clickhouse-sql-parser / parseUpdateAssignment

Method parseUpdateAssignment

parser/parser_alter.go:934–957  ·  view source on GitHub ↗

Parse column = expression assignment

(pos Pos)

Source from the content-addressed store, hash-verified

932
933// Parse column = expression assignment
934func (p *Parser) parseUpdateAssignment(pos Pos) (*UpdateAssignment, error) {
935 column, err := p.ParseNestedIdentifier(p.Pos())
936 if err != nil {
937 return nil, err
938 }
939
940 if err := p.expectTokenKind(TokenKindSingleEQ); err != nil {
941 return nil, err
942 }
943
944 // Why don't we use parseExpr here? Because `ALTER TABLE UPDATE` syntax allows to
945 // use `IN PARTITION` keywords after assignments. So we need to limit the precedence
946 // to avoid parsing `IN PARTITION` as part of the expression.
947 expr, err := p.parseSubExpr(p.Pos(), precedenceIn)
948 if err != nil {
949 return nil, err
950 }
951
952 return &UpdateAssignment{
953 AssignmentPos: pos,
954 Column: column,
955 Expr: expr,
956 }, nil
957}

Callers 1

parseAlterTableUpdateMethod · 0.95

Calls 4

ParseNestedIdentifierMethod · 0.95
PosMethod · 0.95
expectTokenKindMethod · 0.95
parseSubExprMethod · 0.95

Tested by

no test coverage detected