matthewmturner commented on issue #1610:
URL:
https://github.com/apache/arrow-datafusion/issues/1610#issuecomment-1018693672
@alamb im not sure we can remove the type dispatch in
`binary_primitive_array_op_scalar` since its used for other operations such as
add / multiply / etc. `binary_array_op_scalar` is used for all the operators
we added `xx_dyn_scalar` kernels for as it handles primitive, utf8, decimal,
timestamps, dates, etc. It's my understanding that that is actually the macro
that will need to be updated (or new one to take its place that uses dyn scalar
kernels).
Im still playing with it but I was thinking of adding new functions like
`call_dyn_cmp_scalar`, `call_dyn_cmp_utf8_scalar`, etc (drawing inspirating
from @liukun4515 in #1475) and then type dispatching based on if the data type
of the array / data type of the values in dictionary array. Roughly something
like:
```
if primitive_or_dict_vals_primitive {
call_dyn_cmp_scalar(array, scalar, op)
} else if string_or_dict_vals_string {
call_dyn_cmp_utf8_scalar(array, scalar, op)
} else {
// Existing implementation for other types
}
```
Does this make sense?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]