diff --git a/src/metabase/driver/util.clj b/src/metabase/driver/util.clj index 92c7bf8d5c8b37e7329a6e446e44abbd2e9c84cd..6532d32bdc443996a0fb38c277d1d2aeee958be2 100644 --- a/src/metabase/driver/util.clj +++ b/src/metabase/driver/util.clj @@ -19,7 +19,8 @@ [metabase.util :as u] [metabase.util.i18n :refer [deferred-tru trs]] [metabase.util.log :as log] - [metabase.util.malli :as mu]) + [metabase.util.malli :as mu] + [metabase.util.snake-hating-map :refer [snake-hating-map?]]) (:import (java.io ByteArrayInputStream) (java.security KeyFactory KeyStore PrivateKey) @@ -250,8 +251,12 @@ (def ^:private memoized-supports?* (memoize/memo (-> supports?* - (vary-meta assoc ::memoize/args-fn (fn [[driver feature database]] - [driver feature (mdb/unique-identifier) (:id database) (:updated_at database)]))))) + (vary-meta assoc ::memoize/args-fn + (fn [[driver feature database]] + [driver feature (mdb/unique-identifier) (:id database) + (if (snake-hating-map? database) + (:updated-at database) + (:updated_at database))]))))) (defn supports? "A defensive wrapper around [[database-supports?]]. It adds logging, caching, and error handling to avoid crashing the app diff --git a/src/metabase/util/snake_hating_map.clj b/src/metabase/util/snake_hating_map.clj index a92014128c80d197992c53f0e6e42069955b6e95..1db5e5f314b5cea0a0adf8f2efa05ebfb7df55cf 100644 --- a/src/metabase/util/snake_hating_map.clj +++ b/src/metabase/util/snake_hating_map.clj @@ -77,3 +77,8 @@ ->SnakeHatingMap)) ([k v & more] (snake-hating-map (into {k v} (partition-all 2) more)))) + +(defn snake-hating-map? + "Return true if `m` is a SnakeHatingMap." + [m] + (instance? SnakeHatingMap m))