Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 6 additions & 10 deletions datafusion/functions-aggregate/src/array_agg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ use datafusion_common::cast::as_list_array;
use datafusion_common::utils::{
compare_rows, get_row_at_idx, take_function_args, SingleRowListArrayBuilder,
};
use datafusion_common::{exec_err, internal_err, Result, ScalarValue};
use datafusion_common::{
assert_eq_or_internal_err, exec_err, DataFusionError, Result, ScalarValue,
};
use datafusion_expr::function::{AccumulatorArgs, StateFieldsArgs};
use datafusion_expr::utils::format_state_name;
use datafusion_expr::{
Expand Down Expand Up @@ -319,9 +321,7 @@ impl Accumulator for ArrayAggAccumulator {
return Ok(());
}

if values.len() != 1 {
return internal_err!("expects single batch");
}
assert_eq_or_internal_err!(values.len(), 1, "expects single batch");

let val = &values[0];
let nulls = if self.ignore_nulls {
Expand Down Expand Up @@ -349,9 +349,7 @@ impl Accumulator for ArrayAggAccumulator {
return Ok(());
}

if states.len() != 1 {
return internal_err!("expects single state");
}
assert_eq_or_internal_err!(states.len(), 1, "expects single state");

let list_arr = as_list_array(&states[0])?;

Expand Down Expand Up @@ -472,9 +470,7 @@ impl Accumulator for DistinctArrayAggAccumulator {
return Ok(());
}

if states.len() != 1 {
return internal_err!("expects single state");
}
assert_eq_or_internal_err!(states.len(), 1, "expects single state");

states[0]
.as_list::<i32>()
Expand Down
15 changes: 8 additions & 7 deletions datafusion/functions-aggregate/src/median.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ use arrow::datatypes::{
};

use datafusion_common::{
internal_datafusion_err, internal_err, DataFusionError, Result, ScalarValue,
assert_eq_or_internal_err, internal_datafusion_err, DataFusionError, Result,
ScalarValue,
};
use datafusion_expr::function::StateFieldsArgs;
use datafusion_expr::{
Expand Down Expand Up @@ -189,12 +190,12 @@ impl AggregateUDFImpl for Median {
args: AccumulatorArgs,
) -> Result<Box<dyn GroupsAccumulator>> {
let num_args = args.exprs.len();
if num_args != 1 {
return internal_err!(
"median should only have 1 arg, but found num args:{}",
args.exprs.len()
);
}
assert_eq_or_internal_err!(
num_args,
1,
"median should only have 1 arg, but found num args:{}",
num_args
);

let dt = args.expr_fields[0].data_type().clone();

Expand Down
22 changes: 13 additions & 9 deletions datafusion/functions-aggregate/src/nth_value.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ use arrow::array::{new_empty_array, ArrayRef, AsArray, StructArray};
use arrow::datatypes::{DataType, Field, FieldRef, Fields};

use datafusion_common::utils::{get_row_at_idx, SingleRowListArrayBuilder};
use datafusion_common::{exec_err, internal_err, not_impl_err, Result, ScalarValue};
use datafusion_common::{
assert_or_internal_err, exec_err, not_impl_err, DataFusionError, Result, ScalarValue,
};
use datafusion_expr::function::{AccumulatorArgs, StateFieldsArgs};
use datafusion_expr::utils::format_state_name;
use datafusion_expr::{
Expand Down Expand Up @@ -206,10 +208,11 @@ impl TrivialNthValueAccumulator {
/// Create a new order-insensitive NTH_VALUE accumulator based on the given
/// item data type.
pub fn try_new(n: i64, datatype: &DataType) -> Result<Self> {
if n == 0 {
// n cannot be 0
return internal_err!("Nth value indices are 1 based. 0 is invalid index");
}
// n cannot be 0
assert_or_internal_err!(
n != 0,
"Nth value indices are 1 based. 0 is invalid index"
);
Ok(Self {
n,
values: VecDeque::new(),
Expand Down Expand Up @@ -339,10 +342,11 @@ impl NthValueAccumulator {
ordering_dtypes: &[DataType],
ordering_req: LexOrdering,
) -> Result<Self> {
if n == 0 {
// n cannot be 0
return internal_err!("Nth value indices are 1 based. 0 is invalid index");
}
// n cannot be 0
assert_or_internal_err!(
n != 0,
"Nth value indices are 1 based. 0 is invalid index"
);
let mut datatypes = vec![datatype.clone()];
datatypes.extend(ordering_dtypes.iter().cloned());
Ok(Self {
Expand Down
15 changes: 8 additions & 7 deletions datafusion/functions-aggregate/src/percentile_cont.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ use arrow::{
use arrow::array::ArrowNativeTypeOp;

use datafusion_common::{
internal_datafusion_err, internal_err, plan_err, DataFusionError, Result, ScalarValue,
assert_eq_or_internal_err, internal_datafusion_err, plan_err, DataFusionError,
Result, ScalarValue,
};
use datafusion_expr::expr::{AggregateFunction, Sort};
use datafusion_expr::function::{AccumulatorArgs, StateFieldsArgs};
Expand Down Expand Up @@ -303,12 +304,12 @@ impl AggregateUDFImpl for PercentileCont {
args: AccumulatorArgs,
) -> Result<Box<dyn GroupsAccumulator>> {
let num_args = args.exprs.len();
if num_args != 2 {
return internal_err!(
"percentile_cont should have 2 args, but found num args:{}",
args.exprs.len()
);
}
assert_eq_or_internal_err!(
num_args,
2,
"percentile_cont should have 2 args, but found num args:{}",
num_args
);

let percentile = validate_percentile_expr(&args.exprs[1], "PERCENTILE_CONT")?;

Expand Down