1
0
Fork 0
sqlglot/tests/dialects/test_dune.py
Daniel Baumann 4c394df415
Adding upstream version 26.8.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-03-04 07:54:33 +01:00

36 lines
1.2 KiB
Python

from sqlglot import exp
from tests.dialects.test_dialect import Validator
class TestDune(Validator):
dialect = "dune"
def test_dune(self):
self.validate_identity("CAST(x AS INT256)")
self.validate_identity("CAST(x AS UINT256)")
for hex_literal in (
"deadbeef",
"deadbeefdead",
"deadbeefdeadbeef",
"deadbeefdeadbeefde",
"deadbeefdeadbeefdead",
"deadbeefdeadbeefdeadbeef",
"deadbeefdeadbeefdeadbeefdeadbeef",
):
with self.subTest(f"Transpiling hex literal {hex_literal}"):
self.parse_one(f"0x{hex_literal}").assert_is(exp.HexString)
self.validate_all(
f"SELECT 0x{hex_literal}",
read={
"dune": f"SELECT X'{hex_literal}'",
"postgres": f"SELECT x'{hex_literal}'",
"trino": f"SELECT X'{hex_literal}'",
},
write={
"dune": f"SELECT 0x{hex_literal}",
"postgres": f"SELECT x'{hex_literal}'",
"trino": f"SELECT x'{hex_literal}'",
},
)