summaryrefslogtreecommitdiffstats
path: root/tests/test_build.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-05-03 09:12:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-05-03 09:12:24 +0000
commit98d5537435b2951b36c45f1fda667fa27c165794 (patch)
treed26b4dfa6cf91847100fe10a94a04dcc2ad36a86 /tests/test_build.py
parentAdding upstream version 11.5.2. (diff)
downloadsqlglot-98d5537435b2951b36c45f1fda667fa27c165794.tar.xz
sqlglot-98d5537435b2951b36c45f1fda667fa27c165794.zip
Adding upstream version 11.7.1.upstream/11.7.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/test_build.py')
-rw-r--r--tests/test_build.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test_build.py b/tests/test_build.py
index 43707b0..c4b97ce 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -18,7 +18,59 @@ from sqlglot import (
class TestBuild(unittest.TestCase):
def test_build(self):
+ x = condition("x")
+
for expression, sql, *dialect in [
+ (lambda: x + 1, "x + 1"),
+ (lambda: 1 + x, "1 + x"),
+ (lambda: x - 1, "x - 1"),
+ (lambda: 1 - x, "1 - x"),
+ (lambda: x * 1, "x * 1"),
+ (lambda: 1 * x, "1 * x"),
+ (lambda: x / 1, "x / 1"),
+ (lambda: 1 / x, "1 / x"),
+ (lambda: x // 1, "CAST(x / 1 AS INT)"),
+ (lambda: 1 // x, "CAST(1 / x AS INT)"),
+ (lambda: x % 1, "x % 1"),
+ (lambda: 1 % x, "1 % x"),
+ (lambda: x**1, "POWER(x, 1)"),
+ (lambda: 1**x, "POWER(1, x)"),
+ (lambda: x & 1, "x AND 1"),
+ (lambda: 1 & x, "1 AND x"),
+ (lambda: x | 1, "x OR 1"),
+ (lambda: 1 | x, "1 OR x"),
+ (lambda: x < 1, "x < 1"),
+ (lambda: 1 < x, "x > 1"),
+ (lambda: x <= 1, "x <= 1"),
+ (lambda: 1 <= x, "x >= 1"),
+ (lambda: x > 1, "x > 1"),
+ (lambda: 1 > x, "x < 1"),
+ (lambda: x >= 1, "x >= 1"),
+ (lambda: 1 >= x, "x <= 1"),
+ (lambda: x.eq(1), "x = 1"),
+ (lambda: x.neq(1), "x <> 1"),
+ (lambda: x.isin(1, "2"), "x IN (1, '2')"),
+ (lambda: x.isin(query="select 1"), "x IN (SELECT 1)"),
+ (lambda: 1 + x + 2 + 3, "1 + x + 2 + 3"),
+ (lambda: 1 + x * 2 + 3, "1 + (x * 2) + 3"),
+ (lambda: x * 1 * 2 + 3, "(x * 1 * 2) + 3"),
+ (lambda: 1 + (x * 2) / 3, "1 + ((x * 2) / 3)"),
+ (lambda: x & "y", "x AND 'y'"),
+ (lambda: x | "y", "x OR 'y'"),
+ (lambda: -x, "-x"),
+ (lambda: ~x, "NOT x"),
+ (lambda: x[1], "x[1]"),
+ (lambda: x[1, 2], "x[1, 2]"),
+ (lambda: x["y"] + 1, "x['y'] + 1"),
+ (lambda: x.like("y"), "x LIKE 'y'"),
+ (lambda: x.ilike("y"), "x ILIKE 'y'"),
+ (lambda: x.rlike("y"), "REGEXP_LIKE(x, 'y')"),
+ (
+ lambda: exp.Case().when("x = 1", "x").else_("bar"),
+ "CASE WHEN x = 1 THEN x ELSE bar END",
+ ),
+ (lambda: exp.func("COALESCE", "x", 1), "COALESCE(x, 1)"),
+ (lambda: select("x"), "SELECT x"),
(lambda: select("x"), "SELECT x"),
(lambda: select("x", "y"), "SELECT x, y"),
(lambda: select("x").from_("tbl"), "SELECT x FROM tbl"),