Merging upstream version 25.26.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
9138e4b92a
commit
829a709061
117 changed files with 49296 additions and 47316 deletions
|
@ -2,6 +2,7 @@ from datetime import date
|
|||
from sqlglot import exp, parse_one
|
||||
from sqlglot.dialects import ClickHouse
|
||||
from sqlglot.expressions import convert
|
||||
from sqlglot.optimizer import traverse_scope
|
||||
from tests.dialects.test_dialect import Validator
|
||||
from sqlglot.errors import ErrorLevel
|
||||
|
||||
|
@ -28,6 +29,7 @@ class TestClickhouse(Validator):
|
|||
self.assertEqual(expr.sql(dialect="clickhouse"), "COUNT(x)")
|
||||
self.assertIsNone(expr._meta)
|
||||
|
||||
self.validate_identity("CAST(1 AS Bool)")
|
||||
self.validate_identity("SELECT toString(CHAR(104.1, 101, 108.9, 108.9, 111, 32))")
|
||||
self.validate_identity("@macro").assert_is(exp.Parameter).this.assert_is(exp.Var)
|
||||
self.validate_identity("SELECT toFloat(like)")
|
||||
|
@ -420,11 +422,6 @@ class TestClickhouse(Validator):
|
|||
" GROUP BY loyalty ORDER BY loyalty ASC"
|
||||
},
|
||||
)
|
||||
self.validate_identity("SELECT s, arr FROM arrays_test ARRAY JOIN arr")
|
||||
self.validate_identity("SELECT s, arr, a FROM arrays_test LEFT ARRAY JOIN arr AS a")
|
||||
self.validate_identity(
|
||||
"SELECT s, arr_external FROM arrays_test ARRAY JOIN [1, 2, 3] AS arr_external"
|
||||
)
|
||||
self.validate_all(
|
||||
"SELECT quantile(0.5)(a)",
|
||||
read={"duckdb": "SELECT quantile(a, 0.5)"},
|
||||
|
@ -1100,3 +1097,36 @@ LIFETIME(MIN 0 MAX 0)""",
|
|||
def test_grant(self):
|
||||
self.validate_identity("GRANT SELECT(x, y) ON db.table TO john WITH GRANT OPTION")
|
||||
self.validate_identity("GRANT INSERT(x, y) ON db.table TO john")
|
||||
|
||||
def test_array_join(self):
|
||||
expr = self.validate_identity(
|
||||
"SELECT * FROM arrays_test ARRAY JOIN arr1, arrays_test.arr2 AS foo, ['a', 'b', 'c'] AS elem"
|
||||
)
|
||||
joins = expr.args["joins"]
|
||||
self.assertEqual(len(joins), 1)
|
||||
|
||||
join = joins[0]
|
||||
self.assertEqual(join.kind, "ARRAY")
|
||||
self.assertIsInstance(join.this, exp.Column)
|
||||
|
||||
self.assertEqual(len(join.expressions), 2)
|
||||
self.assertIsInstance(join.expressions[0], exp.Alias)
|
||||
self.assertIsInstance(join.expressions[0].this, exp.Column)
|
||||
|
||||
self.assertIsInstance(join.expressions[1], exp.Alias)
|
||||
self.assertIsInstance(join.expressions[1].this, exp.Array)
|
||||
|
||||
self.validate_identity("SELECT s, arr FROM arrays_test ARRAY JOIN arr")
|
||||
self.validate_identity("SELECT s, arr, a FROM arrays_test LEFT ARRAY JOIN arr AS a")
|
||||
self.validate_identity(
|
||||
"SELECT s, arr_external FROM arrays_test ARRAY JOIN [1, 2, 3] AS arr_external"
|
||||
)
|
||||
self.validate_identity(
|
||||
"SELECT * FROM arrays_test ARRAY JOIN [1, 2, 3] AS arr_external1, ['a', 'b', 'c'] AS arr_external2, splitByString(',', 'asd,qwerty,zxc') AS arr_external3"
|
||||
)
|
||||
|
||||
def test_traverse_scope(self):
|
||||
sql = "SELECT * FROM t FINAL"
|
||||
scopes = traverse_scope(parse_one(sql, dialect=self.dialect))
|
||||
self.assertEqual(len(scopes), 1)
|
||||
self.assertEqual(set(scopes[0].sources), {"t"})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue