yjshen commented on code in PR #2481:
URL: https://github.com/apache/arrow-datafusion/pull/2481#discussion_r867999608
##########
datafusion/physical-expr/src/expressions/binary.rs:
##########
@@ -657,17 +657,15 @@ macro_rules! compute_utf8_op_scalar {
/// Invoke a compute kernel on a data array and a scalar value
macro_rules! compute_utf8_op_dyn_scalar {
- ($LEFT:expr, $RIGHT:expr, $OP:ident) => {{
+ ($LEFT:expr, $RIGHT:expr, $OP:ident, $OP_TYPE:expr) => {{
if let Some(string_value) = $RIGHT {
Ok(Arc::new(paste::expr! {[<$OP _dyn_utf8_scalar>]}(
$LEFT,
&string_value,
)?))
} else {
- Err(DataFusionError::Internal(format!(
- "compute_utf8_op_scalar for '{}' failed with literal 'none'
value",
- stringify!($OP),
- )))
+ // when the $RIGHT is a NULL, generate a NULL array of $OP_TYPE
+ Ok(Arc::new(new_null_array($OP_TYPE, $LEFT.len())))
Review Comment:
After checking Postgres and MySQL, I found I'm wrong on the expected
behavior while comparing columns with NULL using `<` `>` ..., they will return
NULL in all cases. I was expecting to apply null first or null last while
comparing column with NULL, so always true or always false at the first time.
--
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]