blob: 5041d7fe32d5e7a9225d6d04d7f7d787fd7c1ab2 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[package]
name = "datafusion-comet-spark-expr"
description = "DataFusion expressions that emulate Apache Spark's behavior"
version = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
authors = { workspace = true }
readme = { workspace = true }
license = { workspace = true }
edition = { workspace = true }
[dependencies]
arrow = { workspace = true }
chrono = { workspace = true }
datafusion = { workspace = true }
datafusion-spark = { workspace = true }
num = { workspace = true }
regex = { workspace = true }
# preserve_order: needed for get_json_object to match Spark's JSON key ordering
serde_json = { version = "1.0", features = ["preserve_order"] }
serde = { version = "1.0", features = ["derive"] }
datafusion-comet-common = { workspace = true }
datafusion-comet-jni-bridge = { workspace = true }
jni = "0.22.4"
futures = { workspace = true }
twox-hash = "2.1.2"
rand = { workspace = true }
base64 = "0.23.0"
# shortest round-trip float formatting, used to match Spark's Double.toString-based
# float/double to decimal conversion
ryu = "1.0"
uuid = "1.23.3"
[dev-dependencies]
arrow = {workspace = true}
criterion = { version = "0.7", features = ["async", "async_tokio", "async_std"] }
rand = { workspace = true}
tokio = { version = "1", features = ["rt-multi-thread"] }
datafusion = { workspace = true, features = ["sql"] }
[lib]
name = "datafusion_comet_spark_expr"
path = "src/lib.rs"
[[bench]]
name = "cast_from_string"
harness = false
[[bench]]
name = "cast_string_to_date"
harness = false
[[bench]]
name = "cast_string_to_timestamp"
harness = false
[[bench]]
name = "cast_numeric"
harness = false
[[bench]]
name = "conditional"
harness = false
[[bench]]
name = "decimal_div"
harness = false
[[bench]]
name = "aggregate"
harness = false
[[bench]]
name = "bloom_filter_agg"
harness = false
[[bench]]
name = "padding"
harness = false
[[bench]]
name = "base64"
harness = false
[[bench]]
name = "unbase64"
harness = false
[[bench]]
name = "date_trunc"
harness = false
[[bench]]
name = "normalize_nan"
harness = false
[[bench]]
name = "sort_float_keys"
harness = false
[[bench]]
name = "to_csv"
harness = false
[[bench]]
name = "cast_int_to_timestamp"
harness = false
[[test]]
name = "test_udf_registration"
path = "tests/spark_expr_reg.rs"
[[bench]]
name = "cast_from_boolean"
harness = false
[[bench]]
name = "wide_decimal"
harness = false
[[bench]]
name = "cast_non_int_numeric_timestamp"
harness = false
[[bench]]
name = "map_sort"
harness = false
[[bench]]
name = "to_time"
harness = false
[[bench]]
name = "unhex"
harness = false
[[bench]]
name = "array_size"
harness = false
[[bench]]
name = "regexp_extract"
harness = false
[[bench]]
name = "parse_url"
harness = false
[[bench]]
name = "cast_binary_to_string"
harness = false
[[bench]]
name = "get_json_object"
harness = false
[[bench]]
name = "arrays_overlap"
harness = false
[[bench]]
name = "checked_arithmetic"
harness = false
[[bench]]
name = "to_json"
harness = false
[[bench]]
name = "floor"
harness = false
[[bench]]
name = "ceil"
harness = false
[[bench]]
name = "cast_float_to_string"
harness = false
[[bench]]
name = "date_trunc_array_fmt"
harness = false
[[bench]]
name = "cast_decimal_to_string"
harness = false
[[bench]]
name = "cast_float_to_decimal"
harness = false
[[bench]]
name = "decimal_rescale"
harness = false
[[bench]]
name = "check_overflow"
harness = false
[[bench]]
name = "round"
harness = false
[[bench]]
name = "unscaled_value"
harness = false
[[bench]]
name = "make_decimal"
harness = false
[[bench]]
name = "cast_int_to_decimal"
harness = false
[[bench]]
name = "log"
harness = false
[[bench]]
name = "pow"
harness = false
[[bench]]
name = "abs"
harness = false
[[bench]]
name = "isnan"
harness = false
[[bench]]
name = "rlike"
harness = false
[[bench]]
name = "create_named_struct"
harness = false
[[bench]]
name = "get_struct_field"
harness = false
[[bench]]
name = "from_json"
harness = false
[[bench]]
name = "modulo"
harness = false
[[bench]]
name = "levenshtein"
harness = false
[[bench]]
name = "negative"
harness = false
[[bench]]
name = "split"
harness = false
[[bench]]
name = "regexp_extract_all"
harness = false
[[bench]]
name = "contains"
harness = false
[[bench]]
name = "timestamp_trunc"
harness = false
[[bench]]
name = "unix_timestamp"
harness = false
[[bench]]
name = "from_utc_timestamp"
harness = false
[[bench]]
name = "to_utc_timestamp"
harness = false