Skip to content

eq operator doesn't work on binary data #3117

@ozgrakkurt

Description

@ozgrakkurt

Hello,

I am trying to use datafusion to query multiple parquet files.

Comparing a binary column with binary literal using eq operator doesn't work.

I expect this to just work since eq works on strings.

I have this code:

let address = prefix_hex::decode::<Vec<u8>>(&self.address).map_err(Error::InvalidHexInAddress)?;
let mut expr = col("log.address").eq(lit(address));

and I get this error:

failed to execute query:\nArrow error: External error: Arrow error: External error: Execution error: Arrow error: External error: Arrow error: External error: Execution error: Arrow error: External error:
Internal error: Data type Binary(\"161,250,161,19,203,229,52,54,223,40,255,10,238,84,39,92,19,180,9,117\") not supported for scalar operation 'eq' on dyn array.
This was likely caused by a bug in DataFusion's code and we would welcome that you file an bug report in our issue tracker

I tracked the error message to here

Shouldn't there be a match arm for Binary data?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions