Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
39925fa
sum_int_native_support
coderfender Oct 17, 2025
77dd36f
wip_sum_tests
coderfender Oct 22, 2025
4e994c6
conf_bug_fix
coderfender Oct 24, 2025
79ef864
impl_try_mode
coderfender Oct 24, 2025
ef6dcae
impl_try_mode
coderfender Oct 24, 2025
6f166c6
squash_commits
coderfender Oct 28, 2025
bf33672
sum_ansi_mode_checks
coderfender Oct 29, 2025
d27dbe1
sum_ansi_mode_checks_fix_tests
coderfender Nov 5, 2025
534c111
sum_ansi_mode_checks_fix_tests
coderfender Nov 5, 2025
910a13f
sum_ansi_mode_checks_fix_tests
coderfender Nov 5, 2025
8fc3fbd
sum_ansi_mode_checks_fix_tests
coderfender Nov 5, 2025
0914d5d
sum_ansi_mode_checks_fix_tests
coderfender Nov 7, 2025
aa01b84
sum_ansi_mode_checks_fix_tests
coderfender Nov 7, 2025
008d85d
sum_ansi_mode_checks_fix_tests
coderfender Nov 7, 2025
13b7d68
sum_ansi_mode_checks_fix_tests_rebase_main
coderfender Nov 11, 2025
607c9de
sum_ansi_mode_checks_fix_tests_rebase_main
coderfender Nov 12, 2025
7cd491c
Merge branch 'main' into support_overflow_sum_function
coderfender Nov 20, 2025
5f3464b
sum_ansi_mode_checks_fix_tests_rebase_main
coderfender Nov 20, 2025
3f9aff7
sum_ansi_mode_checks_fix_tests_rebase_main
coderfender Nov 21, 2025
15ae7af
Merge branch 'main' into support_overflow_sum_function
coderfender Dec 5, 2025
ab5d779
merge_with_main
coderfender Dec 5, 2025
432704c
scalafix
coderfender Dec 5, 2025
01b354f
Merge branch 'main' into support_overflow_sum_function
coderfender Dec 13, 2025
126c053
rebase_main
coderfender Dec 14, 2025
794c87b
add_state_size_check_before_merge
coderfender Dec 18, 2025
5f17d00
fix_clippy_errors
coderfender Dec 19, 2025
b65602b
address_review_comments
coderfender Dec 22, 2025
b09002f
address_review_comments
coderfender Dec 23, 2025
117a331
Merge branch 'main' into support_overflow_sum_function
coderfender Dec 23, 2025
9effc42
address_review_comments
coderfender Dec 23, 2025
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
3 changes: 1 addition & 2 deletions docs/source/user-guide/latest/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,11 @@ Comet has the following limitations when reading Parquet files:

## ANSI Mode

Comet will fall back to Spark for the following expressions when ANSI mode is enabled. Thes expressions can be enabled by setting
Comet will fall back to Spark for the following expressions when ANSI mode is enabled. These expressions can be enabled by setting
`spark.comet.expression.EXPRNAME.allowIncompatible=true`, where `EXPRNAME` is the Spark expression class name. See
the [Comet Supported Expressions Guide](expressions.md) for more information on this configuration setting.

- Average
- Sum
- Cast (in some cases)

There is an [epic](https://github.com/apache/datafusion-comet/issues/313) where we are tracking the work to fully implement ANSI support.
Expand Down
7 changes: 7 additions & 0 deletions native/core/src/execution/planner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ use datafusion::{
use datafusion_comet_spark_expr::{
create_comet_physical_fun, create_comet_physical_fun_with_eval_mode, BinaryOutputStyle,
BloomFilterAgg, BloomFilterMightContain, EvalMode, SparkHour, SparkMinute, SparkSecond,
SumInteger,
};
use iceberg::expr::Bind;

Expand Down Expand Up @@ -1813,6 +1814,12 @@ impl PhysicalPlanner {
AggregateUDF::new_from_impl(SumDecimal::try_new(datatype, eval_mode)?);
AggregateExprBuilder::new(Arc::new(func), vec![child])
}
DataType::Int8 | DataType::Int16 | DataType::Int32 | DataType::Int64 => {
let eval_mode = from_protobuf_eval_mode(expr.eval_mode)?;
let func =
AggregateUDF::new_from_impl(SumInteger::try_new(datatype, eval_mode)?);
AggregateExprBuilder::new(Arc::new(func), vec![child])
}
_ => {
// cast to the result data type of SUM if necessary, we should not expect
// a cast failure since it should have already been checked at Spark side
Expand Down
2 changes: 2 additions & 0 deletions native/spark-expr/src/agg_funcs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ mod correlation;
mod covariance;
mod stddev;
mod sum_decimal;
mod sum_int;
mod variance;

pub use avg::Avg;
Expand All @@ -29,4 +30,5 @@ pub use correlation::Correlation;
pub use covariance::Covariance;
pub use stddev::Stddev;
pub use sum_decimal::SumDecimal;
pub use sum_int::SumInteger;
pub use variance::Variance;
Loading
Loading