Using a relative date filter (not just specific date) after summarizing by date leads to the following error:
400 Bad Request POST https://www.googleapis.com/bigquery/v2/projects/moodwalk/queries { "code" : 400, "errors" : [ { "domain" : "global", "location" : "q", "locationType" : "parameter", "message" : "No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]", "reason" : "invalidQuery" } ], "message" : "No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]", "status" : "INVALID_ARGUMENT" }
This is different from #25994, where summarizing a min/max date, then filtering the result with a specific date leads to a different error.
Logs
Server log :
[e3b5baaa-ef35-46e3-bd1d-510c2cd00afc] 2023-01-03T16:46:08+01:00 ERROR metabase.query-processor.middleware.catch-exceptions Error processing query: 400 Bad Request
POST https://www.googleapis.com/bigquery/v2/projects/moodwalk/queries
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"location" : "q",
"locationType" : "parameter",
"message" : "No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]",
"reason" : "invalidQuery"
} ],
"message" : "No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]",
"status" : "INVALID_ARGUMENT"
}
{:database_id 24,
:started_at #t "2023-01-03T16:46:06.987306+01:00[Europe/Paris]",
:via
[{:status :failed,
:class com.google.cloud.bigquery.BigQueryException,
:error
"No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]",
:stacktrace
["com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.translate(HttpBigQueryRpc.java:115)"
"com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.queryRpc(HttpBigQueryRpc.java:652)"
"com.google.cloud.bigquery.BigQueryImpl$35.call(BigQueryImpl.java:1278)"
"com.google.cloud.bigquery.BigQueryImpl$35.call(BigQueryImpl.java:1275)"
"com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:105)"
"com.google.cloud.RetryHelper.run(RetryHelper.java:76)"
"com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)"
"com.google.cloud.bigquery.BigQueryImpl.queryRpc(BigQueryImpl.java:1274)"
"com.google.cloud.bigquery.BigQueryImpl.query(BigQueryImpl.java:1262)"
"--> driver.bigquery_cloud_sdk$execute_bigquery$fn__82508.invoke(bigquery_cloud_sdk.clj:193)"]}
{:status :failed,
:class java.util.concurrent.ExecutionException,
:error
"com.google.cloud.bigquery.BigQueryException: No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]",
:stacktrace
["java.base/java.util.concurrent.FutureTask.report(Unknown Source)"
"java.base/java.util.concurrent.FutureTask.get(Unknown Source)"
"clojure.core$deref_future.invokeStatic(core.clj:2317)"
"clojure.core$future_call$reify__8544.deref(core.clj:7041)"
"clojure.core$deref.invokeStatic(core.clj:2337)"
"clojure.core$deref.invoke(core.clj:2323)"
"--> driver.bigquery_cloud_sdk$execute_bigquery.invokeStatic(bigquery_cloud_sdk.clj:181)"
"driver.bigquery_cloud_sdk$execute_bigquery.invoke(bigquery_cloud_sdk.clj:177)"
"driver.bigquery_cloud_sdk$execute_bigquery_on_db.invokeStatic(bigquery_cloud_sdk.clj:219)"
"driver.bigquery_cloud_sdk$execute_bigquery_on_db.invoke(bigquery_cloud_sdk.clj:217)"
"driver.bigquery_cloud_sdk$process_native_STAR_$thunk__82609.invoke(bigquery_cloud_sdk.clj:279)"
"driver.bigquery_cloud_sdk$process_native_STAR_.invokeStatic(bigquery_cloud_sdk.clj:287)"
"driver.bigquery_cloud_sdk$process_native_STAR_.invoke(bigquery_cloud_sdk.clj:271)"
"driver.bigquery_cloud_sdk$fn__82615.invokeStatic(bigquery_cloud_sdk.clj:307)"
"driver.bigquery_cloud_sdk$fn__82615.invoke(bigquery_cloud_sdk.clj:299)"
"query_processor.context$executef.invokeStatic(context.clj:59)"
"query_processor.context$executef.invoke(context.clj:48)"
"query_processor.context.default$default_runf.invokeStatic(default.clj:67)"
"query_processor.context.default$default_runf.invoke(default.clj:65)"
"query_processor.context$runf.invokeStatic(context.clj:45)"
"query_processor.context$runf.invoke(context.clj:39)"
"query_processor.reducible$identity_qp.invokeStatic(reducible.clj:12)"
"query_processor.reducible$identity_qp.invoke(reducible.clj:9)"
"query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___52623.invoke(cache.clj:220)"
"query_processor.middleware.permissions$check_query_permissions$fn__48144.invoke(permissions.clj:109)"
"query_processor.middleware.mbql_to_native$mbql__GT_native$fn__51568.invoke(mbql_to_native.clj:23)"
"query_processor$fn__54099$combined_post_process__54104$combined_post_process_STAR___54105.invoke(query_processor.clj:212)"
"query_processor$fn__54099$combined_pre_process__54100$combined_pre_process_STAR___54101.invoke(query_processor.clj:209)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__52544$fn__52549.invoke(resolve_database_and_driver.clj:35)"
"driver$do_with_driver.invokeStatic(driver.clj:75)"
"driver$do_with_driver.invoke(driver.clj:71)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__52544.invoke(resolve_database_and_driver.clj:34)"
"query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__48579.invoke(fetch_source_query.clj:353)"
"query_processor.middleware.store$initialize_store$fn__48767$fn__48768.invoke(store.clj:11)"
"query_processor.store$do_with_store.invokeStatic(store.clj:44)"
"query_processor.store$do_with_store.invoke(store.clj:38)"
"query_processor.middleware.store$initialize_store$fn__48767.invoke(store.clj:10)"
"query_processor.middleware.normalize_query$normalize$fn__52816.invoke(normalize_query.clj:22)"
"query_processor.middleware.constraints$add_default_userland_constraints$fn__49849.invoke(constraints.clj:53)"
"query_processor.middleware.process_userland_query$process_userland_query$fn__52755.invoke(process_userland_query.clj:145)"
"query_processor.middleware.catch_exceptions$catch_exceptions$fn__53127.invoke(catch_exceptions.clj:167)"
"query_processor.reducible$async_qp$qp_STAR___44982$thunk__44984.invoke(reducible.clj:100)"
"query_processor.reducible$async_qp$qp_STAR___44982.invoke(reducible.clj:106)"
"query_processor.reducible$async_qp$qp_STAR___44982.invoke(reducible.clj:91)"
"query_processor.reducible$sync_qp$qp_STAR___44993.doInvoke(reducible.clj:126)"
"query_processor$process_userland_query.invokeStatic(query_processor.clj:331)"
"query_processor$process_userland_query.doInvoke(query_processor.clj:327)"
"query_processor$fn__54146$process_query_and_save_execution_BANG___54155$fn__54158.invoke(query_processor.clj:342)"
"query_processor$fn__54146$process_query_and_save_execution_BANG___54155.invoke(query_processor.clj:335)"
"query_processor$fn__54190$process_query_and_save_with_max_results_constraints_BANG___54199$fn__54202.invoke(query_processor.clj:354)"
"query_processor$fn__54190$process_query_and_save_with_max_results_constraints_BANG___54199.invoke(query_processor.clj:347)"
"api.dataset$run_query_async$fn__68896.invoke(dataset.clj:69)"
"query_processor.streaming$streaming_response_STAR_$fn__40100$fn__40101.invoke(streaming.clj:162)"
"query_processor.streaming$streaming_response_STAR_$fn__40100.invoke(streaming.clj:161)"
"async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:65)"
"async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:63)"
"async.streaming_response$do_f_async$task__19006.invoke(streaming_response.clj:84)"]}
{:status :failed,
:class clojure.lang.ExceptionInfo,
:error
"Error executing query: com.google.cloud.bigquery.BigQueryException: No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]",
:stacktrace
["--> driver.bigquery_cloud_sdk$throw_invalid_query.invokeStatic(bigquery_cloud_sdk.clj:173)"
"driver.bigquery_cloud_sdk$throw_invalid_query.invoke(bigquery_cloud_sdk.clj:172)"
"driver.bigquery_cloud_sdk$execute_bigquery.invokeStatic(bigquery_cloud_sdk.clj:215)"
"driver.bigquery_cloud_sdk$execute_bigquery.invoke(bigquery_cloud_sdk.clj:177)"
"driver.bigquery_cloud_sdk$execute_bigquery_on_db.invokeStatic(bigquery_cloud_sdk.clj:219)"
"driver.bigquery_cloud_sdk$execute_bigquery_on_db.invoke(bigquery_cloud_sdk.clj:217)"
"driver.bigquery_cloud_sdk$process_native_STAR_$thunk__82609.invoke(bigquery_cloud_sdk.clj:279)"
"driver.bigquery_cloud_sdk$process_native_STAR_.invokeStatic(bigquery_cloud_sdk.clj:287)"
"driver.bigquery_cloud_sdk$process_native_STAR_.invoke(bigquery_cloud_sdk.clj:271)"
"driver.bigquery_cloud_sdk$fn__82615.invokeStatic(bigquery_cloud_sdk.clj:307)"
"driver.bigquery_cloud_sdk$fn__82615.invoke(bigquery_cloud_sdk.clj:299)"
"query_processor.context$executef.invokeStatic(context.clj:59)"
"query_processor.context$executef.invoke(context.clj:48)"
"query_processor.context.default$default_runf.invokeStatic(default.clj:67)"
"query_processor.context.default$default_runf.invoke(default.clj:65)"
"query_processor.context$runf.invokeStatic(context.clj:45)"
"query_processor.context$runf.invoke(context.clj:39)"
"query_processor.reducible$identity_qp.invokeStatic(reducible.clj:12)"
"query_processor.reducible$identity_qp.invoke(reducible.clj:9)"
"query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___52623.invoke(cache.clj:220)"
"query_processor.middleware.permissions$check_query_permissions$fn__48144.invoke(permissions.clj:109)"
"query_processor.middleware.mbql_to_native$mbql__GT_native$fn__51568.invoke(mbql_to_native.clj:23)"
"query_processor$fn__54099$combined_post_process__54104$combined_post_process_STAR___54105.invoke(query_processor.clj:212)"
"query_processor$fn__54099$combined_pre_process__54100$combined_pre_process_STAR___54101.invoke(query_processor.clj:209)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__52544$fn__52549.invoke(resolve_database_and_driver.clj:35)"
"driver$do_with_driver.invokeStatic(driver.clj:75)"
"driver$do_with_driver.invoke(driver.clj:71)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__52544.invoke(resolve_database_and_driver.clj:34)"
"query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__48579.invoke(fetch_source_query.clj:353)"
"query_processor.middleware.store$initialize_store$fn__48767$fn__48768.invoke(store.clj:11)"
"query_processor.store$do_with_store.invokeStatic(store.clj:44)"
"query_processor.store$do_with_store.invoke(store.clj:38)"
"query_processor.middleware.store$initialize_store$fn__48767.invoke(store.clj:10)"
"query_processor.middleware.normalize_query$normalize$fn__52816.invoke(normalize_query.clj:22)"
"query_processor.middleware.constraints$add_default_userland_constraints$fn__49849.invoke(constraints.clj:53)"
"query_processor.middleware.process_userland_query$process_userland_query$fn__52755.invoke(process_userland_query.clj:145)"
"query_processor.middleware.catch_exceptions$catch_exceptions$fn__53127.invoke(catch_exceptions.clj:167)"
"query_processor.reducible$async_qp$qp_STAR___44982$thunk__44984.invoke(reducible.clj:100)"
"query_processor.reducible$async_qp$qp_STAR___44982.invoke(reducible.clj:106)"
"query_processor.reducible$async_qp$qp_STAR___44982.invoke(reducible.clj:91)"
"query_processor.reducible$sync_qp$qp_STAR___44993.doInvoke(reducible.clj:126)"
"query_processor$process_userland_query.invokeStatic(query_processor.clj:331)"
"query_processor$process_userland_query.doInvoke(query_processor.clj:327)"
"query_processor$fn__54146$process_query_and_save_execution_BANG___54155$fn__54158.invoke(query_processor.clj:342)"
"query_processor$fn__54146$process_query_and_save_execution_BANG___54155.invoke(query_processor.clj:335)"
"query_processor$fn__54190$process_query_and_save_with_max_results_constraints_BANG___54199$fn__54202.invoke(query_processor.clj:354)"
"query_processor$fn__54190$process_query_and_save_with_max_results_constraints_BANG___54199.invoke(query_processor.clj:347)"
"api.dataset$run_query_async$fn__68896.invoke(dataset.clj:69)"
"query_processor.streaming$streaming_response_STAR_$fn__40100$fn__40101.invoke(streaming.clj:162)"
"query_processor.streaming$streaming_response_STAR_$fn__40100.invoke(streaming.clj:161)"
"async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:65)"
"async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:63)"
"async.streaming_response$do_f_async$task__19006.invoke(streaming_response.clj:84)"],
:error_type :invalid-query,
:ex-data
{:type :invalid-query,
:sql
"-- Metabase:: userID: 33 queryType: MBQL queryHash: a77535fcdbdb4a75f334a79c37ccc92830ca8395b3834d174978fa834d3adf76\nSELECT `source`.`user_id` AS `user_id`, `source`.`min` AS `min` FROM (SELECT `production_moodwork_db.user_tests_view`.`user_id` AS `user_id`, min(timestamp_trunc(`production_moodwork_db.user_tests_view`.`test_created_at`, month)) AS `min` FROM `production_moodwork_db.user_tests_view` GROUP BY `user_id` ORDER BY `user_id` ASC) `source` WHERE (CAST(`source`.`min` AS datetime) >= datetime_trunc(datetime_add(current_datetime(), INTERVAL -2 month), month) AND `source`.`min` < datetime_trunc(current_datetime(), month)) LIMIT 2000",
:parameters nil}}],
:error_type :invalid-query,
:json_query
{:database 24,
:query
{:source-query
{:source-table 2041,
:aggregation [["min" ["field" 30214 {:temporal-unit "month"}]]],
:breakout [["field" 29316 nil]]},
:filter ["time-interval" ["field" "min" {:base-type "type/Float"}] -2 "month"]},
:type "query",
:parameters [],
:middleware {:js-int-to-string? true, :add-default-userland-constraints? true}},
:native
{:query
"SELECT `source`.`user_id` AS `user_id`, `source`.`min` AS `min` FROM (SELECT `production_moodwork_db.user_tests_view`.`user_id` AS `user_id`, min(timestamp_trunc(`production_moodwork_db.user_tests_view`.`test_created_at`, month)) AS `min` FROM `production_moodwork_db.user_tests_view` GROUP BY `user_id` ORDER BY `user_id` ASC) `source` WHERE (CAST(`source`.`min` AS datetime) >= datetime_trunc(datetime_add(current_datetime(), INTERVAL -2 month), month) AND `source`.`min` < datetime_trunc(current_datetime(), month)) LIMIT 1048575",
:params nil,
:table-name "source",
:mbql? true},
:status :failed,
:class com.google.api.client.googleapis.json.GoogleJsonResponseException,
:stacktrace
["com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)"
"com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:118)"
"com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:37)"
"com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:428)"
"com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1111)"
"com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:514)"
"com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:455)"
"com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:565)"
"com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.queryRpc(HttpBigQueryRpc.java:650)"
"com.google.cloud.bigquery.BigQueryImpl$35.call(BigQueryImpl.java:1278)"
"com.google.cloud.bigquery.BigQueryImpl$35.call(BigQueryImpl.java:1275)"
"com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:105)"
"com.google.cloud.RetryHelper.run(RetryHelper.java:76)"
"com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)"
"com.google.cloud.bigquery.BigQueryImpl.queryRpc(BigQueryImpl.java:1274)"
"com.google.cloud.bigquery.BigQueryImpl.query(BigQueryImpl.java:1262)"
"--> driver.bigquery_cloud_sdk$execute_bigquery$fn__82508.invoke(bigquery_cloud_sdk.clj:193)"],
:card_id nil,
:context :ad-hoc,
:error
"400 Bad Request\nPOST https://www.googleapis.com/bigquery/v2/projects/moodwalk/queries\n{\n \"code\" : 400,\n \"errors\" : [ {\n \"domain\" : \"global\",\n \"location\" : \"q\",\n \"locationType\" : \"parameter\",\n \"message\" : \"No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]\",\n \"reason\" : \"invalidQuery\"\n } ],\n \"message\" : \"No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]\",\n \"status\" : \"INVALID_ARGUMENT\"\n}",
:row_count 0,
:running_time 0,
:preprocessed
{:database 24,
:query
{:filter
[:and
[:>= [:field "min" {:base-type :type/Float, :temporal-unit :default}] [:relative-datetime -2 :month]]
[:< [:field "min" {:base-type :type/Float, :temporal-unit :default}] [:relative-datetime 0 :month]]],
:source-metadata
[{:semantic_type nil,
:table_id 2041,
:coercion_strategy nil,
:name "user_id",
:settings nil,
:field_ref [:field 29316 nil],
:effective_type :type/Integer,
:nfc_path nil,
:parent_id nil,
:id 29316,
:display_name "user_id",
:fingerprint
{:global {:distinct-count 6944, :nil% 0.0},
:type
{:type/Number
{:min 172.0,
:q1 26907.024433847666,
:q3 36280.299719380004,
:max 41467.0,
:sd 8674.829683989376,
:avg 30140.4174}}},
:base_type :type/Integer}
{:name "min",
:display_name "Min of test_created_at",
:base_type :type/DateTimeWithLocalTZ,
:semantic_type :type/CreationTimestamp,
:settings nil,
:field_ref [:aggregation 0]}],
:fields [[:field 29316 nil] [:field "min" {:base-type :type/DateTimeWithLocalTZ, :temporal-unit :default}]],
:source-query
{:source-table 2041,
:aggregation [[:aggregation-options [:min [:field 30214 {:temporal-unit :month}]] {:name "min"}]],
:breakout [[:field 29316 nil]],
:order-by [[:asc [:field 29316 nil]]]},
:limit 1048575,
:metabase.query-processor.middleware.limit/original-limit nil},
:type :query,
:middleware {:js-int-to-string? true, :add-default-userland-constraints? true},
:info {:executed-by 33, :context :ad-hoc}},
:data {:rows [], :cols []}}
To Reproduce
Unable to reproduce with the Sample Database.
Expected behavior
The question should return a result.
Screenshots
An example of non-functional question, using one of our databases
Information about your Metabase Installation:
Your browser and the version: Firefox 108.0.1
Your operating system: Windows 11 22H2 22621.963
Databases: BigQuery, Postgres, H2
Metabase version: 0.44.6
Severity
Cannot remember what specific question I was trying to create with this one at the time, been a little while since I last attempted this...
Additional Context
I initially thought the issue might be one of incorrect datatype on our end, but the same error occurs no matter which date variable or database I use (besides the Sample Database), so it's probably something else.
Describe the bug
Using a relative date filter (not just specific date) after summarizing by date leads to the following error:
400 Bad Request POST https://www.googleapis.com/bigquery/v2/projects/moodwalk/queries { "code" : 400, "errors" : [ { "domain" : "global", "location" : "q", "locationType" : "parameter", "message" : "No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]", "reason" : "invalidQuery" } ], "message" : "No matching signature for operator < for argument types: TIMESTAMP, DATETIME. Supported signature: ANY < ANY at [2:460]", "status" : "INVALID_ARGUMENT" }
This is different from #25994, where summarizing a min/max date, then filtering the result with a specific date leads to a different error.
Logs Server log :
To Reproduce Unable to reproduce with the Sample Database.
Expected behavior The question should return a result.
Screenshots An example of non-functional question, using one of our databases
![image](https://user-images.githubusercontent.com/71009735/210388494-ceaa755d-9d51-43ef-a4f5-68a3700c8189.png)
Information about your Metabase Installation:
Severity Cannot remember what specific question I was trying to create with this one at the time, been a little while since I last attempted this...
Additional Context I initially thought the issue might be one of incorrect datatype on our end, but the same error occurs no matter which date variable or database I use (besides the Sample Database), so it's probably something else.