[package]
name = "datafusion-functions"
description = "Function packages for the DataFusion query engine"
keywords = ["datafusion", "logical", "plan", "expressions"]
readme = "README.md"
version = { workspace = true }
edition = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
license = { workspace = true }
authors = { workspace = true }
rust-version = { workspace = true }
[lints]
workspace = true
[features]
core_expressions = []
crypto_expressions = ["md-5", "sha2", "blake2", "blake3"]
datetime_expressions = []
default = [
"core_expressions",
"datetime_expressions",
"encoding_expressions",
"math_expressions",
"regex_expressions",
"string_expressions",
"unicode_expressions",
]
encoding_expressions = ["base64", "hex"]
math_expressions = []
regex_expressions = ["regex"]
string_expressions = ["uuid"]
unicode_expressions = ["hashbrown", "unicode-segmentation"]
[lib]
name = "datafusion_functions"
path = "src/lib.rs"
[dependencies]
arrow = { workspace = true }
arrow-buffer = { workspace = true }
base64 = { version = "0.22", optional = true }
blake2 = { version = "^0.10.2", optional = true }
blake3 = { version = "1.0", optional = true }
chrono = { workspace = true }
datafusion-common = { workspace = true }
datafusion-execution = { workspace = true }
datafusion-expr = { workspace = true }
hashbrown = { workspace = true, optional = true }
hex = { version = "0.4", optional = true }
itertools = { workspace = true }
log = { workspace = true }
md-5 = { version = "^0.10.0", optional = true }
rand = { workspace = true }
regex = { workspace = true, optional = true }
sha2 = { version = "^0.10.1", optional = true }
unicode-segmentation = { version = "^1.7.1", optional = true }
uuid = { version = "1.7", features = ["v4"], optional = true }
[dev-dependencies]
arrow = { workspace = true, features = ["test_utils"] }
criterion = "0.5"
rand = { workspace = true }
rstest = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt", "sync"] }
[[bench]]
harness = false
name = "concat"
required-features = ["string_expressions"]
[[bench]]
harness = false
name = "to_timestamp"
required-features = ["datetime_expressions"]
[[bench]]
harness = false
name = "regx"
required-features = ["regex_expressions"]
[[bench]]
harness = false
name = "make_date"
required-features = ["datetime_expressions"]
[[bench]]
harness = false
name = "nullif"
required-features = ["core_expressions"]
[[bench]]
harness = false
name = "date_bin"
required-features = ["datetime_expressions"]
[[bench]]
harness = false
name = "to_char"
required-features = ["datetime_expressions"]
[[bench]]
harness = false
name = "substr_index"
required-features = ["unicode_expressions"]
[[bench]]
harness = false
name = "ltrim"
required-features = ["string_expressions"]
[[bench]]
harness = false
name = "lower"
required-features = ["string_expressions"]
[[bench]]
harness = false
name = "upper"
required-features = ["string_expressions"]