Skip to content
Snippets Groups Projects
Commit 73b84418 authored by Cam Saul's avatar Cam Saul
Browse files

fix timezone ish

parent dbb8a542
Branches
Tags
No related merge requests found
......@@ -14,7 +14,7 @@
;; ## CONFIG
(defsetting report-timezone "Connection timezone to use when executing queries. Defaults to system timezone.")
(defsetting report-timezone "Connection timezone to use when executing queries. Defaults to system timezone.")
;; ## Constants
......
......@@ -32,11 +32,13 @@
;; If timezone is specified in the Query and the driver supports setting the timezone
;; then execute SQL to set it
(when-let [timezone (or (-> query :native :timezone)
(-> database :details :timezone)
(driver/report-timezone))]
(let [driver (driver/engine->driver (:engine database))]
(when (supports? driver :set-timezone)
(log/debug "Setting timezone to:" timezone)
(jdbc/db-do-prepared conn (i/timezone->set-timezone-sql driver timezone)))))
(when (seq timezone)
(let [driver (driver/engine->driver (:engine database))]
(when (supports? driver :set-timezone)
(log/debug "Setting timezone to:" timezone)
(jdbc/db-do-prepared conn (i/timezone->set-timezone-sql driver timezone))))))
(jdbc/query conn sql :as-arrays? true))]
;; TODO - Why don't we just use annotate?
{:rows rows
......
......@@ -6,6 +6,7 @@
[clojure.walk :as walk]
[korma.core :refer :all, :exclude [update]]
[metabase.config :as config]
[metabase.driver :as driver]
(metabase.driver [interface :refer [supports?]]
[query-processor :as qp])
(metabase.driver.generic-sql [interface :as i]
......@@ -33,10 +34,12 @@
(let [korma-select-form `(select ~'entity ~@(->> (map apply-form (:query query))
(filter identity)
(mapcat #(if (vector? %) % [%]))))
set-timezone-sql (when-let [timezone (:timezone (:details database))]
(let [driver (:driver *query*)]
(when (supports? driver :set-timezone)
`(exec-raw ~(i/timezone->set-timezone-sql driver timezone)))))
set-timezone-sql (when-let [timezone (or (-> database :details :timezone)
(driver/report-timezone))]
(when (seq timezone)
(let [driver (:driver *query*)]
(when (supports? driver :set-timezone)
`(exec-raw ~(i/timezone->set-timezone-sql driver timezone))))))
korma-form `(let [~'entity (korma-entity ~database ~source-table)]
~(if set-timezone-sql `(korma.db/with-db (:db ~'entity)
(korma.db/transaction
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment