Skip to content

[C++] INTERVAL_MONTH_DAY_NANO passes the Primitive() type matcher but many kernels do not handle the 128-bit width #36136

@felipecrv

Description

@felipecrv

Describe the bug, including details regarding any error messages, version, and platform.

Example: the "filter" function, when applied to a interval_month_data_nano input selects the primitive kernel and hits the DCHECK(false) << "Invalid values bit width"; assert.

const int bit_width = values.type->bit_width();
RETURN_NOT_OK(PreallocatePrimitiveArrayData(ctx, output_length, bit_width,
allocate_validity, out_arr));
switch (bit_width) {
case 1:
PrimitiveFilterImpl<BooleanType>(values, filter, null_selection, out_arr).Exec();
break;
case 8:
PrimitiveFilterImpl<UInt8Type>(values, filter, null_selection, out_arr).Exec();
break;
case 16:
PrimitiveFilterImpl<UInt16Type>(values, filter, null_selection, out_arr).Exec();
break;
case 32:
PrimitiveFilterImpl<UInt32Type>(values, filter, null_selection, out_arr).Exec();
break;
case 64:
PrimitiveFilterImpl<UInt64Type>(values, filter, null_selection, out_arr).Exec();
break;
default:
DCHECK(false) << "Invalid values bit width";
break;
}
return Status::OK();
}

Component(s)

C++

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions