This is an automated email from the ASF dual-hosted git repository.
agrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/main by this push:
new d4a8d684 perf: Improve performance of CASE .. WHEN expressions (#703)
d4a8d684 is described below
commit d4a8d684c041985e1227061e503635c40bbd0205
Author: Andy Grove <[email protected]>
AuthorDate: Wed Jul 24 09:03:27 2024 -0600
perf: Improve performance of CASE .. WHEN expressions (#703)
* latest df
* revert changes to test
---
native/Cargo.lock | 142 +++++++++++++++++++++++++++++++-----------------------
native/Cargo.toml | 14 +++---
2 files changed, 89 insertions(+), 67 deletions(-)
diff --git a/native/Cargo.lock b/native/Cargo.lock
index af7951b8..fb4ce70f 100644
--- a/native/Cargo.lock
+++ b/native/Cargo.lock
@@ -102,9 +102,9 @@ checksum =
"69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
[[package]]
name = "arrayref"
-version = "0.3.7"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a"
[[package]]
name = "arrayvec"
@@ -347,7 +347,7 @@ checksum =
"6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -409,9 +409,9 @@ dependencies = [
[[package]]
name = "blake3"
-version = "1.5.1"
+version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52"
+checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210"
dependencies = [
"arrayref",
"arrayvec",
@@ -470,9 +470,9 @@ checksum =
"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.6.0"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952"
[[package]]
name = "cast"
@@ -482,13 +482,12 @@ checksum =
"37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
-version = "1.1.1"
+version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "907d8581360765417f8f2e0e7d602733bbed60156b4465b7617243689ef9b83d"
+checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
dependencies = [
"jobserver",
"libc",
- "once_cell",
]
[[package]]
@@ -791,11 +790,12 @@ dependencies = [
[[package]]
name = "dashmap"
-version = "5.5.3"
+version = "6.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+checksum = "804c8821570c3f8b70230c2ba75ffa5c0f9a4189b9a432b6656c536712acae28"
dependencies = [
"cfg-if",
+ "crossbeam-utils",
"hashbrown",
"lock_api",
"once_cell",
@@ -805,7 +805,7 @@ dependencies = [
[[package]]
name = "datafusion"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -825,6 +825,7 @@ dependencies = [
"datafusion-optimizer",
"datafusion-physical-expr",
"datafusion-physical-expr-common",
+ "datafusion-physical-optimizer",
"datafusion-physical-plan",
"datafusion-sql",
"futures",
@@ -930,7 +931,7 @@ dependencies = [
[[package]]
name = "datafusion-common"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -950,7 +951,7 @@ dependencies = [
[[package]]
name = "datafusion-common-runtime"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"tokio",
]
@@ -958,7 +959,7 @@ dependencies = [
[[package]]
name = "datafusion-execution"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"arrow",
"chrono",
@@ -978,7 +979,7 @@ dependencies = [
[[package]]
name = "datafusion-expr"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -996,9 +997,10 @@ dependencies = [
[[package]]
name = "datafusion-functions"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"arrow",
+ "arrow-buffer",
"base64",
"blake2",
"blake3",
@@ -1021,7 +1023,7 @@ dependencies = [
[[package]]
name = "datafusion-functions-aggregate"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -1038,7 +1040,7 @@ dependencies = [
[[package]]
name = "datafusion-optimizer"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"arrow",
"async-trait",
@@ -1057,7 +1059,7 @@ dependencies = [
[[package]]
name = "datafusion-physical-expr"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -1086,7 +1088,7 @@ dependencies = [
[[package]]
name = "datafusion-physical-expr-common"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -1096,10 +1098,21 @@ dependencies = [
"rand",
]
+[[package]]
+name = "datafusion-physical-optimizer"
+version = "40.0.0"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
+dependencies = [
+ "datafusion-common",
+ "datafusion-execution",
+ "datafusion-physical-expr",
+ "datafusion-physical-plan",
+]
+
[[package]]
name = "datafusion-physical-plan"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"ahash",
"arrow",
@@ -1132,7 +1145,7 @@ dependencies = [
[[package]]
name = "datafusion-sql"
version = "40.0.0"
-source =
"git+https://github.com/apache/datafusion.git?rev=40.0.0#4cae81363e29f011c6602a7a7a54e1aaee841046"
+source =
"git+https://github.com/apache/datafusion.git?rev=b6e55d7e9#b6e55d7e9cf17cfd1dcf633350cc6d205608ecd0"
dependencies = [
"arrow",
"arrow-array",
@@ -1325,7 +1338,7 @@ checksum =
"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -1505,9 +1518,9 @@ dependencies = [
[[package]]
name = "inferno"
-version = "0.11.19"
+version = "0.11.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "321f0f839cd44a4686e9504b0a62b4d69a50b62072144c71c68f5873c167b8d9"
+checksum = "7c77a3ae7d4761b9c64d2c030f70746ceb8cfba32dce0325a56792e0a4816c31"
dependencies = [
"ahash",
"indexmap",
@@ -1577,6 +1590,15 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
version = "1.0.11"
@@ -1798,9 +1820,9 @@ dependencies = [
[[package]]
name = "lz4"
-version = "1.25.0"
+version = "1.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6eab492fe7f8651add23237ea56dbf11b3c4ff762ab83d40a47f11433421f91"
+checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68"
dependencies = [
"libc",
"lz4-sys",
@@ -1808,9 +1830,9 @@ dependencies = [
[[package]]
name = "lz4-sys"
-version = "1.9.5"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3"
+checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868"
dependencies = [
"cc",
"libc",
@@ -1990,16 +2012,16 @@ dependencies = [
[[package]]
name = "object_store"
-version = "0.10.1"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbebfd32c213ba1907fa7a9c9138015a8de2b43e30c5aa45b18f7deb46786ad6"
+checksum = "e6da452820c715ce78221e8202ccc599b4a52f3e1eb3eedb487b680c81a8e3f3"
dependencies = [
"async-trait",
"bytes",
"chrono",
"futures",
"humantime",
- "itertools 0.12.1",
+ "itertools 0.13.0",
"parking_lot",
"percent-encoding",
"snafu",
@@ -2285,7 +2307,7 @@ dependencies = [
"itertools 0.12.1",
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -2368,9 +2390,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
-version = "0.5.2"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd"
+checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
dependencies = [
"bitflags 2.6.0",
]
@@ -2406,9 +2428,9 @@ checksum =
"7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
[[package]]
name = "rgb"
-version = "0.8.44"
+version = "0.8.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aee83dc281d5a3200d37b299acd13b81066ea126a7f16f0eae70fc9aed241d9"
+checksum = "ade4539f42266ded9e755c605bdddf546242b2c961b03b06a7375260788a0523"
dependencies = [
"bytemuck",
]
@@ -2507,7 +2529,7 @@ checksum =
"e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -2602,9 +2624,9 @@ checksum =
"1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
[[package]]
name = "sqlparser"
-version = "0.47.0"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "295e9930cd7a97e58ca2a070541a3ca502b17f5d1fa7157376d0fabd85324f25"
+checksum = "749780d15ad1ee15fd74f5f84b0665560b6abb913de744c2b69155770f9601da"
dependencies = [
"log",
"sqlparser_derive",
@@ -2618,7 +2640,7 @@ checksum =
"01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -2658,7 +2680,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -2703,9 +2725,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.70"
+version = "2.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16"
+checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
dependencies = [
"proc-macro2",
"quote",
@@ -2726,29 +2748,29 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.62"
+version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.62"
+version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
name = "thread-id"
-version = "4.2.1"
+version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b"
+checksum = "cfe8f25bbdd100db7e1d34acf7fd2dc59c4bf8f7483f505eaa7d4f12f76cc0ea"
dependencies = [
"libc",
"winapi",
@@ -2801,9 +2823,9 @@ checksum =
"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.38.0"
+version = "1.38.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
+checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df"
dependencies = [
"backtrace",
"bytes",
@@ -2820,7 +2842,7 @@ checksum =
"5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -2842,7 +2864,7 @@ checksum =
"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
@@ -2991,7 +3013,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
"wasm-bindgen-shared",
]
@@ -3013,7 +3035,7 @@ checksum =
"e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -3242,7 +3264,7 @@ checksum =
"fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.70",
+ "syn 2.0.72",
]
[[package]]
diff --git a/native/Cargo.toml b/native/Cargo.toml
index f62fd321..2b07b1e5 100644
--- a/native/Cargo.toml
+++ b/native/Cargo.toml
@@ -39,13 +39,13 @@ arrow-buffer = { version = "52.1.0" }
arrow-data = { version = "52.1.0" }
arrow-schema = { version = "52.1.0" }
parquet = { version = "52.1.0", default-features = false, features =
["experimental"] }
-datafusion-common = { git = "https://github.com/apache/datafusion.git", rev =
"40.0.0" }
-datafusion = { default-features = false, git =
"https://github.com/apache/datafusion.git", rev = "40.0.0", features =
["unicode_expressions", "crypto_expressions"] }
-datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev
= "40.0.0", features = ["crypto_expressions"] }
-datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev =
"40.0.0", default-features = false }
-datafusion-physical-plan = { git = "https://github.com/apache/datafusion.git",
rev = "40.0.0", default-features = false }
-datafusion-physical-expr-common = { git =
"https://github.com/apache/datafusion.git", rev = "40.0.0", default-features =
false }
-datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git",
rev = "40.0.0", default-features = false }
+datafusion-common = { git = "https://github.com/apache/datafusion.git", rev =
"b6e55d7e9" }
+datafusion = { default-features = false, git =
"https://github.com/apache/datafusion.git", rev = "b6e55d7e9", features =
["unicode_expressions", "crypto_expressions"] }
+datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev
= "b6e55d7e9", features = ["crypto_expressions"] }
+datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev =
"b6e55d7e9", default-features = false }
+datafusion-physical-plan = { git = "https://github.com/apache/datafusion.git",
rev = "b6e55d7e9", default-features = false }
+datafusion-physical-expr-common = { git =
"https://github.com/apache/datafusion.git", rev = "b6e55d7e9", default-features
= false }
+datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git",
rev = "b6e55d7e9", default-features = false }
datafusion-comet-spark-expr = { path = "spark-expr", version = "0.2.0" }
datafusion-comet-proto = { path = "proto", version = "0.2.0" }
chrono = { version = "0.4", default-features = false, features = ["clock"] }
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]