From 1e017bcc640a258e44e7d90de263c6db409d4e37 Mon Sep 17 00:00:00 2001 From: comphead Date: Wed, 23 Jul 2025 08:09:10 -0700 Subject: [PATCH 01/12] chore: migrate to DF 49.0.0 --- native/Cargo.lock | 573 ++++++++++++------ native/Cargo.toml | 10 +- native/core/src/execution/operators/filter.rs | 23 +- native/core/src/execution/planner.rs | 12 +- .../src/execution/shuffle/shuffle_writer.rs | 4 +- 5 files changed, 421 insertions(+), 201 deletions(-) diff --git a/native/Cargo.lock b/native/Cargo.lock index b6e4c0e0f7..2719fe1654 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -244,6 +244,7 @@ dependencies = [ "arrow-schema", "flatbuffers", "lz4_flex", + "zstd", ] [[package]] @@ -1263,9 +1264,8 @@ dependencies = [ [[package]] name = "datafusion" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6cb8c2c81eada072059983657d6c9caf3fddefc43b4a65551d243253254a96" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "arrow-ipc", @@ -1275,23 +1275,23 @@ dependencies = [ "chrono", "datafusion-catalog", "datafusion-catalog-listing", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", "datafusion-datasource", "datafusion-datasource-csv", "datafusion-datasource-json", "datafusion-datasource-parquet", - "datafusion-execution", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-functions", - "datafusion-functions-aggregate", - "datafusion-functions-nested", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-functions 49.0.0", + "datafusion-functions-aggregate 49.0.0", + "datafusion-functions-nested 49.0.0", "datafusion-functions-table", "datafusion-functions-window", "datafusion-optimizer", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-optimizer", "datafusion-physical-plan", "datafusion-session", @@ -1313,19 +1313,18 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7be8d1b627843af62e447396db08fe1372d882c0eb8d0ea655fd1fbc33120ee" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "dashmap", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution", - "datafusion-expr", - "datafusion-physical-expr", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-physical-expr 49.0.0", "datafusion-physical-plan", "datafusion-session", "datafusion-sql", @@ -1339,19 +1338,18 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ab16c5ae43f65ee525fc493ceffbc41f40dee38b01f643dfcfc12959e92038" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "datafusion-catalog", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-datasource", - "datafusion-execution", - "datafusion-expr", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1376,7 +1374,7 @@ dependencies = [ "datafusion-comet-objectstore-hdfs", "datafusion-comet-proto", "datafusion-comet-spark-expr", - "datafusion-functions-nested", + "datafusion-functions-nested 48.0.0", "datafusion-spark", "futures", "hex", @@ -1464,6 +1462,27 @@ dependencies = [ "indexmap", "libc", "log", + "paste", + "sqlparser", + "tokio", + "web-time", +] + +[[package]] +name = "datafusion-common" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "ahash", + "arrow", + "arrow-ipc", + "base64", + "chrono", + "half", + "hashbrown 0.14.5", + "indexmap", + "libc", + "log", "object_store", "parquet", "paste", @@ -1474,9 +1493,8 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16015071202d6133bc84d72756176467e3e46029f3ce9ad2cb788f9b1ff139b2" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "futures", "log", @@ -1485,20 +1503,19 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b77523c95c89d2a7eb99df14ed31390e04ab29b43ff793e562bdc1716b07e17b" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "bytes", "chrono", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", - "datafusion-execution", - "datafusion-expr", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1515,21 +1532,20 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d25c5e2c0ebe8434beeea997b8e88d55b3ccc0d19344293f2373f65bc524fc" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "bytes", "datafusion-catalog", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution", - "datafusion-expr", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1540,21 +1556,20 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc6959e1155741ab35369e1dc7673ba30fc45ed568fad34c01b7cb1daeb4d4c" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "bytes", "datafusion-catalog", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution", - "datafusion-expr", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1565,24 +1580,24 @@ dependencies = [ [[package]] name = "datafusion-datasource-parquet" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a6afdfe358d70f4237f60eaef26ae5a1ce7cb2c469d02d5fc6c7fd5d84e58b" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "bytes", "datafusion-catalog", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution", - "datafusion-expr", - "datafusion-functions-aggregate", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-functions-aggregate 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-optimizer", "datafusion-physical-plan", + "datafusion-pruning", "datafusion-session", "futures", "itertools 0.14.0", @@ -1600,6 +1615,11 @@ version = "48.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bcd8a3e3e3d02ea642541be23d44376b5d5c37c2938cce39b3873cdf7186eea" +[[package]] +name = "datafusion-doc" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" + [[package]] name = "datafusion-execution" version = "48.0.0" @@ -1608,8 +1628,26 @@ checksum = "670da1d45d045eee4c2319b8c7ea57b26cf48ab77b630aaa50b779e406da476a" dependencies = [ "arrow", "dashmap", - "datafusion-common", - "datafusion-expr", + "datafusion-common 48.0.0", + "datafusion-expr 48.0.0", + "futures", + "log", + "object_store", + "parking_lot", + "rand 0.9.1", + "tempfile", + "url", +] + +[[package]] +name = "datafusion-execution" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "arrow", + "dashmap", + "datafusion-common 49.0.0", + "datafusion-expr 49.0.0", "futures", "log", "object_store", @@ -1627,12 +1665,32 @@ checksum = "b3a577f64bdb7e2cc4043cd97f8901d8c504711fde2dbcb0887645b00d7c660b" dependencies = [ "arrow", "chrono", - "datafusion-common", - "datafusion-doc", - "datafusion-expr-common", - "datafusion-functions-aggregate-common", - "datafusion-functions-window-common", - "datafusion-physical-expr-common", + "datafusion-common 48.0.0", + "datafusion-doc 48.0.0", + "datafusion-expr-common 48.0.0", + "datafusion-functions-aggregate-common 48.0.0", + "datafusion-functions-window-common 48.0.0", + "datafusion-physical-expr-common 48.0.0", + "indexmap", + "paste", + "serde_json", + "sqlparser", +] + +[[package]] +name = "datafusion-expr" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "arrow", + "async-trait", + "chrono", + "datafusion-common 49.0.0", + "datafusion-doc 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-functions-aggregate-common 49.0.0", + "datafusion-functions-window-common 49.0.0", + "datafusion-physical-expr-common 49.0.0", "indexmap", "paste", "serde_json", @@ -1646,7 +1704,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b7916806ace3e9f41884f230f7f38ebf0e955dfbd88266da1826f29a0b9a6a" dependencies = [ "arrow", - "datafusion-common", + "datafusion-common 48.0.0", + "indexmap", + "itertools 0.14.0", + "paste", +] + +[[package]] +name = "datafusion-expr-common" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "arrow", + "datafusion-common 49.0.0", "indexmap", "itertools 0.14.0", "paste", @@ -1657,6 +1727,30 @@ name = "datafusion-functions" version = "48.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fb31c9dc73d3e0c365063f91139dc273308f8a8e124adda9898db8085d68357" +dependencies = [ + "arrow", + "arrow-buffer", + "base64", + "chrono", + "datafusion-common 48.0.0", + "datafusion-doc 48.0.0", + "datafusion-execution 48.0.0", + "datafusion-expr 48.0.0", + "datafusion-expr-common 48.0.0", + "datafusion-macros 48.0.0", + "hex", + "itertools 0.14.0", + "log", + "rand 0.9.1", + "regex", + "unicode-segmentation", + "uuid", +] + +[[package]] +name = "datafusion-functions" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "arrow-buffer", @@ -1664,12 +1758,12 @@ dependencies = [ "blake2", "blake3", "chrono", - "datafusion-common", - "datafusion-doc", - "datafusion-execution", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-macros", + "datafusion-common 49.0.0", + "datafusion-doc 49.0.0", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-macros 49.0.0", "hex", "itertools 0.14.0", "log", @@ -1689,14 +1783,34 @@ checksum = "ebb72c6940697eaaba9bd1f746a697a07819de952b817e3fb841fb75331ad5d4" dependencies = [ "ahash", "arrow", - "datafusion-common", - "datafusion-doc", - "datafusion-execution", - "datafusion-expr", - "datafusion-functions-aggregate-common", - "datafusion-macros", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-common 48.0.0", + "datafusion-doc 48.0.0", + "datafusion-execution 48.0.0", + "datafusion-expr 48.0.0", + "datafusion-functions-aggregate-common 48.0.0", + "datafusion-macros 48.0.0", + "datafusion-physical-expr 48.0.0", + "datafusion-physical-expr-common 48.0.0", + "half", + "log", + "paste", +] + +[[package]] +name = "datafusion-functions-aggregate" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "ahash", + "arrow", + "datafusion-common 49.0.0", + "datafusion-doc 49.0.0", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-functions-aggregate-common 49.0.0", + "datafusion-macros 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "half", "log", "paste", @@ -1710,9 +1824,21 @@ checksum = "d7fdc54656659e5ecd49bf341061f4156ab230052611f4f3609612a0da259696" dependencies = [ "ahash", "arrow", - "datafusion-common", - "datafusion-expr-common", - "datafusion-physical-expr-common", + "datafusion-common 48.0.0", + "datafusion-expr-common 48.0.0", + "datafusion-physical-expr-common 48.0.0", +] + +[[package]] +name = "datafusion-functions-aggregate-common" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "ahash", + "arrow", + "datafusion-common 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-physical-expr-common 49.0.0", ] [[package]] @@ -1723,14 +1849,35 @@ checksum = "fad94598e3374938ca43bca6b675febe557e7a14eb627d617db427d70d65118b" dependencies = [ "arrow", "arrow-ord", - "datafusion-common", - "datafusion-doc", - "datafusion-execution", - "datafusion-expr", - "datafusion-functions", - "datafusion-functions-aggregate", - "datafusion-macros", - "datafusion-physical-expr-common", + "datafusion-common 48.0.0", + "datafusion-doc 48.0.0", + "datafusion-execution 48.0.0", + "datafusion-expr 48.0.0", + "datafusion-functions 48.0.0", + "datafusion-functions-aggregate 48.0.0", + "datafusion-macros 48.0.0", + "datafusion-physical-expr-common 48.0.0", + "itertools 0.14.0", + "log", + "paste", +] + +[[package]] +name = "datafusion-functions-nested" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "arrow", + "arrow-ord", + "datafusion-common 49.0.0", + "datafusion-doc 49.0.0", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-functions 49.0.0", + "datafusion-functions-aggregate 49.0.0", + "datafusion-functions-aggregate-common 49.0.0", + "datafusion-macros 49.0.0", + "datafusion-physical-expr-common 49.0.0", "itertools 0.14.0", "log", "paste", @@ -1738,15 +1885,14 @@ dependencies = [ [[package]] name = "datafusion-functions-table" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de2fc6c2946da5cab8364fb28b5cac3115f0f3a87960b235ed031c3f7e2e639b" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "datafusion-catalog", - "datafusion-common", - "datafusion-expr", + "datafusion-common 49.0.0", + "datafusion-expr 49.0.0", "datafusion-physical-plan", "parking_lot", "paste", @@ -1754,18 +1900,17 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5746548a8544870a119f556543adcd88fe0ba6b93723fe78ad0439e0fbb8b4" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", - "datafusion-common", - "datafusion-doc", - "datafusion-expr", - "datafusion-functions-window-common", - "datafusion-macros", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-common 49.0.0", + "datafusion-doc 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-functions-window-common 49.0.0", + "datafusion-macros 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "log", "paste", ] @@ -1776,8 +1921,17 @@ version = "48.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbe9404382cda257c434f22e13577bee7047031dfdb6216dd5e841b9465e6fe" dependencies = [ - "datafusion-common", - "datafusion-physical-expr-common", + "datafusion-common 48.0.0", + "datafusion-physical-expr-common 48.0.0", +] + +[[package]] +name = "datafusion-functions-window-common" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "datafusion-common 49.0.0", + "datafusion-physical-expr-common 49.0.0", ] [[package]] @@ -1786,22 +1940,32 @@ version = "48.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8dce50e3b637dab0d25d04d2fe79dfdca2b257eabd76790bffd22c7f90d700c8" dependencies = [ - "datafusion-expr", + "datafusion-expr 48.0.0", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "datafusion-macros" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "datafusion-expr 49.0.0", "quote", "syn 2.0.104", ] [[package]] name = "datafusion-optimizer" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfaacf06445dc3bbc1e901242d2a44f2cae99a744f49f3fefddcee46240058" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "chrono", - "datafusion-common", - "datafusion-expr", - "datafusion-physical-expr", + "datafusion-common 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-physical-expr 49.0.0", "indexmap", "itertools 0.14.0", "log", @@ -1817,11 +1981,32 @@ checksum = "1908034a89d7b2630898e06863583ae4c00a0dd310c1589ca284195ee3f7f8a6" dependencies = [ "ahash", "arrow", - "datafusion-common", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-functions-aggregate-common", - "datafusion-physical-expr-common", + "datafusion-common 48.0.0", + "datafusion-expr 48.0.0", + "datafusion-expr-common 48.0.0", + "datafusion-functions-aggregate-common 48.0.0", + "datafusion-physical-expr-common 48.0.0", + "half", + "hashbrown 0.14.5", + "indexmap", + "itertools 0.14.0", + "log", + "paste", + "petgraph 0.8.2", +] + +[[package]] +name = "datafusion-physical-expr" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "ahash", + "arrow", + "datafusion-common 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-functions-aggregate-common 49.0.0", + "datafusion-physical-expr-common 49.0.0", "half", "hashbrown 0.14.5", "indexmap", @@ -1839,35 +2024,47 @@ checksum = "47b7a12dd59ea07614b67dbb01d85254fbd93df45bcffa63495e11d3bdf847df" dependencies = [ "ahash", "arrow", - "datafusion-common", - "datafusion-expr-common", + "datafusion-common 48.0.0", + "datafusion-expr-common 48.0.0", + "hashbrown 0.14.5", + "itertools 0.14.0", +] + +[[package]] +name = "datafusion-physical-expr-common" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "ahash", + "arrow", + "datafusion-common 49.0.0", + "datafusion-expr-common 49.0.0", "hashbrown 0.14.5", "itertools 0.14.0", ] [[package]] name = "datafusion-physical-optimizer" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4371cc4ad33978cc2a8be93bd54a232d3f2857b50401a14631c0705f3f910aae" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", - "datafusion-common", - "datafusion-execution", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-common 49.0.0", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-expr-common 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "datafusion-physical-plan", + "datafusion-pruning", "itertools 0.14.0", "log", ] [[package]] name = "datafusion-physical-plan" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc47bc33025757a5c11f2cd094c5b6b5ed87f46fa33c023e6fdfa25fcbfade23" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "ahash", "arrow", @@ -1875,13 +2072,13 @@ dependencies = [ "arrow-schema", "async-trait", "chrono", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", - "datafusion-execution", - "datafusion-expr", - "datafusion-functions-window-common", - "datafusion-physical-expr", - "datafusion-physical-expr-common", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-functions-window-common 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", "futures", "half", "hashbrown 0.14.5", @@ -1893,20 +2090,36 @@ dependencies = [ "tokio", ] +[[package]] +name = "datafusion-pruning" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +dependencies = [ + "arrow", + "arrow-schema", + "datafusion-common 49.0.0", + "datafusion-datasource", + "datafusion-expr-common 49.0.0", + "datafusion-physical-expr 49.0.0", + "datafusion-physical-expr-common 49.0.0", + "datafusion-physical-plan", + "itertools 0.14.0", + "log", +] + [[package]] name = "datafusion-session" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7485da32283985d6b45bd7d13a65169dcbe8c869e25d01b2cfbc425254b4b49" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "async-trait", "dashmap", - "datafusion-common", + "datafusion-common 49.0.0", "datafusion-common-runtime", - "datafusion-execution", - "datafusion-expr", - "datafusion-physical-expr", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-physical-expr 49.0.0", "datafusion-physical-plan", "datafusion-sql", "futures", @@ -1919,30 +2132,28 @@ dependencies = [ [[package]] name = "datafusion-spark" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00825d8e84c5a96e21ea5e525a6a4ec8eea7d623942f13031b519ca596802e90" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "datafusion-catalog", - "datafusion-common", - "datafusion-execution", - "datafusion-expr", - "datafusion-functions", - "datafusion-macros", + "datafusion-common 49.0.0", + "datafusion-execution 49.0.0", + "datafusion-expr 49.0.0", + "datafusion-functions 49.0.0", + "datafusion-macros 49.0.0", "log", ] [[package]] name = "datafusion-sql" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a466b15632befddfeac68c125f0260f569ff315c6831538cbb40db754134e0df" +version = "49.0.0" +source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", "bigdecimal", - "datafusion-common", - "datafusion-expr", + "datafusion-common 49.0.0", + "datafusion-expr 49.0.0", "indexmap", "log", "regex", @@ -2673,6 +2884,17 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" @@ -3187,9 +3409,9 @@ dependencies = [ [[package]] name = "object_store" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781f96d79ed0f961a7021424ab01840efbda64ae7a505aaea195efc91eaaec4" +checksum = "efc4f07659e11cd45a341cd24d71e683e3be65d9ff1f8150061678fe60437496" dependencies = [ "async-trait", "base64", @@ -3206,7 +3428,7 @@ dependencies = [ "md-5", "parking_lot", "percent-encoding", - "quick-xml 0.37.5", + "quick-xml 0.38.0", "rand 0.9.1", "reqwest", "ring", @@ -3306,6 +3528,7 @@ dependencies = [ "num-bigint", "object_store", "paste", + "ring", "seq-macro", "simdutf8", "snap", @@ -3610,9 +3833,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.37.5" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +checksum = "8927b0664f5c5a98265138b7e3f90aa19a6b21353182469ace36d4ac527b7b1b" dependencies = [ "memchr", "serde", @@ -4522,17 +4745,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "windows-sys 0.52.0", diff --git a/native/Cargo.toml b/native/Cargo.toml index 54e459646c..c9654bd12d 100644 --- a/native/Cargo.toml +++ b/native/Cargo.toml @@ -34,12 +34,12 @@ edition = "2021" rust-version = "1.85" [workspace.dependencies] -arrow = { version = "55.1.0", features = ["prettyprint", "ffi", "chrono-tz"] } +arrow = { version = "55.2.0", features = ["prettyprint", "ffi", "chrono-tz"] } async-trait = { version = "0.1" } bytes = { version = "1.10.0" } -parquet = { version = "55.1.0", default-features = false, features = ["experimental"] } -datafusion = { version = "48.0.0", default-features = false, features = ["unicode_expressions", "crypto_expressions", "nested_expressions", "parquet"] } -datafusion-spark = { version = "48.0.0" } +parquet = { version = "55.2.0", default-features = false, features = ["experimental"] } +datafusion = { git = "https://github.com/apache/datafusion.git", branch = "branch-49", default-features = false, features = ["unicode_expressions", "crypto_expressions", "nested_expressions", "parquet"] } +datafusion-spark = { git = "https://github.com/apache/datafusion.git", branch = "branch-49" } datafusion-comet-spark-expr = { path = "spark-expr" } datafusion-comet-proto = { path = "proto" } chrono = { version = "0.4", default-features = false, features = ["clock"] } @@ -49,7 +49,7 @@ num = "0.4" rand = "0.9" regex = "1.9.6" thiserror = "2" -object_store = { version = "0.12.0", features = ["gcp", "azure", "aws", "http"] } +object_store = { version = "0.12.3", features = ["gcp", "azure", "aws", "http"] } url = "2.2" aws-config = "1.6.3" aws-credential-types = "1.2.3" diff --git a/native/core/src/execution/operators/filter.rs b/native/core/src/execution/operators/filter.rs index 573287a088..ddc21c0411 100644 --- a/native/core/src/execution/operators/filter.rs +++ b/native/core/src/execution/operators/filter.rs @@ -211,22 +211,18 @@ impl FilterExec { if let Some(binary) = conjunction.as_any().downcast_ref::() { if binary.op() == &Operator::Eq { // Filter evaluates to single value for all partitions - if input_eqs.is_expr_constant(binary.left()) { + if input_eqs.is_expr_constant(binary.left()).is_some() { let (expr, across_parts) = ( binary.right(), input_eqs.get_expr_constant_value(binary.right()), ); - res_constants.push( - ConstExpr::new(Arc::clone(expr)).with_across_partitions(across_parts), - ); - } else if input_eqs.is_expr_constant(binary.right()) { + res_constants.push(ConstExpr::new(Arc::clone(expr), across_parts)); + } else if input_eqs.is_expr_constant(binary.right()).is_some() { let (expr, across_parts) = ( binary.left(), input_eqs.get_expr_constant_value(binary.left()), ); - res_constants.push( - ConstExpr::new(Arc::clone(expr)).with_across_partitions(across_parts), - ); + res_constants.push(ConstExpr::new(Arc::clone(expr), across_parts)); } } } @@ -246,7 +242,7 @@ impl FilterExec { let mut eq_properties = input.equivalence_properties().clone(); let (equal_pairs, _) = collect_columns_from_predicate(predicate); for (lhs, rhs) in equal_pairs { - eq_properties.add_equal_conditions(lhs, rhs)? + eq_properties.add_equal_conditions(Arc::clone(lhs), Arc::clone(rhs))? } // Add the columns that have only one viable value (singleton) after // filtering to constants. @@ -258,14 +254,13 @@ impl FilterExec { .min_value .get_value(); let expr = Arc::new(column) as _; - ConstExpr::new(expr) - .with_across_partitions(AcrossPartitions::Uniform(value.cloned())) + ConstExpr::new(expr, AcrossPartitions::Uniform(value.cloned())) }); // This is for statistics - eq_properties = eq_properties.with_constants(constants); + eq_properties.add_constants(constants)?; // This is for logical constant (for example: a = '1', then a could be marked as a constant) - // to do: how to deal with multiple situation to represent = (for example c1 between 0 and 0) - eq_properties = eq_properties.with_constants(Self::extend_constants(input, predicate)); + // to do: how to deal with a multiple situation to represent = (for example, c1 between 0 and 0) + eq_properties.add_constants(Self::extend_constants(input, predicate))?; let mut output_partitioning = input.output_partitioning().clone(); // If contains projection, update the PlanProperties. diff --git a/native/core/src/execution/planner.rs b/native/core/src/execution/planner.rs index 3c34bc4334..98880769d3 100644 --- a/native/core/src/execution/planner.rs +++ b/native/core/src/execution/planner.rs @@ -72,7 +72,7 @@ use crate::parquet::parquet_support::prepare_object_store_with_configs; use datafusion::common::scalar::ScalarStructBuilder; use datafusion::common::{ tree_node::{Transformed, TransformedResult, TreeNode, TreeNodeRecursion, TreeNodeRewriter}, - JoinType as DFJoinType, ScalarValue, + JoinType as DFJoinType, NullEquality, ScalarValue, }; use datafusion::datasource::listing::PartitionedFile; use datafusion::logical_expr::type_coercion::other::get_coerce_type_for_case_expression; @@ -1153,7 +1153,7 @@ impl PhysicalPlanner { let child_copied = Self::wrap_in_copy_exec(Arc::clone(&child.native_plan)); let sort = Arc::new( - SortExec::new(LexOrdering::new(exprs?), Arc::clone(&child_copied)) + SortExec::new(LexOrdering::new(exprs?).unwrap(), Arc::clone(&child_copied)) .with_fetch(fetch), ); @@ -1429,7 +1429,7 @@ impl PhysicalPlanner { sort_options, // null doesn't equal to null in Spark join key. If the join key is // `EqualNullSafe`, Spark will rewrite it during planning. - false, + NullEquality::NullEqualsNothing, )?); if join.filter.is_some() { @@ -1497,7 +1497,7 @@ impl PhysicalPlanner { PartitionMode::Partitioned, // null doesn't equal to null in Spark join key. If the join key is // `EqualNullSafe`, Spark will rewrite it during planning. - false, + NullEquality::NullEqualsNothing, )?); // If the hash join is build right, we need to swap the left and right @@ -2199,7 +2199,7 @@ impl PhysicalPlanner { window_func_name, &window_args, partition_by, - &LexOrdering::new(sort_exprs.to_vec()), + &LexOrdering::new(sort_exprs.to_vec()).unwrap(), window_frame.into(), input_schema.as_ref(), false, // TODO: Ignore nulls @@ -2280,7 +2280,7 @@ impl PhysicalPlanner { .iter() .map(|expr| self.create_sort_expr(expr, Arc::clone(&input_schema))) .collect(); - let lex_ordering = LexOrdering::from(exprs?); + let lex_ordering = LexOrdering::new(exprs?).unwrap(); Ok(CometPartitioning::RangePartitioning( lex_ordering, range_partition.num_partitions as usize, diff --git a/native/core/src/execution/shuffle/shuffle_writer.rs b/native/core/src/execution/shuffle/shuffle_writer.rs index d23d02a2c8..6dd528c8f3 100644 --- a/native/core/src/execution/shuffle/shuffle_writer.rs +++ b/native/core/src/execution/shuffle/shuffle_writer.rs @@ -934,7 +934,7 @@ impl SinglePartitionShufflePartitioner { Ok(Some(concatenated)) } Err(e) => Err(DataFusionError::ArrowError( - e, + Box::from(e), Some(DataFusionError::get_back_trace()), )), } @@ -1122,7 +1122,7 @@ impl Iterator for PartitionedBatchIterator<'_> { Some(Ok(batch)) } Err(e) => Some(Err(DataFusionError::ArrowError( - e, + Box::from(e), Some(DataFusionError::get_back_trace()), ))), } From f0c62795dc2ef07c4da9f7865e2a37cc00e545c9 Mon Sep 17 00:00:00 2001 From: comphead Date: Wed, 23 Jul 2025 08:15:26 -0700 Subject: [PATCH 02/12] chore: migrate to DF 49.0.0 --- native/core/src/execution/operators/filter.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/native/core/src/execution/operators/filter.rs b/native/core/src/execution/operators/filter.rs index ddc21c0411..4e28145cce 100644 --- a/native/core/src/execution/operators/filter.rs +++ b/native/core/src/execution/operators/filter.rs @@ -212,17 +212,15 @@ impl FilterExec { if binary.op() == &Operator::Eq { // Filter evaluates to single value for all partitions if input_eqs.is_expr_constant(binary.left()).is_some() { - let (expr, across_parts) = ( - binary.right(), - input_eqs.get_expr_constant_value(binary.right()), - ); - res_constants.push(ConstExpr::new(Arc::clone(expr), across_parts)); + let across = input_eqs + .is_expr_constant(binary.right()) + .unwrap_or_default(); + res_constants.push(ConstExpr::new(Arc::clone(binary.right()), across)); } else if input_eqs.is_expr_constant(binary.right()).is_some() { - let (expr, across_parts) = ( - binary.left(), - input_eqs.get_expr_constant_value(binary.left()), - ); - res_constants.push(ConstExpr::new(Arc::clone(expr), across_parts)); + let across = input_eqs + .is_expr_constant(binary.left()) + .unwrap_or_default(); + res_constants.push(ConstExpr::new(Arc::clone(binary.left()), across)); } } } From 91e3ecd26d409d6bb3e97587a6b6d38025382657 Mon Sep 17 00:00:00 2001 From: comphead Date: Wed, 23 Jul 2025 08:33:58 -0700 Subject: [PATCH 03/12] chore: migrate to DF 49.0.0 --- native/Cargo.lock | 509 +++++------------- native/core/Cargo.toml | 2 +- native/core/benches/shuffle_writer.rs | 3 +- .../execution/shuffle/comet_partitioning.rs | 2 +- .../execution/shuffle/range_partitioner.rs | 2 +- .../src/execution/shuffle/shuffle_writer.rs | 3 +- native/hdfs/src/object_store/hdfs.rs | 4 +- 7 files changed, 134 insertions(+), 391 deletions(-) diff --git a/native/Cargo.lock b/native/Cargo.lock index 2719fe1654..72ed8cd625 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -1275,23 +1275,23 @@ dependencies = [ "chrono", "datafusion-catalog", "datafusion-catalog-listing", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", "datafusion-datasource", "datafusion-datasource-csv", "datafusion-datasource-json", "datafusion-datasource-parquet", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-functions 49.0.0", - "datafusion-functions-aggregate 49.0.0", - "datafusion-functions-nested 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-functions", + "datafusion-functions-aggregate", + "datafusion-functions-nested", "datafusion-functions-table", "datafusion-functions-window", "datafusion-optimizer", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-optimizer", "datafusion-physical-plan", "datafusion-session", @@ -1319,12 +1319,12 @@ dependencies = [ "arrow", "async-trait", "dashmap", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-physical-expr 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", "datafusion-physical-plan", "datafusion-session", "datafusion-sql", @@ -1344,12 +1344,12 @@ dependencies = [ "arrow", "async-trait", "datafusion-catalog", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-datasource", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1374,7 +1374,7 @@ dependencies = [ "datafusion-comet-objectstore-hdfs", "datafusion-comet-proto", "datafusion-comet-spark-expr", - "datafusion-functions-nested 48.0.0", + "datafusion-functions-nested", "datafusion-spark", "futures", "hex", @@ -1447,27 +1447,6 @@ dependencies = [ "twox-hash", ] -[[package]] -name = "datafusion-common" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d56b2ac9f476b93ca82e4ef5fb00769c8a3f248d12b4965af7e27635fa7e12" -dependencies = [ - "ahash", - "arrow", - "arrow-ipc", - "base64", - "half", - "hashbrown 0.14.5", - "indexmap", - "libc", - "log", - "paste", - "sqlparser", - "tokio", - "web-time", -] - [[package]] name = "datafusion-common" version = "49.0.0" @@ -1510,12 +1489,12 @@ dependencies = [ "async-trait", "bytes", "chrono", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1539,13 +1518,13 @@ dependencies = [ "async-trait", "bytes", "datafusion-catalog", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1563,13 +1542,13 @@ dependencies = [ "async-trait", "bytes", "datafusion-catalog", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-plan", "datafusion-session", "futures", @@ -1587,14 +1566,14 @@ dependencies = [ "async-trait", "bytes", "datafusion-catalog", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", "datafusion-datasource", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-functions-aggregate 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions-aggregate", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-optimizer", "datafusion-physical-plan", "datafusion-pruning", @@ -1609,36 +1588,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "datafusion-doc" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bcd8a3e3e3d02ea642541be23d44376b5d5c37c2938cce39b3873cdf7186eea" - [[package]] name = "datafusion-doc" version = "49.0.0" source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" -[[package]] -name = "datafusion-execution" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670da1d45d045eee4c2319b8c7ea57b26cf48ab77b630aaa50b779e406da476a" -dependencies = [ - "arrow", - "dashmap", - "datafusion-common 48.0.0", - "datafusion-expr 48.0.0", - "futures", - "log", - "object_store", - "parking_lot", - "rand 0.9.1", - "tempfile", - "url", -] - [[package]] name = "datafusion-execution" version = "49.0.0" @@ -1646,8 +1600,8 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "arrow", "dashmap", - "datafusion-common 49.0.0", - "datafusion-expr 49.0.0", + "datafusion-common", + "datafusion-expr", "futures", "log", "object_store", @@ -1657,26 +1611,6 @@ dependencies = [ "url", ] -[[package]] -name = "datafusion-expr" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a577f64bdb7e2cc4043cd97f8901d8c504711fde2dbcb0887645b00d7c660b" -dependencies = [ - "arrow", - "chrono", - "datafusion-common 48.0.0", - "datafusion-doc 48.0.0", - "datafusion-expr-common 48.0.0", - "datafusion-functions-aggregate-common 48.0.0", - "datafusion-functions-window-common 48.0.0", - "datafusion-physical-expr-common 48.0.0", - "indexmap", - "paste", - "serde_json", - "sqlparser", -] - [[package]] name = "datafusion-expr" version = "49.0.0" @@ -1685,68 +1619,30 @@ dependencies = [ "arrow", "async-trait", "chrono", - "datafusion-common 49.0.0", - "datafusion-doc 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-functions-aggregate-common 49.0.0", - "datafusion-functions-window-common 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-common", + "datafusion-doc", + "datafusion-expr-common", + "datafusion-functions-aggregate-common", + "datafusion-functions-window-common", + "datafusion-physical-expr-common", "indexmap", "paste", "serde_json", "sqlparser", ] -[[package]] -name = "datafusion-expr-common" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b7916806ace3e9f41884f230f7f38ebf0e955dfbd88266da1826f29a0b9a6a" -dependencies = [ - "arrow", - "datafusion-common 48.0.0", - "indexmap", - "itertools 0.14.0", - "paste", -] - [[package]] name = "datafusion-expr-common" version = "49.0.0" source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", - "datafusion-common 49.0.0", + "datafusion-common", "indexmap", "itertools 0.14.0", "paste", ] -[[package]] -name = "datafusion-functions" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb31c9dc73d3e0c365063f91139dc273308f8a8e124adda9898db8085d68357" -dependencies = [ - "arrow", - "arrow-buffer", - "base64", - "chrono", - "datafusion-common 48.0.0", - "datafusion-doc 48.0.0", - "datafusion-execution 48.0.0", - "datafusion-expr 48.0.0", - "datafusion-expr-common 48.0.0", - "datafusion-macros 48.0.0", - "hex", - "itertools 0.14.0", - "log", - "rand 0.9.1", - "regex", - "unicode-segmentation", - "uuid", -] - [[package]] name = "datafusion-functions" version = "49.0.0" @@ -1758,12 +1654,12 @@ dependencies = [ "blake2", "blake3", "chrono", - "datafusion-common 49.0.0", - "datafusion-doc 49.0.0", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-macros 49.0.0", + "datafusion-common", + "datafusion-doc", + "datafusion-execution", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-macros", "hex", "itertools 0.14.0", "log", @@ -1775,27 +1671,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "datafusion-functions-aggregate" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebb72c6940697eaaba9bd1f746a697a07819de952b817e3fb841fb75331ad5d4" -dependencies = [ - "ahash", - "arrow", - "datafusion-common 48.0.0", - "datafusion-doc 48.0.0", - "datafusion-execution 48.0.0", - "datafusion-expr 48.0.0", - "datafusion-functions-aggregate-common 48.0.0", - "datafusion-macros 48.0.0", - "datafusion-physical-expr 48.0.0", - "datafusion-physical-expr-common 48.0.0", - "half", - "log", - "paste", -] - [[package]] name = "datafusion-functions-aggregate" version = "49.0.0" @@ -1803,32 +1678,19 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "ahash", "arrow", - "datafusion-common 49.0.0", - "datafusion-doc 49.0.0", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-functions-aggregate-common 49.0.0", - "datafusion-macros 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-common", + "datafusion-doc", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions-aggregate-common", + "datafusion-macros", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "half", "log", "paste", ] -[[package]] -name = "datafusion-functions-aggregate-common" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fdc54656659e5ecd49bf341061f4156ab230052611f4f3609612a0da259696" -dependencies = [ - "ahash", - "arrow", - "datafusion-common 48.0.0", - "datafusion-expr-common 48.0.0", - "datafusion-physical-expr-common 48.0.0", -] - [[package]] name = "datafusion-functions-aggregate-common" version = "49.0.0" @@ -1836,30 +1698,9 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "ahash", "arrow", - "datafusion-common 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-physical-expr-common 49.0.0", -] - -[[package]] -name = "datafusion-functions-nested" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad94598e3374938ca43bca6b675febe557e7a14eb627d617db427d70d65118b" -dependencies = [ - "arrow", - "arrow-ord", - "datafusion-common 48.0.0", - "datafusion-doc 48.0.0", - "datafusion-execution 48.0.0", - "datafusion-expr 48.0.0", - "datafusion-functions 48.0.0", - "datafusion-functions-aggregate 48.0.0", - "datafusion-macros 48.0.0", - "datafusion-physical-expr-common 48.0.0", - "itertools 0.14.0", - "log", - "paste", + "datafusion-common", + "datafusion-expr-common", + "datafusion-physical-expr-common", ] [[package]] @@ -1869,15 +1710,15 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "arrow", "arrow-ord", - "datafusion-common 49.0.0", - "datafusion-doc 49.0.0", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-functions 49.0.0", - "datafusion-functions-aggregate 49.0.0", - "datafusion-functions-aggregate-common 49.0.0", - "datafusion-macros 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-common", + "datafusion-doc", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions", + "datafusion-functions-aggregate", + "datafusion-functions-aggregate-common", + "datafusion-macros", + "datafusion-physical-expr-common", "itertools 0.14.0", "log", "paste", @@ -1891,8 +1732,8 @@ dependencies = [ "arrow", "async-trait", "datafusion-catalog", - "datafusion-common 49.0.0", - "datafusion-expr 49.0.0", + "datafusion-common", + "datafusion-expr", "datafusion-physical-plan", "parking_lot", "paste", @@ -1904,45 +1745,24 @@ version = "49.0.0" source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", - "datafusion-common 49.0.0", - "datafusion-doc 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-functions-window-common 49.0.0", - "datafusion-macros 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-common", + "datafusion-doc", + "datafusion-expr", + "datafusion-functions-window-common", + "datafusion-macros", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "log", "paste", ] -[[package]] -name = "datafusion-functions-window-common" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbe9404382cda257c434f22e13577bee7047031dfdb6216dd5e841b9465e6fe" -dependencies = [ - "datafusion-common 48.0.0", - "datafusion-physical-expr-common 48.0.0", -] - [[package]] name = "datafusion-functions-window-common" version = "49.0.0" source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ - "datafusion-common 49.0.0", - "datafusion-physical-expr-common 49.0.0", -] - -[[package]] -name = "datafusion-macros" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dce50e3b637dab0d25d04d2fe79dfdca2b257eabd76790bffd22c7f90d700c8" -dependencies = [ - "datafusion-expr 48.0.0", - "quote", - "syn 2.0.104", + "datafusion-common", + "datafusion-physical-expr-common", ] [[package]] @@ -1950,7 +1770,7 @@ name = "datafusion-macros" version = "49.0.0" source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ - "datafusion-expr 49.0.0", + "datafusion-expr", "quote", "syn 2.0.104", ] @@ -1962,10 +1782,10 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "arrow", "chrono", - "datafusion-common 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-physical-expr 49.0.0", + "datafusion-common", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-physical-expr", "indexmap", "itertools 0.14.0", "log", @@ -1973,28 +1793,6 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "datafusion-physical-expr" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1908034a89d7b2630898e06863583ae4c00a0dd310c1589ca284195ee3f7f8a6" -dependencies = [ - "ahash", - "arrow", - "datafusion-common 48.0.0", - "datafusion-expr 48.0.0", - "datafusion-expr-common 48.0.0", - "datafusion-functions-aggregate-common 48.0.0", - "datafusion-physical-expr-common 48.0.0", - "half", - "hashbrown 0.14.5", - "indexmap", - "itertools 0.14.0", - "log", - "paste", - "petgraph 0.8.2", -] - [[package]] name = "datafusion-physical-expr" version = "49.0.0" @@ -2002,11 +1800,11 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "ahash", "arrow", - "datafusion-common 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-functions-aggregate-common 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-common", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-functions-aggregate-common", + "datafusion-physical-expr-common", "half", "hashbrown 0.14.5", "indexmap", @@ -2016,20 +1814,6 @@ dependencies = [ "petgraph 0.8.2", ] -[[package]] -name = "datafusion-physical-expr-common" -version = "48.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b7a12dd59ea07614b67dbb01d85254fbd93df45bcffa63495e11d3bdf847df" -dependencies = [ - "ahash", - "arrow", - "datafusion-common 48.0.0", - "datafusion-expr-common 48.0.0", - "hashbrown 0.14.5", - "itertools 0.14.0", -] - [[package]] name = "datafusion-physical-expr-common" version = "49.0.0" @@ -2037,8 +1821,8 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "ahash", "arrow", - "datafusion-common 49.0.0", - "datafusion-expr-common 49.0.0", + "datafusion-common", + "datafusion-expr-common", "hashbrown 0.14.5", "itertools 0.14.0", ] @@ -2049,12 +1833,12 @@ version = "49.0.0" source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" dependencies = [ "arrow", - "datafusion-common 49.0.0", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-expr-common 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-common", + "datafusion-execution", + "datafusion-expr", + "datafusion-expr-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-plan", "datafusion-pruning", "itertools 0.14.0", @@ -2072,13 +1856,13 @@ dependencies = [ "arrow-schema", "async-trait", "chrono", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-functions-window-common 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions-window-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "futures", "half", "hashbrown 0.14.5", @@ -2097,11 +1881,11 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "arrow", "arrow-schema", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-datasource", - "datafusion-expr-common 49.0.0", - "datafusion-physical-expr 49.0.0", - "datafusion-physical-expr-common 49.0.0", + "datafusion-expr-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", "datafusion-physical-plan", "itertools 0.14.0", "log", @@ -2115,11 +1899,11 @@ dependencies = [ "arrow", "async-trait", "dashmap", - "datafusion-common 49.0.0", + "datafusion-common", "datafusion-common-runtime", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-physical-expr 49.0.0", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", "datafusion-physical-plan", "datafusion-sql", "futures", @@ -2137,11 +1921,11 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "arrow", "datafusion-catalog", - "datafusion-common 49.0.0", - "datafusion-execution 49.0.0", - "datafusion-expr 49.0.0", - "datafusion-functions 49.0.0", - "datafusion-macros 49.0.0", + "datafusion-common", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions", + "datafusion-macros", "log", ] @@ -2152,8 +1936,8 @@ source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999 dependencies = [ "arrow", "bigdecimal", - "datafusion-common 49.0.0", - "datafusion-expr 49.0.0", + "datafusion-common", + "datafusion-expr", "indexmap", "log", "regex", @@ -3813,15 +3597,6 @@ dependencies = [ "prost", ] -[[package]] -name = "psm" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" -dependencies = [ - "cc", -] - [[package]] name = "quick-xml" version = "0.26.0" @@ -3990,26 +3765,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "recursive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e" -dependencies = [ - "recursive-proc-macro-impl", - "stacker", -] - -[[package]] -name = "recursive-proc-macro-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" -dependencies = [ - "quote", - "syn 2.0.104", -] - [[package]] name = "redox_syscall" version = "0.5.13" @@ -4447,7 +4202,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4521174166bac1ff04fe16ef4524c70144cd29682a45978978ca3d7f4e0be11" dependencies = [ "log", - "recursive", "sqlparser_derive", ] @@ -4468,19 +4222,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "stacker" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b" -dependencies = [ - "cc", - "cfg-if", - "libc", - "psm", - "windows-sys 0.59.0", -] - [[package]] name = "static_assertions" version = "1.1.0" diff --git a/native/core/Cargo.toml b/native/core/Cargo.toml index 9b6a36b8f7..d992c96912 100644 --- a/native/core/Cargo.toml +++ b/native/core/Cargo.toml @@ -84,7 +84,7 @@ jni = { version = "0.21", features = ["invocation"] } lazy_static = "1.4" assertables = "9" hex = "0.4.3" -datafusion-functions-nested = { version = "48.0.0" } +datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", branch = "branch-49" } [features] default = [] diff --git a/native/core/benches/shuffle_writer.rs b/native/core/benches/shuffle_writer.rs index ee07462d00..52638d92a9 100644 --- a/native/core/benches/shuffle_writer.rs +++ b/native/core/benches/shuffle_writer.rs @@ -89,7 +89,8 @@ fn criterion_benchmark(c: &mut Criterion) { CometPartitioning::RangePartitioning( LexOrdering::new(vec![PhysicalSortExpr::new_default( col("c0", batch.schema().as_ref()).unwrap(), - )]), + )]) + .unwrap(), 16, 100, ), diff --git a/native/core/src/execution/shuffle/comet_partitioning.rs b/native/core/src/execution/shuffle/comet_partitioning.rs index b063473bdf..9c33da8e93 100644 --- a/native/core/src/execution/shuffle/comet_partitioning.rs +++ b/native/core/src/execution/shuffle/comet_partitioning.rs @@ -24,7 +24,7 @@ pub enum CometPartitioning { /// Allocate rows based on a hash of one of more expressions and the specified number of /// partitions Hash(Vec>, usize), - /// Allocate rows based on lexical order of one of more expressions and the specified number of + /// Allocate rows based on the lexical order of one of more expressions and the specified number of /// partitions RangePartitioning(LexOrdering, usize, usize), } diff --git a/native/core/src/execution/shuffle/range_partitioner.rs b/native/core/src/execution/shuffle/range_partitioner.rs index 8f443232f9..e14cf61482 100644 --- a/native/core/src/execution/shuffle/range_partitioner.rs +++ b/native/core/src/execution/shuffle/range_partitioner.rs @@ -247,7 +247,7 @@ mod test { let (rows, row_converter) = RangePartitioner::generate_bounds( input_batch.columns().to_vec().as_ref(), - &lex_ordering, + &lex_ordering.unwrap(), 10, input_batch.num_rows(), 1000, diff --git a/native/core/src/execution/shuffle/shuffle_writer.rs b/native/core/src/execution/shuffle/shuffle_writer.rs index 6dd528c8f3..669a889ed8 100644 --- a/native/core/src/execution/shuffle/shuffle_writer.rs +++ b/native/core/src/execution/shuffle/shuffle_writer.rs @@ -1409,7 +1409,8 @@ mod test { CometPartitioning::RangePartitioning( LexOrdering::new(vec![PhysicalSortExpr::new_default( col("a", batch.schema().as_ref()).unwrap(), - )]), + )]) + .unwrap(), num_partitions, 100, ), diff --git a/native/hdfs/src/object_store/hdfs.rs b/native/hdfs/src/object_store/hdfs.rs index bb03001082..b49e879429 100644 --- a/native/hdfs/src/object_store/hdfs.rs +++ b/native/hdfs/src/object_store/hdfs.rs @@ -32,7 +32,7 @@ use hdfs::walkdir::HdfsWalkDir; use object_store::{ path::{self, Path}, Error, GetOptions, GetRange, GetResult, GetResultPayload, ListResult, MultipartUpload, - ObjectMeta, ObjectStore, PutMultipartOpts, PutOptions, PutPayload, PutResult, Result, + ObjectMeta, ObjectStore, PutMultipartOptions, PutOptions, PutPayload, PutResult, Result, }; /// scheme for HDFS File System @@ -139,7 +139,7 @@ impl ObjectStore for HadoopFileSystem { async fn put_multipart_opts( &self, _location: &Path, - _opts: PutMultipartOpts, + _opts: PutMultipartOptions, ) -> object_store::Result> { unimplemented!() } From 9be0a65fb55a995d92c4b127446a2e26e61b82fe Mon Sep 17 00:00:00 2001 From: comphead Date: Wed, 23 Jul 2025 11:35:55 -0700 Subject: [PATCH 04/12] chore: migrate to DF 49.0.0 --- native/core/src/execution/planner.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/native/core/src/execution/planner.rs b/native/core/src/execution/planner.rs index 98880769d3..157dd19017 100644 --- a/native/core/src/execution/planner.rs +++ b/native/core/src/execution/planner.rs @@ -2193,13 +2193,15 @@ impl PhysicalPlanner { }; let window_frame = WindowFrame::new_bounds(units, lower_bound, upper_bound); + let lex_orderings = LexOrdering::new(sort_exprs.to_vec()); + let sort_phy_exprs = lex_orderings.as_deref().unwrap_or(&[]); datafusion::physical_plan::windows::create_window_expr( &window_func, window_func_name, &window_args, partition_by, - &LexOrdering::new(sort_exprs.to_vec()).unwrap(), + sort_phy_exprs, window_frame.into(), input_schema.as_ref(), false, // TODO: Ignore nulls From 1d4839649c6472f339989e9e7f7a9a03ee4f04e4 Mon Sep 17 00:00:00 2001 From: comphead Date: Wed, 23 Jul 2025 13:35:39 -0700 Subject: [PATCH 05/12] fixes --- native/core/src/execution/planner.rs | 8 ++++++++ native/spark-expr/src/conversion_funcs/cast.rs | 1 + 2 files changed, 9 insertions(+) diff --git a/native/core/src/execution/planner.rs b/native/core/src/execution/planner.rs index 157dd19017..0570905631 100644 --- a/native/core/src/execution/planner.rs +++ b/native/core/src/execution/planner.rs @@ -594,6 +594,14 @@ impl PhysicalPlanner { true, false, ))), + // DataFusion 49 hardcodes return type for MD5 built in function as UTF8View + // which is not yet supported in Comet + // Converting forcibly to UTF8. To be removed after UTF8View supported + "md5" => Ok(Arc::new(Cast::new( + func?, + DataType::Utf8, + SparkCastOptions::new_without_timezone(EvalMode::Try, true), + ))), _ => func, } } diff --git a/native/spark-expr/src/conversion_funcs/cast.rs b/native/spark-expr/src/conversion_funcs/cast.rs index e0bc5f39fc..84a7313c63 100644 --- a/native/spark-expr/src/conversion_funcs/cast.rs +++ b/native/spark-expr/src/conversion_funcs/cast.rs @@ -960,6 +960,7 @@ fn cast_array( { spark_cast_nonintegral_numeric_to_integral(&array, eval_mode, from_type, to_type) } + (Utf8View, Utf8) => Ok(cast_with_options(&array, to_type, &CAST_OPTIONS)?), (Struct(_), Utf8) => Ok(casts_struct_to_string(array.as_struct(), cast_options)?), (Struct(_), Struct(_)) => Ok(cast_struct_to_struct( array.as_struct(), From 85bdc26e5804389f6b6450b0e8ac21dde03f8992 Mon Sep 17 00:00:00 2001 From: comphead Date: Fri, 25 Jul 2025 15:41:02 -0700 Subject: [PATCH 06/12] fixes --- .../apache/comet/exec/CometAggregateSuite.scala | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala index be7fe7ee52..993716a9c8 100644 --- a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala +++ b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala @@ -852,6 +852,23 @@ class CometAggregateSuite extends CometTestBase with AdaptiveSparkPlanHelper { } } + // Temp ignore until https://github.com/apache/datafusion/pull/16918 fixed + ignore("first/last with ignore null1") { + val data = Range(0, 3).flatMap(n => Seq((n, 1), (n, 2))).toDF("a", "b") + withTempDir { dir => + val filename = s"${dir.getAbsolutePath}/first_last_ignore_null.parquet" + data.repartition(2).write.parquet(filename) + withSQLConf(CometConf.COMET_BATCH_SIZE.key -> "1") { + spark.read.parquet(filename).createOrReplaceTempView("t1") + for (expr <- Seq("first", "last")) { + // deterministic query that should return one non-null value per group + val df = spark.sql(s"SELECT a, $expr(IF(b==1,null,b)) IGNORE NULLS FROM t1 GROUP BY a") + checkSparkAnswerAndOperator(df) + } + } + } + } + test("all types, with nulls") { val numValues = 2048 From 951ef01f32c2b0a1a40db5213174b8fe7bcc7ca1 Mon Sep 17 00:00:00 2001 From: comphead Date: Fri, 25 Jul 2025 16:59:29 -0700 Subject: [PATCH 07/12] fixes --- .../comet/exec/CometAggregateSuite.scala | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala index 993716a9c8..375d76b6dc 100644 --- a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala +++ b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala @@ -835,6 +835,7 @@ class CometAggregateSuite extends CometTestBase with AdaptiveSparkPlanHelper { } } + // Temp ignore until https://github.com/apache/datafusion/pull/16918 fixed test("first/last with ignore null") { val data = Range(0, 8192).flatMap(n => Seq((n, 1), (n, 2))).toDF("a", "b") withTempDir { dir => @@ -852,23 +853,6 @@ class CometAggregateSuite extends CometTestBase with AdaptiveSparkPlanHelper { } } - // Temp ignore until https://github.com/apache/datafusion/pull/16918 fixed - ignore("first/last with ignore null1") { - val data = Range(0, 3).flatMap(n => Seq((n, 1), (n, 2))).toDF("a", "b") - withTempDir { dir => - val filename = s"${dir.getAbsolutePath}/first_last_ignore_null.parquet" - data.repartition(2).write.parquet(filename) - withSQLConf(CometConf.COMET_BATCH_SIZE.key -> "1") { - spark.read.parquet(filename).createOrReplaceTempView("t1") - for (expr <- Seq("first", "last")) { - // deterministic query that should return one non-null value per group - val df = spark.sql(s"SELECT a, $expr(IF(b==1,null,b)) IGNORE NULLS FROM t1 GROUP BY a") - checkSparkAnswerAndOperator(df) - } - } - } - } - test("all types, with nulls") { val numValues = 2048 From f008ff3f781eb83f993b083e9b66890199da27ef Mon Sep 17 00:00:00 2001 From: comphead Date: Fri, 25 Jul 2025 20:23:00 -0700 Subject: [PATCH 08/12] fixes --- .../test/scala/org/apache/comet/exec/CometAggregateSuite.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala index 375d76b6dc..f0a75a14fd 100644 --- a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala +++ b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala @@ -836,7 +836,7 @@ class CometAggregateSuite extends CometTestBase with AdaptiveSparkPlanHelper { } // Temp ignore until https://github.com/apache/datafusion/pull/16918 fixed - test("first/last with ignore null") { + ignore("first/last with ignore null") { val data = Range(0, 8192).flatMap(n => Seq((n, 1), (n, 2))).toDF("a", "b") withTempDir { dir => val filename = s"${dir.getAbsolutePath}/first_last_ignore_null.parquet" From 99d17ab79a8d478d718fb6da83c6c591d2a01e36 Mon Sep 17 00:00:00 2001 From: comphead Date: Thu, 31 Jul 2025 13:45:51 -0700 Subject: [PATCH 09/12] fixes --- .../test/scala/org/apache/comet/exec/CometAggregateSuite.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala index f0a75a14fd..be7fe7ee52 100644 --- a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala +++ b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala @@ -835,8 +835,7 @@ class CometAggregateSuite extends CometTestBase with AdaptiveSparkPlanHelper { } } - // Temp ignore until https://github.com/apache/datafusion/pull/16918 fixed - ignore("first/last with ignore null") { + test("first/last with ignore null") { val data = Range(0, 8192).flatMap(n => Seq((n, 1), (n, 2))).toDF("a", "b") withTempDir { dir => val filename = s"${dir.getAbsolutePath}/first_last_ignore_null.parquet" From 395336119fa894ad53aa3f896bda043d7dcea2ec Mon Sep 17 00:00:00 2001 From: comphead Date: Thu, 31 Jul 2025 14:32:44 -0700 Subject: [PATCH 10/12] chore: migrate to DF 49.0.0 --- native/Cargo.lock | 393 +++++++++++++++++++++++------------------ native/Cargo.toml | 4 +- native/core/Cargo.toml | 6 +- 3 files changed, 227 insertions(+), 176 deletions(-) diff --git a/native/Cargo.lock b/native/Cargo.lock index 72ed8cd625..5a46862bfa 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -339,9 +339,9 @@ dependencies = [ [[package]] name = "assertables" -version = "9.8.0" +version = "9.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54caed2f33dafa664c6b8b6d4064d5045bdfd43517b0d31758943df205e63226" +checksum = "0118bf39618c9958c058d23c1453fdfc40c99688d9a0dfdc441244421ef89407" [[package]] name = "async-trait" @@ -377,9 +377,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-config" -version = "1.8.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455e9fb7743c6f6267eb2830ccc08686fbb3d13c9a689369562fd4d4ef9ea462" +checksum = "c0baa720ebadea158c5bda642ac444a2af0cdf7bb66b46d1e4533de5d1f449d0" dependencies = [ "aws-credential-types", "aws-runtime", @@ -407,9 +407,9 @@ dependencies = [ [[package]] name = "aws-credential-types" -version = "1.2.3" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687bc16bc431a8533fe0097c7f0182874767f920989d7260950172ae8e3c4465" +checksum = "b68c2194a190e1efc999612792e25b1ab3abfefe4306494efaaabc25933c0cbe" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -419,9 +419,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.13.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" +checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" dependencies = [ "aws-lc-sys", "zeroize", @@ -429,9 +429,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" +checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" dependencies = [ "bindgen 0.69.5", "cc", @@ -442,9 +442,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.8" +version = "1.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6c68419d8ba16d9a7463671593c54f81ba58cab466e9b759418da606dcc2e2" +checksum = "b2090e664216c78e766b6bac10fe74d2f451c02441d43484cd76ac9a295075f7" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -466,9 +466,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.73.0" +version = "1.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ac1674cba7872061a29baaf02209fefe499ff034dfd91bd4cc59e4d7741489" +checksum = "dbd7bc4bd34303733bded362c4c997a39130eac4310257c79aae8484b1c4b724" dependencies = [ "aws-credential-types", "aws-runtime", @@ -488,9 +488,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.74.0" +version = "1.79.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6a22f077f5fd3e3c0270d4e1a110346cddf6769e9433eb9e6daceb4ca3b149" +checksum = "77358d25f781bb106c1a69531231d4fd12c6be904edb0c47198c604df5a2dbca" dependencies = [ "aws-credential-types", "aws-runtime", @@ -510,9 +510,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.75.0" +version = "1.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3258fa707f2f585ee3049d9550954b959002abd59176975150a01d5cf38ae3f" +checksum = "06e3ed2a9b828ae7763ddaed41d51724d2661a50c45f845b08967e52f4939cfc" dependencies = [ "aws-credential-types", "aws-runtime", @@ -566,9 +566,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.62.1" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99335bec6cdc50a346fda1437f9fefe33abf8c99060739a546a16457f2862ca9" +checksum = "43c82ba4cab184ea61f6edaafc1072aad3c2a17dcf4c0fce19ac5694b90d8b5f" dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", @@ -637,9 +637,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.8.3" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14302f06d1d5b7d333fd819943075b13d27c7700b414f574c3c35859bfb55d5e" +checksum = "660f70d9d8af6876b4c9aa8dcb0dbaf0f89b04ee9a4455bea1b4ba03b15f26f6" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -661,9 +661,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.8.1" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd8531b6d8882fd8f48f82a9754e682e29dd44cff27154af51fa3eb730f59efb" +checksum = "937a49ecf061895fca4a6dd8e864208ed9be7546c0527d04bc07d502ec5fba1c" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -710,9 +710,9 @@ dependencies = [ [[package]] name = "aws-types" -version = "1.3.7" +version = "1.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a322fec39e4df22777ed3ad8ea868ac2f94cd15e1a55f6ee8d8d6305057689a" +checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -917,9 +917,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.27" +version = "1.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" dependencies = [ "jobserver", "libc", @@ -968,25 +968,14 @@ dependencies = [ [[package]] name = "chrono-tz" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efdce149c370f133a071ca8ef6ea340b7b88748ab0810097a9e2976eaa34b4f3" +checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3" dependencies = [ "chrono", - "chrono-tz-build", "phf", ] -[[package]] -name = "chrono-tz-build" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f10f8c9340e31fc120ff885fcdb54a0b48e474bbd77cab557f0c30a3e569402" -dependencies = [ - "parse-zoneinfo", - "phf_codegen", -] - [[package]] name = "ciborium" version = "0.2.2" @@ -1027,18 +1016,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966" dependencies = [ "anstyle", "clap_lex", @@ -1141,9 +1130,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -1158,8 +1147,7 @@ dependencies = [ "cast", "ciborium", "clap", - "criterion-plot", - "futures", + "criterion-plot 0.5.0", "is-terminal", "itertools 0.10.5", "num-traits", @@ -1172,6 +1160,29 @@ dependencies = [ "serde_derive", "serde_json", "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot 0.6.0", + "itertools 0.13.0", + "num-traits", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_json", + "tinytemplate", "tokio", "walkdir", ] @@ -1186,6 +1197,16 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "criterion-plot" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338" +dependencies = [ + "cast", + "itertools 0.13.0", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -1265,7 +1286,8 @@ dependencies = [ [[package]] name = "datafusion" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f47772c28553d837e12cdcc0fb04c2a0fe8eca8b704a30f721d076f32407435" dependencies = [ "arrow", "arrow-ipc", @@ -1302,7 +1324,7 @@ dependencies = [ "object_store", "parking_lot", "parquet", - "rand 0.9.1", + "rand 0.9.2", "regex", "sqlparser", "tempfile", @@ -1314,7 +1336,8 @@ dependencies = [ [[package]] name = "datafusion-catalog" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b6b29c9c922959285fac53139e12c81014e2ca54704f20355edd7e9d11fd773" dependencies = [ "arrow", "async-trait", @@ -1339,7 +1362,8 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7313553e4c01d184dd49183afdfa22f23204a10a26dd12e6f799203d8fdb95c2" dependencies = [ "arrow", "async-trait", @@ -1369,7 +1393,7 @@ dependencies = [ "aws-credential-types", "bytes", "crc32fast", - "criterion", + "criterion 0.7.0", "datafusion", "datafusion-comet-objectstore-hdfs", "datafusion-comet-proto", @@ -1394,7 +1418,7 @@ dependencies = [ "pprof", "procfs", "prost", - "rand 0.9.1", + "rand 0.9.2", "regex", "simd-adler32", "snap", @@ -1436,11 +1460,11 @@ dependencies = [ "arrow", "chrono", "chrono-tz", - "criterion", + "criterion 0.5.1", "datafusion", "futures", "num", - "rand 0.9.1", + "rand 0.9.2", "regex", "thiserror 2.0.12", "tokio", @@ -1450,7 +1474,8 @@ dependencies = [ [[package]] name = "datafusion-common" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d66104731b7476a8c86fbe7a6fd741e6329791166ac89a91fcd8336a560ddaf" dependencies = [ "ahash", "arrow", @@ -1473,7 +1498,8 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7527ecdfeae6961a8564d3b036507a67bd467fd36a9f10cf8ad7a99db1f1bc" dependencies = [ "futures", "log", @@ -1483,7 +1509,8 @@ dependencies = [ [[package]] name = "datafusion-datasource" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e5076be33d8eb9f4d99858e5f3477b36c07e61eee8eb93c4320428d9e1e344" dependencies = [ "arrow", "async-trait", @@ -1503,7 +1530,7 @@ dependencies = [ "log", "object_store", "parquet", - "rand 0.9.1", + "rand 0.9.2", "tempfile", "tokio", "url", @@ -1512,7 +1539,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "785518d0f2f136c19b9389a10762c01a5aeb5fcdebdb244297bb656b2862dc88" dependencies = [ "arrow", "async-trait", @@ -1536,7 +1564,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71cb7c3bad0951bf5c52505d0e6d87e6c0098156d2a195924cbcdc82238d29ba" dependencies = [ "arrow", "async-trait", @@ -1560,7 +1589,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-parquet" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea76ad2c5189c98a6b1d4bdf6c3b3caacc9701c417af6661597c946a201bc328" dependencies = [ "arrow", "async-trait", @@ -1584,19 +1614,21 @@ dependencies = [ "object_store", "parking_lot", "parquet", - "rand 0.9.1", + "rand 0.9.2", "tokio", ] [[package]] name = "datafusion-doc" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bcc45e380db5c6033c3f39e765a3d752679f14315060a7f4030a60066a36946" [[package]] name = "datafusion-execution" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8209805fdce3d5c6e1625f674d3e4ce93e995a56d3709a0bb8d4361062652596" dependencies = [ "arrow", "dashmap", @@ -1606,7 +1638,7 @@ dependencies = [ "log", "object_store", "parking_lot", - "rand 0.9.1", + "rand 0.9.2", "tempfile", "url", ] @@ -1614,7 +1646,8 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7879a845e72a00cacffacbdf5f40626049cb9584d2ba8aa0b9172f09833110ab" dependencies = [ "arrow", "async-trait", @@ -1634,7 +1667,8 @@ dependencies = [ [[package]] name = "datafusion-expr-common" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6da7e47e70ef2c7678735c82c392bd74687004043f5fc8072ab8678dc6fa459d" dependencies = [ "arrow", "datafusion-common", @@ -1646,7 +1680,8 @@ dependencies = [ [[package]] name = "datafusion-functions" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e7b92b04c5c3b1151f055251b36e272071f9088d9701826a533cb4f764af1c8" dependencies = [ "arrow", "arrow-buffer", @@ -1664,7 +1699,7 @@ dependencies = [ "itertools 0.14.0", "log", "md-5", - "rand 0.9.1", + "rand 0.9.2", "regex", "sha2", "unicode-segmentation", @@ -1674,7 +1709,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f16cb922b62e535a4d484961ac2c1c6d188dbe02e85e026c05f0fabbc8f814e" dependencies = [ "ahash", "arrow", @@ -1694,7 +1730,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f71bb59dc8b4dc985c911f2e0d8cf426c21f565b56dca4b852c244101a1a7a2" dependencies = [ "ahash", "arrow", @@ -1706,7 +1743,8 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27eb3b98a2eb02a8af4ef19cc793cac21fc98d8720b987f15d7d25b8cc875f4d" dependencies = [ "arrow", "arrow-ord", @@ -1727,7 +1765,8 @@ dependencies = [ [[package]] name = "datafusion-functions-table" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e0940fc3e2fa4645a4d323f9ebf9258b2d7fdad12013a471cae4ae5568683" dependencies = [ "arrow", "async-trait", @@ -1742,7 +1781,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df03c6c62039578fd110b327c474846fdf3d9077a568f1e8706e585ed30cb98d" dependencies = [ "arrow", "datafusion-common", @@ -1759,7 +1799,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "083659a95914bf3ca568a72b085cb8654576fef1236b260dc2379cb8e5f922b2" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -1768,7 +1809,8 @@ dependencies = [ [[package]] name = "datafusion-macros" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cabe1f32daa2fa54e6b20d14a13a9e85bef97c4161fe8a90d76b6d9693a5ac4" dependencies = [ "datafusion-expr", "quote", @@ -1778,7 +1820,8 @@ dependencies = [ [[package]] name = "datafusion-optimizer" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e12a97dcb0ccc569798be1289c744829cce5f18cc9b037054f8d7f93e1d57be" dependencies = [ "arrow", "chrono", @@ -1796,7 +1839,8 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41312712b8659a82b4e9faa8d97a018e7f2ccbdedf2f7cb93ecf256e39858c86" dependencies = [ "ahash", "arrow", @@ -1817,7 +1861,8 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1649a60ea0319496d616ae3554e84dfcc262c201ab4439abcd83cca989b85b" dependencies = [ "ahash", "arrow", @@ -1830,7 +1875,8 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea3f5b8ba6122426774aaaf11325740b8e5d3afaab9ab39dc63423adca554748" dependencies = [ "arrow", "datafusion-common", @@ -1848,7 +1894,8 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a595f296929d6cffa12b993ea53e9fe8215fada050d78626c5cf0e2f02b0205" dependencies = [ "ahash", "arrow", @@ -1877,7 +1924,8 @@ dependencies = [ [[package]] name = "datafusion-pruning" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391a457b9d23744c53eeb89edd1027424cba100581488d89800ed841182df905" dependencies = [ "arrow", "arrow-schema", @@ -1894,7 +1942,8 @@ dependencies = [ [[package]] name = "datafusion-session" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5f2fe790f43839c70fb9604c4f9b59ad290ef64e1d2f927925dd34a9245406" dependencies = [ "arrow", "async-trait", @@ -1917,7 +1966,8 @@ dependencies = [ [[package]] name = "datafusion-spark" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba125f581764c93193e09b3622044bb030d6ae3e124fcc874305f04345d6ea63" dependencies = [ "arrow", "datafusion-catalog", @@ -1932,7 +1982,8 @@ dependencies = [ [[package]] name = "datafusion-sql" version = "49.0.0" -source = "git+https://github.com/apache/datafusion.git?branch=branch-49#afb90999d0a1ab500f42a32251370f214f837d1e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ebebb82fda37f62f06fe14339f4faa9f197a0320cc4d26ce2a5fd53a5ccd27c" dependencies = [ "arrow", "bigdecimal", @@ -2289,9 +2340,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "h2" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" dependencies = [ "atomic-waker", "bytes", @@ -2481,9 +2532,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64", "bytes", @@ -2497,7 +2548,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.0", "tokio", "tower-service", "tracing", @@ -2724,6 +2775,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 = "itertools" version = "0.14.0" @@ -2891,7 +2951,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] @@ -3023,9 +3083,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" dependencies = [ "libc", ] @@ -3213,7 +3273,7 @@ dependencies = [ "parking_lot", "percent-encoding", "quick-xml 0.38.0", - "rand 0.9.1", + "rand 0.9.2", "reqwest", "ring", "rustls-pemfile", @@ -3322,15 +3382,6 @@ dependencies = [ "zstd", ] -[[package]] -name = "parse-zoneinfo" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" -dependencies = [ - "regex", -] - [[package]] name = "paste" version = "1.0.15" @@ -3373,38 +3424,18 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" dependencies = [ "phf_shared", - "rand 0.8.5", ] [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" dependencies = [ "siphasher", ] @@ -3472,9 +3503,9 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "pprof" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebbe2f8898beba44815fdc9e5a4ae9c929e21c5dc29b0c774a15555f7f58d6d0" +checksum = "38a01da47675efa7673b032bf8efd8214f1917d89685e07e395ab125ea42b187" dependencies = [ "aligned-vec", "backtrace", @@ -3485,11 +3516,11 @@ dependencies = [ "log", "nix", "once_cell", - "parking_lot", "smallvec", + "spin", "symbolic-demangle", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -3503,9 +3534,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", "syn 2.0.104", @@ -3629,7 +3660,7 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2", + "socket2 0.5.10", "thiserror 2.0.12", "tokio", "tracing", @@ -3645,7 +3676,7 @@ dependencies = [ "bytes", "getrandom 0.3.3", "lru-slab", - "rand 0.9.1", + "rand 0.9.2", "ring", "rustc-hash 2.1.1", "rustls", @@ -3666,7 +3697,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.5.10", "tracing", "windows-sys 0.59.0", ] @@ -3699,9 +3730,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -3767,9 +3798,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags 2.9.1", ] @@ -3811,9 +3842,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.20" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64", "bytes", @@ -3853,9 +3884,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.50" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" +checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" dependencies = [ "bytemuck", ] @@ -3876,9 +3907,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -3916,22 +3947,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.23.28" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "aws-lc-rs", "once_cell", @@ -3975,9 +4006,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "aws-lc-rs", "ring", @@ -4088,9 +4119,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" dependencies = [ "itoa", "memchr", @@ -4195,6 +4226,25 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "spin" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" +dependencies = [ + "lock_api", +] + [[package]] name = "sqlparser" version = "0.55.0" @@ -4242,9 +4292,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" -version = "12.15.5" +version = "12.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1150bdda9314f6cfeeea801c23f5593c6e6a6c72e64f67e48d723a12b8efdb" +checksum = "70f4d06896c59fabe3fe36d7bc003c975f0a0af67d380e14a95eaebffe4f8de5" dependencies = [ "debugid", "memmap2", @@ -4254,9 +4304,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.15.5" +version = "12.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f66537def48fbc704a92e4fdaab7833bc7cb2255faca8182592fb5fa617eb82" +checksum = "bd3903bafe2ed4c3512ff4c6eb77cc22b6f43662f3b9f7e3fe4f152927f54ec8" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -4314,7 +4364,7 @@ dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", + "rustix 1.0.8", "windows-sys 0.59.0", ] @@ -4486,9 +4536,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.46.1" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" dependencies = [ "backtrace", "bytes", @@ -4499,9 +4549,9 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4626,7 +4676,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" dependencies = [ - "rand 0.9.1", + "rand 0.9.2", ] [[package]] @@ -5002,7 +5052,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] @@ -5038,10 +5088,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", diff --git a/native/Cargo.toml b/native/Cargo.toml index c9654bd12d..580eff6a24 100644 --- a/native/Cargo.toml +++ b/native/Cargo.toml @@ -38,8 +38,8 @@ arrow = { version = "55.2.0", features = ["prettyprint", "ffi", "chrono-tz"] } async-trait = { version = "0.1" } bytes = { version = "1.10.0" } parquet = { version = "55.2.0", default-features = false, features = ["experimental"] } -datafusion = { git = "https://github.com/apache/datafusion.git", branch = "branch-49", default-features = false, features = ["unicode_expressions", "crypto_expressions", "nested_expressions", "parquet"] } -datafusion-spark = { git = "https://github.com/apache/datafusion.git", branch = "branch-49" } +datafusion = { version = "49.0.0", default-features = false, features = ["unicode_expressions", "crypto_expressions", "nested_expressions", "parquet"] } +datafusion-spark = { version = "49.0.0" } datafusion-comet-spark-expr = { path = "spark-expr" } datafusion-comet-proto = { path = "proto" } chrono = { version = "0.4", default-features = false, features = ["clock"] } diff --git a/native/core/Cargo.toml b/native/core/Cargo.toml index d992c96912..18bb8bd448 100644 --- a/native/core/Cargo.toml +++ b/native/core/Cargo.toml @@ -78,13 +78,13 @@ datafusion-comet-objectstore-hdfs = { path = "../hdfs", optional = true, default procfs = "0.17.0" [dev-dependencies] -pprof = { version = "0.14.0", features = ["flamegraph"] } -criterion = { version = "0.5.1", features = ["async_tokio"] } +pprof = { version = "0.15", features = ["flamegraph"] } +criterion = { version = "0.7", features = ["async_tokio"] } jni = { version = "0.21", features = ["invocation"] } lazy_static = "1.4" assertables = "9" hex = "0.4.3" -datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", branch = "branch-49" } +datafusion-functions-nested = { version = "49.0.0" } [features] default = [] From d5f723d5f0d5d94343f79ae4702c89b268666898 Mon Sep 17 00:00:00 2001 From: comphead Date: Thu, 31 Jul 2025 16:51:06 -0700 Subject: [PATCH 11/12] chore: migrate to DF 49.0.0 --- native/Cargo.lock | 286 +++++++++++++++--- native/core/Cargo.toml | 2 +- native/core/benches/bit_util.rs | 3 +- native/core/benches/filter.rs | 3 +- native/spark-expr/Cargo.toml | 3 +- native/spark-expr/benches/aggregate.rs | 3 +- native/spark-expr/benches/bloom_filter_agg.rs | 6 +- native/spark-expr/benches/conditional.rs | 3 +- native/spark-expr/benches/decimal_div.rs | 3 +- 9 files changed, 253 insertions(+), 59 deletions(-) diff --git a/native/Cargo.lock b/native/Cargo.lock index 5a46862bfa..b00fa14d0a 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -343,6 +343,119 @@ version = "9.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0118bf39618c9958c058d23c1453fdfc40c99688d9a0dfdc441244421ef89407" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.5.0", + "async-executor", + "async-io", + "async-lock", + "blocking", + "futures-lite", + "once_cell", +] + +[[package]] +name = "async-io" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 1.0.8", + "slab", + "windows-sys 0.60.2", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.4.0", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-std" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "730294c1c08c2e0f85759590518f6333f0d5a0a766a27d519c1b244c3dfd8a24" +dependencies = [ + "async-channel 1.9.0", + "async-global-executor", + "async-io", + "async-lock", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + [[package]] name = "async-trait" version = "0.1.88" @@ -854,6 +967,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel 2.5.0", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + [[package]] name = "brotli" version = "8.0.1" @@ -1068,6 +1194,15 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "const-random" version = "0.1.18" @@ -1137,32 +1272,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "criterion" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" -dependencies = [ - "anes", - "cast", - "ciborium", - "clap", - "criterion-plot 0.5.0", - "is-terminal", - "itertools 0.10.5", - "num-traits", - "once_cell", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] - [[package]] name = "criterion" version = "0.7.0" @@ -1170,10 +1279,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928" dependencies = [ "anes", + "async-std", "cast", "ciborium", "clap", - "criterion-plot 0.6.0", + "criterion-plot", "itertools 0.13.0", "num-traits", "oorandom", @@ -1187,16 +1297,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools 0.10.5", -] - [[package]] name = "criterion-plot" version = "0.6.0" @@ -1393,7 +1493,7 @@ dependencies = [ "aws-credential-types", "bytes", "crc32fast", - "criterion 0.7.0", + "criterion", "datafusion", "datafusion-comet-objectstore-hdfs", "datafusion-comet-proto", @@ -1460,7 +1560,7 @@ dependencies = [ "arrow", "chrono", "chrono-tz", - "criterion 0.5.1", + "criterion", "datafusion", "futures", "num", @@ -2100,6 +2200,33 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener 5.4.0", + "pin-project-lite", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -2248,6 +2375,19 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-lite" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -2338,6 +2478,18 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "h2" version = "0.4.11" @@ -2757,15 +2909,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -2852,6 +2995,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3014,6 +3166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" dependencies = [ "serde", + "value-bag", ] [[package]] @@ -3322,6 +3475,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.4" @@ -3452,6 +3611,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + [[package]] name = "pkg-config" version = "0.3.32" @@ -3486,6 +3656,20 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "polling" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee9b2fa7a4517d2c91ff5bc6c297a427a96749d15f98fcdbb22c05571a4d4b7" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 1.0.8", + "windows-sys 0.60.2", +] + [[package]] name = "potential_utf" version = "0.1.2" @@ -4767,6 +4951,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "value-bag" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" + [[package]] name = "version_check" version = "0.9.5" diff --git a/native/core/Cargo.toml b/native/core/Cargo.toml index 18bb8bd448..3146ef7c0b 100644 --- a/native/core/Cargo.toml +++ b/native/core/Cargo.toml @@ -79,7 +79,7 @@ procfs = "0.17.0" [dev-dependencies] pprof = { version = "0.15", features = ["flamegraph"] } -criterion = { version = "0.7", features = ["async_tokio"] } +criterion = { version = "0.7", features = ["async", "async_tokio", "async_std"] } jni = { version = "0.21", features = ["invocation"] } lazy_static = "1.4" assertables = "9" diff --git a/native/core/benches/bit_util.rs b/native/core/benches/bit_util.rs index 10d7060134..8a250e27c1 100644 --- a/native/core/benches/bit_util.rs +++ b/native/core/benches/bit_util.rs @@ -24,7 +24,8 @@ use comet::common::bit::{ log2, read_num_bytes_u32, read_num_bytes_u64, read_u32, read_u64, set_bits, trailing_bits, BitReader, BitWriter, }; -use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; +use std::hint::black_box; /// Benchmark to measure bit_util performance. /// To run this benchmark: diff --git a/native/core/benches/filter.rs b/native/core/benches/filter.rs index 49abf5166f..82fa4aac66 100644 --- a/native/core/benches/filter.rs +++ b/native/core/benches/filter.rs @@ -20,7 +20,8 @@ use arrow::array::{ArrayRef, RecordBatch}; use arrow::compute::filter_record_batch; use arrow::datatypes::{DataType, Field, Schema}; use comet::execution::operators::comet_filter_record_batch; -use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use criterion::{criterion_group, criterion_main, Criterion}; +use std::hint::black_box; use std::sync::Arc; use std::time::Duration; diff --git a/native/spark-expr/Cargo.toml b/native/spark-expr/Cargo.toml index ac46ba8e25..d656fb8705 100644 --- a/native/spark-expr/Cargo.toml +++ b/native/spark-expr/Cargo.toml @@ -40,11 +40,10 @@ rand = { workspace = true } [dev-dependencies] arrow = {workspace = true} -criterion = "0.5.1" +criterion = { version = "0.7", features = ["async", "async_tokio", "async_std"] } rand = { workspace = true} tokio = { version = "1", features = ["rt-multi-thread"] } - [lib] name = "datafusion_comet_spark_expr" path = "src/lib.rs" diff --git a/native/spark-expr/benches/aggregate.rs b/native/spark-expr/benches/aggregate.rs index 6227a1b500..3aa0233716 100644 --- a/native/spark-expr/benches/aggregate.rs +++ b/native/spark-expr/benches/aggregate.rs @@ -19,7 +19,7 @@ use arrow::array::builder::{Decimal128Builder, StringBuilder}; use arrow::array::{ArrayRef, RecordBatch}; use arrow::datatypes::SchemaRef; use arrow::datatypes::{DataType, Field, Schema}; -use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use criterion::{criterion_group, criterion_main, Criterion}; use datafusion::datasource::memory::MemorySourceConfig; use datafusion::datasource::source::DataSourceExec; use datafusion::execution::TaskContext; @@ -34,6 +34,7 @@ use datafusion::physical_plan::ExecutionPlan; use datafusion_comet_spark_expr::AvgDecimal; use datafusion_comet_spark_expr::SumDecimal; use futures::StreamExt; +use std::hint::black_box; use std::sync::Arc; use std::time::Duration; use tokio::runtime::Runtime; diff --git a/native/spark-expr/benches/bloom_filter_agg.rs b/native/spark-expr/benches/bloom_filter_agg.rs index 82021aa316..c425fd6c4f 100644 --- a/native/spark-expr/benches/bloom_filter_agg.rs +++ b/native/spark-expr/benches/bloom_filter_agg.rs @@ -19,7 +19,7 @@ use arrow::array::builder::Int64Builder; use arrow::array::{ArrayRef, RecordBatch}; use arrow::datatypes::SchemaRef; use arrow::datatypes::{DataType, Field, Schema}; -use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use criterion::{criterion_group, criterion_main, Criterion}; use datafusion::common::ScalarValue; use datafusion::datasource::memory::MemorySourceConfig; use datafusion::datasource::source::DataSourceExec; @@ -30,13 +30,13 @@ use datafusion::physical_expr::expressions::{Column, Literal}; use datafusion::physical_expr::PhysicalExpr; use datafusion::physical_plan::aggregates::{AggregateExec, AggregateMode, PhysicalGroupBy}; use datafusion::physical_plan::ExecutionPlan; +use datafusion_comet_spark_expr::BloomFilterAgg; use futures::StreamExt; +use std::hint::black_box; use std::sync::Arc; use std::time::Duration; use tokio::runtime::Runtime; -use datafusion_comet_spark_expr::BloomFilterAgg; - fn criterion_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("bloom_filter_agg"); let num_rows = 8192; diff --git a/native/spark-expr/benches/conditional.rs b/native/spark-expr/benches/conditional.rs index 0d91453b8e..a083c70de6 100644 --- a/native/spark-expr/benches/conditional.rs +++ b/native/spark-expr/benches/conditional.rs @@ -19,7 +19,7 @@ use arrow::array::builder::{Int32Builder, StringBuilder}; use arrow::datatypes::DataType; use arrow::datatypes::{Field, Schema}; use arrow::record_batch::RecordBatch; -use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use criterion::{criterion_group, criterion_main, Criterion}; use datafusion::common::ScalarValue; use datafusion::logical_expr::Operator; use datafusion::physical_expr::expressions::Column; @@ -27,6 +27,7 @@ use datafusion::physical_expr::expressions::Literal; use datafusion::physical_expr::expressions::{BinaryExpr, CaseExpr}; use datafusion::physical_expr::PhysicalExpr; use datafusion_comet_spark_expr::IfExpr; +use std::hint::black_box; use std::sync::Arc; fn make_col(name: &str, index: usize) -> Arc { diff --git a/native/spark-expr/benches/decimal_div.rs b/native/spark-expr/benches/decimal_div.rs index faadcddf93..4262e81238 100644 --- a/native/spark-expr/benches/decimal_div.rs +++ b/native/spark-expr/benches/decimal_div.rs @@ -18,9 +18,10 @@ use arrow::array::builder::Decimal128Builder; use arrow::compute::cast; use arrow::datatypes::DataType; -use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use criterion::{criterion_group, criterion_main, Criterion}; use datafusion::physical_plan::ColumnarValue; use datafusion_comet_spark_expr::{spark_decimal_div, spark_decimal_integral_div}; +use std::hint::black_box; use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { From 660c8ba91fc75c61c522d385cc4ac837a7afddd3 Mon Sep 17 00:00:00 2001 From: comphead Date: Thu, 31 Jul 2025 17:03:42 -0700 Subject: [PATCH 12/12] chore: migrate to DF 49.0.0 --- native/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/native/Cargo.lock b/native/Cargo.lock index b00fa14d0a..9cb00aaa73 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -4303,9 +4303,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.141" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" dependencies = [ "itoa", "memchr",