36 lines
1.2 KiB
Python
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}'",
|
|
},
|
|
)
|