@@ -44,7 +44,7 @@ func (p *Parser) precedence(tok token.Token) int {
4444 return CONCAT_PREC
4545 case token .PLUS , token .MINUS :
4646 return ADD_PREC
47- case token .ASTERISK , token .SLASH , token .PERCENT :
47+ case token .ASTERISK , token .SLASH , token .PERCENT , token . DIV , token . MOD :
4848 return MUL_PREC
4949 case token .LPAREN , token .LBRACKET :
5050 return CALL
@@ -173,7 +173,7 @@ func (p *Parser) parseInfixExpression(left ast.Expression) ast.Expression {
173173 switch p .current .Token {
174174 case token .PLUS , token .MINUS , token .ASTERISK , token .SLASH , token .PERCENT ,
175175 token .EQ , token .NEQ , token .LT , token .GT , token .LTE , token .GTE ,
176- token .AND , token .OR , token .CONCAT :
176+ token .AND , token .OR , token .CONCAT , token . DIV , token . MOD :
177177 return p .parseBinaryExpression (left )
178178 case token .NULL_SAFE_EQ :
179179 return p .parseBinaryExpression (left )
@@ -1104,8 +1104,9 @@ func (p *Parser) parseDotAccess(left ast.Expression) ast.Expression {
11041104func (p * Parser ) parseAlias (left ast.Expression ) ast.Expression {
11051105 p .nextToken () // skip AS
11061106
1107+ // Alias can be an identifier or a keyword (ClickHouse allows keywords as aliases)
11071108 alias := ""
1108- if p .currentIs (token .IDENT ) {
1109+ if p .currentIs (token .IDENT ) || p . current . Token . IsKeyword () {
11091110 alias = p .current .Value
11101111 p .nextToken ()
11111112 }
0 commit comments