diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-11 12:13:38 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-11 12:13:38 +0000 |
commit | e894f65cf8a2e3c88439e1b06d8542b969e2bc3f (patch) | |
tree | db0e8e728b297f06d7ad5a6034e8110bae97297e /tests/dialects/test_athena.py | |
parent | Releasing debian version 25.18.0-1. (diff) | |
download | sqlglot-e894f65cf8a2e3c88439e1b06d8542b969e2bc3f.tar.xz sqlglot-e894f65cf8a2e3c88439e1b06d8542b969e2bc3f.zip |
Merging upstream version 25.20.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/dialects/test_athena.py')
-rw-r--r-- | tests/dialects/test_athena.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/dialects/test_athena.py b/tests/dialects/test_athena.py index 5522976..6ec870b 100644 --- a/tests/dialects/test_athena.py +++ b/tests/dialects/test_athena.py @@ -23,3 +23,49 @@ class TestAthena(Validator): some_function(1)""", check_command_warning=True, ) + + def test_ddl_quoting(self): + self.validate_identity("CREATE SCHEMA `foo`") + self.validate_identity("CREATE SCHEMA foo") + self.validate_identity("CREATE SCHEMA foo", write_sql="CREATE SCHEMA `foo`", identify=True) + + self.validate_identity("CREATE EXTERNAL TABLE `foo` (`id` INTEGER) LOCATION 's3://foo/'") + self.validate_identity("CREATE EXTERNAL TABLE foo (id INTEGER) LOCATION 's3://foo/'") + self.validate_identity( + "CREATE EXTERNAL TABLE foo (id INTEGER) LOCATION 's3://foo/'", + write_sql="CREATE EXTERNAL TABLE `foo` (`id` INTEGER) LOCATION 's3://foo/'", + identify=True, + ) + + self.validate_identity("DROP TABLE `foo`") + self.validate_identity("DROP TABLE foo") + self.validate_identity("DROP TABLE foo", write_sql="DROP TABLE `foo`", identify=True) + + self.validate_identity('CREATE VIEW "foo" AS SELECT "id" FROM "tbl"') + self.validate_identity("CREATE VIEW foo AS SELECT id FROM tbl") + self.validate_identity( + "CREATE VIEW foo AS SELECT id FROM tbl", + write_sql='CREATE VIEW "foo" AS SELECT "id" FROM "tbl"', + identify=True, + ) + + # As a side effect of being able to parse both quote types, we can also fix the quoting on incorrectly quoted source queries + self.validate_identity('CREATE SCHEMA "foo"', write_sql="CREATE SCHEMA `foo`") + self.validate_identity( + 'CREATE EXTERNAL TABLE "foo" ("id" INTEGER) LOCATION \'s3://foo/\'', + write_sql="CREATE EXTERNAL TABLE `foo` (`id` INTEGER) LOCATION 's3://foo/'", + ) + self.validate_identity('DROP TABLE "foo"', write_sql="DROP TABLE `foo`") + self.validate_identity( + 'CREATE VIEW `foo` AS SELECT "id" FROM `tbl`', + write_sql='CREATE VIEW "foo" AS SELECT "id" FROM "tbl"', + ) + + def test_dml_quoting(self): + self.validate_identity("SELECT a AS foo FROM tbl") + self.validate_identity('SELECT "a" AS "foo" FROM "tbl"') + self.validate_identity( + 'SELECT `a` AS `foo` FROM "tbl"', + write_sql='SELECT "a" AS "foo" FROM "tbl"', + identify=True, + ) |