Skip to content

Commit 1f42813

Browse files
AbhishekASLKgeorgesittas
authored andcommitted
fix(clickhouse)!: support and, or (#6625)
* support: and, or * update tests
1 parent a05053c commit 1f42813

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

sqlglot/dialects/clickhouse.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,8 @@ class Parser(parser.Parser):
565565
"MEDIAN": lambda self: self._parse_quantile(),
566566
"COLUMNS": lambda self: self._parse_columns(),
567567
"TUPLE": lambda self: exp.Struct.from_arg_list(self._parse_function_args(alias=True)),
568+
"AND": lambda self: exp.and_(*self._parse_function_args(alias=False)),
569+
"OR": lambda self: exp.or_(*self._parse_function_args(alias=False)),
568570
}
569571

570572
FUNCTION_PARSERS.pop("MATCH")

tests/dialects/test_clickhouse.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,10 @@ def test_clickhouse(self):
675675
"SELECT quantilesExactExclusive(0.25, 0.5, 0.75)(x) AS y FROM (SELECT number AS x FROM num)"
676676
)
677677

678+
self.validate_identity("SELECT or(0, 1, -2)", "SELECT 0 OR 1 OR -2")
679+
self.validate_identity("SELECT and(1, 2, 3)", "SELECT 1 AND 2 AND 3")
680+
self.validate_identity("SELECT or(and(3, 0), 5)", "SELECT (3 AND 0) OR 5")
681+
678682
def test_clickhouse_values(self):
679683
ast = self.parse_one("SELECT * FROM VALUES (1, 2, 3)")
680684
self.assertEqual(len(list(ast.find_all(exp.Tuple))), 4)

0 commit comments

Comments
 (0)