junjunjd commented on code in PR #7901:
URL: https://github.com/apache/arrow-datafusion/pull/7901#discussion_r1381212662
##########
datafusion/common/src/scalar.rs:
##########
@@ -2481,119 +2529,136 @@ impl ScalarValue {
v.as_ref(),
*precision,
*scale,
- )
- .unwrap()
+ )?
}
ScalarValue::Boolean(val) => {
- eq_array_primitive!(array, index, BooleanArray, val)
+ eq_array_primitive!(array, index, BooleanArray, val)?
}
ScalarValue::Float32(val) => {
- eq_array_primitive!(array, index, Float32Array, val)
+ eq_array_primitive!(array, index, Float32Array, val)?
}
ScalarValue::Float64(val) => {
- eq_array_primitive!(array, index, Float64Array, val)
+ eq_array_primitive!(array, index, Float64Array, val)?
+ }
+ ScalarValue::Int8(val) => eq_array_primitive!(array, index,
Int8Array, val)?,
+ ScalarValue::Int16(val) => {
+ eq_array_primitive!(array, index, Int16Array, val)?
+ }
+ ScalarValue::Int32(val) => {
+ eq_array_primitive!(array, index, Int32Array, val)?
+ }
+ ScalarValue::Int64(val) => {
+ eq_array_primitive!(array, index, Int64Array, val)?
+ }
+ ScalarValue::UInt8(val) => {
+ eq_array_primitive!(array, index, UInt8Array, val)?
}
- ScalarValue::Int8(val) => eq_array_primitive!(array, index,
Int8Array, val),
- ScalarValue::Int16(val) => eq_array_primitive!(array, index,
Int16Array, val),
- ScalarValue::Int32(val) => eq_array_primitive!(array, index,
Int32Array, val),
- ScalarValue::Int64(val) => eq_array_primitive!(array, index,
Int64Array, val),
- ScalarValue::UInt8(val) => eq_array_primitive!(array, index,
UInt8Array, val),
ScalarValue::UInt16(val) => {
- eq_array_primitive!(array, index, UInt16Array, val)
+ eq_array_primitive!(array, index, UInt16Array, val)?
}
ScalarValue::UInt32(val) => {
- eq_array_primitive!(array, index, UInt32Array, val)
+ eq_array_primitive!(array, index, UInt32Array, val)?
}
ScalarValue::UInt64(val) => {
- eq_array_primitive!(array, index, UInt64Array, val)
+ eq_array_primitive!(array, index, UInt64Array, val)?
+ }
+ ScalarValue::Utf8(val) => {
+ eq_array_primitive!(array, index, StringArray, val)?
}
- ScalarValue::Utf8(val) => eq_array_primitive!(array, index,
StringArray, val),
ScalarValue::LargeUtf8(val) => {
- eq_array_primitive!(array, index, LargeStringArray, val)
+ eq_array_primitive!(array, index, LargeStringArray, val)?
}
ScalarValue::Binary(val) => {
- eq_array_primitive!(array, index, BinaryArray, val)
+ eq_array_primitive!(array, index, BinaryArray, val)?
}
ScalarValue::FixedSizeBinary(_, val) => {
- eq_array_primitive!(array, index, FixedSizeBinaryArray, val)
+ eq_array_primitive!(array, index, FixedSizeBinaryArray, val)?
}
ScalarValue::LargeBinary(val) => {
- eq_array_primitive!(array, index, LargeBinaryArray, val)
+ eq_array_primitive!(array, index, LargeBinaryArray, val)?
}
- ScalarValue::Fixedsizelist(..) => unimplemented!(),
- ScalarValue::List(_) => unimplemented!("ListArr"),
+ ScalarValue::Fixedsizelist(..) => {
+ return _not_impl_err!("FixedSizeList is not supported yet")
+ }
+ ScalarValue::List(_) => return _not_impl_err!("List is not
supported yet"),
ScalarValue::Date32(val) => {
- eq_array_primitive!(array, index, Date32Array, val)
+ eq_array_primitive!(array, index, Date32Array, val)?
}
ScalarValue::Date64(val) => {
- eq_array_primitive!(array, index, Date64Array, val)
+ eq_array_primitive!(array, index, Date64Array, val)?
}
ScalarValue::Time32Second(val) => {
- eq_array_primitive!(array, index, Time32SecondArray, val)
+ eq_array_primitive!(array, index, Time32SecondArray, val)?
}
ScalarValue::Time32Millisecond(val) => {
- eq_array_primitive!(array, index, Time32MillisecondArray, val)
+ eq_array_primitive!(array, index, Time32MillisecondArray, val)?
}
ScalarValue::Time64Microsecond(val) => {
- eq_array_primitive!(array, index, Time64MicrosecondArray, val)
+ eq_array_primitive!(array, index, Time64MicrosecondArray, val)?
}
ScalarValue::Time64Nanosecond(val) => {
- eq_array_primitive!(array, index, Time64NanosecondArray, val)
+ eq_array_primitive!(array, index, Time64NanosecondArray, val)?
}
ScalarValue::TimestampSecond(val, _) => {
- eq_array_primitive!(array, index, TimestampSecondArray, val)
+ eq_array_primitive!(array, index, TimestampSecondArray, val)?
}
ScalarValue::TimestampMillisecond(val, _) => {
- eq_array_primitive!(array, index, TimestampMillisecondArray,
val)
+ eq_array_primitive!(array, index, TimestampMillisecondArray,
val)?
}
ScalarValue::TimestampMicrosecond(val, _) => {
- eq_array_primitive!(array, index, TimestampMicrosecondArray,
val)
+ eq_array_primitive!(array, index, TimestampMicrosecondArray,
val)?
}
ScalarValue::TimestampNanosecond(val, _) => {
- eq_array_primitive!(array, index, TimestampNanosecondArray,
val)
+ eq_array_primitive!(array, index, TimestampNanosecondArray,
val)?
}
ScalarValue::IntervalYearMonth(val) => {
- eq_array_primitive!(array, index, IntervalYearMonthArray, val)
+ eq_array_primitive!(array, index, IntervalYearMonthArray, val)?
}
ScalarValue::IntervalDayTime(val) => {
- eq_array_primitive!(array, index, IntervalDayTimeArray, val)
+ eq_array_primitive!(array, index, IntervalDayTimeArray, val)?
}
ScalarValue::IntervalMonthDayNano(val) => {
- eq_array_primitive!(array, index, IntervalMonthDayNanoArray,
val)
+ eq_array_primitive!(array, index, IntervalMonthDayNanoArray,
val)?
}
ScalarValue::DurationSecond(val) => {
- eq_array_primitive!(array, index, DurationSecondArray, val)
+ eq_array_primitive!(array, index, DurationSecondArray, val)?
}
ScalarValue::DurationMillisecond(val) => {
- eq_array_primitive!(array, index, DurationMillisecondArray,
val)
+ eq_array_primitive!(array, index, DurationMillisecondArray,
val)?
}
ScalarValue::DurationMicrosecond(val) => {
- eq_array_primitive!(array, index, DurationMicrosecondArray,
val)
+ eq_array_primitive!(array, index, DurationMicrosecondArray,
val)?
}
ScalarValue::DurationNanosecond(val) => {
- eq_array_primitive!(array, index, DurationNanosecondArray, val)
+ eq_array_primitive!(array, index, DurationNanosecondArray,
val)?
+ }
+ ScalarValue::Struct(_, _) => {
+ return _not_impl_err!("Struct is not supported yet")
}
- ScalarValue::Struct(_, _) => unimplemented!(),
ScalarValue::Dictionary(key_type, v) => {
let (values_array, values_index) = match key_type.as_ref() {
- DataType::Int8 => get_dict_value::<Int8Type>(array, index),
- DataType::Int16 => get_dict_value::<Int16Type>(array,
index),
- DataType::Int32 => get_dict_value::<Int32Type>(array,
index),
- DataType::Int64 => get_dict_value::<Int64Type>(array,
index),
- DataType::UInt8 => get_dict_value::<UInt8Type>(array,
index),
- DataType::UInt16 => get_dict_value::<UInt16Type>(array,
index),
- DataType::UInt32 => get_dict_value::<UInt32Type>(array,
index),
- DataType::UInt64 => get_dict_value::<UInt64Type>(array,
index),
- _ => unreachable!("Invalid dictionary keys type: {:?}",
key_type),
Review Comment:
See previous
[comment](https://github.com/apache/arrow-datafusion/pull/7901/files#r1381195593).
--
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]