Skip to content

Commit

Permalink
fix(trino|presto): adding cast support for "hyperloglog" column type (#…
Browse files Browse the repository at this point in the history
…3405)

* adding cast support for hyperloglog columns

* pushing missed files

* removing from token and data types.
Adding type mapping

* new line

* adding mapper in Keywords:
hyperloglog->token HLLSKETCH
  • Loading branch information
uncledata committed May 3, 2024
1 parent 534fb80 commit 24e1115
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sqlglot/dialects/presto.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ class Tokenizer(tokens.Tokenizer):
"IPADDRESS": TokenType.IPADDRESS,
"IPPREFIX": TokenType.IPPREFIX,
"TDIGEST": TokenType.TDIGEST,
"HYPERLOGLOG": TokenType.HLLSKETCH,
}

KEYWORDS.pop("QUALIFY")
Expand Down Expand Up @@ -317,6 +318,7 @@ class Generator(generator.Generator):
exp.DataType.Type.STRUCT: "ROW",
exp.DataType.Type.DATETIME: "TIMESTAMP",
exp.DataType.Type.DATETIME64: "TIMESTAMP",
exp.DataType.Type.HLLSKETCH: "HYPERLOGLOG",
}

TRANSFORMS = {
Expand Down
1 change: 1 addition & 0 deletions tests/dialects/test_presto.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def test_cast(self):
self.validate_identity("CAST(x AS IPADDRESS)")
self.validate_identity("CAST(x AS IPPREFIX)")
self.validate_identity("CAST(TDIGEST_AGG(1) AS TDIGEST)")
self.validate_identity("CAST(x AS HYPERLOGLOG)")

self.validate_all(
"CAST(x AS INTERVAL YEAR TO MONTH)",
Expand Down

0 comments on commit 24e1115

Please sign in to comment.