diff --git a/modules/drivers/snowflake/deps.edn b/modules/drivers/snowflake/deps.edn index 08c54c71b57e7491150fc132a50ebc5b2b06bc38..8ad82597fd800ec41a361d9eaebfa4504f70a7a2 100644 --- a/modules/drivers/snowflake/deps.edn +++ b/modules/drivers/snowflake/deps.edn @@ -2,4 +2,4 @@ ["src" "resources"] :deps - {net.snowflake/snowflake-jdbc {:mvn/version "3.13.14"}}} + {net.snowflake/snowflake-jdbc {:mvn/version "3.13.21"}}} diff --git a/modules/drivers/snowflake/src/metabase/driver/snowflake.clj b/modules/drivers/snowflake/src/metabase/driver/snowflake.clj index 75c2d1d67e15c76dafc0658550d449908d7b3b43..5b533ce65906992db16c067438c862f764ab421d 100644 --- a/modules/drivers/snowflake/src/metabase/driver/snowflake.clj +++ b/modules/drivers/snowflake/src/metabase/driver/snowflake.clj @@ -335,6 +335,15 @@ ;; Like Vertica, Snowflake doesn't seem to be able to return a LocalTime/OffsetTime like everyone else, but it can ;; return a String that we can parse + +(defmethod sql-jdbc.execute/read-column-thunk [:snowflake Types/TIMESTAMP_WITH_TIMEZONE] + [_ ^ResultSet rs _ ^Integer i] + (fn [] + (when-let [s (.getString rs i)] + (let [t (u.date/parse s)] + (log/tracef "(.getString rs %d) [TIMESTAMP_WITH_TIMEZONE] -> %s -> %s" i (pr-str s) (pr-str t)) + t)))) + (defmethod sql-jdbc.execute/read-column-thunk [:snowflake Types/TIME] [_ ^ResultSet rs _ ^Integer i] (fn []