From 8e385d49be365bd0f5e3d5e5b4d22b3fad50257c Mon Sep 17 00:00:00 2001
From: Cal Herries <39073188+calherries@users.noreply.github.com>
Date: Wed, 14 Dec 2022 15:21:30 +0100
Subject: [PATCH] Improve datetimeDiff type error message (#27225)

* Update test

* Update implementations
---
 .../src/metabase/driver/bigquery_cloud_sdk/query_processor.clj  | 2 +-
 modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj     | 2 +-
 modules/drivers/vertica/src/metabase/driver/vertica.clj         | 2 +-
 src/metabase/driver/mysql.clj                                   | 2 +-
 src/metabase/driver/postgres.clj                                | 2 +-
 .../query_processor_test/date_time_zone_functions_test.clj      | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/modules/drivers/bigquery-cloud-sdk/src/metabase/driver/bigquery_cloud_sdk/query_processor.clj b/modules/drivers/bigquery-cloud-sdk/src/metabase/driver/bigquery_cloud_sdk/query_processor.clj
index 6ee16588227..21991f0c6fc 100644
--- a/modules/drivers/bigquery-cloud-sdk/src/metabase/driver/bigquery_cloud_sdk/query_processor.clj
+++ b/modules/drivers/bigquery-cloud-sdk/src/metabase/driver/bigquery_cloud_sdk/query_processor.clj
@@ -567,7 +567,7 @@
         y                (hx/->timestamp y)]
     (when (seq disallowed-types)
       (throw
-       (ex-info (tru "Only datetime, timestamp, or date types allowed. Found {0}"
+       (ex-info (tru "datetimeDiff only allows datetime, timestamp, or date types. Found {0}"
                      (pr-str disallowed-types))
                 {:allowed #{:timestamp :datetime :date}
                  :found   disallowed-types
diff --git a/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj b/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj
index e665c1db5ed..1017eb9637b 100644
--- a/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj
+++ b/modules/drivers/sqlserver/src/metabase/driver/sqlserver.clj
@@ -291,7 +291,7 @@
                                     #{"time"}))
                           [x y])
         _ (when (seq disallowed-types)
-            (throw (ex-info (tru "Only datetime, timestamp, or date types allowed. Found {0}"
+            (throw (ex-info (tru "datetimeDiff only allows datetime, timestamp, or date types. Found {0}"
                                  (pr-str disallowed-types))
                             {:found disallowed-types
                              :type  qp.error-type/invalid-query})))
diff --git a/modules/drivers/vertica/src/metabase/driver/vertica.clj b/modules/drivers/vertica/src/metabase/driver/vertica.clj
index c1c5ac49cba..0782cf585bc 100644
--- a/modules/drivers/vertica/src/metabase/driver/vertica.clj
+++ b/modules/drivers/vertica/src/metabase/driver/vertica.clj
@@ -152,7 +152,7 @@
                                     #{"time" "timetz"}))
                           [x y])]
     (when (seq disallowed-types)
-      (throw (ex-info (tru "Only datetime, timestamp, or date types allowed. Found {0}"
+      (throw (ex-info (tru "datetimeDiff only allows datetime, timestamp, or date types. Found {0}"
                            (pr-str disallowed-types))
                       {:found disallowed-types
                        :type  qp.error-type/invalid-query})))
diff --git a/src/metabase/driver/mysql.clj b/src/metabase/driver/mysql.clj
index 3145239532e..d3fe8351927 100644
--- a/src/metabase/driver/mysql.clj
+++ b/src/metabase/driver/mysql.clj
@@ -399,7 +399,7 @@
                                   (name db-type)))))
                           [x y])]
     (when (seq disallowed-types)
-      (throw (ex-info (tru "Only datetime, timestamp, or date types allowed. Found {0}"
+      (throw (ex-info (tru "datetimeDiff only allows datetime, timestamp, or date types. Found {0}"
                            (pr-str disallowed-types))
                       {:found disallowed-types
                        :type  qp.error-type/invalid-query})))
diff --git a/src/metabase/driver/postgres.clj b/src/metabase/driver/postgres.clj
index eddaa5aa1b0..00975c0333b 100644
--- a/src/metabase/driver/postgres.clj
+++ b/src/metabase/driver/postgres.clj
@@ -377,7 +377,7 @@
                                   (name db-type)))))
                           [x y])]
     (when (seq disallowed-types)
-      (throw (ex-info (tru "Only datetime, timestamp, or date types allowed. Found {0}"
+      (throw (ex-info (tru "datetimeDiff only allows datetime, timestamp, or date types. Found {0}"
                            (pr-str disallowed-types))
                       {:found disallowed-types
                        :type  qp.error-type/invalid-query})))
diff --git a/test/metabase/query_processor_test/date_time_zone_functions_test.clj b/test/metabase/query_processor_test/date_time_zone_functions_test.clj
index 16661975b57..aac759b3db7 100644
--- a/test/metabase/query_processor_test/date_time_zone_functions_test.clj
+++ b/test/metabase/query_processor_test/date_time_zone_functions_test.clj
@@ -946,7 +946,7 @@
       (mt/dataset attempted-murders
         (is (thrown-with-msg?
              clojure.lang.ExceptionInfo
-             #"Only datetime, timestamp, or date types allowed. Found .*"
+             #"datetimeDiff only allows datetime, timestamp, or date types. Found .*"
              (mt/rows
               (mt/run-mbql-query attempts
                 {:limit 1
-- 
GitLab