Pre-aggregations containing nullable decimal measures fail in Athena Driver
- Dominant language
- Rust
- Stars
- 20.8k
- Forks
- 2.1k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 181
Description
**Describe the bug**
I'm trying to pre-aggregate a measure that contains a decimal value, while other measures can be NULL, and I'm having the following error in pre-aggregation:
```
Error: Error during create table: CREATE TABLE prod_pre_aggregations.fct_my_table_name_main20241001_asdfghjkl ('list of fields and data types') WITH (input_format = 'csv_no_header', delimiter = '^A', build_range_end = '2024-10-31T23:59:59.999') LOCATION ?, ?: Create table failed: Can't parse '\N
4010' column value for 'fct_user_progress_contents__value_workload_total_completed' column: Internal: invalid float literal
at WebSocket. (/node_modules/@cubejs-backend/cubestore-driver/src/WebSocketConnection.ts:121:30)
at WebSocket.emit (node:events:519:28)
at Receiver.receiverOnMessage (/node_modules/ws/lib/websocket.js:1008:20)
at Receiver.emit (node:events:519:28)
at Receiver.dataMessage (/node_modules/ws/lib/receiver.js:502:14)
at Receiver.getData (/node_modules/ws/lib/receiver.js:435:17)
at Receiver.startLoop (/node_modules/ws/lib/receiver.js:143:22)
at Receiver._write (/node_modules/ws/lib/receiver.js:78:10)
at writeOrBuffer (node:internal/streams/writable:570:12)
at _write (node:internal/streams/writable:499:10)
at Receiver.Writable.write (node:internal/streams/writable:508:10)
at TLSSocket.socketOnData (/node_modules/ws/lib/websocket.js:1102:35)
at TLSSocket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at TLSSocket.Readable.push (node:internal/streams/readable:390:5)
at TLSWrap.onStreamRead (node:internal/stream_base_commons:191:23)
```
**To Reproduce**
Steps to reproduce the behavior:
1. Create a cube yml with the following metrics:
```lml
- name: value_workload_total
sql: 1000 * ROUND(value_workload_minutes/cast(value_workload_minutes_count as double), 3)
type: sum
- name: value_workload_total_completed
sql: 1000 * ROUND(value_workload_minutes/cast(value_workload_minutes_count as double), 3)
type: sum
filters:
- sql: flag_enrollment_completed_pathway = TRUE
```
3. Put both in pre aggregation
4. Run pre aggregation
**Expected behavior**
I expect the metric to pre aggregate
**Version:**
[e.g. 1.0.5]
**Additional context**
I found a similar issue here: https://github.com/cube-js/cube/issues/6693 for snowflake driver, I wonder how to solve it for athena
Contributor guide
Assessment
This issue has not been assessed yet.