diff --git a/Cargo.lock b/Cargo.lock index cb86f07ed7..bcf8777752 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -205,9 +205,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755b6da235ac356a869393c23668c663720b8749dd6f15e52b6c214b4b964cc7" +checksum = "dc208515aa0151028e464cc94a692156e945ce5126abd3537bb7fd6ba2143ed1" dependencies = [ "arrow-arith", "arrow-array", @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64656a1e0b13ca766f8440752e9a93e11014eec7b67909986f83ed0ab1fe37b8" +checksum = "e07e726e2b3f7816a85c6a45b6ec118eeeabf0b2a8c208122ad949437181f49a" dependencies = [ "arrow-array", "arrow-buffer", @@ -240,9 +240,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a4a6d2896083cfbdf84a71a863b22460d0708f8206a8373c52e326cc72ea1a" +checksum = "a2262eba4f16c78496adfd559a29fe4b24df6088efc9985a873d58e92be022d5" dependencies = [ "ahash 0.8.11", "arrow-buffer", @@ -257,9 +257,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef870583ce5e4f3b123c181706f2002fb134960f9a911900f64ba4830c7a43a" +checksum = "4e899dade2c3b7f5642eb8366cfd898958bcca099cde6dfea543c7e8d3ad88d4" dependencies = [ "bytes", "half", @@ -268,9 +268,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac7eba5a987f8b4a7d9629206ba48e19a1991762795bbe5d08497b7736017ee" +checksum = "4103d88c5b441525ed4ac23153be7458494c2b0c9a11115848fdb9b81f6f886a" dependencies = [ "arrow-array", "arrow-buffer", @@ -289,9 +289,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f12542b8164398fc9ec595ff783c4cf6044daa89622c5a7201be920e4c0d4c" +checksum = "43d3cb0914486a3cae19a5cad2598e44e225d53157926d0ada03c20521191a65" dependencies = [ "arrow-array", "arrow-cast", @@ -305,9 +305,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b095e8a4f3c309544935d53e04c3bfe4eea4e71c3de6fe0416d1f08bb4441a83" +checksum = "0a329fb064477c9ec5f0870d2f5130966f91055c7c5bce2b3a084f116bc28c3b" dependencies = [ "arrow-buffer", "arrow-schema", @@ -317,9 +317,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c63da4afedde2b25ef69825cd4663ca76f78f79ffe2d057695742099130ff6" +checksum = "ddecdeab02491b1ce88885986e25002a3da34dd349f682c7cfe67bab7cc17b86" dependencies = [ "arrow-array", "arrow-buffer", @@ -331,9 +331,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9551d9400532f23a370cabbea1dc5a53c49230397d41f96c4c8eedf306199305" +checksum = "d03b9340013413eb84868682ace00a1098c81a5ebc96d279f7ebf9a4cac3c0fd" dependencies = [ "arrow-array", "arrow-buffer", @@ -351,9 +351,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c07223476f8219d1ace8cd8d85fa18c4ebd8d945013f25ef5c72e85085ca4ee" +checksum = "f841bfcc1997ef6ac48ee0305c4dfceb1f7c786fe31e67c1186edf775e1f1160" dependencies = [ "arrow-array", "arrow-buffer", @@ -364,9 +364,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b194b38bfd89feabc23e798238989c6648b2506ad639be42ec8eb1658d82c4" +checksum = "1eeb55b0a0a83851aa01f2ca5ee5648f607e8506ba6802577afdda9d75cdedcd" dependencies = [ "arrow-array", "arrow-buffer", @@ -377,15 +377,15 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f40f6be8f78af1ab610db7d9b236e21d587b7168e368a36275d2e5670096735" +checksum = "85934a9d0261e0fa5d4e2a5295107d743b543a6e0484a835d4b8db2da15306f9" [[package]] name = "arrow-select" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac265273864a820c4a179fc67182ccc41ea9151b97024e1be956f0f2369c2539" +checksum = "7e2932aece2d0c869dd2125feb9bd1709ef5c445daa3838ac4112dcfa0fda52c" dependencies = [ "ahash 0.8.11", "arrow-array", @@ -397,9 +397,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44c8eed43be4ead49128370f7131f054839d3d6003e52aebf64322470b8fbd0" +checksum = "912e38bd6a7a7714c1d9b61df80315685553b7455e8a6045c27531d8ecd5b458" dependencies = [ "arrow-array", "arrow-buffer", @@ -1227,9 +1227,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" dependencies = [ "serde", ] @@ -1387,7 +1387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -1655,29 +1655,31 @@ dependencies = [ [[package]] name = "datafusion" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae420e7a5b0b7f1c39364cc76cbcd0f5fdc416b2514ae3847c2676bbd60702a" +checksum = "46b879c1aa3a85ecbfa376704f0fe4bfebae1a44a5d35faa4466bf85469b6a0e" dependencies = [ "arrow", - "arrow-array", "arrow-ipc", "arrow-schema", - "async-compression", "async-trait", "bytes", "bzip2 0.5.1", "chrono", "datafusion-catalog", + "datafusion-catalog-listing", "datafusion-common", "datafusion-common-runtime", + "datafusion-datasource", "datafusion-execution", "datafusion-expr", + "datafusion-expr-common", "datafusion-functions", "datafusion-functions-aggregate", "datafusion-functions-nested", "datafusion-functions-table", "datafusion-functions-window", + "datafusion-macros", "datafusion-optimizer", "datafusion-physical-expr", "datafusion-physical-expr-common", @@ -1686,7 +1688,6 @@ dependencies = [ "datafusion-sql", "flate2", "futures", - "glob", "itertools 0.14.0", "log", "object_store", @@ -1697,7 +1698,6 @@ dependencies = [ "sqlparser", "tempfile", "tokio", - "tokio-util", "url", "uuid", "xz2", @@ -1706,9 +1706,9 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f27987bc22b810939e8dfecc55571e9d50355d6ea8ec1c47af8383a76a6d0e1" +checksum = "9e42f516243fe30137f2b7d5712611286baf8d1d758a46157bada7c35fdf38df" dependencies = [ "arrow", "async-trait", @@ -1722,21 +1722,39 @@ dependencies = [ "itertools 0.14.0", "log", "parking_lot", - "sqlparser", +] + +[[package]] +name = "datafusion-catalog-listing" +version = "46.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e495290c231d617f0a940860a885cb2f4c3efe46c1983c30d3fa12faf1ccb208" +dependencies = [ + "arrow", + "async-trait", + "datafusion-catalog", + "datafusion-common", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "futures", + "log", + "object_store", + "tokio", ] [[package]] name = "datafusion-common" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3f6d5b8c9408cc692f7c194b8aa0c0f9b253e065a8d960ad9cdc2a13e697602" +checksum = "af67ddc82e1c8e6843c326ca13aa20e5420cce9f886b4e1ee39ea43defae3145" dependencies = [ "ahash 0.8.11", "arrow", - "arrow-array", - "arrow-buffer", "arrow-ipc", - "arrow-schema", "base64 0.22.1", "half", "hashbrown 0.14.5", @@ -1754,25 +1772,59 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4603c8e8a4baf77660ab7074cc66fc15cc8a18f2ce9dfadb755fc6ee294e48" +checksum = "36ee9403a2ec39183437825d232f556a5dee89f13f6fd78f8c7f8f999489e4ca" dependencies = [ "log", "tokio", ] +[[package]] +name = "datafusion-datasource" +version = "46.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c8b7568b638dd309bcc1cdeb66776f233b110d44bdc6fd67ef1919f9ec9803" +dependencies = [ + "arrow", + "async-compression", + "async-trait", + "bytes", + "bzip2 0.5.1", + "chrono", + "datafusion-catalog", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "flate2", + "futures", + "glob", + "itertools 0.14.0", + "log", + "object_store", + "rand 0.8.5", + "tokio", + "tokio-util", + "url", + "xz2", + "zstd", +] + [[package]] name = "datafusion-doc" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bf4bc68623a5cf231eed601ed6eb41f46a37c4d15d11a0bff24cbc8396cd66" +checksum = "8612c81304578a2e2b82d31caf8173312cb086a7a23a23556b9fff3ac7c18221" [[package]] name = "datafusion-execution" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b491c012cdf8e051053426013429a76f74ee3c2db68496c79c323ca1084d27" +checksum = "3591e6d4900e57bad7f861f14f5c763f716da76553b0d037ec91c192c876f09c" dependencies = [ "arrow", "dashmap", @@ -1789,9 +1841,9 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a181408d4fc5dc22f9252781a8f39f2d0e5d1b33ec9bde242844980a2689c1" +checksum = "5033d0f6198d177f50a7721d80db141af15dd12f45ad6dce34e2cdbb6538e39d" dependencies = [ "arrow", "chrono", @@ -1810,21 +1862,22 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1129b48e8534d8c03c6543bcdccef0b55c8ac0c1272a15a56c67068b6eb1885" +checksum = "56def48a7dfb9f92aa18e18dfdffaca79b5383f03c59bb0107959c1698634557" dependencies = [ "arrow", "datafusion-common", + "indexmap 2.7.1", "itertools 0.14.0", "paste", ] [[package]] name = "datafusion-functions" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6125874e4856dfb09b59886784fcb74cde5cfc5930b3a80a1a728ef7a010df6b" +checksum = "9a79b703b42b0aac97485b84c6810c78114b0974a75a33514840ba0bbe0de38f" dependencies = [ "arrow", "arrow-buffer", @@ -1838,7 +1891,6 @@ dependencies = [ "datafusion-expr", "datafusion-expr-common", "datafusion-macros", - "hashbrown 0.14.5", "hex", "itertools 0.14.0", "log", @@ -1852,14 +1904,12 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3add7b1d3888e05e7c95f2b281af900ca69ebdcb21069ba679b33bde8b3b9d6" +checksum = "fdad20375e85365ed262b5583955c308840efc6ff9271ff463cf86789adfb686" dependencies = [ "ahash 0.8.11", "arrow", - "arrow-buffer", - "arrow-schema", "datafusion-common", "datafusion-doc", "datafusion-execution", @@ -1875,9 +1925,9 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e18baa4cfc3d2f144f74148ed68a1f92337f5072b6dde204a0dbbdf3324989c" +checksum = "ff73249ee3cdc81ad04317d3b4231fc02a8c03a3a1b4b13953244e6443f6b498" dependencies = [ "ahash 0.8.11", "arrow", @@ -1888,15 +1938,12 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec5ee8cecb0dc370291279673097ddabec03a011f73f30d7f1096457127e03e" +checksum = "20dcd70c58f17b7ce937866e43c75293a3250aadc1db830ad6d502967aaffb40" dependencies = [ "arrow", - "arrow-array", - "arrow-buffer", "arrow-ord", - "arrow-schema", "datafusion-common", "datafusion-doc", "datafusion-execution", @@ -1912,9 +1959,9 @@ dependencies = [ [[package]] name = "datafusion-functions-table" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c403ddd473bbb0952ba880008428b3c7febf0ed3ce1eec35a205db20efb2a36" +checksum = "ac12628c3e43461118e95d5772f729e1cc39db883d8ee52e4b80038b0f614bbf" dependencies = [ "arrow", "async-trait", @@ -1928,9 +1975,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab18c2fb835614d06a75f24a9e09136d3a8c12a92d97c95a6af316a1787a9c5" +checksum = "03eb449555c7cc03bb61d43d90edef70d070d34bc4a0d8f7e358d157232f3220" dependencies = [ "datafusion-common", "datafusion-doc", @@ -1945,9 +1992,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77b73bc15e7d1967121fdc7a55d819bfb9d6c03766a6c322247dce9094a53a4" +checksum = "6a0c7606e568ee6a15d33a2532eb0d18e7769bb88af55f6b70be4db9fd937d18" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -1955,9 +2002,9 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09369b8d962291e808977cf94d495fd8b5b38647232d7ef562c27ac0f495b0af" +checksum = "64030e805d3d257e3012e4378500d4ac90b1ebacd03f1110e8ec927b77f09486" dependencies = [ "datafusion-expr", "quote", @@ -1966,9 +2013,9 @@ dependencies = [ [[package]] name = "datafusion-optimizer" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2403a7e4a84637f3de7d8d4d7a9ccc0cc4be92d89b0161ba3ee5be82f0531c54" +checksum = "ae6af7bdae7565aa7a4cb1deb7fe18d89c63c5d93b5203b473ca1dbe02a1cd3d" dependencies = [ "arrow", "chrono", @@ -1985,15 +2032,12 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ff72ac702b62dbf2650c4e1d715ebd3e4aab14e3885e72e8549e250307347c" +checksum = "3f68601feda90c255c9023a881e833efca9d7539bab0565ac1355b0249326e91" dependencies = [ "ahash 0.8.11", "arrow", - "arrow-array", - "arrow-buffer", - "arrow-schema", "datafusion-common", "datafusion-expr", "datafusion-expr-common", @@ -2010,13 +2054,12 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60982b7d684e25579ee29754b4333057ed62e2cc925383c5f0bd8cab7962f435" +checksum = "00c1a08b00d340ca3bc1cd2f094ecaeaf6f099a2980e11255976660fa0409182" dependencies = [ "ahash 0.8.11", "arrow", - "arrow-buffer", "datafusion-common", "datafusion-expr-common", "hashbrown 0.14.5", @@ -2025,12 +2068,11 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5e85c189d5238a5cf181a624e450c4cd4c66ac77ca551d6f3ff9080bac90bb" +checksum = "7cd34f3438cf9629ea0e3425027582334fb6671a05ee43671ca3c47896b75dda" dependencies = [ "arrow", - "arrow-schema", "datafusion-common", "datafusion-execution", "datafusion-expr", @@ -2038,23 +2080,19 @@ dependencies = [ "datafusion-physical-expr", "datafusion-physical-expr-common", "datafusion-physical-plan", - "futures", "itertools 0.14.0", "log", "recursive", - "url", ] [[package]] name = "datafusion-physical-plan" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36bf163956d7e2542657c78b3383fdc78f791317ef358a359feffcdb968106f" +checksum = "7624484ada341d30ef465eae61f760e779f080c621bbc3dc0335a75fa78e8dec" dependencies = [ "ahash 0.8.11", "arrow", - "arrow-array", - "arrow-buffer", "arrow-ord", "arrow-schema", "async-trait", @@ -2079,13 +2117,11 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13caa4daede211ecec53c78b13c503b592794d125f9a3cc3afe992edf9e7f43" +checksum = "1e717736a394ed92d9dcf2d74439c655474dd39aa65a064a6bae697b6d20e5fe" dependencies = [ "arrow", - "arrow-array", - "arrow-schema", "bigdecimal", "datafusion-common", "datafusion-expr", @@ -2347,9 +2383,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -3538,9 +3574,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libflate" @@ -4149,9 +4185,9 @@ dependencies = [ [[package]] name = "parquet" -version = "54.2.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761c44d824fe83106e0600d2510c07bf4159a4985bf0569b513ea4288dc1b4fb" +checksum = "f88838dca3b84d41444a0341b19f347e8098a3898b0f21536654b8b799e11abd" dependencies = [ "ahash 0.8.11", "arrow-array", @@ -5596,11 +5632,12 @@ dependencies = [ [[package]] name = "sqlparser" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8" +checksum = "c66e3b7374ad4a6af849b08b3e7a6eda0edbd82f0fd59b57e22671bf16979899" dependencies = [ "log", + "recursive", "sqlparser_derive", ] @@ -6485,7 +6522,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ "getrandom 0.3.1", + "js-sys", "serde", + "wasm-bindgen", ] [[package]] @@ -6759,7 +6798,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 850946c3a1..3a8ba1a2b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,14 +41,14 @@ rust-version = "1.77.1" anyhow = "1.0.72" apache-avro = "0.17" array-init = "2" -arrow-arith = { version = "54.1.0" } -arrow-array = { version = "54.1.0" } -arrow-buffer = { version = "54.1.0" } -arrow-cast = { version = "54.1.0" } -arrow-ord = { version = "54.1.0" } -arrow-schema = { version = "54.1.0" } -arrow-select = { version = "54.1.0" } -arrow-string = { version = "54.1.0" } +arrow-arith = { version = "54.2.1" } +arrow-array = { version = "54.2.1" } +arrow-buffer = { version = "54.2.1" } +arrow-cast = { version = "54.2.1" } +arrow-ord = { version = "54.2.1" } +arrow-schema = { version = "54.2.1" } +arrow-select = { version = "54.2.1" } +arrow-string = { version = "54.2.1" } async-stream = "0.3.5" async-trait = "0.1.86" async-std = "1.12" @@ -56,10 +56,10 @@ aws-config = "1" aws-sdk-glue = "1.39" bimap = "0.6" bitvec = "1.0.1" -bytes = "1.6" +bytes = "1.10.1" chrono = "0.4.38" ctor = "0.2.8" -datafusion = "45" +datafusion = "46.0.0" derive_builder = "0.20" either = "1" env_logger = "0.11.0" @@ -78,7 +78,7 @@ num-bigint = "0.4.6" once_cell = "1.20" opendal = "0.51.2" ordered-float = "4" -parquet = "54.1.0" +parquet = "54.2.1" paste = "1.0.15" pilota = "0.11.2" pretty_assertions = "1.4" @@ -94,12 +94,12 @@ serde_json = "1.0.138" serde_repr = "0.1.16" serde_with = "3.4" tempfile = "3.18" -thrift = "0.17.0" -tokio = { version = "1.36", default-features = false } +thrift = "0.17.0" +tokio = { version = "1.43.0", default-features = false } typed-builder = "0.20" url = "2.5.4" urlencoding = "2" -uuid = { version = "1.13.1", features = ["v7"] } +uuid = { version = "1.15.1", features = ["v7"] } volo-thrift = "0.10" hive_metastore = "0.1" tera = "1" diff --git a/crates/catalog/rest/src/client.rs b/crates/catalog/rest/src/client.rs index 39b9cf2f29..5914bb33ea 100644 --- a/crates/catalog/rest/src/client.rs +++ b/crates/catalog/rest/src/client.rs @@ -87,9 +87,11 @@ impl HttpClient { cfg.token() .or_else(|| self.token.into_inner().ok().flatten()), ), - token_endpoint: (!cfg.get_token_endpoint().is_empty()) - .then(|| cfg.get_token_endpoint()) - .unwrap_or(self.token_endpoint), + token_endpoint: if !cfg.get_token_endpoint().is_empty() { + cfg.get_token_endpoint() + } else { + self.token_endpoint + }, credential: cfg.credential().or(self.credential), extra_headers, extra_oauth_params: (!cfg.extra_oauth_params().is_empty()) diff --git a/crates/catalog/s3tables/Cargo.toml b/crates/catalog/s3tables/Cargo.toml index cf4aff9534..f945b161e9 100644 --- a/crates/catalog/s3tables/Cargo.toml +++ b/crates/catalog/s3tables/Cargo.toml @@ -20,7 +20,7 @@ name = "iceberg-catalog-s3tables" version = { workspace = true } edition = { workspace = true } homepage = { workspace = true } -rust-version = "1.81.0" +rust-version = "1.82.0" categories = ["database"] description = "Apache Iceberg Rust S3Tables Catalog" diff --git a/crates/catalog/s3tables/src/catalog.rs b/crates/catalog/s3tables/src/catalog.rs index 32465fb0a7..e0bea55cc9 100644 --- a/crates/catalog/s3tables/src/catalog.rs +++ b/crates/catalog/s3tables/src/catalog.rs @@ -82,7 +82,7 @@ impl S3TablesCatalog { ) })?; - let file_io = FileIO::from_path(&format!("s3://{}", bucket_name))? + let file_io = FileIO::from_path(format!("s3://{}", bucket_name))? .with_props(&config.properties) .build()?; diff --git a/crates/iceberg/src/arrow/reader.rs b/crates/iceberg/src/arrow/reader.rs index 3dbdc4c161..69fa525b01 100644 --- a/crates/iceberg/src/arrow/reader.rs +++ b/crates/iceberg/src/arrow/reader.rs @@ -356,7 +356,7 @@ impl ArrowReader { f.metadata() .get(PARQUET_FIELD_ID_META_KEY) .and_then(|field_id| i32::from_str(field_id).ok()) - .map_or(false, |field_id| { + .is_some_and(|field_id| { projected_fields.insert((*f).clone(), field_id); leaf_field_ids.contains(&field_id) }) @@ -808,7 +808,7 @@ fn project_column( type PredicateResult = dyn FnMut(RecordBatch) -> std::result::Result + Send + 'static; -impl<'a> BoundPredicateVisitor for PredicateConverter<'a> { +impl BoundPredicateVisitor for PredicateConverter<'_> { type T = Box; fn always_true(&mut self) -> Result> { diff --git a/crates/iceberg/src/catalog/mod.rs b/crates/iceberg/src/catalog/mod.rs index 98b24b9256..35f9bae7ea 100644 --- a/crates/iceberg/src/catalog/mod.rs +++ b/crates/iceberg/src/catalog/mod.rs @@ -359,6 +359,7 @@ pub enum TableRequirement { } /// TableUpdate represents an update to a table in the catalog. +#[allow(clippy::large_enum_variant)] #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] #[serde(tag = "action", rename_all = "kebab-case")] pub enum TableUpdate { @@ -748,6 +749,7 @@ pub struct ViewCreation { } /// ViewUpdate represents an update to a view in the catalog. +#[allow(clippy::large_enum_variant)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[serde(tag = "action", rename_all = "kebab-case")] pub enum ViewUpdate { diff --git a/crates/iceberg/src/delete_file_index.rs b/crates/iceberg/src/delete_file_index.rs index 8bb8cccad2..4c9ffb6951 100644 --- a/crates/iceberg/src/delete_file_index.rs +++ b/crates/iceberg/src/delete_file_index.rs @@ -101,7 +101,6 @@ impl PopulatedDeleteFileIndex { /// 2. If the partition is empty and the delete file is not a positional delete, /// it is added to the `global_delees` vector /// 3. Otherwise, the delete file is added to one of two hash maps based on its content type. - fn new(files: Vec) -> PopulatedDeleteFileIndex { let mut eq_deletes_by_partition: HashMap>> = HashMap::default(); diff --git a/crates/iceberg/src/inspect/metadata_table.rs b/crates/iceberg/src/inspect/metadata_table.rs index 75dbc74725..9cbe932780 100644 --- a/crates/iceberg/src/inspect/metadata_table.rs +++ b/crates/iceberg/src/inspect/metadata_table.rs @@ -43,7 +43,7 @@ impl<'a> MetadataTable<'a> { ManifestsTable::new(self.0) } } - +#[allow(missing_docs)] #[cfg(test)] pub mod tests { use expect_test::Expect; diff --git a/crates/iceberg/src/io/storage_s3.rs b/crates/iceberg/src/io/storage_s3.rs index 30f61fe390..f38151de27 100644 --- a/crates/iceberg/src/io/storage_s3.rs +++ b/crates/iceberg/src/io/storage_s3.rs @@ -46,6 +46,7 @@ pub const S3_PATH_STYLE_ACCESS: &str = "s3.path-style-access"; /// S3 Server Side Encryption Type. pub const S3_SSE_TYPE: &str = "s3.sse.type"; /// S3 Server Side Encryption Key. +/// /// If S3 encryption type is kms, input is a KMS Key ID. /// In case this property is not set, default key "aws/s3" is used. /// If encryption type is custom, input is a custom base-64 AES256 symmetric key. diff --git a/crates/iceberg/src/puffin/test_utils.rs b/crates/iceberg/src/puffin/test_utils.rs index 8efb13b9ac..83d8977896 100644 --- a/crates/iceberg/src/puffin/test_utils.rs +++ b/crates/iceberg/src/puffin/test_utils.rs @@ -55,10 +55,10 @@ pub(crate) fn empty_footer_payload() -> FileMetadata { } pub(crate) fn empty_footer_payload_bytes() -> Vec { - return serde_json::to_string::(&empty_footer_payload()) + serde_json::to_string::(&empty_footer_payload()) .unwrap() .as_bytes() - .to_vec(); + .to_vec() } pub(crate) fn empty_footer_payload_bytes_length_bytes() -> [u8; 4] { diff --git a/crates/iceberg/src/scan.rs b/crates/iceberg/src/scan.rs index 603e1aa811..6f20f5b6bd 100644 --- a/crates/iceberg/src/scan.rs +++ b/crates/iceberg/src/scan.rs @@ -460,7 +460,7 @@ impl TableScan { } }); - return Ok(file_scan_task_rx.boxed()); + Ok(file_scan_task_rx.boxed()) } /// Returns an [`ArrowRecordBatchStream`]. @@ -1115,6 +1115,7 @@ impl FileScanTask { } } +#[allow(missing_docs)] #[cfg(test)] pub mod tests { use std::collections::HashMap; diff --git a/crates/iceberg/src/spec/datatypes.rs b/crates/iceberg/src/spec/datatypes.rs index c806d16eaa..18b4e27770 100644 --- a/crates/iceberg/src/spec/datatypes.rs +++ b/crates/iceberg/src/spec/datatypes.rs @@ -516,6 +516,7 @@ impl fmt::Display for StructType { #[derive(Debug, PartialEq, Serialize, Deserialize, Eq, Clone)] #[serde(from = "SerdeNestedField", into = "SerdeNestedField")] /// A struct is a tuple of typed values. Each field in the tuple is named and has an integer id that is unique in the table schema. +/// /// Each field can be either optional or required, meaning that values can (or cannot) be null. Fields may be any type. /// Fields may have an optional comment or doc string. Fields can have default values. pub struct NestedField { @@ -699,6 +700,7 @@ impl fmt::Display for NestedField { #[derive(Debug, PartialEq, Eq, Clone)] /// A list is a collection of values with some element type. The element field has an integer id that is unique in the table schema. +/// /// Elements can be either optional or required. Element types may be any type. pub struct ListType { /// Element field of list type. @@ -736,7 +738,7 @@ pub(super) mod _serde { }, Struct { r#type: String, - fields: Cow<'a, Vec>, + fields: Cow<'a, [NestedFieldRef]>, }, #[serde(rename_all = "kebab-case")] Map { @@ -750,7 +752,7 @@ pub(super) mod _serde { Primitive(PrimitiveType), } - impl<'a> From> for Type { + impl From> for Type { fn from(value: SerdeType) -> Self { match value { SerdeType::List { @@ -819,6 +821,7 @@ pub(super) mod _serde { #[derive(Debug, PartialEq, Eq, Clone)] /// A map is a collection of key-value pairs with a key type and a value type. +/// /// Both the key field and value field each have an integer id that is unique in the table schema. /// Map keys are required and map values can be either optional or required. /// Both map keys and map values may be any type, including nested types. diff --git a/crates/iceberg/src/spec/partition.rs b/crates/iceberg/src/spec/partition.rs index e6405be4c0..f488a38f8b 100644 --- a/crates/iceberg/src/spec/partition.rs +++ b/crates/iceberg/src/spec/partition.rs @@ -173,6 +173,7 @@ pub struct UnboundPartitionField { } /// Unbound partition spec can be built without a schema and later bound to a schema. +/// /// They are used to transport schema information as part of the REST specification. /// The main difference to [`PartitionSpec`] is that the field ids are optional. #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone, Default)] diff --git a/crates/iceberg/src/spec/sort.rs b/crates/iceberg/src/spec/sort.rs index ebe7381bcd..29d5ac9a94 100644 --- a/crates/iceberg/src/spec/sort.rs +++ b/crates/iceberg/src/spec/sort.rs @@ -147,7 +147,7 @@ impl SortOrderBuilder { /// Creates a new unbound sort order. pub fn build_unbound(&self) -> Result { let fields = self.fields.clone().unwrap_or_default(); - return match (self.order_id, fields.as_slice()) { + match (self.order_id, fields.as_slice()) { (Some(SortOrder::UNSORTED_ORDER_ID) | None, []) => Ok(SortOrder::unsorted_order()), (_, []) => Err(Error::new( ErrorKind::Unexpected, @@ -164,7 +164,7 @@ impl SortOrderBuilder { order_id: maybe_order_id.unwrap_or(1), fields: fields.to_vec(), }), - }; + } } /// Creates a new bound sort order. diff --git a/crates/iceberg/src/spec/values.rs b/crates/iceberg/src/spec/values.rs index caf26e21f6..a6e46096e2 100644 --- a/crates/iceberg/src/spec/values.rs +++ b/crates/iceberg/src/spec/values.rs @@ -1139,9 +1139,9 @@ impl Datum { } fn string_to_i128>(s: S) -> Result { - return s.as_ref().parse::().map_err(|e| { + s.as_ref().parse::().map_err(|e| { Error::new(ErrorKind::DataInvalid, "Can't parse string to i128.").with_source(e) - }); + }) } /// Convert the datum to `target_type`. @@ -1225,6 +1225,7 @@ impl Datum { } /// Map is a collection of key-value pairs with a key type and a value type. +/// /// It used in Literal::Map, to make it hashable, the order of key-value pairs is stored in a separate vector /// so that we can hash the map in a deterministic way. But it also means that the order of key-value pairs is matter /// for the hash value. @@ -1721,6 +1722,7 @@ impl Literal { } /// The partition struct stores the tuple of partition values for each file. +/// /// Its type is derived from the partition fields of the partition spec used to write the manifest file. /// In v2, the partition struct’s field ids must match the ids from the partition spec. #[derive(Debug, Clone, PartialEq, Eq, Hash)] diff --git a/crates/iceberg/src/writer/file_writer/location_generator.rs b/crates/iceberg/src/writer/file_writer/location_generator.rs index 3f5d4ee180..c1c2606083 100644 --- a/crates/iceberg/src/writer/file_writer/location_generator.rs +++ b/crates/iceberg/src/writer/file_writer/location_generator.rs @@ -84,8 +84,10 @@ pub trait FileNameGenerator: Clone + Send + 'static { fn generate_file_name(&self) -> String; } -/// `DefaultFileNameGenerator` used to generate file name for data file. The file name can be -/// passed to `LocationGenerator` to generate the location of the file. +/// `DefaultFileNameGenerator` used to generate file name for data file. +/// +/// The file name can be passed to `LocationGenerator` +/// to generate the location of the file. /// The file name format is "{prefix}-{file_count}[-{suffix}].{file_format}". #[derive(Clone, Debug)] pub struct DefaultFileNameGenerator { diff --git a/crates/iceberg/src/writer/file_writer/track_writer.rs b/crates/iceberg/src/writer/file_writer/track_writer.rs index 6c60a1aa70..8768832310 100644 --- a/crates/iceberg/src/writer/file_writer/track_writer.rs +++ b/crates/iceberg/src/writer/file_writer/track_writer.rs @@ -42,10 +42,9 @@ impl TrackWriter { impl FileWrite for TrackWriter { async fn write(&mut self, bs: Bytes) -> Result<()> { let size = bs.len(); - self.inner.write(bs).await.map(|v| { + self.inner.write(bs).await.inspect(|_v| { self.written_size .fetch_add(size as i64, std::sync::atomic::Ordering::Relaxed); - v }) } diff --git a/crates/integrations/datafusion/Cargo.toml b/crates/integrations/datafusion/Cargo.toml index ccb9ca175b..a5460c770e 100644 --- a/crates/integrations/datafusion/Cargo.toml +++ b/crates/integrations/datafusion/Cargo.toml @@ -23,7 +23,7 @@ homepage = { workspace = true } # kept the same as DataFusion's MSRV # https://github.com/apache/datafusion?tab=readme-ov-file#rust-version-compatibility-policy # https://github.com/apache/datafusion/blob/main/Cargo.toml#L68 -rust-version = "1.80.1" +rust-version = "1.82.0" categories = ["database"] description = "Apache Iceberg DataFusion Integration" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 7b10a86920..0373415109 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -16,5 +16,5 @@ # under the License. [toolchain] -channel = "nightly-2024-06-10" +channel = "nightly-2024-10-17" components = ["rustfmt", "clippy"]