From ed488d2455b24ef87c1ab570ea1be4642547a35d Mon Sep 17 00:00:00 2001 From: Jothi Prakash Date: Tue, 3 Sep 2024 21:32:46 +0530 Subject: [PATCH 1/3] Added Json type to the sqlalchemy parser --- src/databricks/sqlalchemy/_types.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/databricks/sqlalchemy/_types.py b/src/databricks/sqlalchemy/_types.py index 5fc14a70..e12841b3 100644 --- a/src/databricks/sqlalchemy/_types.py +++ b/src/databricks/sqlalchemy/_types.py @@ -33,6 +33,7 @@ def process_literal_param_hack(value: Any): @compiles(sqlalchemy.types.Unicode, "databricks") @compiles(sqlalchemy.types.UnicodeText, "databricks") @compiles(sqlalchemy.types.Uuid, "databricks") +@compiles(sqlalchemy.types.Json, "databricks") def compile_string_databricks(type_, compiler, **kw): """ We override the default compilation for Enum(), String(), Text(), and Time() because SQLAlchemy From cf2f4a05737191d0d442ddd8ac761122e2ff225c Mon Sep 17 00:00:00 2001 From: Jothi Prakash Date: Wed, 4 Sep 2024 10:08:31 +0530 Subject: [PATCH 2/3] Added Tests for Json Type --- src/databricks/sqlalchemy/_types.py | 2 +- src/databricks/sqlalchemy/test_local/test_types.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/databricks/sqlalchemy/_types.py b/src/databricks/sqlalchemy/_types.py index e12841b3..a221c7ce 100644 --- a/src/databricks/sqlalchemy/_types.py +++ b/src/databricks/sqlalchemy/_types.py @@ -33,7 +33,7 @@ def process_literal_param_hack(value: Any): @compiles(sqlalchemy.types.Unicode, "databricks") @compiles(sqlalchemy.types.UnicodeText, "databricks") @compiles(sqlalchemy.types.Uuid, "databricks") -@compiles(sqlalchemy.types.Json, "databricks") +@compiles(sqlalchemy.types.JSON, "databricks") def compile_string_databricks(type_, compiler, **kw): """ We override the default compilation for Enum(), String(), Text(), and Time() because SQLAlchemy diff --git a/src/databricks/sqlalchemy/test_local/test_types.py b/src/databricks/sqlalchemy/test_local/test_types.py index b91217ed..54c41275 100644 --- a/src/databricks/sqlalchemy/test_local/test_types.py +++ b/src/databricks/sqlalchemy/test_local/test_types.py @@ -52,6 +52,7 @@ class DatabricksDataType(enum.Enum): sqlalchemy.types.Unicode: DatabricksDataType.STRING, sqlalchemy.types.UnicodeText: DatabricksDataType.STRING, sqlalchemy.types.Uuid: DatabricksDataType.STRING, + sqlalchemy.types.JSON: DatabricksDataType.STRING } From d796304afa6be83a97a7e6f533657362ce5707bd Mon Sep 17 00:00:00 2001 From: Jothi Prakash Date: Wed, 4 Sep 2024 10:19:20 +0530 Subject: [PATCH 3/3] Minor fix --- src/databricks/sqlalchemy/test_local/test_types.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/databricks/sqlalchemy/test_local/test_types.py b/src/databricks/sqlalchemy/test_local/test_types.py index 54c41275..a843d93d 100644 --- a/src/databricks/sqlalchemy/test_local/test_types.py +++ b/src/databricks/sqlalchemy/test_local/test_types.py @@ -52,7 +52,6 @@ class DatabricksDataType(enum.Enum): sqlalchemy.types.Unicode: DatabricksDataType.STRING, sqlalchemy.types.UnicodeText: DatabricksDataType.STRING, sqlalchemy.types.Uuid: DatabricksDataType.STRING, - sqlalchemy.types.JSON: DatabricksDataType.STRING } @@ -129,6 +128,7 @@ def test_numeric_renders_as_decimal_with_precision_and_scale(self): sqlalchemy.types.INT: DatabricksDataType.INT, sqlalchemy.types.SMALLINT: DatabricksDataType.SMALLINT, sqlalchemy.types.TIMESTAMP: DatabricksDataType.TIMESTAMP, + sqlalchemy.types.JSON: DatabricksDataType.STRING, TINYINT: DatabricksDataType.TINYINT, TIMESTAMP: DatabricksDataType.TIMESTAMP, TIMESTAMP_NTZ: DatabricksDataType.TIMESTAMP_NTZ,