Skip to content

Commit

Permalink
Fix wrongly string format in UnaryExpr (#123)
Browse files Browse the repository at this point in the history
  • Loading branch information
git-hulk authored Feb 28, 2025
1 parent 036e3cf commit 5dc6713
Show file tree
Hide file tree
Showing 5 changed files with 653 additions and 3 deletions.
2 changes: 1 addition & 1 deletion parser/ast.go
Original file line number Diff line number Diff line change
Expand Up @@ -6645,7 +6645,7 @@ func (n *UnaryExpr) End() Pos {
}

func (n *UnaryExpr) String() string {
return "-" + n.Expr.String()
return string(n.Kind) + " " + n.Expr.String()
}

func (n *UnaryExpr) Accept(visitor ASTVisitor) error {
Expand Down
4 changes: 2 additions & 2 deletions parser/parser_column.go
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ func (p *Parser) parseColumnExtractExpr(pos Pos) (*ExtractExpr, error) {
}

func (p *Parser) parseUnaryExpr(pos Pos) (Expr, error) {
kind := p.last()
op := p.last()
switch {
case p.matchTokenKind(TokenKindPlus),
p.matchTokenKind(TokenKindMinus),
Expand All @@ -316,7 +316,7 @@ func (p *Parser) parseUnaryExpr(pos Pos) (Expr, error) {

return &UnaryExpr{
UnaryPos: pos,
Kind: kind.Kind,
Kind: TokenKind(op.ToString()),
Expr: expr,
}, nil

Expand Down
19 changes: 19 additions & 0 deletions parser/testdata/ddl/create_mv_with_not_op.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
CREATE MATERIALIZED VIEW infra_bm.view_name
ON CLUSTER 'default_cluster' TO infra_bm.table_name
(
`f1` DateTime64(3),
`f2` String,
`f3` String,
`f4` String,
`f5` String,
`f6` Int64
) AS
SELECT f1,
f2,
visitParamExtractString(properties, 'f3') AS f3,
visitParamExtractString(properties, 'f4') AS f4,
visitParamExtractString(properties, 'f5') AS f5,
visitParamExtractInt(properties, 'f6') AS f6
FROM infra_bm.table_name1
WHERE infra_bm.table_name1.event = 'test-event' AND
NOT isZeroOrNull(f2) AND f6-2 > 0
23 changes: 23 additions & 0 deletions parser/testdata/ddl/format/create_mv_with_not_op.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
-- Origin SQL:
CREATE MATERIALIZED VIEW infra_bm.view_name
ON CLUSTER 'default_cluster' TO infra_bm.table_name
(
`f1` DateTime64(3),
`f2` String,
`f3` String,
`f4` String,
`f5` String,
`f6` Int64
) AS
SELECT f1,
f2,
visitParamExtractString(properties, 'f3') AS f3,
visitParamExtractString(properties, 'f4') AS f4,
visitParamExtractString(properties, 'f5') AS f5,
visitParamExtractInt(properties, 'f6') AS f6
FROM infra_bm.table_name1
WHERE infra_bm.table_name1.event = 'test-event' AND
NOT isZeroOrNull(f2) AND f6-2 > 0

-- Format SQL:
CREATE MATERIALIZED VIEW infra_bm.view_name ON CLUSTER 'default_cluster' TO infra_bm.table_name (`f1` DateTime64(3), `f2` String, `f3` String, `f4` String, `f5` String, `f6` Int64) AS SELECT f1, f2, visitParamExtractString(properties, 'f3') AS f3, visitParamExtractString(properties, 'f4') AS f4, visitParamExtractString(properties, 'f5') AS f5, visitParamExtractInt(properties, 'f6') AS f6 FROM infra_bm.table_name1 WHERE infra_bm.table_name1.event = 'test-event' AND NOT isZeroOrNull(f2) AND f6 - 2 > 0;
Loading

0 comments on commit 5dc6713

Please sign in to comment.