cube-js / cube-js/cube

Issue when running a query in Metabase "No Matching Signature for Operator >= for Argument Types: TIMESTAMP, DATE"

Open
#8,993 1 comment 0 reactions 0 assignees View on GitHub
api:sql
Dominant language
Rust
Stars
20.8k
Forks
2.1k
Avg merge
1d 2h
Merged PRs (30d)
181

Description

Hi!

We encountered an issue when running a query in Metabase. The query fails due to a type mismatch between TIMESTAMP and DATE.

Example Metabase Query:
```
SELECT
CAST("public"."cube_1"."activity_date" AS date) AS "activity_date",
SUM("public"."cube_1"."metric_revenue") AS "sum"
FROM
"public"."cube_1"
WHERE
"public"."cube_1"."activity_date" >= CAST((NOW() + INTERVAL '-30 day') AS date)
AND "public"."cube_1"."activity_date" < CAST(NOW() AS date)
GROUP BY
CAST("public"."cube_1"."activity_date" AS date)
ORDER BY
CAST("public"."cube_1"."activity_date" AS date) ASC;
```
Error:
```
ERROR: Arrow error: Compute error: Error: No matching signature for operator >= for argument types: TIMESTAMP, DATE. Supported signature: ANY >= ANY at [6:65]
```
Query Generated by Cube:
```
SELECT `cast_cube_1` `activity_date`, `sum_cube_1` `sum`
FROM (
SELECT
CAST(DATETIME(TIMESTAMP(date), 'UTC') AS DATE) `cast_cube_1`,
sum(`cube_1`.revenue) `sum_cube_1`
FROM bi.table AS `cube_1`
WHERE (((TIMESTAMP(date) >= DATE('2024-10-27')) AND (TIMESTAMP(date) < DATE('2024-11-26'))))
GROUP BY 1
) AS `cube_1`
ORDER BY `cast_cube_1` ASC NULLS LAST
LIMIT 50000;
```

Model:

```
cube(`cube_1`, {
sql_table: `bi.table`,

data_source: `default`,

dimensions: {
activity_date: {
sql: `TIMESTAMP(date)`,
type: `time`,
},

},

measures: {

metric_revenue: {
sql: `revenue`,
type: `sum`
},
},
});
```

Cube Version: v1.1.5
Metabase Version: v0.50.30
Database: BigQuery

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.