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

generic sql driver implementation of Field metadata

parent 8aa17726
No related branches found
No related tags found
No related merge requests found
(ns metabase.driver.generic-sql.metadata)
;; TODO - These implementations are wack. We should just use korma to do this instead of raw SQL
(defn field-count
[{:keys [db table name] :as field}]
(-> ((:native-query @db)
(format "SELECT COUNT(\"%s\".\"%s\") FROM \"%s\""
(:name (table))
name
(:name (table))))
first
:count))
(defn field-distinct-count
[{:keys [db table name] :as field}]
(-> ((:native-query @db)
(format "SELECT COUNT(DISTINCT \"%s\".\"%s\") FROM \"%s\""
(:name (table))
name
(:name (table))))
first
:count))
(ns metabase.driver.h2.metadata
(:require [metabase.driver.generic-sql.metadata :as generic]
[metabase.driver.metadata :as driver]))
(defmethod driver/field-count :h2 [field]
(generic/field-count field))
(defmethod driver/field-distinct-count :h2 [field]
(generic/field-distinct-count field))
(ns metabase.driver.postgres.metadata
(:require [metabase.driver.metadata :refer [field-count field-distinct-count]]))
(:require [metabase.driver.generic-sql.metadata :as generic]
[metabase.driver.metadata :as driver]))
;; TODO - These implementations are wack. We should just use korma to do this
;; and these should be moved to the `generic-sql` driver
(defmethod driver/field-count :postgres [field]
(generic/field-count field))
(defmethod field-count :postgres
[{:keys [db table name] :as field}]
(-> ((:native-query @db)
(format "SELECT COUNT(\"%s\".\"%s\") FROM \"%s\""
(:name (table))
name
(:name (table))))
first
:count))
(defmethod field-distinct-count :postgres
[{:keys [db table name] :as field}]
(-> ((:native-query @db)
(format "SELECT COUNT(DISTINCT \"%s\".\"%s\") FROM \"%s\""
(:name (table))
name
(:name (table))))
first
:count))
(defmethod driver/field-distinct-count :postgres [field]
(generic/field-distinct-count field))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment