diff --git a/sqlglot/dialects/hive.py b/sqlglot/dialects/hive.py index 8f3d781187..2bd1a95e2b 100644 --- a/sqlglot/dialects/hive.py +++ b/sqlglot/dialects/hive.py @@ -557,6 +557,7 @@ class Generator(generator.Generator): exp.GenerateDateArray: sequence_sql, exp.If: if_sql(), exp.ILike: no_ilike_sql, + exp.IntDiv: lambda self, e: self.binary(e, "DIV"), exp.IsNan: rename_func("ISNAN"), exp.JSONExtract: lambda self, e: self.func("GET_JSON_OBJECT", e.this, e.expression), exp.JSONExtractScalar: lambda self, e: self.func( diff --git a/tests/dialects/test_hive.py b/tests/dialects/test_hive.py index c79209134b..b6dbf8b4bb 100644 --- a/tests/dialects/test_hive.py +++ b/tests/dialects/test_hive.py @@ -732,12 +732,20 @@ def test_hive(self): }, ) self.validate_all( - "x div y", + "x DIV y", + read={ + "databricks": "x DIV y", + "duckdb": "x // y", + "hive": "x DIV y", + "spark2": "x DIV y", + "spark": "x DIV y", + }, write={ "duckdb": "x // y", + "databricks": "x DIV y", "presto": "CAST(CAST(x AS DOUBLE) / y AS INTEGER)", - "hive": "CAST(x / y AS INT)", - "spark": "CAST(x / y AS INT)", + "spark2": "x DIV y", + "spark": "x DIV y", }, ) self.validate_all(