Skip to content

[C++][Acero] Disallow null type expression being used for hash join residual filter #48268

@zanmato1984

Description

@zanmato1984

Describe the enhancement requested

Currently the supported type of residual filter expression is different between our two hash join implementations:
The HashJoin is assuming only boolean type, which is appropriate

const auto& mask_scalar = mask.scalar_as<BooleanScalar>();

The SwissJoin is more tolerant by exceptionally allowing a null type null (not the boolean type null), which I think is a mistake I made in #39487
if (filter_.IsNullLiteral() || filter_ == literal(false)) {

The current CI contains a test that explicitly exercises null type null, which is also to be revised:

TEST(HashJoin, FineGrainedResidualFilter) {

Component(s)

C++

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions