Skip to content

Commit 6bdc91d

Browse files
committed
fix(cubesql): Unexpected response from Cube, Field "count" doesn't exist in row
1 parent 76dca65 commit 6bdc91d

File tree

1 file changed

+13
-4
lines changed
  • rust/cubesql/cubesql/src/compile/engine/df

1 file changed

+13
-4
lines changed

rust/cubesql/cubesql/src/compile/engine/df/scan.rs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,11 @@ impl ValueObject for JsonValueObject {
217217
self.rows[index]
218218
)));
219219
};
220-
let value = as_object.remove(field_name).ok_or(CubeError::user(format!(
221-
r#"Unexpected response from Cube, Field "{}" doesn't exist in row: {:?}"#,
222-
field_name, as_object
223-
)))?;
220+
let value = as_object
221+
.get(field_name)
222+
.unwrap_or(&Value::Null)
223+
// TODO expose strings as references to avoid clonning
224+
.clone();
224225
Ok(match value {
225226
Value::String(s) => FieldValue::String(s),
226227
Value::Number(n) => FieldValue::Number(n.as_f64().ok_or(
@@ -853,6 +854,7 @@ mod tests {
853854
#[tokio::test]
854855
async fn test_df_cube_scan_execute() {
855856
let schema = Arc::new(Schema::new(vec![
857+
Field::new("KibanaSampleDataEcommerce.count", DataType::Utf8, false),
856858
Field::new("KibanaSampleDataEcommerce.count", DataType::Utf8, false),
857859
Field::new(
858860
"KibanaSampleDataEcommerce.maxPrice",
@@ -924,6 +926,13 @@ mod tests {
924926
RecordBatch::try_new(
925927
schema.clone(),
926928
vec![
929+
Arc::new(StringArray::from(vec![
930+
None,
931+
Some("5"),
932+
Some("5"),
933+
None,
934+
None
935+
])) as ArrayRef,
927936
Arc::new(StringArray::from(vec![
928937
None,
929938
Some("5"),

0 commit comments

Comments
 (0)