diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 8ac153f..a40b688 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -15,7 +15,7 @@ jobs: cancel-in-progress: true runs-on: ubuntu-latest env: - METABASE_TAG: v0.51.9.5 + METABASE_TAG: v0.52.17.1 steps: - name: Checkout the repository uses: actions/checkout@v4 diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index d82171d..fde0237 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -19,7 +19,7 @@ jobs: name: "Build with Exasol ${{ matrix.exasol_version }}" runs-on: ubuntu-latest env: - METABASE_TAG: v0.51.9.5 + METABASE_TAG: v0.52.17.1 steps: - name: Free Disk Space run: | diff --git a/.github/workflows/release_droid_upload_github_release_assets.yml b/.github/workflows/release_droid_upload_github_release_assets.yml index 52c3b17..f1ca306 100644 --- a/.github/workflows/release_droid_upload_github_release_assets.yml +++ b/.github/workflows/release_droid_upload_github_release_assets.yml @@ -11,7 +11,7 @@ jobs: build: runs-on: ubuntu-latest env: - METABASE_TAG: v0.51.9.5 + METABASE_TAG: v0.52.17.1 steps: - name: Checkout the repository uses: actions/checkout@v4 diff --git a/deps.edn b/deps.edn index baa4d5c..a3f5227 100644 --- a/deps.edn +++ b/deps.edn @@ -11,7 +11,7 @@ :aliases {:dev {:extra-deps - {io.github.metabase/metabase {:git/tag "v0.51.9.5" :git/sha "0ca7df3"}}} + {io.github.metabase/metabase {:git/tag "v0.52.17.1" :git/sha "0ca7df3"}}} ; clojure -M:clj-kondo --lint src test --debug :clj-kondo diff --git a/doc/changes/changes_1.0.9.md b/doc/changes/changes_1.0.9.md index e13b7fb..b4360c4 100644 --- a/doc/changes/changes_1.0.9.md +++ b/doc/changes/changes_1.0.9.md @@ -1,11 +1,11 @@ # metabase-driver 1.0.9, released 2025-08-?? -Code name: Upgrade to Metabase v0.51.9.5 +Code name: Upgrade to Metabase v0.52.17.1 ## Summary -This release adapts the driver to Metabase v0.51.9.5. +This release adapts the driver to Metabase v0.52.17.1. ## Features -* #84: Upgraded to Metabase v0.51.9.5 +* #84: Upgraded to Metabase v0.52.17.1 diff --git a/doc/developer_guide/developer_guide.md b/doc/developer_guide/developer_guide.md index 66fce42..40c8540 100644 --- a/doc/developer_guide/developer_guide.md +++ b/doc/developer_guide/developer_guide.md @@ -54,7 +54,7 @@ If this reports another Java version, update `JAVA_HOME` and check again. ```sh export METABASE_DIR=$HOME/git/metabase - export METABASE_VERSION=v0.51.9.5 + export METABASE_VERSION=v0.52.17.1 git clone https://github.com/metabase/metabase.git $METABASE_DIR git -C $METABASE_DIR fetch --all --tags git -C $METABASE_DIR reset --hard diff --git a/doc/user_guide/user_guide.md b/doc/user_guide/user_guide.md index b776af3..582c266 100644 --- a/doc/user_guide/user_guide.md +++ b/doc/user_guide/user_guide.md @@ -24,7 +24,7 @@ Metabase Version | Exasol Metabase Driver Version -----------------|------------------------------- v0.48.0 | 1.0.7 v0.50.36 | 1.0.8 -v0.51.9.5 | 1.0.9 +v0.52.17.1 | 1.0.9 ### Upgrading the Driver diff --git a/scripts/exclude_tests.diff b/scripts/exclude_tests.diff index ad793a2..8caa1ad 100644 --- a/scripts/exclude_tests.diff +++ b/scripts/exclude_tests.diff @@ -1,5 +1,5 @@ diff --git a/test/metabase/api/database_test.clj b/test/metabase/api/database_test.clj -index c07bf34a84..92de61572a 100644 +index 58b6e27b46..9eb9d0c7fe 100644 --- a/test/metabase/api/database_test.clj +++ b/test/metabase/api/database_test.clj @@ -474,31 +474,7 @@ @@ -35,7 +35,7 @@ index c07bf34a84..92de61572a 100644 (deftest update-database-test-2 (testing "PUT /api/database/:id" -@@ -1442,33 +1418,7 @@ +@@ -1463,33 +1439,7 @@ (with-redefs [h2/*allow-testing-h2-connections* true] (#'api.database/test-connection-details engine details))) @@ -90,10 +90,10 @@ index 45a53762a8..e71a56f098 100644 (deftest ^:parallel only-connect-when-non-malicious-properties (testing "Reject connection strings with malicious properties" diff --git a/test/metabase/driver/sql_jdbc/connection_test.clj b/test/metabase/driver/sql_jdbc/connection_test.clj -index 640f44499a..25218c6652 100644 +index 6ccfcdaa03..38e78134b4 100644 --- a/test/metabase/driver/sql_jdbc/connection_test.clj +++ b/test/metabase/driver/sql_jdbc/connection_test.clj -@@ -118,6 +118,9 @@ +@@ -119,6 +119,9 @@ :redshift (assoc details :additional-options "defaultRowFetchSize=1000") @@ -103,95 +103,6 @@ index 640f44499a..25218c6652 100644 :databricks (assoc details :log-level 0) -diff --git a/test/metabase/driver_test.clj b/test/metabase/driver_test.clj -index 823944f5a9..bd6e12d4a1 100644 ---- a/test/metabase/driver_test.clj -+++ b/test/metabase/driver_test.clj -@@ -83,82 +83,9 @@ - :field-definitions [{:field-name "foo", :base-type :type/Text}] - :rows [["bar"]]}]})) - --(deftest can-connect-with-destroy-db-test -- (testing "driver/can-connect? should fail or throw after destroying a database" -- (mt/test-drivers (mt/normal-drivers-with-feature :test/dynamic-dataset-loading) -- (let [database-name (mt/random-name) -- dbdef (basic-db-definition database-name)] -- (mt/dataset dbdef -- (let [db (mt/db) -- details (tx/dbdef->connection-details driver/*driver* :db dbdef)] -- (testing "can-connect? should return true before deleting the database" -- (is (true? (binding [h2/*allow-testing-h2-connections* true] -- (driver/can-connect? driver/*driver* details))))) -- ;; release db resources like connection pools so we don't have to wait to finish syncing before destroying the db -- (driver/notify-database-updated driver/*driver* db) -- (testing "after deleting a database, can-connect? should return false or throw an exception" -- (let [;; in the case of some cloud databases, the test database is never created, and can't or shouldn't be destroyed. -- ;; so fake it by changing the database details -- details (case driver/*driver* -- (:redshift :snowfake :vertica) (assoc details :db (mt/random-name)) -- :oracle (assoc details :service-name (mt/random-name)) -- :presto-jdbc (assoc details :catalog (mt/random-name)) -- ;; otherwise destroy the db and use the original details -- (do -- (tx/destroy-db! driver/*driver* dbdef) -- details))] -- (is (false? (try -- (binding [h2/*allow-testing-h2-connections* true] -- (driver/can-connect? driver/*driver* details)) -- (catch Exception _ -- false)))))) -- ;; clean up the database -- (t2/delete! :model/Database (u/the-id db)))))))) -+; Test can-connect-with-destroy-db-test fails unrelated to Exasol - --(deftest check-can-connect-before-sync-test -- (testing "Database sync should short-circuit and fail if the database at the connection has been deleted (metabase#7526)" -- (mt/test-drivers (mt/normal-drivers-with-feature :test/dynamic-dataset-loading) -- (let [database-name (mt/random-name) -- dbdef (basic-db-definition database-name)] -- (mt/dataset dbdef -- (let [db (mt/db) -- cant-sync-logged? (fn [] -- (mt/with-log-messages-for-level [messages :warn] -- (#'task.sync-databases/sync-and-analyze-database*! (u/the-id db)) -- (some? -- (some -- (fn [{:keys [level e message]}] -- (and (= level :warn) -- (instance? clojure.lang.ExceptionInfo e) -- (re-matches #"^Cannot sync Database ([\s\S]+): ([\s\S]+)" message))) -- (messages)))))] -- (testing "sense checks before deleting the database" -- (testing "sense check 1: sync-and-analyze-database! should not log a warning" -- (is (false? (cant-sync-logged?)))) -- (testing "sense check 2: triggering the sync via the POST /api/database/:id/sync_schema endpoint should succeed" -- (is (= {:status "ok"} -- (mt/user-http-request :crowberto :post 200 (str "/database/" (u/the-id db) "/sync_schema")))))) -- ;; release db resources like connection pools so we don't have to wait to finish syncing before destroying the db -- (driver/notify-database-updated driver/*driver* db) -- ;; destroy the db -- (if (contains? #{:redshift :snowflake :vertica :presto-jdbc :oracle} driver/*driver*) -- ;; in the case of some cloud databases, the test database is never created, and can't or shouldn't be destroyed. -- ;; so fake it by changing the database details -- (let [details (:details (mt/db)) -- new-details (case driver/*driver* -- (:redshift :snowflake :vertica) (assoc details :db (mt/random-name)) -- :oracle (assoc details :service-name (mt/random-name)) -- :presto-jdbc (assoc details :catalog (mt/random-name)))] -- (t2/update! :model/Database (u/the-id db) {:details new-details})) -- ;; otherwise destroy the db and use the original details -- (tx/destroy-db! driver/*driver* dbdef)) -- (testing "after deleting a database, sync should fail" -- (testing "1: sync-and-analyze-database! should log a warning and fail early" -- (is (true? (cant-sync-logged?)))) -- (testing "2: triggering the sync via the POST /api/database/:id/sync_schema endpoint should fail" -- (mt/user-http-request :crowberto :post 422 (str "/database/" (u/the-id db) "/sync_schema")))) -- ;; clean up the database -- (t2/delete! :model/Database (u/the-id db)))))))) -+; Test check-can-connect-before-sync-test fails unrelated to Exasol - - (deftest supports-table-privileges-matches-implementations-test - (mt/test-drivers (mt/normal-drivers-with-feature :table-privileges) diff --git a/test/metabase/query_processor/middleware/format_rows_test.clj b/test/metabase/query_processor/middleware/format_rows_test.clj index 5978ac13ed..20f7624d29 100644 --- a/test/metabase/query_processor/middleware/format_rows_test.clj @@ -229,7 +140,7 @@ index b78d1df0dd..beb3f1fbff 100644 (deftest ^:parallel validate-source-table-test (testing "Should throw an Exception if there's a `:source-table` in the query that IS NOT a positive int" diff --git a/test/metabase/query_processor_test/alternative_date_test.clj b/test/metabase/query_processor_test/alternative_date_test.clj -index 3eec93581c..ae0e465211 100644 +index 0e094d07dc..6285ddfbd3 100644 --- a/test/metabase/query_processor_test/alternative_date_test.clj +++ b/test/metabase/query_processor_test/alternative_date_test.clj @@ -294,19 +294,8 @@ @@ -322,10 +233,10 @@ index 507902de93..71d4127d25 100644 (def ^:private charsets {:ascii (into (vec (for [i (range 26)] diff --git a/test/metabase/query_processor_test/parameters_test.clj b/test/metabase/query_processor_test/parameters_test.clj -index fa4eca2656..2912387029 100644 +index d499734e8d..0724fa20fd 100644 --- a/test/metabase/query_processor_test/parameters_test.clj +++ b/test/metabase/query_processor_test/parameters_test.clj -@@ -396,23 +396,8 @@ +@@ -401,23 +401,8 @@ [_driver _feature _database] false)) @@ -403,14 +314,14 @@ index 6e7735e452..fd4e96119a 100644 - (sort-by :name))))))))))))) +; Test sync-fks-and-fields-test fails unrelated to Exasol. diff --git a/test/metabase/test/initialize.clj b/test/metabase/test/initialize.clj -index f9b32da937..0cb97eda18 100644 +index 7106a60a9b..a489b306e3 100644 --- a/test/metabase/test/initialize.clj +++ b/test/metabase/test/initialize.clj -@@ -22,7 +22,7 @@ +@@ -23,7 +23,7 @@ (str/join "\n" [border body border]) "\n"))))) --(def ^:private init-timeout-ms (u/seconds->ms 60)) +-(def ^:private init-timeout-ms (u/seconds->ms 90)) +(def ^:private init-timeout-ms (u/seconds->ms 120)) ; Integration tests fail on GitHub Action with a timeout (def ^:private ^:dynamic *initializing* diff --git a/src/metabase/driver/exasol.clj b/src/metabase/driver/exasol.clj index e13d2f1..b2f69a7 100644 --- a/src/metabase/driver/exasol.clj +++ b/src/metabase/driver/exasol.clj @@ -65,7 +65,8 @@ :metadata/keys-constraints true :describe-fks true :test/time-type false - :test/timestamptz-type false}] + :test/timestamptz-type false + :test/cannot-destroy-db false}] (defmethod driver/database-supports? [:exasol feature] [_ _ _] supported?)) (defmethod sql.qp/quote-style :exasol