cube-js/cube
Auf GitHub ansehenClickhouse: incorrect query when filtering on 'string' measure with 'equals' operator
Open
#7.328 geöffnet am 27. Okt. 2023
driver:clickhousehelp wanted
Repository-Metriken
- Stars
- (19.563 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 5T 16h) (138 gemergte PRs in 30 T)
Beschreibung
Describe the bug Cube generates incorrect query when measure of type 'string' is used as a filter with operator 'equals'. This applies to Clickhouse driver. Despite the measure being of type 'string', the generated HAVING clause tries to compare string value to the value of toFloat64(?).
To Reproduce Steps to reproduce the behavior:
- Use Clickhouse driver
- Use the Cube schema that I provided below
- Run the query with a filter on 'string' measure and operator 'equals' (see attached screenshots)
Expected behavior The correct query should be generated. Cube should not use the toFloat64 function.
Screenshots
Minimally reproducible Cube Schema
cube(`cubeA`, {
sql: `
select 1 as id, 100 as number
`,
dimensions: {
id: {
type: 'number',
sql: 'id',
primary_key: true
},
number: {
type: 'number',
sql: 'number'
}
},
measures: {
high_or_low: {
type: `string`,
sql: `CASE WHEN ${CUBE.number} > 100 THEN 'high' ELSE 'low' END`
},
},
});
Version: 0.34.10