Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 1446dd2

Browse files
authored
Merge branch 'master' into 284-fix-insert-crash-on-upload
2 parents c7138da + 3bcd51d commit 1446dd2

File tree

4 files changed

+37
-30
lines changed

4 files changed

+37
-30
lines changed

test/metabase/driver/clickhouse_impersonation_test.clj

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -162,26 +162,25 @@
162162
(t2.with-temp/with-temp [:model/Database db cluster-details]
163163
(mt/with-db db (sync/sync-database! db)
164164

165-
(defn- check-impersonation!
166-
[roles expected]
167-
(advanced-perms.api.tu/with-impersonations!
168-
{:impersonations [{:db-id (mt/id) :attribute "impersonation_attr"}]
169-
:attributes {"impersonation_attr" roles}}
170-
(is (= expected
171-
(-> {:query select-query}
172-
mt/native-query
173-
mt/process-query
174-
mt/rows)))))
165+
(letfn [(check-impersonation! [roles expected]
166+
(advanced-perms.api.tu/with-impersonations!
167+
{:impersonations [{:db-id (mt/id) :attribute "impersonation_attr"}]
168+
:attributes {"impersonation_attr" roles}}
169+
(is (= expected
170+
(-> {:query select-query}
171+
mt/native-query
172+
mt/process-query
173+
mt/rows)))))]
175174

176-
(is (= [["a"] ["b"] ["c"]]
177-
(-> {:query select-query}
178-
mt/native-query
179-
mt/process-query
180-
mt/rows)))
175+
(is (= [["a"] ["b"] ["c"]]
176+
(-> {:query select-query}
177+
mt/native-query
178+
mt/process-query
179+
mt/rows)))
181180

182-
(check-impersonation! "row_a" [["a"]])
183-
(check-impersonation! "row_b" [["b"]])
184-
(check-impersonation! "row_c" [["c"]])
185-
(check-impersonation! "row_a,row_c" [["a"] ["c"]])
186-
(check-impersonation! "row_b,row_c" [["b"] ["c"]])
187-
(check-impersonation! "row_a,row_b,row_c" [["a"] ["b"] ["c"]])))))))
181+
(check-impersonation! "row_a" [["a"]])
182+
(check-impersonation! "row_b" [["b"]])
183+
(check-impersonation! "row_c" [["c"]])
184+
(check-impersonation! "row_a,row_c" [["a"] ["c"]])
185+
(check-impersonation! "row_b,row_c" [["b"] ["c"]])
186+
(check-impersonation! "row_a,row_b,row_c" [["a"] ["b"] ["c"]]))))))))

test/metabase/driver/clickhouse_test.clj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@
4747
(driver/db-default-timezone :clickhouse spec))))))
4848

4949
(deftest ^:parallel clickhouse-connection-string
50-
(with-dynamic-redefs [;; This function's implementation requires the connection details to actually connect to the
51-
;; database, which is orthogonal to the purpose of this test.
52-
clickhouse/cloud? (constantly false)]
50+
(mt/with-dynamic-fn-redefs [ ;; This function's implementation requires the connection details to actually connect to the
51+
;; database, which is orthogonal to the purpose of this test.
52+
clickhouse/cloud? (constantly false)]
5353
(testing "connection with no additional options"
5454
(is (= ctd/default-connection-params
5555
(sql-jdbc.conn/connection-details->spec
@@ -80,9 +80,9 @@
8080
{:dbname nil}))))))
8181

8282
(deftest ^:parallel clickhouse-connection-string-select-sequential-consistency
83-
(with-dynamic-redefs [;; This function's implementation requires the connection details to actually
84-
;; connect to the database, which is orthogonal to the purpose of this test.
85-
clickhouse/cloud? (constantly true)]
83+
(mt/with-dynamic-fn-redefs [ ;; This function's implementation requires the connection details to actually
84+
;; connect to the database, which is orthogonal to the purpose of this test.
85+
clickhouse/cloud? (constantly true)]
8686
(testing "connection with no additional options"
8787
(is (= (assoc ctd/default-connection-params :select_sequential_consistency true)
8888
(sql-jdbc.conn/connection-details->spec

test/metabase/test/data/clickhouse.clj

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
(ns metabase.test.data.clickhouse
22
"Code for creating / destroying a ClickHouse database from a `DatabaseDefinition`."
33
(:require
4+
[clojure.java.io :as io]
45
[clojure.java.jdbc :as jdbc]
56
[clojure.string :as str]
67
[clojure.test :refer :all]
78
[metabase.db.query :as mdb.query]
9+
[metabase.driver :as driver]
810
[metabase.driver.ddl.interface :as ddl.i]
911
[metabase.driver.sql-jdbc.connection :as sql-jdbc.conn]
1012
[metabase.driver.sql-jdbc.execute :as sql-jdbc.execute]
1113
[metabase.driver.sql.util :as sql.u]
1214
[metabase.lib.schema.common :as lib.schema.common]
1315
[metabase.query-processor.test-util :as qp.test]
14-
[metabase.sync.sync-metadata :as sync-metadata]
16+
[metabase.sync.core :as sync]
1517
[metabase.test.data.interface :as tx]
1618
[metabase.test.data.sql :as sql.tx]
1719
[metabase.test.data.sql-jdbc :as sql-jdbc.tx]
@@ -24,6 +26,11 @@
2426

2527
(sql-jdbc.tx/add-test-extensions! :clickhouse)
2628

29+
(defmethod driver/database-supports? [:clickhouse :metabase.driver.sql-jdbc.sync.describe-table-test/describe-view-fields]
30+
[_driver _feature _db] true)
31+
(defmethod driver/database-supports? [:clickhouse :metabase.driver.sql-jdbc.sync.describe-table-test/describe-materialized-view-fields]
32+
[_driver _feature _db] false)
33+
2734
(def default-connection-params
2835
{:classname "com.clickhouse.jdbc.ClickHouseDriver"
2936
:subprotocol "clickhouse"
@@ -178,7 +185,8 @@
178185
;; (println "### Executing create-test-db! with details:" details)
179186
(jdbc/with-db-connection
180187
[spec (sql-jdbc.conn/connection-details->spec :clickhouse (merge {:engine :clickhouse} details))]
181-
(let [statements (as-> (slurp "modules/drivers/clickhouse/test/metabase/test/data/datasets.sql") s
188+
(let [raw-statements (slurp (io/resource "metabase/test/data/clickhouse_datasets.sql"))
189+
statements (as-> raw-statements s
182190
(str/split s #";")
183191
(map str/trim s)
184192
(filter seq s))]
@@ -216,7 +224,7 @@
216224
[:model/Database database
217225
{:engine :clickhouse
218226
:details (tx/dbdef->connection-details :clickhouse :db {:database-name "metabase_test"})}]
219-
(sync-metadata/sync-db-metadata! database)
227+
(sync/sync-db-metadata! database)
220228
(f database)))
221229

222230
(defmethod tx/dataset-already-loaded? :clickhouse

0 commit comments

Comments
 (0)