cube-js/cube · error
Unimplemented support for {:?}
Error message
Unimplemented support for {:?} What it means
df_data_type_by_column_type maps Cube ColumnType values to Arrow DataTypes. The catch-all `_ => panic!("Unimplemented support for {:?}")` fires when a column arrives with a ColumnType that has no mapping (e.g. certain Date/Decimal/HLL variants), so DataFrame construction cannot proceed.
Source
Thrown at rust/cubesql/cubesql/src/transport/ext.rs:426
if let Some(_) = self
.segments
.iter()
.find(|m| m.name.eq_ignore_ascii_case(member_name))
{
return Some(MemberType::Boolean);
}
None
}
}
pub fn df_data_type_by_column_type(column_type: ColumnType) -> DataType {
match column_type {
ColumnType::Int32 | ColumnType::Int64 | ColumnType::Int8 => DataType::Int64,
ColumnType::String => DataType::Utf8,
ColumnType::Double => DataType::Float64,
ColumnType::Boolean => DataType::Boolean,
ColumnType::Timestamp => DataType::Timestamp(TimeUnit::Nanosecond, None),
_ => panic!("Unimplemented support for {:?}", column_type),
}
}
View on GitHub (pinned to 7d981676b3)
Solutions
- Change the member's type in the data model to a supported one (number/string/boolean/time)
- Cast the expression in the query to a supported SQL type
- Upgrade CubeSQL so the ColumnType is implemented, or add a match arm in df_data_type_by_column_type
Example fix
// before (data model)
measures:
- name: revenue
sql: ${TABLE}.revenue
type: number
dimensions:
- name: day
sql: ${TABLE}.day
type: date
// after
dimensions:
- name: day
sql: ${TABLE}.day
type: time
timeDimension: true Defensive patterns
Strategy: type-guard
Validate before calling
fn is_supported_column_type(ct: &ColumnType) -> bool {
matches!(
ct,
ColumnType::Int8 | ColumnType::Int32 | ColumnType::Int64
| ColumnType::String | ColumnType::Double
| ColumnType::Boolean | ColumnType::Timestamp
)
}
// verify member column types before issuing load requests Type guard
fn is_supported_column_type(ct: &ColumnType) -> bool {
matches!(ct, ColumnType::Int8 | ColumnType::Int32 | ColumnType::Int64 | ColumnType::String | ColumnType::Double | ColumnType::Boolean | ColumnType::Timestamp)
} Prevention
- Type members only with supported Cube types (number/string/boolean/time)
- Cast date/decimal expressions to supported SQL types in the query layer
- Upgrade CubeSQL when new ColumnTypes are introduced on the Cube side
When it happens
Trigger: A load/transport query returns a column whose Cube ColumnType (from member definitions) is not one of Int8/16/32/64, String, Double, Boolean, Timestamp and is passed to df_data_type.
Common situations: Members typed as date, decimal, or special analytics types in the data model; schema drift after adding a new member type on the Cube side while the CubeSQL build is older.
Related errors
- Unsupported data type: {:?}
- This query doesnt have a plan, because it already has values
- Should be rewritten with UtcTimestamp function
- CreateExternalTable is not supported
- Explain is not supported
AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02).
Data as JSON: /api/errors/d1d822dbf2d39653.
Report an issue: GitHub.