diff --git a/Cargo.lock b/Cargo.lock index a3fcce576..7c599908a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,15 +119,16 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "apache-avro" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a033b4ced7c585199fb78ef50fca7fe2f444369ec48080c5fd072efa1a03cc7" +checksum = "36fa98bc79671c7981272d91a8753a928ff6a1cd8e4f20a44c45bd5d313840bf" dependencies = [ "bigdecimal", "bon", - "bzip2 0.6.1", + "bzip2", "crc32fast", "digest", + "liblzma", "log", "miniz_oxide", "num-bigint", @@ -140,9 +141,8 @@ dependencies = [ "snap", "strum", "strum_macros", - "thiserror 2.0.17", + "thiserror 2.0.18", "uuid", - "xz2", "zstd", ] @@ -169,9 +169,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb372a7cbcac02a35d3fb7b3fc1f969ec078e871f9bb899bf00a2e1809bec8a3" +checksum = "2a2b10dcb159faf30d3f81f6d56c1211a5bea2ca424eabe477648a44b993320e" dependencies = [ "arrow-arith", "arrow-array", @@ -190,9 +190,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f377dcd19e440174596d83deb49cd724886d91060c07fec4f67014ef9d54049" +checksum = "288015089e7931843c80ed4032c5274f02b37bcb720c4a42096d50b390e70372" dependencies = [ "arrow-array", "arrow-buffer", @@ -204,9 +204,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eaff85a44e9fa914660fb0d0bb00b79c4a3d888b5334adb3ea4330c84f002" +checksum = "65ca404ea6191e06bf30956394173337fa9c35f445bd447fe6c21ab944e1a23c" dependencies = [ "ahash", "arrow-buffer", @@ -223,9 +223,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2819d893750cb3380ab31ebdc8c68874dd4429f90fd09180f3c93538bd21626" +checksum = "36356383099be0151dacc4245309895f16ba7917d79bdb71a7148659c9206c56" dependencies = [ "bytes", "half", @@ -235,9 +235,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d131abb183f80c450d4591dc784f8d7750c50c6e2bc3fcaad148afc8361271" +checksum = "9c8e372ed52bd4ee88cc1e6c3859aa7ecea204158ac640b10e187936e7e87074" dependencies = [ "arrow-array", "arrow-buffer", @@ -257,9 +257,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2275877a0e5e7e7c76954669366c2aa1a829e340ab1f612e647507860906fb6b" +checksum = "8e4100b729fe656f2e4fb32bc5884f14acf9118d4ad532b7b33c1132e4dce896" dependencies = [ "arrow-array", "arrow-cast", @@ -272,9 +272,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05738f3d42cb922b9096f7786f606fcb8669260c2640df8490533bb2fa38c9d3" +checksum = "bf87f4ff5fc13290aa47e499a8b669a82c5977c6a1fedce22c7f542c1fd5a597" dependencies = [ "arrow-buffer", "arrow-schema", @@ -285,9 +285,9 @@ dependencies = [ [[package]] name = "arrow-flight" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5f57c3d39d1b1b7c1376a772ea86a131e7da310aed54ebea9363124bb885e3" +checksum = "f63654f21676be802d446c6c4bc54f6a47e18d55f9ae6f7195a6f6faf2ecdbeb" dependencies = [ "arrow-arith", "arrow-array", @@ -313,9 +313,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d09446e8076c4b3f235603d9ea7c5494e73d441b01cd61fb33d7254c11964b3" +checksum = "eb3ca63edd2073fcb42ba112f8ae165df1de935627ead6e203d07c99445f2081" dependencies = [ "arrow-array", "arrow-buffer", @@ -329,9 +329,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "371ffd66fa77f71d7628c63f209c9ca5341081051aa32f9c8020feb0def787c0" +checksum = "a36b2332559d3310ebe3e173f75b29989b4412df4029a26a30cc3f7da0869297" dependencies = [ "arrow-array", "arrow-buffer", @@ -340,7 +340,7 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "lexical-core", "memchr", @@ -353,9 +353,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc94fc7adec5d1ba9e8cd1b1e8d6f72423b33fe978bf1f46d970fafab787521" +checksum = "13c4e0530272ca755d6814218dffd04425c5b7854b87fa741d5ff848bf50aa39" dependencies = [ "arrow-array", "arrow-buffer", @@ -366,9 +366,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "169676f317157dc079cc5def6354d16db63d8861d61046d2f3883268ced6f99f" +checksum = "b07f52788744cc71c4628567ad834cadbaeb9f09026ff1d7a4120f69edf7abd3" dependencies = [ "arrow-array", "arrow-buffer", @@ -379,9 +379,9 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27609cd7dd45f006abae27995c2729ef6f4b9361cde1ddd019dc31a5aa017e0" +checksum = "6bb63203e8e0e54b288d0d8043ca8fa1013820822a27692ef1b78a977d879f2c" dependencies = [ "serde_core", "serde_json", @@ -389,9 +389,9 @@ dependencies = [ [[package]] name = "arrow-select" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae980d021879ea119dd6e2a13912d81e64abed372d53163e804dfe84639d8010" +checksum = "c96d8a1c180b44ecf2e66c9a2f2bbcb8b1b6f14e165ce46ac8bde211a363411b" dependencies = [ "ahash", "arrow-array", @@ -403,9 +403,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf35e8ef49dcf0c5f6d175edee6b8af7b45611805333129c541a8b89a0fc0534" +checksum = "a8ad6a81add9d3ea30bf8374ee8329992c7fd246ffd8b7e2f48a3cea5aa0cc9a" dependencies = [ "arrow-array", "arrow-buffer", @@ -436,19 +436,14 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.19" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" +checksum = "d10e4f991a553474232bc0a31799f6d24b034a84c0971d80d2e2f78b2e576e40" dependencies = [ - "bzip2 0.5.2", - "flate2", - "futures-core", - "memchr", + "compression-codecs", + "compression-core", "pin-project-lite", "tokio", - "xz2", - "zstd", - "zstd-safe", ] [[package]] @@ -459,7 +454,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -481,7 +476,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -492,7 +487,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -560,9 +555,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.15.2" +version = "1.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88aab2464f1f25453baa7a07c84c5b7684e274054ba06817f382357f77a288" +checksum = "e84ce723ab67259cfeb9877c6a639ee9eb7a27b28123abd71db7f0d5d0cc9d86" dependencies = [ "aws-lc-sys", "zeroize", @@ -570,9 +565,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45afffdee1e7c9126814751f88dddc747f41d91da16c9551a0f1e8a11e788a1" +checksum = "43a442ece363113bd4bd4c8b18977a7798dd4d3c3383f34fb61936960e8f4ad8" dependencies = [ "cc", "cmake", @@ -582,9 +577,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.17" +version = "1.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d81b5b2898f6798ad58f484856768bca817e3cd9de0974c24ae0f1113fe88f1b" +checksum = "959dab27ce613e6c9658eb3621064d0e2027e5f2acb65bc526a43577facea557" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -606,15 +601,16 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.91.0" +version = "1.92.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee6402a36f27b52fe67661c6732d684b2635152b676aa2babbfb5204f99115d" +checksum = "b7d63bd2bdeeb49aa3f9b00c15e18583503b778b2e792fc06284d54e7d5b6566" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", + "aws-smithy-observability", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -628,15 +624,16 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.93.0" +version = "1.94.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45a7f750bbd170ee3677671ad782d90b894548f4e4ae168302c57ec9de5cb3e" +checksum = "532d93574bf731f311bafb761366f9ece345a0416dbcc273d81d6d1a1205239b" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", + "aws-smithy-observability", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -650,15 +647,16 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.95.0" +version = "1.96.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55542378e419558e6b1f398ca70adb0b2088077e79ad9f14eb09441f2f7b2164" +checksum = "357e9a029c7524db6a0099cd77fbd5da165540339e7296cca603531bc783b56c" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", "aws-smithy-json", + "aws-smithy-observability", "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -760,9 +758,9 @@ dependencies = [ [[package]] name = "aws-smithy-observability" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f616c3f2260612fe44cede278bafa18e73e6479c4e393e2c4518cf2a9a228a" +checksum = "ef1fcbefc7ece1d70dcce29e490f269695dfca2d2bacdeaf9e5c3f799e4e6a42" dependencies = [ "aws-smithy-runtime-api", ] @@ -779,9 +777,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.9.5" +version = "1.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a392db6c583ea4a912538afb86b7be7c5d8887d91604f50eb55c262ee1b4a5f5" +checksum = "bb5b6167fcdf47399024e81ac08e795180c576a20e4d4ce67949f9a88ae37dc1" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -803,9 +801,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.9.3" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0d43d899f9e508300e587bf582ba54c27a452dd0a9ea294690669138ae14a2" +checksum = "efce7aaaf59ad53c5412f14fc19b2d5c6ab2c3ec688d272fd31f76ec12f44fb0" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -820,9 +818,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.3.5" +version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905cb13a9895626d49cf2ced759b062d913834c7482c38e49557eac4e6193f01" +checksum = "65f172bcb02424eb94425db8aed1b6d583b5104d4d5ddddf22402c661a320048" dependencies = [ "base64-simd", "bytes", @@ -918,7 +916,7 @@ dependencies = [ [[package]] name = "ballista" -version = "51.0.0" +version = "52.0.0" dependencies = [ "async-trait", "ballista-core", @@ -938,7 +936,7 @@ dependencies = [ [[package]] name = "ballista-benchmarks" -version = "51.0.0" +version = "52.0.0" dependencies = [ "ballista", "ballista-core", @@ -958,7 +956,7 @@ dependencies = [ [[package]] name = "ballista-cli" -version = "51.0.0" +version = "52.0.0" dependencies = [ "ballista", "clap 4.5.54", @@ -973,7 +971,7 @@ dependencies = [ [[package]] name = "ballista-core" -version = "51.0.0" +version = "52.0.0" dependencies = [ "arrow-flight", "async-trait", @@ -1008,7 +1006,7 @@ dependencies = [ [[package]] name = "ballista-examples" -version = "51.0.0" +version = "52.0.0" dependencies = [ "ballista", "ballista-core", @@ -1027,7 +1025,7 @@ dependencies = [ [[package]] name = "ballista-executor" -version = "51.0.0" +version = "52.0.0" dependencies = [ "arrow", "arrow-flight", @@ -1055,7 +1053,7 @@ dependencies = [ [[package]] name = "ballista-scheduler" -version = "51.0.0" +version = "52.0.0" dependencies = [ "arrow-flight", "async-trait", @@ -1147,15 +1145,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", + "cpufeatures", ] [[package]] @@ -1204,7 +1203,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -1246,9 +1245,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.8.1" +version = "3.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebeb9aaf9329dff6ceb65c689ca3db33dbf15f324909c60e4e5eef5701ce31b1" +checksum = "234655ec178edd82b891e262ea7cf71f6584bcd09eff94db786be23f1821825c" dependencies = [ "bon-macros", "rustversion", @@ -1256,17 +1255,17 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.8.1" +version = "3.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e9d642a7e3a318e37c2c9427b5a6a48aa1ad55dcd986f3034ab2239045a645" +checksum = "89ec27229c38ed0eb3c0feee3d2c1d6a4379ae44f418a29a658890e062d8f365" dependencies = [ - "darling", + "darling 0.23.0", "ident_case", "prettyplease", "proc-macro2", "quote", "rustversion", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -1318,15 +1317,6 @@ dependencies = [ "either", ] -[[package]] -name = "bzip2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" -dependencies = [ - "bzip2-sys", -] - [[package]] name = "bzip2" version = "0.6.1" @@ -1336,21 +1326,11 @@ dependencies = [ "libbz2-rs-sys", ] -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "cc" -version = "1.2.51" +version = "1.2.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932" dependencies = [ "find-msvc-tools", "jobserver", @@ -1372,9 +1352,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "num-traits", @@ -1434,14 +1414,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] name = "clap_lex" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" [[package]] name = "clipboard-win" @@ -1469,14 +1449,35 @@ checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "comfy-table" -version = "7.2.1" +version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" dependencies = [ "unicode-segmentation", "unicode-width 0.2.2", ] +[[package]] +name = "compression-codecs" +version = "0.4.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00828ba6fd27b45a448e57dbfe84f1029d4c9f26b368157e9a448a5f49a2ec2a" +dependencies = [ + "bzip2", + "compression-core", + "flate2", + "liblzma", + "memchr", + "zstd", + "zstd-safe", +] + +[[package]] +name = "compression-core" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" + [[package]] name = "const-random" version = "0.1.18" @@ -1492,16 +1493,16 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "once_cell", "tiny-keccak", ] [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "core-foundation" @@ -1591,9 +1592,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.5.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67773048316103656a637612c4a62477603b777d91d9c62ff2290f9cde178fdb" +checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" dependencies = [ "ctor-proc-macro", "dtor", @@ -1601,9 +1602,9 @@ dependencies = [ [[package]] name = "ctor-proc-macro" -version = "0.0.6" +version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" [[package]] name = "darling" @@ -1611,8 +1612,18 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -1626,7 +1637,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.113", + "syn 2.0.114", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.114", ] [[package]] @@ -1635,9 +1659,20 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -1656,15 +1691,15 @@ dependencies = [ [[package]] name = "datafusion" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba7cb113e9c0bedf9e9765926031e132fa05a1b09ba6e93a6d1a4d7044457b8" +checksum = "f02e9a7e70f214e5282db11c8effba173f4e25a00977e520c6b811817e3a082b" dependencies = [ "arrow", "arrow-schema", "async-trait", "bytes", - "bzip2 0.6.1", + "bzip2", "chrono", "datafusion-catalog", "datafusion-catalog-listing", @@ -1695,27 +1730,26 @@ dependencies = [ "flate2", "futures", "itertools", + "liblzma", "log", "object_store", "parking_lot", "parquet", "rand", "regex", - "rstest", "sqlparser", "tempfile", "tokio", "url", "uuid", - "xz2", "zstd", ] [[package]] name = "datafusion-catalog" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a3a799f914a59b1ea343906a0486f17061f39509af74e874a866428951130d" +checksum = "f3e91b2603f906cf8cb8be84ba4e34f9d8fe6dbdfdd6916d55f22317074d1fdf" dependencies = [ "arrow", "async-trait", @@ -1738,9 +1772,9 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db1b113c80d7a0febcd901476a57aef378e717c54517a163ed51417d87621b0" +checksum = "919d20cdebddee4d8dca651aa0291a44c8104824d1ac288996a325c319ce31ba" dependencies = [ "arrow", "async-trait", @@ -1757,14 +1791,13 @@ dependencies = [ "itertools", "log", "object_store", - "tokio", ] [[package]] name = "datafusion-cli" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fab982df44f818a749cb5200504ccb919f4608cb9808daf8b3fb98aa7955fd1e" +checksum = "9dfa8ae9a651539d0d34278b772f35bb457fb77c5fe54cf06d5e9f87c536b240" dependencies = [ "arrow", "async-trait", @@ -1790,9 +1823,9 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c10f7659e96127d25e8366be7c8be4109595d6a2c3eac70421f380a7006a1b0" +checksum = "31ff2c4e95be40ad954de93862167b165a6fb49248bb882dea8aef4f888bc767" dependencies = [ "ahash", "apache-avro", @@ -1800,9 +1833,9 @@ dependencies = [ "arrow-ipc", "chrono", "half", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "hex", - "indexmap 2.12.1", + "indexmap 2.13.0", "libc", "log", "object_store", @@ -1816,9 +1849,9 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92065bbc6532c6651e2f7dd30b55cba0c7a14f860c7e1d15f165c41a1868d95" +checksum = "0dd9f820fe58c2600b6c33a14432228dbaaf233b96c83a1fd61f16d073d5c3c5" dependencies = [ "futures", "log", @@ -1827,15 +1860,15 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde13794244bc7581cd82f6fff217068ed79cdc344cafe4ab2c3a1c3510b38d6" +checksum = "86b32b7b12645805d20b70aba6ba846cd262d7b073f7f617640c3294af108d44" dependencies = [ "arrow", "async-compression", "async-trait", "bytes", - "bzip2 0.6.1", + "bzip2", "chrono", "datafusion-common", "datafusion-common-runtime", @@ -1850,21 +1883,21 @@ dependencies = [ "futures", "glob", "itertools", + "liblzma", "log", "object_store", "rand", "tokio", "tokio-util", "url", - "xz2", "zstd", ] [[package]] name = "datafusion-datasource-arrow" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804fa9b4ecf3157982021770617200ef7c1b2979d57bec9044748314775a9aea" +checksum = "597695c8ebb723ee927b286139d43a3fbed6de7ad9210bd1a9fed5c721ac6fb1" dependencies = [ "arrow", "arrow-ipc", @@ -1886,9 +1919,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-avro" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388ed8be535f562cc655b9c3d22edbfb0f1a50a25c242647a98b6d92a75b55a1" +checksum = "1c94347a431bac4bcb8408abb1cb5d40dab41f8d59c39db32f8f59e08144875f" dependencies = [ "apache-avro", "arrow", @@ -1906,9 +1939,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a1641a40b259bab38131c5e6f48fac0717bedb7dc93690e604142a849e0568" +checksum = "6bb493d07d8da6d00a89ea9cc3e74a56795076d9faed5ac30284bd9ef37929e9" dependencies = [ "arrow", "async-trait", @@ -1929,9 +1962,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adeacdb00c1d37271176f8fb6a1d8ce096baba16ea7a4b2671840c5c9c64fe85" +checksum = "5e9806521c4d3632f53b9a664041813c267c670232efa1452ef29faee71c3749" dependencies = [ "arrow", "async-trait", @@ -1951,9 +1984,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-parquet" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d0b60ffd66f28bfb026565d62b0a6cbc416da09814766a3797bba7d85a3cd9" +checksum = "f6a3ccd48d5034f8461f522114d0e46dfb3a9f0ce01a4d53a721024ace95d60d" dependencies = [ "arrow", "async-trait", @@ -1981,18 +2014,19 @@ dependencies = [ [[package]] name = "datafusion-doc" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b99e13947667b36ad713549237362afb054b2d8f8cc447751e23ec61202db07" +checksum = "ff69a18418e9878d4840f35e2ad7f2a6386beedf192e9f065e628a7295ff5fbf" [[package]] name = "datafusion-execution" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63695643190679037bc946ad46a263b62016931547bf119859c511f7ff2f5178" +checksum = "ccbc5e469b35d87c0b115327be83d68356ef9154684d32566315b5c071577e23" dependencies = [ "arrow", "async-trait", + "chrono", "dashmap", "datafusion-common", "datafusion-expr", @@ -2008,9 +2042,9 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a4787cbf5feb1ab351f789063398f67654a6df75c4d37d7f637dc96f951a91" +checksum = "81ed3c02a3faf4e09356d5a314471703f440f0a6a14ca6addaf6cfb44ab14de5" dependencies = [ "arrow", "async-trait", @@ -2021,7 +2055,7 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-functions-window-common", "datafusion-physical-expr-common", - "indexmap 2.12.1", + "indexmap 2.13.0", "itertools", "paste", "recursive", @@ -2031,22 +2065,22 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce2fb1b8c15c9ac45b0863c30b268c69dc9ee7a1ee13ecf5d067738338173dc" +checksum = "1567e60d21c372ca766dc9dde98efabe2b06d98f008d988fed00d93546bf5be7" dependencies = [ "arrow", "datafusion-common", - "indexmap 2.12.1", + "indexmap 2.13.0", "itertools", "paste", ] [[package]] name = "datafusion-functions" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794a9db7f7b96b3346fc007ff25e994f09b8f0511b4cf7dff651fadfe3ebb28f" +checksum = "c4593538abd95c27eeeb2f86b7ad827cce07d0c474eae9b122f4f9675f8c20ad" dependencies = [ "arrow", "arrow-buffer", @@ -2054,6 +2088,7 @@ dependencies = [ "blake2", "blake3", "chrono", + "chrono-tz", "datafusion-common", "datafusion-doc", "datafusion-execution", @@ -2074,9 +2109,9 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c25210520a9dcf9c2b2cbbce31ebd4131ef5af7fc60ee92b266dc7d159cb305" +checksum = "f81cdf609f43cd26156934fd81beb7215d60dda40a776c2e1b83d73df69434f2" dependencies = [ "ahash", "arrow", @@ -2095,9 +2130,9 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f4a66f3b87300bb70f4124b55434d2ae3fe80455f3574701d0348da040b55d" +checksum = "9173f1bcea2ede4a5c23630a48469f06c9db9a408eb5fd140d1ff9a5e0c40ebf" dependencies = [ "ahash", "arrow", @@ -2108,9 +2143,9 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae5c06eed03918dc7fe7a9f082a284050f0e9ecf95d72f57712d1496da03b8c4" +checksum = "1d0b9f32e7735a3b94ae8b9596d89080dc63dd139029a91133be370da099490d" dependencies = [ "arrow", "arrow-ord", @@ -2131,9 +2166,9 @@ dependencies = [ [[package]] name = "datafusion-functions-table" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4fed1d71738fbe22e2712d71396db04c25de4111f1ec252b8f4c6d3b25d7f5" +checksum = "57a29e8a6201b3b9fb2be17d88e287c6d427948d64220cd5ea72ced614a1aee5" dependencies = [ "arrow", "async-trait", @@ -2147,9 +2182,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d92206aa5ae21892f1552b4d61758a862a70956e6fd7a95cb85db1de74bc6d1" +checksum = "cd412754964a31c515e5a814e5ce0edaf30f0ea975f3691e800eff115ee76dfb" dependencies = [ "arrow", "datafusion-common", @@ -2165,9 +2200,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ae9bcc39800820d53a22d758b3b8726ff84a5a3e24cecef04ef4e5fdf1c7cc" +checksum = "d49be73a5ac0797398927a543118bd68e58e80bf95ebdabc77336bcd9c38a711" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -2175,20 +2210,20 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1063ad4c9e094b3f798acee16d9a47bd7372d9699be2de21b05c3bd3f34ab848" +checksum = "439ff5489dcac4d34ed7a49a93310c3345018c4469e34726fa471cdda725346d" dependencies = [ "datafusion-doc", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] name = "datafusion-optimizer" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35f9ec5d08b87fd1893a30c2929f2559c2f9806ca072d8fefca5009dc0f06a" +checksum = "a80bb7de8ff5a9948799bc7749c292eac5c629385cdb582893ef2d80b6e718c4" dependencies = [ "arrow", "chrono", @@ -2196,7 +2231,7 @@ dependencies = [ "datafusion-expr", "datafusion-expr-common", "datafusion-physical-expr", - "indexmap 2.12.1", + "indexmap 2.13.0", "itertools", "log", "recursive", @@ -2206,9 +2241,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30cc8012e9eedcb48bbe112c6eff4ae5ed19cf3003cb0f505662e88b7014c5d" +checksum = "83480008f66691a0047c5a88990bd76b7c1117dd8a49ca79959e214948b81f0a" dependencies = [ "ahash", "arrow", @@ -2218,19 +2253,21 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-physical-expr-common", "half", - "hashbrown 0.14.5", - "indexmap 2.12.1", + "hashbrown 0.16.1", + "indexmap 2.13.0", "itertools", "parking_lot", "paste", - "petgraph 0.8.3", + "petgraph", + "recursive", + "tokio", ] [[package]] name = "datafusion-physical-expr-adapter" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9ff2dbd476221b1f67337699eff432781c4e6e1713d2aefdaa517dfbf79768" +checksum = "6b438306446646b359666a658cc29d5494b1e9873bc7a57707689760666fc82c" dependencies = [ "arrow", "datafusion-common", @@ -2243,23 +2280,26 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90da43e1ec550b172f34c87ec68161986ced70fd05c8d2a2add66eef9c276f03" +checksum = "95b1fbf739038e0b313473588331c5bf79985d1b842b9937c1f10b170665cae1" dependencies = [ "ahash", "arrow", + "chrono", "datafusion-common", "datafusion-expr-common", - "hashbrown 0.14.5", + "hashbrown 0.16.1", + "indexmap 2.13.0", "itertools", + "parking_lot", ] [[package]] name = "datafusion-physical-optimizer" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce9804f799acd7daef3be7aaffe77c0033768ed8fdbf5fb82fc4c5f2e6bc14e6" +checksum = "fc4cd3a170faa0f1de04bd4365ccfe309056746dd802ed276e8787ccb8e8a0d4" dependencies = [ "arrow", "datafusion-common", @@ -2276,28 +2316,28 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0acf0ad6b6924c6b1aa7d213b181e012e2d3ec0a64ff5b10ee6282ab0f8532ac" +checksum = "a616a72b4ddf550652b36d5a7c0386eac4accea3ffc6c29a7b16c45f237e9882" dependencies = [ "ahash", "arrow", "arrow-ord", "arrow-schema", "async-trait", - "chrono", "datafusion-common", "datafusion-common-runtime", "datafusion-execution", "datafusion-expr", + "datafusion-functions", "datafusion-functions-aggregate-common", "datafusion-functions-window-common", "datafusion-physical-expr", "datafusion-physical-expr-common", "futures", "half", - "hashbrown 0.14.5", - "indexmap 2.12.1", + "hashbrown 0.16.1", + "indexmap 2.13.0", "itertools", "log", "parking_lot", @@ -2307,9 +2347,9 @@ dependencies = [ [[package]] name = "datafusion-proto" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d368093a98a17d1449b1083ac22ed16b7128e4c67789991869480d8c4a40ecb9" +checksum = "a0a96a57f60a53041c6d275dc46313bbe34f07ed51c4cea3557b321d4f3da7e0" dependencies = [ "arrow", "chrono", @@ -2334,9 +2374,9 @@ dependencies = [ [[package]] name = "datafusion-proto-common" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6aef3d5e5c1d2bc3114c4876730cb76a9bdc5a8df31ef1b6db48f0c1671895" +checksum = "38f4c54f4a47608d2ef5af2fbaca9975cac9e48b93acf41b2ccf584405a3da5e" dependencies = [ "arrow", "datafusion-common", @@ -2345,9 +2385,9 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2c2498a1f134a9e11a9f5ed202a2a7d7e9774bd9249295593053ea3be999db" +checksum = "4bf4b50be3ab65650452993eda4baf81edb245fb039b8714476b0f4c8801a527" dependencies = [ "arrow", "datafusion-common", @@ -2362,9 +2402,9 @@ dependencies = [ [[package]] name = "datafusion-session" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f96eebd17555386f459037c65ab73aae8df09f464524c709d6a3134ad4f4776" +checksum = "66e080e2c105284460580c18e751b2133cc306df298181e4349b5b134632811a" dependencies = [ "async-trait", "datafusion-common", @@ -2376,16 +2416,16 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc195fe60634b2c6ccfd131b487de46dc30eccae8a3c35a13f136e7f440414f" +checksum = "3dac502db772ff9bffc2ceae321963091982e8d5f5dfcb877e8dc66fc9a093cc" dependencies = [ "arrow", "bigdecimal", "chrono", "datafusion-common", "datafusion-expr", - "indexmap 2.12.1", + "indexmap 2.13.0", "log", "recursive", "regex", @@ -2394,9 +2434,9 @@ dependencies = [ [[package]] name = "datafusion-substrait" -version = "51.0.0" +version = "52.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2505af06d103a55b4e8ded0c6aeb6c72a771948da939c0bd3f8eee67af475a9c" +checksum = "bd76fd28a2804bf3d757ee19bfba8f818b3361157f0cdfa314609ad64f249b75" dependencies = [ "async-recursion", "async-trait", @@ -2463,7 +2503,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -2578,13 +2618,12 @@ checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" [[package]] name = "etcetera" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6" +checksum = "de48cc4d1c1d97a20fd819def54b890cadde72ed3ad0c614822a0a433361be96" dependencies = [ "cfg-if", - "home", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2604,23 +2643,33 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "ferroid" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb330bbd4cb7a5b9f559427f06f98a4f853a137c8298f3bd3f8ca57663e21986" +dependencies = [ + "portable-atomic", + "rand", + "web-time", +] + [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.60.2", ] [[package]] name = "find-msvc-tools" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" +checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" [[package]] name = "fixedbitset" @@ -2640,13 +2689,13 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" dependencies = [ "crc32fast", - "libz-rs-sys", "miniz_oxide", + "zlib-rs", ] [[package]] @@ -2738,7 +2787,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -2789,9 +2838,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", @@ -2838,9 +2887,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -2848,7 +2897,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -2878,10 +2927,6 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] [[package]] name = "hashbrown" @@ -3267,9 +3312,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -3344,9 +3389,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jiff" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87d9b8105c23642f50cbbae03d1f75d8422c5cb98ce7ee9271f7ff7505be6b8" +checksum = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50" dependencies = [ "jiff-static", "log", @@ -3357,13 +3402,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b787bebb543f8969132630c51fd0afab173a86c6abae56ff3b9e5e3e3f9f6e58" +checksum = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -3378,9 +3423,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -3457,9 +3502,29 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.179" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" + +[[package]] +name = "liblzma" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c36d08cad03a3fbe2c4e7bb3a9e84c57e4ee4135ed0b065cade3d98480c648" +dependencies = [ + "liblzma-sys", +] + +[[package]] +name = "liblzma-sys" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b9596486f6d60c3bbe644c0e1be1aa6ccc472ad630fe8927b456973d7cb736" +dependencies = [ + "cc", + "libc", + "pkg-config", +] [[package]] name = "libm" @@ -3488,15 +3553,6 @@ dependencies = [ "redox_syscall 0.7.0", ] -[[package]] -name = "libz-rs-sys" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415" -dependencies = [ - "zlib-rs", -] - [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -3545,17 +3601,6 @@ dependencies = [ "twox-hash", ] -[[package]] -name = "lzma-sys" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "matchers" version = "0.2.0" @@ -3751,9 +3796,9 @@ dependencies = [ [[package]] name = "object_store" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1be0c6c22ec0817cdc77d3842f721a17fd30ab6965001415b5402a74e6b740" +checksum = "fbfbfff40aeccab00ec8a910b57ca8ecf4319b335c542f2edcd19dd25a1e2a00" dependencies = [ "async-trait", "base64 0.22.1", @@ -3777,7 +3822,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "url", @@ -3850,9 +3895,9 @@ dependencies = [ [[package]] name = "parquet" -version = "57.1.0" +version = "57.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be3e4f6d320dd92bfa7d612e265d7d08bba0a240bab86af3425e1d255a511d89" +checksum = "5f6a2926a30477c0b95fea6c28c3072712b139337a242c2cc64817bdc20a8854" dependencies = [ "ahash", "arrow-array", @@ -3908,7 +3953,7 @@ dependencies = [ "regex", "regex-syntax", "structmeta", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -3990,7 +4035,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4003,16 +4048,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap 2.12.1", -] - [[package]] name = "petgraph" version = "0.8.3" @@ -4021,7 +4056,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", "hashbrown 0.15.5", - "indexmap 2.12.1", + "indexmap 2.13.0", "serde", ] @@ -4060,7 +4095,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4127,7 +4162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4165,9 +4200,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.104" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] @@ -4208,14 +4243,14 @@ dependencies = [ "parking_lot", "procfs", "protobuf", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "prost" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", "prost-derive", @@ -4223,44 +4258,43 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck 0.5.0", "itertools", "log", "multimap", - "once_cell", - "petgraph 0.7.1", + "petgraph", "prettyplease", "prost", "prost-types", "pulldown-cmark", "pulldown-cmark-to-cmark", "regex", - "syn 2.0.113", + "syn 2.0.114", "tempfile", ] [[package]] name = "prost-derive" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] name = "prost-types" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ "prost", ] @@ -4308,9 +4342,9 @@ dependencies = [ [[package]] name = "pulldown-cmark-to-cmark" -version = "21.1.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8246feae3db61428fd0bb94285c690b460e4517d83152377543ca802357785f1" +checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" dependencies = [ "pulldown-cmark", ] @@ -4345,7 +4379,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -4366,7 +4400,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -4388,9 +4422,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.42" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" dependencies = [ "proc-macro2", ] @@ -4433,9 +4467,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", ] @@ -4457,7 +4491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" dependencies = [ "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4484,9 +4518,9 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4506,7 +4540,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4610,7 +4644,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -4641,7 +4675,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.113", + "syn 2.0.114", "unicode-ident", ] @@ -4688,9 +4722,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "aws-lc-rs", "log", @@ -4725,9 +4759,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", @@ -4735,9 +4769,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "aws-lc-rs", "ring", @@ -4842,7 +4876,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4927,7 +4961,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4938,14 +4972,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.148" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", @@ -4973,7 +5007,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -4985,7 +5019,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5010,7 +5044,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.1", + "indexmap 2.13.0", "schemars 0.9.0", "schemars 1.2.0", "serde_core", @@ -5025,10 +5059,10 @@ version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5037,7 +5071,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "ryu", "serde", @@ -5163,7 +5197,7 @@ checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5200,7 +5234,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5211,7 +5245,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5253,7 +5287,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5276,7 +5310,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "syn 2.0.113", + "syn 2.0.114", "typify", "walkdir", ] @@ -5300,9 +5334,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.113" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -5326,7 +5360,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5344,9 +5378,9 @@ dependencies = [ [[package]] name = "testcontainers" -version = "0.25.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3ac71069f20ecfa60c396316c283fbf35e6833a53dff551a31b5458da05edc" +checksum = "a81ec0158db5fbb9831e09d1813fe5ea9023a2b5e6e8e0a5fe67e2a820733629" dependencies = [ "astral-tokio-tar", "async-trait", @@ -5355,7 +5389,9 @@ dependencies = [ "docker_credential", "either", "etcetera", + "ferroid", "futures", + "itertools", "log", "memchr", "parse-display", @@ -5363,19 +5399,18 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", - "ulid", "url", ] [[package]] name = "testcontainers-modules" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1966329d5bb3f89d33602d2db2da971fb839f9297dad16527abf4564e2ae0a6d" +checksum = "5e75e78ff453128a2c7da9a5d5a3325ea34ea214d4bf51eab3417de23a4e5147" dependencies = [ "testcontainers", ] @@ -5400,11 +5435,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -5415,18 +5450,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5451,30 +5486,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" dependencies = [ "num-conv", "time-core", @@ -5539,7 +5574,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5591,7 +5626,7 @@ version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "toml_datetime", "toml_parser", "winnow", @@ -5644,7 +5679,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5669,20 +5704,20 @@ dependencies = [ "prost-build", "prost-types", "quote", - "syn 2.0.113", + "syn 2.0.114", "tempfile", "tonic-build", ] [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.12.1", + "indexmap 2.13.0", "pin-project-lite", "slab", "sync_wrapper", @@ -5742,7 +5777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" dependencies = [ "crossbeam-channel", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", "tracing-subscriber", ] @@ -5755,7 +5790,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -5840,8 +5875,8 @@ dependencies = [ "semver", "serde", "serde_json", - "syn 2.0.113", - "thiserror 2.0.17", + "syn 2.0.114", + "thiserror 2.0.18", "unicode-ident", ] @@ -5858,7 +5893,7 @@ dependencies = [ "serde", "serde_json", "serde_tokenstream", - "syn 2.0.113", + "syn 2.0.114", "typify-impl", ] @@ -5868,21 +5903,11 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" -[[package]] -name = "ulid" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" -dependencies = [ - "rand", - "web-time", -] - [[package]] name = "unicase" -version = "2.8.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" @@ -5950,14 +5975,15 @@ dependencies = [ [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", + "serde_derive", ] [[package]] @@ -6041,18 +6067,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -6063,11 +6089,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -6076,9 +6103,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6086,22 +6113,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] @@ -6121,9 +6148,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -6200,7 +6227,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -6211,7 +6238,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -6414,9 +6441,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "writeable" @@ -6440,15 +6467,6 @@ version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" -[[package]] -name = "xz2" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" -dependencies = [ - "lzma-sys", -] - [[package]] name = "yoke" version = "0.8.1" @@ -6468,28 +6486,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -6509,7 +6527,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", "synstructure", ] @@ -6549,7 +6567,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.113", + "syn 2.0.114", ] [[package]] @@ -6560,9 +6578,9 @@ checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" [[package]] name = "zmij" -version = "1.0.10" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e0d8dffbae3d840f64bda38e28391faef673a7b5a6017840f2a106c8145868" +checksum = "94f63c051f4fe3c1509da62131a678643c5b6fbdc9273b2b79d4378ebda003d2" [[package]] name = "zstd" diff --git a/Cargo.toml b/Cargo.toml index 833d47f1a..a8945f515 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,10 +21,6 @@ members = ["ballista-cli", "ballista/client", "ballista/core", "ballista/executo resolver = "3" [workspace.package] -# edition to be changed to 2024 when we update -# Minimum Supported Rust Version (MSRV) to 1.85.0 -# which is datafusion 49 -# edition = "2024" # we should try to follow datafusion version rust-version = "1.88.0" @@ -33,11 +29,11 @@ rust-version = "1.88.0" arrow = { version = "57", features = ["ipc_compression"] } arrow-flight = { version = "57", features = ["flight-sql-experimental"] } clap = { version = "4.5", features = ["derive", "cargo"] } -datafusion = "51.0.0" -datafusion-cli = "51.0.0" -datafusion-proto = "51.0.0" -datafusion-proto-common = "51.0.0" -datafusion-substrait = "51.0.0" +datafusion = "52.0.0" +datafusion-cli = "52.0.0" +datafusion-proto = "52.0.0" +datafusion-proto-common = "52.0.0" +datafusion-substrait = "52.0.0" object_store = "0.12" prost = "0.14" prost-types = "0.14" @@ -51,7 +47,7 @@ tonic-prost-build = { version = "0.14" } tracing = "0.1" tracing-appender = "0.2.2" tracing-subscriber = { version = "0.3", features = ["env-filter"] } -ctor = { version = "0.5" } +ctor = { version = "0.6" } mimalloc = { version = "0.1" } tokio = { version = "1" } diff --git a/ballista-cli/Cargo.toml b/ballista-cli/Cargo.toml index 2a28372da..31e6ed5e3 100644 --- a/ballista-cli/Cargo.toml +++ b/ballista-cli/Cargo.toml @@ -18,7 +18,7 @@ [package] name = "ballista-cli" description = "Command Line Client for Ballista distributed query engine." -version = "51.0.0" +version = "52.0.0" authors = ["Apache DataFusion "] edition = { workspace = true } rust-version = { workspace = true } @@ -29,7 +29,7 @@ repository = "https://github.com/apache/datafusion-ballista" readme = "README.md" [dependencies] -ballista = { path = "../ballista/client", version = "51.0.0", features = ["standalone"] } +ballista = { path = "../ballista/client", version = "52.0.0", features = ["standalone"] } clap = { workspace = true, features = ["derive", "cargo"] } datafusion = { workspace = true } datafusion-cli = { workspace = true } diff --git a/ballista/client/Cargo.toml b/ballista/client/Cargo.toml index c7b0b1654..22245505b 100644 --- a/ballista/client/Cargo.toml +++ b/ballista/client/Cargo.toml @@ -19,7 +19,7 @@ name = "ballista" description = "Ballista Distributed Compute" license = "Apache-2.0" -version = "51.0.0" +version = "52.0.0" homepage = "https://datafusion.apache.org/ballista/" repository = "https://github.com/apache/datafusion-ballista" readme = "README.md" @@ -29,9 +29,9 @@ rust-version = { workspace = true } [dependencies] async-trait = { workspace = true } -ballista-core = { path = "../core", version = "51.0.0" } -ballista-executor = { path = "../executor", version = "51.0.0", optional = true } -ballista-scheduler = { path = "../scheduler", version = "51.0.0", optional = true } +ballista-core = { path = "../core", version = "52.0.0" } +ballista-executor = { path = "../executor", version = "52.0.0", optional = true } +ballista-scheduler = { path = "../scheduler", version = "52.0.0", optional = true } datafusion = { workspace = true } log = { workspace = true } @@ -39,8 +39,8 @@ tokio = { workspace = true } url = { workspace = true } [dev-dependencies] -ballista-executor = { path = "../executor", version = "51.0.0" } -ballista-scheduler = { path = "../scheduler", version = "51.0.0" } +ballista-executor = { path = "../executor", version = "52.0.0" } +ballista-scheduler = { path = "../scheduler", version = "52.0.0" } ctor = { workspace = true } datafusion-proto = { workspace = true } env_logger = { workspace = true } diff --git a/ballista/client/tests/context_checks.rs b/ballista/client/tests/context_checks.rs index 7bc1d00bd..14d32ab66 100644 --- a/ballista/client/tests/context_checks.rs +++ b/ballista/client/tests/context_checks.rs @@ -28,6 +28,7 @@ mod supported { use datafusion::prelude::*; use datafusion::{assert_batches_eq, prelude::SessionContext}; use rstest::*; + use std::path::PathBuf; #[rstest::fixture] fn test_data() -> String { @@ -714,17 +715,22 @@ mod supported { ]; let write_dir = tempfile::tempdir().expect("temporary directory to be created"); - let write_dir_path = write_dir - .path() - .to_str() - .expect("path to be converted to str"); + let write_dir_path = PathBuf::from( + write_dir + .path() + .to_str() + .expect("path to be converted to str"), + ); + + let parquet_file = write_dir_path.join("p_written_table.parquet"); + let parquet_file = parquet_file.to_str().expect("cannot create csv file"); ctx.sql("select * from test") .await? - .write_parquet(write_dir_path, Default::default(), Default::default()) + .write_parquet(parquet_file, Default::default(), Default::default()) .await?; - ctx.register_parquet("p_written_table", write_dir_path, Default::default()) + ctx.register_parquet("p_written_table", parquet_file, Default::default()) .await?; let result = ctx @@ -735,12 +741,15 @@ mod supported { assert_batches_eq!(expected, &result); + let csv_file = write_dir_path.join("c_written_table.csv"); + let csv_file = csv_file.to_str().expect("cannot create csv file"); + ctx.sql("select * from test") .await? - .write_csv(write_dir_path, Default::default(), Default::default()) + .write_csv(csv_file, Default::default(), Default::default()) .await?; - ctx.register_csv("c_written_table", write_dir_path, Default::default()) + ctx.register_csv("c_written_table", csv_file, Default::default()) .await?; let result = ctx @@ -751,12 +760,15 @@ mod supported { assert_batches_eq!(expected, &result); + let json_file = write_dir_path.join("j_written_table.json"); + let json_file = json_file.to_str().expect("cannot create csv file"); + ctx.sql("select * from test") .await? - .write_json(write_dir_path, Default::default(), Default::default()) + .write_json(json_file, Default::default(), Default::default()) .await?; - ctx.register_json("j_written_table", write_dir_path, Default::default()) + ctx.register_json("j_written_table", json_file, Default::default()) .await?; let result = ctx @@ -1048,13 +1060,12 @@ mod supported { "| | EmptyRelation: rows=1 |", "| physical_plan | ProjectionExec: expr=[count(Int64(1))@1 as count(*), id@0 as id] |", "| | AggregateExec: mode=FinalPartitioned, gby=[id@0 as id], aggr=[count(Int64(1))] |", - "| | CoalesceBatchesExec: target_batch_size=8192 |", - "| | RepartitionExec: partitioning=Hash([id@0], 16), input_partitions=1 |", - "| | AggregateExec: mode=Partial, gby=[id@0 as id], aggr=[count(Int64(1))] |", - "| | ProjectionExec: expr=[__unnest_placeholder(make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5)),depth=1)@0 as id] |", - "| | UnnestExec |", - "| | ProjectionExec: expr=[[1, 2, 3, 4, 5] as __unnest_placeholder(make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5)))] |", - "| | PlaceholderRowExec |", + "| | RepartitionExec: partitioning=Hash([id@0], 16), input_partitions=1 |", + "| | AggregateExec: mode=Partial, gby=[id@0 as id], aggr=[count(Int64(1))] |", + "| | ProjectionExec: expr=[__unnest_placeholder(make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5)),depth=1)@0 as id] |", + "| | UnnestExec |", + "| | ProjectionExec: expr=[[1, 2, 3, 4, 5] as __unnest_placeholder(make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5)))] |", + "| | PlaceholderRowExec |", "| | |", "| distributed_plan | =========ResolvedStage[stage_id=1.0, partitions=1]========= |", "| | ShuffleWriterExec: partitioning: Hash([id@0], 16) |", @@ -1069,8 +1080,7 @@ mod supported { "| | ShuffleWriterExec: partitioning: None |", "| | ProjectionExec: expr=[count(Int64(1))@1 as count(*), id@0 as id] |", "| | AggregateExec: mode=FinalPartitioned, gby=[id@0 as id], aggr=[count(Int64(1))] |", - "| | CoalesceBatchesExec: target_batch_size=8192 |", - "| | UnresolvedShuffleExec: partitioning: Hash([id@0], 16) |", + "| | UnresolvedShuffleExec: partitioning: Hash([id@0], 16) |", "| | |", "| | |", "+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+", diff --git a/ballista/core/Cargo.toml b/ballista/core/Cargo.toml index c7e385744..5ad3f7dce 100644 --- a/ballista/core/Cargo.toml +++ b/ballista/core/Cargo.toml @@ -19,7 +19,7 @@ name = "ballista-core" description = "Ballista Distributed Compute" license = "Apache-2.0" -version = "51.0.0" +version = "52.0.0" homepage = "https://datafusion.apache.org/ballista/" repository = "https://github.com/apache/datafusion-ballista" readme = "README.md" diff --git a/ballista/core/proto/ballista.proto b/ballista/core/proto/ballista.proto index 3f28cd26e..cbffea99a 100644 --- a/ballista/core/proto/ballista.proto +++ b/ballista/core/proto/ballista.proto @@ -305,6 +305,7 @@ message OperatorMetric { uint64 output_bytes = 12; NamedPruningMetrics pruning_metrics = 13; NamedRatio ratio = 14; + uint64 output_batches = 15; } } diff --git a/ballista/core/proto/datafusion.proto b/ballista/core/proto/datafusion.proto index 2d28777b2..f601d8837 100644 --- a/ballista/core/proto/datafusion.proto +++ b/ballista/core/proto/datafusion.proto @@ -179,6 +179,8 @@ message CreateExternalTableNode { message PrepareNode { string name = 1; + // We serialize both the data types and the fields for compatibility with + // older versions (newer versions populate both). repeated datafusion_common.ArrowType data_types = 2; LogicalPlanNode input = 3; repeated datafusion_common.Field fields = 4; @@ -413,6 +415,8 @@ message Wildcard { message PlaceholderNode { string id = 1; + // We serialize the data type, metadata, and nullability separately to maintain + // compatibility with older versions datafusion_common.ArrowType data_type = 2; optional bool nullable = 3; map metadata = 4; @@ -744,6 +748,7 @@ message PhysicalPlanNode { GenerateSeriesNode generate_series = 33; SortMergeJoinExecNode sort_merge_join = 34; MemoryScanExecNode memory_scan = 35; + AsyncFuncExecNode async_func = 36; } } @@ -867,6 +872,8 @@ message PhysicalExprNode { PhysicalExtensionExprNode extension = 19; UnknownColumn unknown_column = 20; + + PhysicalHashExprNode hash_expr = 21; } } @@ -985,6 +992,15 @@ message PhysicalExtensionExprNode { repeated PhysicalExprNode inputs = 2; } +message PhysicalHashExprNode { + repeated PhysicalExprNode on_columns = 1; + uint64 seed0 = 2; + uint64 seed1 = 3; + uint64 seed2 = 4; + uint64 seed3 = 5; + string description = 6; +} + message FilterExecNode { PhysicalPlanNode input = 1; PhysicalExprNode expr = 2; @@ -1005,6 +1021,15 @@ message PhysicalSortExprNodeCollection { repeated PhysicalSortExprNode physical_sort_expr_nodes = 1; } +message ProjectionExpr { + string alias = 1; + PhysicalExprNode expr = 2; +} + +message ProjectionExprs { + repeated ProjectionExpr projections = 1; +} + message FileScanExecConf { repeated FileGroup file_groups = 1; datafusion_common.Schema schema = 2; @@ -1020,6 +1045,8 @@ message FileScanExecConf { datafusion_common.Constraints constraints = 11; optional uint64 batch_size = 12; + + optional ProjectionExprs projection_exprs = 13; } message ParquetScanExecNode { @@ -1207,6 +1234,7 @@ message AggregateExecNode { repeated bool groups = 9; repeated MaybeFilter filter_expr = 10; AggLimit limit = 11; + bool has_grouping_set = 12; } message GlobalLimitExecNode { @@ -1377,4 +1405,10 @@ message SortMergeJoinExecNode { JoinFilter filter = 5; repeated SortExprNode sort_options = 6; datafusion_common.NullEquality null_equality = 7; -} \ No newline at end of file +} + +message AsyncFuncExecNode { + PhysicalPlanNode input = 1; + repeated PhysicalExprNode async_exprs = 2; + repeated string async_expr_names = 3; +} diff --git a/ballista/core/proto/datafusion_common.proto b/ballista/core/proto/datafusion_common.proto index 68da59015..e88528115 100644 --- a/ballista/core/proto/datafusion_common.proto +++ b/ballista/core/proto/datafusion_common.proto @@ -351,11 +351,11 @@ message Decimal256{ // Serialized data type message ArrowType{ oneof arrow_type_enum { - EmptyMessage NONE = 1; // arrow::Type::NA - EmptyMessage BOOL = 2; // arrow::Type::BOOL - EmptyMessage UINT8 = 3; // arrow::Type::UINT8 - EmptyMessage INT8 = 4; // arrow::Type::INT8 - EmptyMessage UINT16 = 5; // represents arrow::Type fields in src/arrow/type.h + EmptyMessage NONE = 1; // arrow::Type::NA + EmptyMessage BOOL = 2; // arrow::Type::BOOL + EmptyMessage UINT8 = 3; // arrow::Type::UINT8 + EmptyMessage INT8 = 4; // arrow::Type::INT8 + EmptyMessage UINT16 = 5; // represents arrow::Type fields in src/arrow/type.h EmptyMessage INT16 = 6; EmptyMessage UINT32 = 7; EmptyMessage INT32 = 8; @@ -461,12 +461,14 @@ message CsvOptions { bytes newlines_in_values = 16; // Indicates if newlines are supported in values bytes terminator = 17; // Optional terminator character as a byte bytes truncated_rows = 18; // Indicates if truncated rows are allowed + optional uint32 compression_level = 19; // Optional compression level } // Options controlling CSV format message JsonOptions { CompressionTypeVariant compression = 1; // Compression type optional uint64 schema_infer_max_rec = 2; // Optional max records for schema inference + optional uint32 compression_level = 3; // Optional compression level } message TableParquetOptions { @@ -519,6 +521,7 @@ message ParquetOptions { bool skip_metadata = 3; // default = true bool pushdown_filters = 5; // default = false bool reorder_filters = 6; // default = false + bool force_filter_selections = 34; // default = false uint64 data_pagesize_limit = 7; // default = 1024 * 1024 uint64 write_batch_size = 8; // default = 1024 string writer_version = 9; // default = "1.0" @@ -608,6 +611,8 @@ message Statistics { Precision num_rows = 1; Precision total_byte_size = 2; repeated ColumnStats column_stats = 3; + // total_rows was removed - field 4 is reserved + reserved 4; } message ColumnStats { @@ -616,4 +621,5 @@ message ColumnStats { Precision sum_value = 5; Precision null_count = 3; Precision distinct_count = 4; -} \ No newline at end of file + Precision byte_size = 6; +} diff --git a/ballista/core/src/execution_plans/shuffle_writer.rs b/ballista/core/src/execution_plans/shuffle_writer.rs index f0d9a9c74..cdf492cbc 100644 --- a/ballista/core/src/execution_plans/shuffle_writer.rs +++ b/ballista/core/src/execution_plans/shuffle_writer.rs @@ -262,10 +262,11 @@ impl ShuffleWriterExec { writers.push(None); } - let mut partitioner = BatchPartitioner::try_new( - Partitioning::Hash(exprs, num_output_partitions), + let mut partitioner = BatchPartitioner::new_hash_partitioner( + exprs, + num_output_partitions, write_metrics.repart_time.clone(), - )?; + ); while let Some(result) = stream.next().await { let input_batch = result?; diff --git a/ballista/core/src/execution_plans/sort_shuffle/writer.rs b/ballista/core/src/execution_plans/sort_shuffle/writer.rs index debdad15c..dfef86086 100644 --- a/ballista/core/src/execution_plans/sort_shuffle/writer.rs +++ b/ballista/core/src/execution_plans/sort_shuffle/writer.rs @@ -227,10 +227,11 @@ impl SortShuffleWriterExec { .map_err(|e| DataFusionError::Execution(format!("{e:?}")))?; // Create batch partitioner - let mut partitioner = BatchPartitioner::try_new( - Partitioning::Hash(exprs, num_output_partitions), + let mut partitioner = BatchPartitioner::new_hash_partitioner( + exprs, + num_output_partitions, metrics.repart_time.clone(), - )?; + ); // Process input stream while let Some(result) = stream.next().await { diff --git a/ballista/core/src/serde/generated/ballista.rs b/ballista/core/src/serde/generated/ballista.rs index 910b58f2d..95fdad508 100644 --- a/ballista/core/src/serde/generated/ballista.rs +++ b/ballista/core/src/serde/generated/ballista.rs @@ -435,7 +435,7 @@ pub struct NamedRatio { pub struct OperatorMetric { #[prost( oneof = "operator_metric::Metric", - tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14" + tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15" )] pub metric: ::core::option::Option, } @@ -471,6 +471,8 @@ pub mod operator_metric { PruningMetrics(super::NamedPruningMetrics), #[prost(message, tag = "14")] Ratio(super::NamedRatio), + #[prost(uint64, tag = "15")] + OutputBatches(u64), } } /// Used by scheduler diff --git a/ballista/core/src/serde/scheduler/from_proto.rs b/ballista/core/src/serde/scheduler/from_proto.rs index e4bbce818..21547217b 100644 --- a/ballista/core/src/serde/scheduler/from_proto.rs +++ b/ballista/core/src/serde/scheduler/from_proto.rs @@ -224,6 +224,11 @@ impl TryInto for protobuf::OperatorMetric { ratio_metrics, }) } + Some(operator_metric::Metric::OutputBatches(value)) => { + let count = Count::new(); + count.add(value as usize); + Ok(MetricValue::OutputBatches(count)) + } None => Err(BallistaError::General( "scheduler::from_proto(OperatorMetric) metric is None.".to_owned(), )), diff --git a/ballista/core/src/serde/scheduler/to_proto.rs b/ballista/core/src/serde/scheduler/to_proto.rs index be350181d..d435b6660 100644 --- a/ballista/core/src/serde/scheduler/to_proto.rs +++ b/ballista/core/src/serde/scheduler/to_proto.rs @@ -205,6 +205,11 @@ impl TryInto for &MetricValue { total: ratio_metrics.total() as u64, })), }), + MetricValue::OutputBatches(count) => Ok(protobuf::OperatorMetric { + metric: Some( + operator_metric::Metric::OutputBatches(count.value() as u64), + ), + }), // at the moment there there is no way to serialize custom metrics // thus at the moment we can't support it MetricValue::Custom { .. } => Err(BallistaError::General(String::from( diff --git a/ballista/executor/Cargo.toml b/ballista/executor/Cargo.toml index 32dd8fa02..43229fade 100644 --- a/ballista/executor/Cargo.toml +++ b/ballista/executor/Cargo.toml @@ -19,7 +19,7 @@ name = "ballista-executor" description = "Ballista Distributed Compute - Executor" license = "Apache-2.0" -version = "51.0.0" +version = "52.0.0" homepage = "https://datafusion.apache.org/ballista/" repository = "https://github.com/apache/datafusion-ballista" readme = "README.md" @@ -41,7 +41,7 @@ default = ["arrow-ipc-optimizations", "build-binary", "mimalloc"] arrow = { workspace = true } arrow-flight = { workspace = true } async-trait = { workspace = true } -ballista-core = { path = "../core", version = "51.0.0" } +ballista-core = { path = "../core", version = "52.0.0" } clap = { workspace = true, optional = true } dashmap = { workspace = true } datafusion = { workspace = true } diff --git a/ballista/scheduler/Cargo.toml b/ballista/scheduler/Cargo.toml index d29c7c5cc..dc9367aa0 100644 --- a/ballista/scheduler/Cargo.toml +++ b/ballista/scheduler/Cargo.toml @@ -19,7 +19,7 @@ name = "ballista-scheduler" description = "Ballista Distributed Compute - Scheduler" license = "Apache-2.0" -version = "51.0.0" +version = "52.0.0" homepage = "https://datafusion.apache.org/ballista/" repository = "https://github.com/apache/datafusion-ballista" readme = "README.md" @@ -48,7 +48,7 @@ substrait = ["dep:datafusion-substrait"] arrow-flight = { workspace = true } async-trait = { workspace = true } axum = "0.8.4" -ballista-core = { path = "../core", version = "51.0.0" } +ballista-core = { path = "../core", version = "52.0.0" } clap = { workspace = true, optional = true } dashmap = { workspace = true } datafusion = { workspace = true } diff --git a/ballista/scheduler/src/planner.rs b/ballista/scheduler/src/planner.rs index 63fe3d910..fd5321ecb 100644 --- a/ballista/scheduler/src/planner.rs +++ b/ballista/scheduler/src/planner.rs @@ -393,7 +393,6 @@ mod test { use datafusion::execution::TaskContext; use datafusion::physical_expr::expressions::Column; use datafusion::physical_plan::aggregates::{AggregateExec, AggregateMode}; - use datafusion::physical_plan::coalesce_batches::CoalesceBatchesExec; use datafusion::physical_plan::filter::FilterExec; use datafusion::physical_plan::joins::HashJoinExec; use datafusion::physical_plan::projection::ProjectionExec; @@ -450,20 +449,19 @@ mod test { /* Expected result: - ShuffleWriterExec: Some(Hash([Column { name: "l_returnflag", index: 0 }], 2)) - AggregateExec: mode=Partial, gby=[l_returnflag@1 as l_returnflag], aggr=[SUM(lineitem.l_extendedprice * Int64(1))] - CsvExec: files={2 groups: [[ballista/scheduler/testdata/lineitem/partition1.tbl], [ballista/scheduler/testdata/lineitem/partition0.tbl]]}, has_header=false, limit=None, projection=[l_extendedprice, l_returnflag] + ShuffleWriterExec: partitioning: Hash([l_returnflag@0], 2) + AggregateExec: mode=Partial, gby=[l_returnflag@1 as l_returnflag], aggr=[sum(lineitem.l_extendedprice * Int64(1))] + DataSourceExec: file_groups={2 groups: [[ballista/scheduler/testdata/lineitem/partition0.tbl], [ballista/scheduler/testdata/lineitem/partition1.tbl]]}, projection=[l_extendedprice, l_returnflag], file_type=csv, has_header=false - ShuffleWriterExec: None - SortExec: [l_returnflag@0 ASC NULLS LAST] - ProjectionExec: expr=[l_returnflag@0 as l_returnflag, SUM(lineitem.l_extendedprice * Int64(1))@1 as sum_disc_price] - AggregateExec: mode=FinalPartitioned, gby=[l_returnflag@0 as l_returnflag], aggr=[SUM(lineitem.l_extendedprice * Int64(1))] - CoalesceBatchesExec: target_batch_size=8192 - UnresolvedShuffleExec + ShuffleWriterExec: partitioning: None + SortExec: expr=[l_returnflag@0 ASC NULLS LAST], preserve_partitioning=[true] + ProjectionExec: expr=[l_returnflag@0 as l_returnflag, sum(lineitem.l_extendedprice * Int64(1))@1 as sum_disc_price] + AggregateExec: mode=FinalPartitioned, gby=[l_returnflag@0 as l_returnflag], aggr=[sum(lineitem.l_extendedprice * Int64(1))] + UnresolvedShuffleExec: partitioning: Hash([l_returnflag@0], 2) - ShuffleWriterExec: None + ShuffleWriterExec: partitioning: None SortPreservingMergeExec: [l_returnflag@0 ASC NULLS LAST] - UnresolvedShuffleExec + UnresolvedShuffleExec: partitioning: Hash([l_returnflag@0], 2) */ assert_eq!(3, stages.len()); @@ -481,9 +479,7 @@ mod test { let final_hash = projection.children()[0].clone(); let final_hash = downcast_exec!(final_hash, AggregateExec); assert!(*final_hash.mode() == AggregateMode::FinalPartitioned); - let coalesce = final_hash.children()[0].clone(); - let coalesce = downcast_exec!(coalesce, CoalesceBatchesExec); - let unresolved_shuffle = coalesce.children()[0].clone(); + let unresolved_shuffle = final_hash.children()[0].clone(); let unresolved_shuffle = downcast_exec!(unresolved_shuffle, UnresolvedShuffleExec); assert_eq!(unresolved_shuffle.stage_id, 1); @@ -568,34 +564,28 @@ order by /* Expected result: - ShuffleWriterExec: Some(Hash([Column { name: "l_orderkey", index: 0 }], 2)) - ProjectionExec: expr=[l_orderkey@0 as l_orderkey, l_shipmode@4 as l_shipmode] - CoalesceBatchesExec: target_batch_size=8192 - FilterExec: (l_shipmode@4 = SHIP OR l_shipmode@4 = MAIL) AND l_commitdate@2 < l_receiptdate@3 AND l_shipdate@1 < l_commitdate@2 AND l_receiptdate@3 >= 8766 AND l_receiptdate@3 < 9131 - CsvExec: files={2 groups: [[testdata/lineitem/partition0.tbl], [testdata/lineitem/partition1.tbl]]}, has_header=false, limit=None, projection=[l_orderkey, l_shipdate, l_commitdate, l_receiptdate, l_shipmode] - - ShuffleWriterExec: Some(Hash([Column { name: "o_orderkey", index: 0 }], 2)) - CsvExec: files={1 group: [[testdata/orders/orders.tbl]]}, has_header=false, limit=None, projection=[o_orderkey, o_orderpriority] - - ShuffleWriterExec: Some(Hash([Column { name: "l_shipmode", index: 0 }], 2)) - AggregateExec: mode=Partial, gby=[l_shipmode@0 as l_shipmode], aggr=[SUM(CASE WHEN orders.o_orderpriority = Utf8("1-URGENT") OR orders.o_orderpriority = Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END), SUM(CASE WHEN orders.o_orderpriority != Utf8("1-URGENT") AND orders.o_orderpriority != Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)] - CoalesceBatchesExec: target_batch_size=8192 - HashJoinExec: mode=Partitioned, join_type=Inner, on=[(l_orderkey@0, o_orderkey@0)], projection=[l_shipmode@1, o_orderpriority@3] - CoalesceBatchesExec: target_batch_size=8192 - UnresolvedShuffleExec - CoalesceBatchesExec: target_batch_size=8192 - UnresolvedShuffleExec - - ShuffleWriterExec: None - SortExec: expr=[l_shipmode@0 ASC NULLS LAST] - ProjectionExec: expr=[l_shipmode@0 as l_shipmode, SUM(CASE WHEN orders.o_orderpriority = Utf8("1-URGENT") OR orders.o_orderpriority = Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)@1 as high_line_count, SUM(CASE WHEN orders.o_orderpriority != Utf8("1-URGENT") AND orders.o_orderpriority != Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)@2 as low_line_count] - AggregateExec: mode=FinalPartitioned, gby=[l_shipmode@0 as l_shipmode], aggr=[SUM(CASE WHEN orders.o_orderpriority = Utf8("1-URGENT") OR orders.o_orderpriority = Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END), SUM(CASE WHEN orders.o_orderpriority != Utf8("1-URGENT") AND orders.o_orderpriority != Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)] - CoalesceBatchesExec: target_batch_size=8192 - UnresolvedShuffleExec - - ShuffleWriterExec: None + ShuffleWriterExec: partitioning: Hash([l_orderkey@0], 2) + FilterExec: (l_shipmode@4 = MAIL OR l_shipmode@4 = SHIP) AND l_receiptdate@3 > l_commitdate@2 AND l_shipdate@1 < l_commitdate@2 AND l_receiptdate@3 >= 1994-01-01 AND l_receiptdate@3 < 1995-01-01, projection=[l_orderkey@0, l_shipmode@4] + DataSourceExec: file_groups={2 groups: [[ballista/scheduler/testdata/lineitem/partition0.tbl], [ballista/scheduler/testdata/lineitem/partition1.tbl]]}, projection=[l_orderkey, l_shipdate, l_commitdate, l_receiptdate, l_shipmode], file_type=csv, has_header=false + + ShuffleWriterExec: partitioning: Hash([o_orderkey@0], 2) + DataSourceExec: file_groups={1 group: [[ballista/scheduler/testdata/orders/orders.tbl]]}, projection=[o_orderkey, o_orderpriority], file_type=csv, has_header=false + + ShuffleWriterExec: partitioning: Hash([l_shipmode@0], 2) + AggregateExec: mode=Partial, gby=[l_shipmode@0 as l_shipmode], aggr=[sum(CASE WHEN orders.o_orderpriority = Utf8("1-URGENT") OR orders.o_orderpriority = Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END), sum(CASE WHEN orders.o_orderpriority != Utf8("1-URGENT") AND orders.o_orderpriority != Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)] + HashJoinExec: mode=Partitioned, join_type=Inner, on=[(l_orderkey@0, o_orderkey@0)], projection=[l_shipmode@1, o_orderpriority@3] + UnresolvedShuffleExec: partitioning: Hash([l_orderkey@0], 2) + UnresolvedShuffleExec: partitioning: Hash([o_orderkey@0], 2) + + ShuffleWriterExec: partitioning: None + SortExec: expr=[l_shipmode@0 ASC NULLS LAST], preserve_partitioning=[true] + ProjectionExec: expr=[l_shipmode@0 as l_shipmode, sum(CASE WHEN orders.o_orderpriority = Utf8("1-URGENT") OR orders.o_orderpriority = Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)@1 as high_line_count, sum(CASE WHEN orders.o_orderpriority != Utf8("1-URGENT") AND orders.o_orderpriority != Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)@2 as low_line_count] + AggregateExec: mode=FinalPartitioned, gby=[l_shipmode@0 as l_shipmode], aggr=[sum(CASE WHEN orders.o_orderpriority = Utf8("1-URGENT") OR orders.o_orderpriority = Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END), sum(CASE WHEN orders.o_orderpriority != Utf8("1-URGENT") AND orders.o_orderpriority != Utf8("2-HIGH") THEN Int64(1) ELSE Int64(0) END)] + UnresolvedShuffleExec: partitioning: Hash([l_shipmode@0], 2) + + ShuffleWriterExec: partitioning: None SortPreservingMergeExec: [l_shipmode@0 ASC NULLS LAST] - UnresolvedShuffleExec + UnresolvedShuffleExec: partitioning: Hash([l_shipmode@0], 2) */ assert_eq!(5, stages.len()); @@ -650,16 +640,11 @@ order by let hash_agg = downcast_exec!(input, AggregateExec); - let coalesce_batches = hash_agg.children()[0].clone(); - let coalesce_batches = downcast_exec!(coalesce_batches, CoalesceBatchesExec); - - let join = coalesce_batches.children()[0].clone(); + let join = hash_agg.children()[0].clone(); let join = downcast_exec!(join, HashJoinExec); assert!(join.contains_projection()); let join_input_1 = join.children()[0].clone(); - // skip CoalesceBatches - let join_input_1 = join_input_1.children()[0].clone(); let unresolved_shuffle_reader_1 = downcast_exec!(join_input_1, UnresolvedShuffleExec); assert_eq!(unresolved_shuffle_reader_1.output_partition_count, 2); @@ -669,8 +654,6 @@ order by ); let join_input_2 = join.children()[1].clone(); - // skip CoalesceBatches - let join_input_2 = join_input_2.children()[0].clone(); let unresolved_shuffle_reader_2 = downcast_exec!(join_input_2, UnresolvedShuffleExec); assert_eq!(unresolved_shuffle_reader_2.output_partition_count, 2); @@ -740,24 +723,22 @@ order by /* expected result: Stage 0: - ShuffleWriterExec: Some(Hash([Column { name: "l_shipmode", index: 1 }], 2)) - CsvExec: file_groups={2 groups: [[testdata/lineitem/partition0.tbl], [testdata/lineitem/partition1.tbl]]}, projection=[l_shipdate, l_shipmode], has_header=false + ShuffleWriterExec: partitioning: Hash([l_shipmode@1], 2) + DataSourceExec: file_groups={2 groups: [[ballista/scheduler/testdata/lineitem/partition0.tbl], [ballista/scheduler/testdata/lineitem/partition1.tbl]]}, projection=[l_shipdate, l_shipmode], file_type=csv, has_header=false Stage 1: - ShuffleWriterExec: None - SortExec: expr=[l_shipdate@1 ASC NULLS LAST,rk@2 ASC NULLS LAST], preserve_partitioning=[true] - ProjectionExec: expr=[l_shipmode@1 as l_shipmode, l_shipdate@0 as l_shipdate, RANK() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW@2 as rk] - CoalesceBatchesExec: target_batch_size=8192 - FilterExec: RANK() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW@2 <= 100 - BoundedWindowAggExec: wdw=[RANK() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW: Ok(Field { name: "RANK() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW", data_type: UInt64, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }), frame: WindowFrame { units: Range, start_bound: Preceding(IntervalMonthDayNano("NULL")), end_bound: CurrentRow, is_causal: false }], mode=[Sorted] - SortExec: expr=[l_shipmode@1 ASC NULLS LAST,l_shipdate@0 DESC], preserve_partitioning=[true] - CoalesceBatchesExec: target_batch_size=8192 - UnresolvedShuffleExec + ShuffleWriterExec: partitioning: None + SortExec: expr=[l_shipdate@1 ASC NULLS LAST, rk@2 ASC NULLS LAST], preserve_partitioning=[true] + ProjectionExec: expr=[l_shipmode@1 as l_shipmode, l_shipdate@0 as l_shipdate, rank() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW@2 as rk] + FilterExec: rank() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW@2 <= 100 + BoundedWindowAggExec: wdw=[rank() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW: Field { "rank() PARTITION BY [lineitem.l_shipmode] ORDER BY [lineitem.l_shipdate DESC NULLS FIRST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW": UInt64 }, frame: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW], mode=[Sorted] + SortExec: expr=[l_shipmode@1 ASC NULLS LAST, l_shipdate@0 DESC], preserve_partitioning=[true] + UnresolvedShuffleExec: partitioning: Hash([l_shipmode@1], 2) Stage 2: - ShuffleWriterExec: None - SortPreservingMergeExec: [l_shipdate@1 ASC NULLS LAST,rk@2 ASC NULLS LAST] - UnresolvedShuffleExec + ShuffleWriterExec: partitioning: None + SortPreservingMergeExec: [l_shipdate@1 ASC NULLS LAST, rk@2 ASC NULLS LAST] + UnresolvedShuffleExec: partitioning: Hash([l_shipmode@0], 2) */ @@ -780,8 +761,7 @@ order by // stage1 let sort = downcast_exec!(stages[1].children()[0], SortExec); let projection = downcast_exec!(sort.children()[0], ProjectionExec); - let coalesce = downcast_exec!(projection.children()[0], CoalesceBatchesExec); - let filter = downcast_exec!(coalesce.children()[0], FilterExec); + let filter = downcast_exec!(projection.children()[0], FilterExec); let window = downcast_exec!(filter.children()[0], BoundedWindowAggExec); let partition_by = window.partition_keys(); let partition_by = match partition_by[..] { diff --git a/ballista/scheduler/src/state/execution_graph_dot.rs b/ballista/scheduler/src/state/execution_graph_dot.rs index 002af18c5..26261107b 100644 --- a/ballista/scheduler/src/state/execution_graph_dot.rs +++ b/ballista/scheduler/src/state/execution_graph_dot.rs @@ -441,19 +441,13 @@ mod tests { subgraph cluster2 { label = "Stage 3 [Unresolved]"; stage_3_0 [shape=box, label="ShuffleWriter [48 partitions]"] - stage_3_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_3_0_0_0 [shape=box, label="HashJoin + stage_3_0_0 [shape=box, label="HashJoin join_expr=a@0 = a@0 filter_expr="] - stage_3_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_3_0_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] - stage_3_0_0_0_0_0 -> stage_3_0_0_0_0 - stage_3_0_0_0_0 -> stage_3_0_0_0 - stage_3_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_3_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] - stage_3_0_0_0_1_0 -> stage_3_0_0_0_1 - stage_3_0_0_0_1 -> stage_3_0_0_0 + stage_3_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] stage_3_0_0_0 -> stage_3_0_0 + stage_3_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] + stage_3_0_0_1 -> stage_3_0_0 stage_3_0_0 -> stage_3_0 } subgraph cluster3 { @@ -465,25 +459,19 @@ filter_expr="] subgraph cluster4 { label = "Stage 5 [Unresolved]"; stage_5_0 [shape=box, label="ShuffleWriter [48 partitions]"] - stage_5_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_5_0_0_0 [shape=box, label="HashJoin + stage_5_0_0 [shape=box, label="HashJoin join_expr=b@3 = b@1 filter_expr="] - stage_5_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_5_0_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=3]"] - stage_5_0_0_0_0_0 -> stage_5_0_0_0_0 - stage_5_0_0_0_0 -> stage_5_0_0_0 - stage_5_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_5_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=4]"] - stage_5_0_0_0_1_0 -> stage_5_0_0_0_1 - stage_5_0_0_0_1 -> stage_5_0_0_0 + stage_5_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=3]"] stage_5_0_0_0 -> stage_5_0_0 + stage_5_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=4]"] + stage_5_0_0_1 -> stage_5_0_0 stage_5_0_0 -> stage_5_0 } - stage_1_0 -> stage_3_0_0_0_0_0 - stage_2_0 -> stage_3_0_0_0_1_0 - stage_3_0 -> stage_5_0_0_0_0_0 - stage_4_0 -> stage_5_0_0_0_1_0 + stage_1_0 -> stage_3_0_0_0 + stage_2_0 -> stage_3_0_0_1 + stage_3_0 -> stage_5_0_0_0 + stage_4_0 -> stage_5_0_0_1 } "#; assert_eq!(expected, &dot); @@ -498,19 +486,13 @@ filter_expr="] let expected = r#"digraph G { stage_3_0 [shape=box, label="ShuffleWriter [48 partitions]"] - stage_3_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_3_0_0_0 [shape=box, label="HashJoin + stage_3_0_0 [shape=box, label="HashJoin join_expr=a@0 = a@0 filter_expr="] - stage_3_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_3_0_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] - stage_3_0_0_0_0_0 -> stage_3_0_0_0_0 - stage_3_0_0_0_0 -> stage_3_0_0_0 - stage_3_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_3_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] - stage_3_0_0_0_1_0 -> stage_3_0_0_0_1 - stage_3_0_0_0_1 -> stage_3_0_0_0 + stage_3_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] stage_3_0_0_0 -> stage_3_0_0 + stage_3_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] + stage_3_0_0_1 -> stage_3_0_0 stage_3_0_0 -> stage_3_0 } "#; @@ -546,34 +528,24 @@ filter_expr="] subgraph cluster3 { label = "Stage 4 [Unresolved]"; stage_4_0 [shape=box, label="ShuffleWriter [48 partitions]"] - stage_4_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0 [shape=box, label="HashJoin + stage_4_0_0 [shape=box, label="HashJoin join_expr=a@1 = a@0 filter_expr="] - stage_4_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_0_0 [shape=box, label="HashJoin + stage_4_0_0_0 [shape=box, label="HashJoin join_expr=a@0 = a@0 filter_expr="] - stage_4_0_0_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] - stage_4_0_0_0_0_0_0_0 -> stage_4_0_0_0_0_0_0 - stage_4_0_0_0_0_0_0 -> stage_4_0_0_0_0_0 - stage_4_0_0_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] - stage_4_0_0_0_0_0_1_0 -> stage_4_0_0_0_0_0_1 - stage_4_0_0_0_0_0_1 -> stage_4_0_0_0_0_0 - stage_4_0_0_0_0_0 -> stage_4_0_0_0_0 + stage_4_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] stage_4_0_0_0_0 -> stage_4_0_0_0 - stage_4_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=3]"] - stage_4_0_0_0_1_0 -> stage_4_0_0_0_1 + stage_4_0_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] stage_4_0_0_0_1 -> stage_4_0_0_0 stage_4_0_0_0 -> stage_4_0_0 + stage_4_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=3]"] + stage_4_0_0_1 -> stage_4_0_0 stage_4_0_0 -> stage_4_0 } - stage_1_0 -> stage_4_0_0_0_0_0_0_0 - stage_2_0 -> stage_4_0_0_0_0_0_1_0 - stage_3_0 -> stage_4_0_0_0_1_0 + stage_1_0 -> stage_4_0_0_0_0 + stage_2_0 -> stage_4_0_0_0_1 + stage_3_0 -> stage_4_0_0_1 } "#; assert_eq!(expected, &dot); @@ -588,29 +560,19 @@ filter_expr="] let expected = r#"digraph G { stage_4_0 [shape=box, label="ShuffleWriter [48 partitions]"] - stage_4_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0 [shape=box, label="HashJoin + stage_4_0_0 [shape=box, label="HashJoin join_expr=a@1 = a@0 filter_expr="] - stage_4_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_0_0 [shape=box, label="HashJoin + stage_4_0_0_0 [shape=box, label="HashJoin join_expr=a@0 = a@0 filter_expr="] - stage_4_0_0_0_0_0_0 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] - stage_4_0_0_0_0_0_0_0 -> stage_4_0_0_0_0_0_0 - stage_4_0_0_0_0_0_0 -> stage_4_0_0_0_0_0 - stage_4_0_0_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] - stage_4_0_0_0_0_0_1_0 -> stage_4_0_0_0_0_0_1 - stage_4_0_0_0_0_0_1 -> stage_4_0_0_0_0_0 - stage_4_0_0_0_0_0 -> stage_4_0_0_0_0 + stage_4_0_0_0_0 [shape=box, label="UnresolvedShuffleExec [stage_id=1]"] stage_4_0_0_0_0 -> stage_4_0_0_0 - stage_4_0_0_0_1 [shape=box, label="CoalesceBatches [batchSize=4096]"] - stage_4_0_0_0_1_0 [shape=box, label="UnresolvedShuffleExec [stage_id=3]"] - stage_4_0_0_0_1_0 -> stage_4_0_0_0_1 + stage_4_0_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=2]"] stage_4_0_0_0_1 -> stage_4_0_0_0 stage_4_0_0_0 -> stage_4_0_0 + stage_4_0_0_1 [shape=box, label="UnresolvedShuffleExec [stage_id=3]"] + stage_4_0_0_1 -> stage_4_0_0 stage_4_0_0 -> stage_4_0 } "#; diff --git a/benchmarks/Cargo.toml b/benchmarks/Cargo.toml index be6dcb182..6714dc0c0 100644 --- a/benchmarks/Cargo.toml +++ b/benchmarks/Cargo.toml @@ -18,7 +18,7 @@ [package] name = "ballista-benchmarks" description = "Ballista Benchmarks" -version = "51.0.0" +version = "52.0.0" edition = "2024" authors = ["Apache DataFusion "] homepage = "https://datafusion.apache.org/ballista/" @@ -32,8 +32,8 @@ default = ["mimalloc"] snmalloc = ["snmalloc-rs"] [dependencies] -ballista = { path = "../ballista/client", version = "51.0.0" } -ballista-core = { path = "../ballista/core", version = "51.0.0" } +ballista = { path = "../ballista/client", version = "52.0.0" } +ballista-core = { path = "../ballista/core", version = "52.0.0" } datafusion = { workspace = true } datafusion-proto = { workspace = true } env_logger = { workspace = true } diff --git a/docs/source/user-guide/cli.md b/docs/source/user-guide/cli.md index 597bc1953..0661199cd 100644 --- a/docs/source/user-guide/cli.md +++ b/docs/source/user-guide/cli.md @@ -71,7 +71,7 @@ It is also possible to run the CLI in standalone mode, where it will create a sc ```bash $ ballista-cli -Ballista CLI v51.0.0 +Ballista CLI v52.0.0 > CREATE EXTERNAL TABLE foo (a INT, b INT) STORED AS CSV LOCATION 'data.csv'; 0 rows in set. Query took 0.001 seconds. diff --git a/docs/source/user-guide/deployment/docker-compose.md b/docs/source/user-guide/deployment/docker-compose.md index 96f69d692..ff3c53361 100644 --- a/docs/source/user-guide/deployment/docker-compose.md +++ b/docs/source/user-guide/deployment/docker-compose.md @@ -42,8 +42,8 @@ Creating network "ballista-benchmarks_default" with the default driver Creating ballista-benchmarks_ballista-scheduler_1 ... done Creating ballista-benchmarks_ballista-executor_1 ... done Attaching to ballista-benchmarks_ballista-scheduler_1, ballista-benchmarks_ballista-executor_1 -ballista-scheduler_1 | INFO ballista_scheduler: Ballista v51.0.0 Scheduler listening on 0.0.0.0:50050 -ballista-executor_1 | INFO ballista_executor: Ballista v51.0.0 Rust Executor listening on 0.0.0.0:50051 +ballista-scheduler_1 | INFO ballista_scheduler: Ballista v52.0.0 Scheduler listening on 0.0.0.0:50050 +ballista-executor_1 | INFO ballista_executor: Ballista v52.0.0 Rust Executor listening on 0.0.0.0:50051 ``` The scheduler listens on port 50050 and this is the port that clients will need to connect to. diff --git a/docs/source/user-guide/deployment/docker.md b/docs/source/user-guide/deployment/docker.md index cf5488a67..ad3571c50 100644 --- a/docs/source/user-guide/deployment/docker.md +++ b/docs/source/user-guide/deployment/docker.md @@ -67,7 +67,7 @@ Run `docker logs CONTAINER_ID` to check the output from the process: ``` $ docker logs a756055576f3 -INFO ballista_scheduler::scheduler_process: Ballista v51.0.0 Scheduler listening on 0.0.0.0:50050 +INFO ballista_scheduler::scheduler_process: Ballista v52.0.0 Scheduler listening on 0.0.0.0:50050 INFO ballista_scheduler::scheduler_process: Starting Scheduler grpc server with task scheduling policy of PullStaged INFO ballista_scheduler::scheduler_server::query_stage_scheduler: Starting QueryStageScheduler INFO ballista_core::event_loop: Starting the event loop query_stage @@ -99,7 +99,7 @@ $ docker logs fb8b530cee6d INFO ballista_executor::executor_process: Running with config: INFO ballista_executor::executor_process: work_dir: /tmp/.tmpAkP3pZ INFO ballista_executor::executor_process: concurrent_tasks: 48 -INFO ballista_executor::executor_process: Ballista v51.0.0 Rust Executor Flight Server listening on 0.0.0.0:50051 +INFO ballista_executor::executor_process: Ballista v52.0.0 Rust Executor Flight Server listening on 0.0.0.0:50051 INFO ballista_executor::execution_loop: Starting poll work loop with scheduler ``` diff --git a/docs/source/user-guide/deployment/kubernetes.md b/docs/source/user-guide/deployment/kubernetes.md index 3e25d1f9a..a979a6c8c 100644 --- a/docs/source/user-guide/deployment/kubernetes.md +++ b/docs/source/user-guide/deployment/kubernetes.md @@ -212,7 +212,7 @@ You can view the scheduler logs with `kubectl logs ballista-scheduler-`: ``` $ kubectl logs ballista-scheduler- -INFO ballista_scheduler::scheduler_process: Ballista v51.0.0 Scheduler listening on 0.0.0.0:50050 +INFO ballista_scheduler::scheduler_process: Ballista v52.0.0 Scheduler listening on 0.0.0.0:50050 INFO ballista_scheduler::scheduler_server::grpc: Received register_executor request for ExecutorMetadata { id: "b5e81711-1c5c-46ec-8522-d8b359793188", host: "10.1.23.149", port: 50051 } INFO ballista_scheduler::scheduler_server::grpc: Received register_executor request for ExecutorMetadata { id: "816e4502-a876-4ed8-b33f-86d243dcf63f", host: "10.1.23.150", port: 50051 } ``` diff --git a/examples/Cargo.toml b/examples/Cargo.toml index a6054587b..787f458c0 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -18,7 +18,7 @@ [package] name = "ballista-examples" description = "Ballista usage examples" -version = "51.0.0" +version = "52.0.0" homepage = "https://datafusion.apache.org/ballista/" repository = "https://github.com/apache/datafusion-ballista" authors = ["Apache DataFusion "] @@ -36,16 +36,16 @@ required-features = ["ballista/standalone"] [dependencies] [dev-dependencies] -ballista = { path = "../ballista/client", version = "51.0.0" } -ballista-core = { path = "../ballista/core", version = "51.0.0", default-features = false } -ballista-executor = { path = "../ballista/executor", version = "51.0.0", default-features = false } -ballista-scheduler = { path = "../ballista/scheduler", version = "51.0.0", default-features = false } +ballista = { path = "../ballista/client", version = "52.0.0" } +ballista-core = { path = "../ballista/core", version = "52.0.0", default-features = false } +ballista-executor = { path = "../ballista/executor", version = "52.0.0", default-features = false } +ballista-scheduler = { path = "../ballista/scheduler", version = "52.0.0", default-features = false } ctor = { workspace = true } datafusion = { workspace = true } env_logger = { workspace = true } log = { workspace = true } object_store = { workspace = true, features = ["aws"] } -testcontainers-modules = { version = "0.13", features = ["minio"] } +testcontainers-modules = { version = "0.14", features = ["minio"] } tokio = { workspace = true, features = [ "macros", "rt",