datafusion icon indicating copy to clipboard operation
datafusion copied to clipboard

Regression with `coalesce` expr_fn function: can't take multiple arguments

Open alamb opened this issue 1 year ago • 0 comments

Describe the bug

Previously it could be called with multiple expressions like coalsce(vec![e1, e2]) however now it seems to require a single expressions

To Reproduce

Try to run coalsce(vec![e1, e2])

  --> iox_query_influxql/src/plan/planner_rewrite_expression.rs:327:58
    |
327 |                         Operator::Divide => yes(coalesce(vec![expr, lit(0_f64)])),
    |                                                 -------- ^^^^^^^^^^^^^^^^^^^^^^ expected `Expr`, found `Vec<Expr>`
    |                                                 |
    |                                                 arguments to this function are incorrect
    |
    = note: expected enum `datafusion::prelude::Expr`
             found struct `std::vec::Vec<datafusion::prelude::Expr>`

Expected behavior

We should be able to call it with multiple arguments

Additional context

@appletreeisyellow found this while updating InfluxDB IOx to the latest DataFusion version and identified the upstream PR https://github.com/apache/datafusion/pull/10201 / apache/datafusion@fe268bc brought in a regression.

alamb avatar Apr 30 '24 19:04 alamb