Skip to content

Commit bae59b5

Browse files
kazantsev-maksimKazantsev Maksim
andauthored
chore: use datafusion impl of bit_count function (#3616)
* impl map_from_entries * Revert "impl map_from_entries" This reverts commit 768b3e9. * Use datafusion impl of bit_count * fix fmt * Resolve conflicts --------- Co-authored-by: Kazantsev Maksim <mn.kazantsev@gmail.com>
1 parent 0cc1e8c commit bae59b5

6 files changed

Lines changed: 7 additions & 231 deletions

File tree

native/core/src/execution/jni_api.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ use datafusion::{
4040
prelude::{SessionConfig, SessionContext},
4141
};
4242
use datafusion_comet_proto::spark_operator::Operator;
43+
use datafusion_spark::function::bitwise::bit_count::SparkBitCount;
4344
use datafusion_spark::function::bitwise::bit_get::SparkBitGet;
4445
use datafusion_spark::function::bitwise::bitwise_not::SparkBitwiseNot;
4546
use datafusion_spark::function::datetime::date_add::SparkDateAdd;
@@ -55,6 +56,7 @@ use datafusion_spark::function::math::hex::SparkHex;
5556
use datafusion_spark::function::math::width_bucket::SparkWidthBucket;
5657
use datafusion_spark::function::string::char::CharFunc;
5758
use datafusion_spark::function::string::concat::SparkConcat;
59+
use datafusion_spark::function::string::space::SparkSpace;
5860
use futures::poll;
5961
use futures::stream::StreamExt;
6062
use jni::objects::JByteBuffer;
@@ -401,6 +403,7 @@ fn register_datafusion_spark_function(session_ctx: &SessionContext) {
401403
session_ctx.register_udf(ScalarUDF::new_from_impl(MapFromEntries::default()));
402404
session_ctx.register_udf(ScalarUDF::new_from_impl(SparkCrc32::default()));
403405
session_ctx.register_udf(ScalarUDF::new_from_impl(SparkSpace::default()));
406+
session_ctx.register_udf(ScalarUDF::new_from_impl(SparkBitCount::default()));
404407
}
405408

406409
/// Prepares arrow arrays for output.
@@ -911,7 +914,6 @@ pub unsafe extern "system" fn Java_org_apache_comet_Native_logMemoryUsage(
911914

912915
use crate::execution::columnar_to_row::ColumnarToRowContext;
913916
use arrow::ffi::{from_ffi, FFI_ArrowArray, FFI_ArrowSchema};
914-
use datafusion_spark::function::string::space::SparkSpace;
915917

916918
/// Initialize a native columnar to row converter.
917919
///

native/spark-expr/src/bitwise_funcs/bitwise_count.rs

Lines changed: 0 additions & 193 deletions
This file was deleted.

native/spark-expr/src/bitwise_funcs/mod.rs

Lines changed: 0 additions & 20 deletions
This file was deleted.

native/spark-expr/src/comet_scalar_funcs.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ use crate::math_funcs::modulo_expr::spark_modulo;
2222
use crate::{
2323
spark_ceil, spark_decimal_div, spark_decimal_integral_div, spark_floor, spark_isnan,
2424
spark_lpad, spark_make_decimal, spark_read_side_padding, spark_round, spark_rpad, spark_unhex,
25-
spark_unscaled_value, EvalMode, SparkBitwiseCount, SparkContains, SparkDateDiff,
26-
SparkDateTrunc, SparkMakeDate, SparkSizeFunc,
25+
spark_unscaled_value, EvalMode, SparkContains, SparkDateDiff, SparkDateTrunc, SparkMakeDate,
26+
SparkSizeFunc,
2727
};
2828
use arrow::datatypes::DataType;
2929
use datafusion::common::{DataFusionError, Result as DataFusionResult};
@@ -191,7 +191,6 @@ pub fn create_comet_physical_fun_with_eval_mode(
191191

192192
fn all_scalar_functions() -> Vec<Arc<ScalarUDF>> {
193193
vec![
194-
Arc::new(ScalarUDF::new_from_impl(SparkBitwiseCount::default())),
195194
Arc::new(ScalarUDF::new_from_impl(SparkContains::default())),
196195
Arc::new(ScalarUDF::new_from_impl(SparkDateDiff::default())),
197196
Arc::new(ScalarUDF::new_from_impl(SparkDateTrunc::default())),

native/spark-expr/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ pub use predicate_funcs::{spark_isnan, RLike};
4141

4242
mod agg_funcs;
4343
mod array_funcs;
44-
mod bitwise_funcs;
4544
mod comet_scalar_funcs;
4645
pub mod hash_funcs;
4746

@@ -61,7 +60,6 @@ mod math_funcs;
6160
mod nondetermenistic_funcs;
6261

6362
pub use array_funcs::*;
64-
pub use bitwise_funcs::*;
6563
pub use conditional_funcs::*;
6664
pub use conversion_funcs::*;
6765
pub use nondetermenistic_funcs::*;

spark/src/main/scala/org/apache/comet/serde/bitwise.scala

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
package org.apache.comet.serde
2121

2222
import org.apache.spark.sql.catalyst.expressions._
23-
import org.apache.spark.sql.types.{ByteType, IntegerType, LongType}
23+
import org.apache.spark.sql.types.{ByteType, LongType}
2424

2525
import org.apache.comet.serde.QueryPlanSerde._
2626

@@ -140,14 +140,4 @@ object CometBitwiseGet extends CometExpressionSerde[BitwiseGet] {
140140
}
141141
}
142142

143-
object CometBitwiseCount extends CometExpressionSerde[BitwiseCount] {
144-
override def convert(
145-
expr: BitwiseCount,
146-
inputs: Seq[Attribute],
147-
binding: Boolean): Option[ExprOuterClass.Expr] = {
148-
val childProto = exprToProto(expr.child, inputs, binding)
149-
val bitCountScalarExpr =
150-
scalarFunctionExprToProtoWithReturnType("bit_count", IntegerType, false, childProto)
151-
optExprWithInfo(bitCountScalarExpr, expr, expr.children: _*)
152-
}
153-
}
143+
object CometBitwiseCount extends CometScalarFunction[BitwiseCount]("bit_count")

0 commit comments

Comments
 (0)