diff --git a/modules/drivers/vertica/test/metabase/driver/vertica_test.clj b/modules/drivers/vertica/test/metabase/driver/vertica_test.clj index 260a3a41722f88debe0799ffb8089b009fd59b63..7147e51b54d54af0ce7c67a9f8a9be707ba6e756 100644 --- a/modules/drivers/vertica/test/metabase/driver/vertica_test.clj +++ b/modules/drivers/vertica/test/metabase/driver/vertica_test.clj @@ -1,6 +1,7 @@ (ns metabase.driver.vertica-test (:require [clojure.test :refer :all] [metabase.driver.sql-jdbc.connection :as sql-jdbc.conn] + [metabase.query-processor :as qp] [metabase.test :as mt] [metabase.test.util :as tu])) @@ -18,3 +19,24 @@ :port 5433 :db "birds-near-me" :additional-options "ConnectionLoadBalance=1"})))))) + +(deftest dots-in-column-names-test + (mt/test-driver :vertica + (testing "Columns with dots in the name should be properly quoted (#13932)" + (mt/dataset dots-in-names + (is (= {:query (str "SELECT * " + "FROM table " + "WHERE \"public\".\"dots_in_names_objects.stuff\".\"dotted.name\" = ?") + :params ["ouija_board"]} + (qp/query->native + {:database (mt/id) + :type :native + :native {:query "SELECT * FROM table WHERE {{x}}" + :template-tags {"x" {:name "x" + :display-name "X" + :type :dimension + :dimension [:field (mt/id :objects.stuff :dotted.name) nil] + :widget-type :text}}} + :parameters [{:type :text + :target [:dimension [:template-tag "x"]] + :value "ouija_board"}]}))))))) diff --git a/test/metabase/driver/postgres_test.clj b/test/metabase/driver/postgres_test.clj index 28f5b3655aa7b534fa790802b26a80dcf8018c46..275b194ebb9571d7a316d9f43d85add925ef4669 100644 --- a/test/metabase/driver/postgres_test.clj +++ b/test/metabase/driver/postgres_test.clj @@ -117,13 +117,6 @@ ;;; ------------------------------------------- Tests for sync edge cases -------------------------------------------- -(mt/defdataset dots-in-names - [["objects.stuff" - [{:field-name "dotted.name", :base-type :type/Text}] - [["toucan_cage"] - ["four_loko"] - ["ouija_board"]]]]) - (deftest edge-case-identifiers-test (mt/test-driver :postgres (testing "Make sure that Tables / Fields with dots in their names get escaped properly" diff --git a/test/metabase/test/data/dataset_definitions.clj b/test/metabase/test/data/dataset_definitions.clj index 2965658a62f3152e8ca6f77c6e4ad71532881a9c..9a1e94e5f742dc56a7feccabe0574695a9f9d6f4 100644 --- a/test/metabase/test/data/dataset_definitions.clj +++ b/test/metabase/test/data/dataset_definitions.clj @@ -210,3 +210,10 @@ (t/offset-time t) ; time-ltz (t/offset-time t) ; time-tz cnt])]]) ; num-crows + +(tx/defdataset dots-in-names + [["objects.stuff" + [{:field-name "dotted.name", :base-type :type/Text}] + [["toucan_cage"] + ["four_loko"] + ["ouija_board"]]]])