diff options
Diffstat (limited to 'sqlglot/dialects/hive.py')
-rw-r--r-- | sqlglot/dialects/hive.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sqlglot/dialects/hive.py b/sqlglot/dialects/hive.py index 8b17c06..bec27d3 100644 --- a/sqlglot/dialects/hive.py +++ b/sqlglot/dialects/hive.py @@ -9,6 +9,7 @@ from sqlglot.dialects.dialect import ( create_with_partitions_sql, format_time_lambda, if_sql, + is_parse_json, left_to_substring_sql, locate_to_strposition, max_or_greatest, @@ -89,7 +90,7 @@ def _date_diff_sql(self: Hive.Generator, expression: exp.DateDiff) -> str: def _json_format_sql(self: Hive.Generator, expression: exp.JSONFormat) -> str: this = expression.this - if isinstance(this, exp.Cast) and this.is_type("json") and this.this.is_string: + if is_parse_json(this) and this.this.is_string: # Since FROM_JSON requires a nested type, we always wrap the json string with # an array to ensure that "naked" strings like "'a'" will be handled correctly wrapped_json = exp.Literal.string(f"[{this.this.name}]") @@ -150,6 +151,7 @@ def _to_date_sql(self: Hive.Generator, expression: exp.TsOrDsToDate) -> str: class Hive(Dialect): ALIAS_POST_TABLESAMPLE = True IDENTIFIERS_CAN_START_WITH_DIGIT = True + SUPPORTS_USER_DEFINED_TYPES = False # https://spark.apache.org/docs/latest/sql-ref-identifier.html#description RESOLVES_IDENTIFIERS_AS_UPPERCASE = None @@ -222,7 +224,6 @@ class Hive(Dialect): class Parser(parser.Parser): LOG_DEFAULTS_TO_LN = True STRICT_CAST = False - SUPPORTS_USER_DEFINED_TYPES = False FUNCTIONS = { **parser.Parser.FUNCTIONS, |