diff --git a/Cargo.lock b/Cargo.lock index ac691ca9d..aebbebb29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,15 +117,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,7 +141,6 @@ dependencies = [ "strum_macros", "thiserror", "uuid", - "xz2", "zstd", ] @@ -425,19 +425,15 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.19" +version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" +checksum = "98ec5f6c2f8bc326c994cb9e241cc257ddaba9afa8555a43cffbb5dd86efaa37" dependencies = [ - "bzip2 0.5.2", - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", - "xz2", - "zstd", - "zstd-safe", ] [[package]] @@ -613,15 +609,6 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" -[[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" @@ -631,16 +618,6 @@ 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" @@ -706,6 +683,27 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "compression-codecs" +version = "0.4.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0f7ac3e5b97fdce45e8922fb05cae2c37f7bbd63d30dd94821dacfd8f3f2bf2" +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" @@ -903,15 +901,14 @@ dependencies = [ [[package]] name = "datafusion" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba7cb113e9c0bedf9e9765926031e132fa05a1b09ba6e93a6d1a4d7044457b8" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "arrow-schema", "async-trait", "bytes", - "bzip2 0.6.1", + "bzip2", "chrono", "datafusion-catalog", "datafusion-catalog-listing", @@ -942,27 +939,25 @@ 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a3a799f914a59b1ea343906a0486f17061f39509af74e874a866428951130d" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -985,9 +980,8 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db1b113c80d7a0febcd901476a57aef378e717c54517a163ed51417d87621b0" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1004,14 +998,12 @@ dependencies = [ "itertools", "log", "object_store", - "tokio", ] [[package]] name = "datafusion-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c10f7659e96127d25e8366be7c8be4109595d6a2c3eac70421f380a7006a1b0" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "apache-avro", @@ -1019,7 +1011,7 @@ dependencies = [ "arrow-ipc", "chrono", "half", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "indexmap", "libc", "log", @@ -1034,9 +1026,8 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92065bbc6532c6651e2f7dd30b55cba0c7a14f860c7e1d15f165c41a1868d95" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "futures", "log", @@ -1045,15 +1036,14 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde13794244bc7581cd82f6fff217068ed79cdc344cafe4ab2c3a1c3510b38d6" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-compression", "async-trait", "bytes", - "bzip2 0.6.1", + "bzip2", "chrono", "datafusion-common", "datafusion-common-runtime", @@ -1068,21 +1058,20 @@ dependencies = [ "futures", "glob", "itertools", + "liblzma", "log", "object_store", "rand", "tokio", "tokio-util", "url", - "xz2", "zstd", ] [[package]] name = "datafusion-datasource-arrow" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804fa9b4ecf3157982021770617200ef7c1b2979d57bec9044748314775a9aea" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "arrow-ipc", @@ -1104,9 +1093,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-avro" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388ed8be535f562cc655b9c3d22edbfb0f1a50a25c242647a98b6d92a75b55a1" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "apache-avro", "arrow", @@ -1124,9 +1112,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a1641a40b259bab38131c5e6f48fac0717bedb7dc93690e604142a849e0568" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1147,9 +1134,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adeacdb00c1d37271176f8fb6a1d8ce096baba16ea7a4b2671840c5c9c64fe85" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1169,9 +1155,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-parquet" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d0b60ffd66f28bfb026565d62b0a6cbc416da09814766a3797bba7d85a3cd9" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1199,18 +1184,17 @@ dependencies = [ [[package]] name = "datafusion-doc" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b99e13947667b36ad713549237362afb054b2d8f8cc447751e23ec61202db07" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" [[package]] name = "datafusion-execution" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63695643190679037bc946ad46a263b62016931547bf119859c511f7ff2f5178" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", + "chrono", "dashmap", "datafusion-common", "datafusion-expr", @@ -1225,9 +1209,8 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a4787cbf5feb1ab351f789063398f67654a6df75c4d37d7f637dc96f951a91" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1248,9 +1231,8 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce2fb1b8c15c9ac45b0863c30b268c69dc9ee7a1ee13ecf5d067738338173dc" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1261,20 +1243,26 @@ dependencies = [ [[package]] name = "datafusion-ffi" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec510e7787641279b0336e8b79e4b7bd1385d5976875ff9b97f4269ce5231a67" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "abi_stable", "arrow", "arrow-schema", "async-ffi", "async-trait", - "datafusion", + "datafusion-catalog", "datafusion-common", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", "datafusion-functions-aggregate-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", "datafusion-proto", "datafusion-proto-common", + "datafusion-session", "futures", "log", "prost", @@ -1284,9 +1272,8 @@ dependencies = [ [[package]] name = "datafusion-functions" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794a9db7f7b96b3346fc007ff25e994f09b8f0511b4cf7dff651fadfe3ebb28f" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "arrow-buffer", @@ -1294,6 +1281,7 @@ dependencies = [ "blake2", "blake3", "chrono", + "chrono-tz", "datafusion-common", "datafusion-doc", "datafusion-execution", @@ -1314,9 +1302,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c25210520a9dcf9c2b2cbbce31ebd4131ef5af7fc60ee92b266dc7d159cb305" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", @@ -1335,9 +1322,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f4a66f3b87300bb70f4124b55434d2ae3fe80455f3574701d0348da040b55d" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", @@ -1348,9 +1334,8 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae5c06eed03918dc7fe7a9f082a284050f0e9ecf95d72f57712d1496da03b8c4" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "arrow-ord", @@ -1371,9 +1356,8 @@ dependencies = [ [[package]] name = "datafusion-functions-table" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4fed1d71738fbe22e2712d71396db04c25de4111f1ec252b8f4c6d3b25d7f5" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1387,9 +1371,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d92206aa5ae21892f1552b4d61758a862a70956e6fd7a95cb85db1de74bc6d1" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1405,9 +1388,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ae9bcc39800820d53a22d758b3b8726ff84a5a3e24cecef04ef4e5fdf1c7cc" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -1415,9 +1397,8 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1063ad4c9e094b3f798acee16d9a47bd7372d9699be2de21b05c3bd3f34ab848" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "datafusion-doc", "quote", @@ -1426,9 +1407,8 @@ dependencies = [ [[package]] name = "datafusion-optimizer" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35f9ec5d08b87fd1893a30c2929f2559c2f9806ca072d8fefca5009dc0f06a" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "chrono", @@ -1446,9 +1426,8 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30cc8012e9eedcb48bbe112c6eff4ae5ed19cf3003cb0f505662e88b7014c5d" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", @@ -1458,19 +1437,20 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-physical-expr-common", "half", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "indexmap", "itertools", "parking_lot", "paste", "petgraph 0.8.3", + "recursive", + "tokio", ] [[package]] name = "datafusion-physical-expr-adapter" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9ff2dbd476221b1f67337699eff432781c4e6e1713d2aefdaa517dfbf79768" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1483,23 +1463,24 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90da43e1ec550b172f34c87ec68161986ced70fd05c8d2a2add66eef9c276f03" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", + "chrono", "datafusion-common", "datafusion-expr-common", - "hashbrown 0.14.5", + "hashbrown 0.16.1", + "indexmap", "itertools", + "parking_lot", ] [[package]] name = "datafusion-physical-optimizer" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce9804f799acd7daef3be7aaffe77c0033768ed8fdbf5fb82fc4c5f2e6bc14e6" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1516,27 +1497,26 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0acf0ad6b6924c6b1aa7d213b181e012e2d3ec0a64ff5b10ee6282ab0f8532ac" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" 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", + "hashbrown 0.16.1", "indexmap", "itertools", "log", @@ -1547,9 +1527,8 @@ dependencies = [ [[package]] name = "datafusion-proto" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d368093a98a17d1449b1083ac22ed16b7128e4c67789991869480d8c4a40ecb9" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "chrono", @@ -1574,9 +1553,8 @@ dependencies = [ [[package]] name = "datafusion-proto-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6aef3d5e5c1d2bc3114c4876730cb76a9bdc5a8df31ef1b6db48f0c1671895" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1585,9 +1563,8 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2c2498a1f134a9e11a9f5ed202a2a7d7e9774bd9249295593053ea3be999db" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1630,9 +1607,8 @@ dependencies = [ [[package]] name = "datafusion-session" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f96eebd17555386f459037c65ab73aae8df09f464524c709d6a3134ad4f4776" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "async-trait", "datafusion-common", @@ -1644,9 +1620,8 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc195fe60634b2c6ccfd131b487de46dc30eccae8a3c35a13f136e7f440414f" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "bigdecimal", @@ -1662,9 +1637,8 @@ dependencies = [ [[package]] name = "datafusion-substrait" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2505af06d103a55b4e8ded0c6aeb6c72a771948da939c0bd3f8eee67af475a9c" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "async-recursion", "async-trait", @@ -1868,12 +1842,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - [[package]] name = "futures-util" version = "0.3.31" @@ -1980,10 +1948,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" @@ -2412,6 +2376,26 @@ dependencies = [ "winapi", ] +[[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" version = "0.2.15" @@ -2479,17 +2463,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 = "md-5" version = "0.10.6" @@ -2859,15 +2832,6 @@ dependencies = [ "syn 2.0.113", ] -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit", -] - [[package]] name = "proc-macro2" version = "1.0.104" @@ -3222,12 +3186,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "relative-path" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" - [[package]] name = "repr_offset" version = "0.2.2" @@ -3293,35 +3251,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rstest" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49" -dependencies = [ - "futures-timer", - "futures-util", - "rstest_macros", -] - -[[package]] -name = "rstest_macros" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" -dependencies = [ - "cfg-if", - "glob", - "proc-macro-crate", - "proc-macro2", - "quote", - "regex", - "relative-path", - "rustc_version", - "syn 2.0.113", - "unicode-ident", -] - [[package]] name = "rustc-hash" version = "2.1.1" @@ -3941,36 +3870,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.23.10+spec-1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" -dependencies = [ - "indexmap", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.6+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" -dependencies = [ - "winnow", -] - [[package]] name = "tower" version = "0.5.2" @@ -4591,15 +4490,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" -[[package]] -name = "winnow" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -dependencies = [ - "memchr", -] - [[package]] name = "wit-bindgen" version = "0.46.0" @@ -4612,15 +4502,6 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" -[[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" diff --git a/Cargo.toml b/Cargo.toml index 364713964..4e68d7ae3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,10 +57,14 @@ pyo3-async-runtimes = { version = "0.26", features = ["tokio-runtime"] } pyo3-log = "0.13.2" arrow = { version = "57", features = ["pyarrow"] } arrow-select = { version = "57" } -datafusion = { version = "51", features = ["avro", "unicode_expressions"] } -datafusion-substrait = { version = "51", optional = true } -datafusion-proto = { version = "51" } -datafusion-ffi = { version = "51" } +#datafusion = { version = "51", features = ["avro", "unicode_expressions"] } +#datafusion-substrait = { version = "51", optional = true } +#datafusion-proto = { version = "51" } +#datafusion-ffi = { version = "51" } +datafusion = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c", features = ["avro", "unicode_expressions"] } +datafusion-substrait = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c", optional = true } +datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" } +datafusion-ffi = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" } prost = "0.14.1" # keep in line with `datafusion-substrait` uuid = { version = "1.18", features = ["v4"] } mimalloc = { version = "0.1", optional = true, default-features = false, features = [ diff --git a/examples/datafusion-ffi-example/Cargo.lock b/examples/datafusion-ffi-example/Cargo.lock index 148c05edd..5b1a6a32a 100644 --- a/examples/datafusion-ffi-example/Cargo.lock +++ b/examples/datafusion-ffi-example/Cargo.lock @@ -64,7 +64,7 @@ checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "const-random", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -111,27 +111,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" - -[[package]] -name = "arrayref" -version = "0.3.9" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arrow" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df8bb5b0bd64c0b9bc61317fcc480bad0f00e56d3bc32c69a4c8dada4786bae" +checksum = "cb372a7cbcac02a35d3fb7b3fc1f969ec078e871f9bb899bf00a2e1809bec8a3" dependencies = [ "arrow-arith", "arrow-array", @@ -150,9 +138,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a640186d3bd30a24cb42264c2dafb30e236a6f50d510e56d40b708c9582491" +checksum = "0f377dcd19e440174596d83deb49cd724886d91060c07fec4f67014ef9d54049" dependencies = [ "arrow-array", "arrow-buffer", @@ -164,9 +152,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219fe420e6800979744c8393b687afb0252b3f8a89b91027d27887b72aa36d31" +checksum = "a23eaff85a44e9fa914660fb0d0bb00b79c4a3d888b5334adb3ea4330c84f002" dependencies = [ "ahash", "arrow-buffer", @@ -175,7 +163,7 @@ dependencies = [ "chrono", "chrono-tz", "half", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "num-complex", "num-integer", "num-traits", @@ -183,9 +171,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76885a2697a7edf6b59577f568b456afc94ce0e2edc15b784ce3685b6c3c5c27" +checksum = "a2819d893750cb3380ab31ebdc8c68874dd4429f90fd09180f3c93538bd21626" dependencies = [ "bytes", "half", @@ -195,13 +183,14 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9ebb4c987e6b3b236fb4a14b20b34835abfdd80acead3ccf1f9bf399e1f168" +checksum = "e3d131abb183f80c450d4591dc784f8d7750c50c6e2bc3fcaad148afc8361271" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", + "arrow-ord", "arrow-schema", "arrow-select", "atoi", @@ -216,9 +205,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92386159c8d4bce96f8bd396b0642a0d544d471bdc2ef34d631aec80db40a09c" +checksum = "2275877a0e5e7e7c76954669366c2aa1a829e340ab1f612e647507860906fb6b" dependencies = [ "arrow-array", "arrow-cast", @@ -231,9 +220,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727681b95de313b600eddc2a37e736dcb21980a40f640314dcf360e2f36bc89b" +checksum = "05738f3d42cb922b9096f7786f606fcb8669260c2640df8490533bb2fa38c9d3" dependencies = [ "arrow-buffer", "arrow-schema", @@ -244,9 +233,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9ba92e3de170295c98a84e5af22e2b037f0c7b32449445e6c493b5fca27f27" +checksum = "3d09446e8076c4b3f235603d9ea7c5494e73d441b01cd61fb33d7254c11964b3" dependencies = [ "arrow-array", "arrow-buffer", @@ -255,14 +244,13 @@ dependencies = [ "arrow-select", "flatbuffers", "lz4_flex", - "zstd", ] [[package]] name = "arrow-json" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b969b4a421ae83828591c6bf5450bd52e6d489584142845ad6a861f42fe35df8" +checksum = "371ffd66fa77f71d7628c63f209c9ca5341081051aa32f9c8020feb0def787c0" dependencies = [ "arrow-array", "arrow-buffer", @@ -284,9 +272,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "141c05298b21d03e88062317a1f1a73f5ba7b6eb041b350015b1cd6aabc0519b" +checksum = "cbc94fc7adec5d1ba9e8cd1b1e8d6f72423b33fe978bf1f46d970fafab787521" dependencies = [ "arrow-array", "arrow-buffer", @@ -297,9 +285,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f3c06a6abad6164508ed283c7a02151515cef3de4b4ff2cebbcaeb85533db2" +checksum = "169676f317157dc079cc5def6354d16db63d8861d61046d2f3883268ced6f99f" dependencies = [ "arrow-array", "arrow-buffer", @@ -310,20 +298,18 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cfa7a03d1eee2a4d061476e1840ad5c9867a544ca6c4c59256496af5d0a8be5" +checksum = "d27609cd7dd45f006abae27995c2729ef6f4b9361cde1ddd019dc31a5aa017e0" dependencies = [ "bitflags", - "serde_core", - "serde_json", ] [[package]] name = "arrow-select" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafa595babaad59f2455f4957d0f26448fb472722c186739f4fac0823a1bdb47" +checksum = "ae980d021879ea119dd6e2a13912d81e64abed372d53163e804dfe84639d8010" dependencies = [ "ahash", "arrow-array", @@ -335,9 +321,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f46457dbbb99f2650ff3ac23e46a929e0ab81db809b02aa5511c258348bef2" +checksum = "cf35e8ef49dcf0c5f6d175edee6b8af7b45611805333129c541a8b89a0fc0534" dependencies = [ "arrow-array", "arrow-buffer", @@ -362,23 +348,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "async-compression" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" -dependencies = [ - "bzip2 0.5.2", - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", - "xz2", - "zstd", - "zstd-safe", -] - [[package]] name = "async-ffi" version = "0.5.0" @@ -396,7 +365,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -420,55 +389,11 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bigdecimal" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a22f228ab7a1b23027ccc6c350b72868017af7ea8356fbdf19f8d991c690013" -dependencies = [ - "autocfg", - "libm", - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "bitflags" -version = "2.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest", -] - -[[package]] -name = "blake3" -version = "1.8.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "brotli" @@ -493,9 +418,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "byteorder" @@ -505,44 +430,17 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" -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", -] +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "cc" -version = "1.2.34" +version = "1.2.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" +checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -550,9 +448,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" @@ -562,7 +460,7 @@ checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", "num-traits", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -577,12 +475,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.2" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d05af1e006a2407bedef5af410552494ce5be9090444dbbcb57258c1af3d56" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" dependencies = [ - "strum", - "strum_macros", + "unicode-segmentation", "unicode-width", ] @@ -608,19 +505,13 @@ dependencies = [ [[package]] name = "const_panic" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8a602185c3c95b52f86dc78e55a6df9a287a7a93ddbcf012509930880cf879" +checksum = "e262cdaac42494e3ae34c43969f9cdeb7da178bdb4b66fa6a1ea2edb4c8ae652" dependencies = [ "typewit", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -642,15 +533,6 @@ version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "533d38ecd2709b7608fb8e18e4504deb99e9a72879e6aa66373a76d8dc4259ea" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - [[package]] name = "crc32fast" version = "1.5.0" @@ -681,33 +563,23 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "csv" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" dependencies = [ "csv-core", "itoa", "ryu", - "serde", + "serde_core", ] [[package]] name = "csv-core" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" dependencies = [ "memchr", ] @@ -726,67 +598,10 @@ dependencies = [ "parking_lot_core", ] -[[package]] -name = "datafusion" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba7cb113e9c0bedf9e9765926031e132fa05a1b09ba6e93a6d1a4d7044457b8" -dependencies = [ - "arrow", - "arrow-schema", - "async-trait", - "bytes", - "bzip2 0.6.1", - "chrono", - "datafusion-catalog", - "datafusion-catalog-listing", - "datafusion-common", - "datafusion-common-runtime", - "datafusion-datasource", - "datafusion-datasource-arrow", - "datafusion-datasource-csv", - "datafusion-datasource-json", - "datafusion-datasource-parquet", - "datafusion-execution", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-functions", - "datafusion-functions-aggregate", - "datafusion-functions-nested", - "datafusion-functions-table", - "datafusion-functions-window", - "datafusion-optimizer", - "datafusion-physical-expr", - "datafusion-physical-expr-adapter", - "datafusion-physical-expr-common", - "datafusion-physical-optimizer", - "datafusion-physical-plan", - "datafusion-session", - "datafusion-sql", - "flate2", - "futures", - "itertools", - "log", - "object_store", - "parking_lot", - "parquet", - "rand", - "regex", - "rstest", - "sqlparser", - "tempfile", - "tokio", - "url", - "uuid", - "xz2", - "zstd", -] - [[package]] name = "datafusion-catalog" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a3a799f914a59b1ea343906a0486f17061f39509af74e874a866428951130d" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -809,9 +624,8 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db1b113c80d7a0febcd901476a57aef378e717c54517a163ed51417d87621b0" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -828,38 +642,33 @@ dependencies = [ "itertools", "log", "object_store", - "tokio", ] [[package]] name = "datafusion-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c10f7659e96127d25e8366be7c8be4109595d6a2c3eac70421f380a7006a1b0" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", "arrow-ipc", "chrono", "half", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "indexmap", "libc", "log", "object_store", "parquet", "paste", - "recursive", - "sqlparser", "tokio", "web-time", ] [[package]] name = "datafusion-common-runtime" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92065bbc6532c6651e2f7dd30b55cba0c7a14f860c7e1d15f165c41a1868d95" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "futures", "log", @@ -868,15 +677,12 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde13794244bc7581cd82f6fff217068ed79cdc344cafe4ab2c3a1c3510b38d6" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", - "async-compression", "async-trait", "bytes", - "bzip2 0.6.1", "chrono", "datafusion-common", "datafusion-common-runtime", @@ -887,7 +693,6 @@ dependencies = [ "datafusion-physical-expr-common", "datafusion-physical-plan", "datafusion-session", - "flate2", "futures", "glob", "itertools", @@ -895,17 +700,13 @@ dependencies = [ "object_store", "rand", "tokio", - "tokio-util", "url", - "xz2", - "zstd", ] [[package]] name = "datafusion-datasource-arrow" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804fa9b4ecf3157982021770617200ef7c1b2979d57bec9044748314775a9aea" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "arrow-ipc", @@ -927,9 +728,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a1641a40b259bab38131c5e6f48fac0717bedb7dc93690e604142a849e0568" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -950,9 +750,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adeacdb00c1d37271176f8fb6a1d8ce096baba16ea7a4b2671840c5c9c64fe85" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -972,9 +771,8 @@ dependencies = [ [[package]] name = "datafusion-datasource-parquet" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d0b60ffd66f28bfb026565d62b0a6cbc416da09814766a3797bba7d85a3cd9" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1002,18 +800,17 @@ dependencies = [ [[package]] name = "datafusion-doc" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b99e13947667b36ad713549237362afb054b2d8f8cc447751e23ec61202db07" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" [[package]] name = "datafusion-execution" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63695643190679037bc946ad46a263b62016931547bf119859c511f7ff2f5178" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", + "chrono", "dashmap", "datafusion-common", "datafusion-expr", @@ -1028,9 +825,8 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a4787cbf5feb1ab351f789063398f67654a6df75c4d37d7f637dc96f951a91" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1044,16 +840,14 @@ dependencies = [ "indexmap", "itertools", "paste", - "recursive", "serde_json", "sqlparser", ] [[package]] name = "datafusion-expr-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce2fb1b8c15c9ac45b0863c30b268c69dc9ee7a1ee13ecf5d067738338173dc" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1064,20 +858,26 @@ dependencies = [ [[package]] name = "datafusion-ffi" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec510e7787641279b0336e8b79e4b7bd1385d5976875ff9b97f4269ce5231a67" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "abi_stable", "arrow", "arrow-schema", "async-ffi", "async-trait", - "datafusion", + "datafusion-catalog", "datafusion-common", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", "datafusion-functions-aggregate-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", "datafusion-proto", "datafusion-proto-common", + "datafusion-session", "futures", "log", "prost", @@ -1093,24 +893,26 @@ dependencies = [ "arrow-array", "arrow-schema", "async-trait", - "datafusion", + "datafusion-catalog", + "datafusion-common", + "datafusion-expr", "datafusion-ffi", + "datafusion-functions-aggregate", + "datafusion-functions-window", "pyo3", "pyo3-build-config", ] [[package]] name = "datafusion-functions" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794a9db7f7b96b3346fc007ff25e994f09b8f0511b4cf7dff651fadfe3ebb28f" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "arrow-buffer", "base64", - "blake2", - "blake3", "chrono", + "chrono-tz", "datafusion-common", "datafusion-doc", "datafusion-execution", @@ -1120,20 +922,17 @@ dependencies = [ "hex", "itertools", "log", - "md-5", "num-traits", "rand", "regex", - "sha2", "unicode-segmentation", "uuid", ] [[package]] name = "datafusion-functions-aggregate" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c25210520a9dcf9c2b2cbbce31ebd4131ef5af7fc60ee92b266dc7d159cb305" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", @@ -1152,9 +951,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f4a66f3b87300bb70f4124b55434d2ae3fe80455f3574701d0348da040b55d" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", @@ -1163,34 +961,10 @@ dependencies = [ "datafusion-physical-expr-common", ] -[[package]] -name = "datafusion-functions-nested" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae5c06eed03918dc7fe7a9f082a284050f0e9ecf95d72f57712d1496da03b8c4" -dependencies = [ - "arrow", - "arrow-ord", - "datafusion-common", - "datafusion-doc", - "datafusion-execution", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-functions", - "datafusion-functions-aggregate", - "datafusion-functions-aggregate-common", - "datafusion-macros", - "datafusion-physical-expr-common", - "itertools", - "log", - "paste", -] - [[package]] name = "datafusion-functions-table" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4fed1d71738fbe22e2712d71396db04c25de4111f1ec252b8f4c6d3b25d7f5" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "async-trait", @@ -1204,9 +978,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d92206aa5ae21892f1552b4d61758a862a70956e6fd7a95cb85db1de74bc6d1" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1222,9 +995,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ae9bcc39800820d53a22d758b3b8726ff84a5a3e24cecef04ef4e5fdf1c7cc" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -1232,40 +1004,18 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1063ad4c9e094b3f798acee16d9a47bd7372d9699be2de21b05c3bd3f34ab848" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "datafusion-doc", "quote", - "syn 2.0.111", -] - -[[package]] -name = "datafusion-optimizer" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35f9ec5d08b87fd1893a30c2929f2559c2f9806ca072d8fefca5009dc0f06a" -dependencies = [ - "arrow", - "chrono", - "datafusion-common", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-physical-expr", - "indexmap", - "itertools", - "log", - "recursive", - "regex", - "regex-syntax", + "syn 2.0.114", ] [[package]] name = "datafusion-physical-expr" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30cc8012e9eedcb48bbe112c6eff4ae5ed19cf3003cb0f505662e88b7014c5d" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", @@ -1275,19 +1025,19 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-physical-expr-common", "half", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "indexmap", "itertools", "parking_lot", "paste", "petgraph", + "tokio", ] [[package]] name = "datafusion-physical-expr-adapter" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9ff2dbd476221b1f67337699eff432781c4e6e1713d2aefdaa517dfbf79768" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1300,60 +1050,42 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90da43e1ec550b172f34c87ec68161986ced70fd05c8d2a2add66eef9c276f03" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "ahash", "arrow", + "chrono", "datafusion-common", "datafusion-expr-common", - "hashbrown 0.14.5", - "itertools", -] - -[[package]] -name = "datafusion-physical-optimizer" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce9804f799acd7daef3be7aaffe77c0033768ed8fdbf5fb82fc4c5f2e6bc14e6" -dependencies = [ - "arrow", - "datafusion-common", - "datafusion-execution", - "datafusion-expr", - "datafusion-expr-common", - "datafusion-physical-expr", - "datafusion-physical-expr-common", - "datafusion-physical-plan", - "datafusion-pruning", + "hashbrown 0.16.1", + "indexmap", "itertools", - "recursive", + "parking_lot", ] [[package]] name = "datafusion-physical-plan" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0acf0ad6b6924c6b1aa7d213b181e012e2d3ec0a64ff5b10ee6282ab0f8532ac" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" 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", + "hashbrown 0.16.1", "indexmap", "itertools", "log", @@ -1364,9 +1096,8 @@ dependencies = [ [[package]] name = "datafusion-proto" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d368093a98a17d1449b1083ac22ed16b7128e4c67789991869480d8c4a40ecb9" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "chrono", @@ -1391,9 +1122,8 @@ dependencies = [ [[package]] name = "datafusion-proto-common" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6aef3d5e5c1d2bc3114c4876730cb76a9bdc5a8df31ef1b6db48f0c1671895" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1402,9 +1132,8 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2c2498a1f134a9e11a9f5ed202a2a7d7e9774bd9249295593053ea3be999db" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "arrow", "datafusion-common", @@ -1419,9 +1148,8 @@ dependencies = [ [[package]] name = "datafusion-session" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f96eebd17555386f459037c65ab73aae8df09f464524c709d6a3134ad4f4776" +version = "52.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=bc043c3a5fe448fc5735d9fa173b69ac95a7e11c#bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" dependencies = [ "async-trait", "datafusion-common", @@ -1431,35 +1159,6 @@ dependencies = [ "parking_lot", ] -[[package]] -name = "datafusion-sql" -version = "51.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc195fe60634b2c6ccfd131b487de46dc30eccae8a3c35a13f136e7f440414f" -dependencies = [ - "arrow", - "bigdecimal", - "chrono", - "datafusion-common", - "datafusion-expr", - "indexmap", - "log", - "recursive", - "regex", - "sqlparser", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -1468,7 +1167,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1485,12 +1184,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys", ] [[package]] @@ -1499,6 +1198,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "find-msvc-tools" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -1507,9 +1212,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flatbuffers" -version = "25.2.10" +version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1045398c1bfd89168b5fd3f1fc11f6e70b34f6f66300c87d44d3de849463abf1" +checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ "bitflags", "rustc_version", @@ -1527,16 +1232,16 @@ dependencies = [ ] [[package]] -name = "fnv" -version = "1.0.7" +name = "foldhash" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foldhash" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" @@ -1603,7 +1308,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1618,12 +1323,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - [[package]] name = "futures-util" version = "0.3.31" @@ -1651,16 +1350,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.16" @@ -1669,19 +1358,19 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", ] [[package]] @@ -1707,10 +1396,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" @@ -1718,14 +1403,19 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "foldhash", + "foldhash 0.1.5", ] [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "heck" @@ -1741,26 +1431,25 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1782,9 +1471,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -1795,9 +1484,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -1808,11 +1497,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1823,42 +1511,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -1889,19 +1573,22 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", ] [[package]] name = "indoc" -version = "2.0.6" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] [[package]] name = "integer-encoding" @@ -1920,9 +1607,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jobserver" @@ -1930,15 +1617,15 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -1946,9 +1633,9 @@ dependencies = [ [[package]] name = "lexical-core" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" +checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" dependencies = [ "lexical-parse-float", "lexical-parse-integer", @@ -1959,66 +1646,53 @@ dependencies = [ [[package]] name = "lexical-parse-float" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" +checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" dependencies = [ "lexical-parse-integer", "lexical-util", - "static_assertions", ] [[package]] name = "lexical-parse-integer" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" +checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" dependencies = [ "lexical-util", - "static_assertions", ] [[package]] name = "lexical-util" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a82e24bf537fd24c177ffbbdc6ebcc8d54732c35b50a3f28cc3f4e4c949a0b3" -dependencies = [ - "static_assertions", -] +checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" [[package]] name = "lexical-write-float" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" +checksum = "50c438c87c013188d415fbabbb1dceb44249ab81664efbd31b14ae55dabb6361" dependencies = [ "lexical-util", "lexical-write-integer", - "static_assertions", ] [[package]] name = "lexical-write-integer" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" +checksum = "409851a618475d2d5796377cad353802345cba92c867d9fbcde9cf4eac4e14df" dependencies = [ "lexical-util", - "static_assertions", -] - -[[package]] -name = "libbz2-rs-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +] [[package]] name = "libc" -version = "0.2.177" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "libloading" @@ -2038,76 +1712,54 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libz-rs-sys" -version = "0.5.1" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221" +checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415" dependencies = [ "zlib-rs", ] [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lz4_flex" -version = "0.11.5" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" +checksum = "ab6473172471198271ff72e9379150e9dfd70d8e533e0752a27e515b48dd375e" 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 = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memoffset" @@ -2207,9 +1859,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -2217,22 +1869,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link", ] [[package]] name = "parquet" -version = "57.0.0" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0f31027ef1af7549f7cec603a9a21dce706d3f8d7c2060a68f43c1773be95a" +checksum = "be3e4f6d320dd92bfa7d612e265d7d08bba0a240bab86af3425e1d255a511d89" dependencies = [ "ahash", "arrow-array", @@ -2249,7 +1901,7 @@ dependencies = [ "flate2", "futures", "half", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "lz4_flex", "num-bigint", "num-integer", @@ -2327,15 +1979,15 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -2349,20 +2001,11 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit", -] - [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] @@ -2387,23 +2030,14 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.111", -] - -[[package]] -name = "psm" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" -dependencies = [ - "cc", + "syn 2.0.114", ] [[package]] name = "pyo3" -version = "0.27.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a6df7eab65fc7bee654a421404947e10a0f7085b6951bf2ea395f4659fb0cf" +checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383" dependencies = [ "indoc", "libc", @@ -2418,18 +2052,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.27.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f77d387774f6f6eec64a004eac0ed525aab7fa1966d94b42f743797b3e395afb" +checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.27.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dd13844a4242793e02df3e2ec093f540d948299a6a77ea9ce7afd8623f542be" +checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105" dependencies = [ "libc", "pyo3-build-config", @@ -2437,34 +2071,34 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.27.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf8f9f1108270b90d3676b8679586385430e5c0bb78bb5f043f95499c821a71" +checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "pyo3-macros-backend" -version = "0.27.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a3b2274450ba5288bc9b8c1b69ff569d1d61189d4bff38f8d22e03d17f932b" +checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf" dependencies = [ "heck", "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[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", ] @@ -2501,34 +2135,14 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", -] - -[[package]] -name = "recursive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e" -dependencies = [ - "recursive-proc-macro-impl", - "stacker", -] - -[[package]] -name = "recursive-proc-macro-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" -dependencies = [ - "quote", - "syn 2.0.111", + "getrandom 0.3.4", ] [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags", ] @@ -2558,15 +2172,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" - -[[package]] -name = "relative-path" -version = "1.9.3" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "repr_offset" @@ -2577,35 +2185,6 @@ dependencies = [ "tstr", ] -[[package]] -name = "rstest" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49" -dependencies = [ - "futures-timer", - "futures-util", - "rstest_macros", -] - -[[package]] -name = "rstest_macros" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" -dependencies = [ - "cfg-if", - "glob", - "proc-macro-crate", - "proc-macro2", - "quote", - "regex", - "relative-path", - "rustc_version", - "syn 2.0.111", - "unicode-ident", -] - [[package]] name = "rustc_version" version = "0.4.1" @@ -2617,15 +2196,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys", ] [[package]] @@ -2636,9 +2215,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "same-file" @@ -2694,30 +2273,20 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", + "serde_core", + "zmij", ] [[package]] @@ -2728,9 +2297,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "simdutf8" @@ -2769,7 +2338,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4591acadbcf52f0af60eafbb2c003232b2b4cd8de5f0e9437cb8b1b59046cc0f" dependencies = [ "log", - "recursive", "sqlparser_derive", ] @@ -2781,58 +2349,14 @@ checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "stacker" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b" -dependencies = [ - "cc", - "cfg-if", - "libc", - "psm", - "windows-sys 0.59.0", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.111", -] - -[[package]] -name = "subtle" -version = "2.6.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "syn" @@ -2847,9 +2371,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -2864,46 +2388,46 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "target-lexicon" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" +checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" [[package]] name = "tempfile" -version = "3.21.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys", ] [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2928,9 +2452,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -2938,9 +2462,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "pin-project-lite", @@ -2955,57 +2479,14 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", -] - -[[package]] -name = "tokio-util" -version = "0.7.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml_datetime" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.23.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" -dependencies = [ - "indexmap", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" -dependencies = [ - "winnow", + "syn 2.0.114", ] [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3014,20 +2495,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", ] @@ -3049,9 +2530,9 @@ checksum = "e78122066b0cb818b8afd08f7ed22f7fdbc3e90815035726f0840d0d26c0747a" [[package]] name = "twox-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" [[package]] name = "typed-arena" @@ -3059,23 +2540,17 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - [[package]] name = "typewit" -version = "1.13.0" +version = "1.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd91acc53c592cb800c11c83e8e7ee1d48378d05cfa33b5474f5f80c5b236bf" +checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -3085,9 +2560,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unindent" @@ -3097,9 +2572,9 @@ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" [[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", @@ -3115,11 +2590,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "wasm-bindgen", ] @@ -3147,45 +2622,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -3196,9 +2658,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3206,31 +2668,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", - "wasm-bindgen-backend", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -3264,11 +2726,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys", ] [[package]] @@ -3279,45 +2741,39 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.1.3", + "windows-link", "windows-result", "windows-strings", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" @@ -3326,209 +2782,49 @@ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-targets 0.52.6", + "windows-link", ] [[package]] name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.3", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" -dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - -[[package]] -name = "winnow" -version = "0.7.13" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "memchr", + "windows-link", ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" - -[[package]] -name = "xz2" -version = "0.1.7" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" -dependencies = [ - "lzma-sys", -] +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -3536,34 +2832,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3583,15 +2879,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -3600,9 +2896,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -3611,20 +2907,26 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "zlib-rs" -version = "0.5.1" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" + +[[package]] +name = "zmij" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" [[package]] name = "zstd" @@ -3646,9 +2948,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/examples/datafusion-ffi-example/Cargo.toml b/examples/datafusion-ffi-example/Cargo.toml index 8150156d6..18363bbee 100644 --- a/examples/datafusion-ffi-example/Cargo.toml +++ b/examples/datafusion-ffi-example/Cargo.toml @@ -21,16 +21,27 @@ version = "0.2.0" edition = "2021" [dependencies] -datafusion = { version = "51" } -datafusion-ffi = { version = "51" } -pyo3 = { version = "0.27", features = ["extension-module", "abi3", "abi3-py310"] } +#datafusion-catalog = { version = "51" , default-features = false } +#datafusion-common = { version = "51" , default-features = false } +#datafusion-functions-aggregate = { version = "51" } +#datafusion-functions-window = { version = "51" } +#datafusion-expr = { version = "51" } +#datafusion-ffi = { version = "51" } +datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" , default-features = false } +datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" , default-features = false } +datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" } +datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" } +datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" } +datafusion-ffi = { git = "https://github.com/apache/datafusion.git", rev = "bc043c3a5fe448fc5735d9fa173b69ac95a7e11c" } + +pyo3 = { version = "0.26", features = ["extension-module", "abi3", "abi3-py39"] } arrow = { version = "57" } arrow-array = { version = "57" } arrow-schema = { version = "57" } -async-trait = "0.1.88" +async-trait = "0.1.89" [build-dependencies] -pyo3-build-config = "0.27" +pyo3-build-config = "0.26" [lib] name = "datafusion_ffi_example" diff --git a/examples/datafusion-ffi-example/python/tests/_test_catalog_provider.py b/examples/datafusion-ffi-example/python/tests/_test_catalog_provider.py index 1bf1bf136..95870fedb 100644 --- a/examples/datafusion-ffi-example/python/tests/_test_catalog_provider.py +++ b/examples/datafusion-ffi-example/python/tests/_test_catalog_provider.py @@ -30,7 +30,7 @@ def test_catalog_provider(): expected_table_name = "my_table" expected_table_columns = ["units", "price"] - catalog_provider = MyCatalogProvider() + catalog_provider = MyCatalogProvider(ctx) ctx.register_catalog_provider(my_catalog_name, catalog_provider) my_catalog = ctx.catalog(my_catalog_name) diff --git a/examples/datafusion-ffi-example/python/tests/_test_table_function.py b/examples/datafusion-ffi-example/python/tests/_test_table_function.py index 4b8b21454..c82048d12 100644 --- a/examples/datafusion-ffi-example/python/tests/_test_table_function.py +++ b/examples/datafusion-ffi-example/python/tests/_test_table_function.py @@ -29,7 +29,7 @@ def test_ffi_table_function_register(): ctx = SessionContext() - table_func = MyTableFunction() + table_func = MyTableFunction(ctx) table_udtf = udtf(table_func, "my_table_func") ctx.register_udtf(table_udtf) result = ctx.sql("select * from my_table_func()").collect() @@ -49,7 +49,7 @@ def test_ffi_table_function_register(): def test_ffi_table_function_call_directly(): ctx = SessionContext() - table_func = MyTableFunction() + table_func = MyTableFunction(ctx) table_udtf = udtf(table_func, "my_table_func") my_table = table_udtf() @@ -77,6 +77,9 @@ class PythonTableFunction: provider, and this function takes no arguments """ + def __init__(self, ctx: SessionContext) -> None: + self._ctx = ctx + def __call__( self, num_cols: Expr, num_rows: Expr, num_batches: Expr ) -> TableProviderExportable: @@ -85,7 +88,7 @@ def __call__( num_rows.to_variant().value_i64(), num_batches.to_variant().value_i64(), ] - return MyTableProvider(*args) + return MyTableProvider(self._ctx, *args) def common_table_function_test(test_ctx: SessionContext) -> None: @@ -108,7 +111,7 @@ def common_table_function_test(test_ctx: SessionContext) -> None: def test_python_table_function(): ctx = SessionContext() - table_func = PythonTableFunction() + table_func = PythonTableFunction(ctx) table_udtf = udtf(table_func, "my_table_func") ctx.register_udtf(table_udtf) @@ -127,7 +130,7 @@ def my_udtf( num_rows.to_variant().value_i64(), num_batches.to_variant().value_i64(), ] - return MyTableProvider(*args) + return MyTableProvider(ctx, *args) ctx.register_udtf(my_udtf) diff --git a/examples/datafusion-ffi-example/python/tests/_test_table_provider.py b/examples/datafusion-ffi-example/python/tests/_test_table_provider.py index 48feaff64..8b59402fd 100644 --- a/examples/datafusion-ffi-example/python/tests/_test_table_provider.py +++ b/examples/datafusion-ffi-example/python/tests/_test_table_provider.py @@ -24,7 +24,7 @@ def test_table_loading(): ctx = SessionContext() - table = MyTableProvider(3, 2, 4) + table = MyTableProvider(ctx, 3, 2, 4) ctx.register_table("t", table) result = ctx.table("t").collect() diff --git a/examples/datafusion-ffi-example/src/aggregate_udf.rs b/examples/datafusion-ffi-example/src/aggregate_udf.rs index bb7505f7f..4eeb99232 100644 --- a/examples/datafusion-ffi-example/src/aggregate_udf.rs +++ b/examples/datafusion-ffi-example/src/aggregate_udf.rs @@ -15,19 +15,20 @@ // specific language governing permissions and limitations // under the License. +use std::any::Any; +use std::sync::Arc; + use arrow_schema::DataType; -use datafusion::error::Result as DataFusionResult; -use datafusion::functions_aggregate::sum::Sum; -use datafusion::logical_expr::function::AccumulatorArgs; -use datafusion::logical_expr::{Accumulator, AggregateUDF, AggregateUDFImpl, Signature}; +use datafusion_common::error::Result as DataFusionResult; +use datafusion_expr::function::AccumulatorArgs; +use datafusion_expr::{Accumulator, AggregateUDF, AggregateUDFImpl, Signature}; use datafusion_ffi::udaf::FFI_AggregateUDF; +use datafusion_functions_aggregate::sum::Sum; use pyo3::types::PyCapsule; use pyo3::{pyclass, pymethods, Bound, PyResult, Python}; -use std::any::Any; -use std::sync::Arc; #[pyclass(name = "MySumUDF", module = "datafusion_ffi_example", subclass)] -#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Eq, PartialEq, Hash)] pub(crate) struct MySumUDF { inner: Arc, } @@ -35,10 +36,10 @@ pub(crate) struct MySumUDF { #[pymethods] impl MySumUDF { #[new] - fn new() -> Self { - Self { + fn new() -> PyResult { + Ok(Self { inner: Arc::new(Sum::new()), - } + }) } fn __datafusion_aggregate_udf__<'py>( diff --git a/examples/datafusion-ffi-example/src/catalog_provider.rs b/examples/datafusion-ffi-example/src/catalog_provider.rs index cd2616916..c35cee312 100644 --- a/examples/datafusion-ffi-example/src/catalog_provider.rs +++ b/examples/datafusion-ffi-example/src/catalog_provider.rs @@ -15,24 +15,27 @@ // specific language governing permissions and limitations // under the License. -use pyo3::{pyclass, pymethods, Bound, PyResult, Python}; -use std::{any::Any, fmt::Debug, sync::Arc}; +use std::any::Any; +use std::fmt::Debug; +use std::sync::Arc; use arrow::datatypes::Schema; use async_trait::async_trait; -use datafusion::{ - catalog::{ - CatalogProvider, MemoryCatalogProvider, MemorySchemaProvider, SchemaProvider, TableProvider, - }, - datasource::MemTable, - error::{DataFusionError, Result}, +use datafusion_catalog::{ + CatalogProvider, MemTable, MemoryCatalogProvider, MemorySchemaProvider, SchemaProvider, + TableProvider, }; +use datafusion_common::error::{DataFusionError, Result}; use datafusion_ffi::catalog_provider::FFI_CatalogProvider; +use datafusion_ffi::proto::logical_extension_codec::FFI_LogicalExtensionCodec; use pyo3::types::PyCapsule; +use pyo3::{pyclass, pymethods, Bound, PyAny, PyResult, Python}; + +use crate::utils::ffi_logical_codec_from_pycapsule; pub fn my_table() -> Arc { use arrow::datatypes::{DataType, Field}; - use datafusion::common::record_batch; + use datafusion_common::record_batch; let schema = Arc::new(Schema::new(vec![ Field::new("units", DataType::Int32, true), @@ -110,20 +113,10 @@ impl SchemaProvider for FixedSchemaProvider { module = "datafusion_ffi_example", subclass )] -#[derive(Debug)] +#[derive(Debug, Clone)] pub(crate) struct MyCatalogProvider { - inner: MemoryCatalogProvider, -} - -impl Default for MyCatalogProvider { - fn default() -> Self { - let inner = MemoryCatalogProvider::new(); - - let schema_name: &str = "my_schema"; - let _ = inner.register_schema(schema_name, Arc::new(FixedSchemaProvider::default())); - - Self { inner } - } + inner: Arc, + logical_codec: FFI_LogicalExtensionCodec, } impl CatalogProvider for MyCatalogProvider { @@ -159,10 +152,17 @@ impl CatalogProvider for MyCatalogProvider { #[pymethods] impl MyCatalogProvider { #[new] - pub fn new() -> Self { - Self { - inner: Default::default(), - } + pub fn new(session: &Bound) -> PyResult { + let logical_codec = ffi_logical_codec_from_pycapsule(session)?; + let inner = Arc::new(MemoryCatalogProvider::new()); + + let schema_name: &str = "my_schema"; + let _ = inner.register_schema(schema_name, Arc::new(FixedSchemaProvider::default())); + + Ok(Self { + inner, + logical_codec, + }) } pub fn __datafusion_catalog_provider__<'py>( @@ -170,8 +170,9 @@ impl MyCatalogProvider { py: Python<'py>, ) -> PyResult> { let name = cr"datafusion_catalog_provider".into(); + let codec = self.logical_codec.clone(); let catalog_provider = - FFI_CatalogProvider::new(Arc::new(MyCatalogProvider::default()), None); + FFI_CatalogProvider::new_with_ffi_codec(Arc::new(self.clone()), None, codec); PyCapsule::new(py, catalog_provider, Some(name)) } diff --git a/examples/datafusion-ffi-example/src/lib.rs b/examples/datafusion-ffi-example/src/lib.rs index f5f96cd49..9ca1492e1 100644 --- a/examples/datafusion-ffi-example/src/lib.rs +++ b/examples/datafusion-ffi-example/src/lib.rs @@ -15,19 +15,21 @@ // specific language governing permissions and limitations // under the License. +use pyo3::prelude::*; + use crate::aggregate_udf::MySumUDF; use crate::catalog_provider::MyCatalogProvider; use crate::scalar_udf::IsNullUDF; use crate::table_function::MyTableFunction; use crate::table_provider::MyTableProvider; use crate::window_udf::MyRankUDF; -use pyo3::prelude::*; pub(crate) mod aggregate_udf; pub(crate) mod catalog_provider; pub(crate) mod scalar_udf; pub(crate) mod table_function; pub(crate) mod table_provider; +pub(crate) mod utils; pub(crate) mod window_udf; #[pymodule] diff --git a/examples/datafusion-ffi-example/src/scalar_udf.rs b/examples/datafusion-ffi-example/src/scalar_udf.rs index 19b4e8b91..b3dd0591a 100644 --- a/examples/datafusion-ffi-example/src/scalar_udf.rs +++ b/examples/datafusion-ffi-example/src/scalar_udf.rs @@ -15,19 +15,20 @@ // specific language governing permissions and limitations // under the License. +use std::any::Any; +use std::sync::Arc; + use arrow_array::{Array, BooleanArray}; use arrow_schema::DataType; -use datafusion::common::ScalarValue; -use datafusion::error::Result as DataFusionResult; -use datafusion::logical_expr::{ +use datafusion_common::error::Result as DataFusionResult; +use datafusion_common::ScalarValue; +use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDF, ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_ffi::udf::FFI_ScalarUDF; use pyo3::types::PyCapsule; use pyo3::{pyclass, pymethods, Bound, PyResult, Python}; -use std::any::Any; -use std::sync::Arc; #[pyclass(name = "IsNullUDF", module = "datafusion_ffi_example", subclass)] #[derive(Debug, Clone, PartialEq, Eq, Hash)] diff --git a/examples/datafusion-ffi-example/src/table_function.rs b/examples/datafusion-ffi-example/src/table_function.rs index 2d7b356e3..cd1bd163f 100644 --- a/examples/datafusion-ffi-example/src/table_function.rs +++ b/examples/datafusion-ffi-example/src/table_function.rs @@ -15,24 +15,32 @@ // specific language governing permissions and limitations // under the License. -use crate::table_provider::MyTableProvider; -use datafusion::catalog::{TableFunctionImpl, TableProvider}; -use datafusion::error::Result as DataFusionResult; -use datafusion::prelude::Expr; +use std::sync::Arc; + +use datafusion_catalog::{TableFunctionImpl, TableProvider}; +use datafusion_common::error::Result as DataFusionResult; +use datafusion_expr::Expr; +use datafusion_ffi::proto::logical_extension_codec::FFI_LogicalExtensionCodec; use datafusion_ffi::udtf::FFI_TableFunction; use pyo3::types::PyCapsule; -use pyo3::{pyclass, pymethods, Bound, PyResult, Python}; -use std::sync::Arc; +use pyo3::{pyclass, pymethods, Bound, PyAny, PyResult, Python}; + +use crate::table_provider::MyTableProvider; +use crate::utils::ffi_logical_codec_from_pycapsule; #[pyclass(name = "MyTableFunction", module = "datafusion_ffi_example", subclass)] #[derive(Debug, Clone)] -pub(crate) struct MyTableFunction {} +pub(crate) struct MyTableFunction { + logical_codec: FFI_LogicalExtensionCodec, +} #[pymethods] impl MyTableFunction { #[new] - fn new() -> Self { - Self {} + fn new(session: &Bound) -> PyResult { + let logical_codec = ffi_logical_codec_from_pycapsule(session)?; + + Ok(Self { logical_codec }) } fn __datafusion_table_function__<'py>( @@ -42,7 +50,8 @@ impl MyTableFunction { let name = cr"datafusion_table_function".into(); let func = self.clone(); - let provider = FFI_TableFunction::new(Arc::new(func), None); + let provider = + FFI_TableFunction::new_with_ffi_codec(Arc::new(func), None, self.logical_codec.clone()); PyCapsule::new(py, provider, Some(name)) } @@ -50,7 +59,8 @@ impl MyTableFunction { impl TableFunctionImpl for MyTableFunction { fn call(&self, _args: &[Expr]) -> DataFusionResult> { - let provider = MyTableProvider::new(4, 3, 2).create_table()?; + let provider = MyTableProvider::new_from_ffi_session(self.logical_codec.clone(), 4, 3, 2) + .create_table()?; Ok(Arc::new(provider)) } } diff --git a/examples/datafusion-ffi-example/src/table_provider.rs b/examples/datafusion-ffi-example/src/table_provider.rs index e884585b5..caf88aca2 100644 --- a/examples/datafusion-ffi-example/src/table_provider.rs +++ b/examples/datafusion-ffi-example/src/table_provider.rs @@ -15,21 +15,26 @@ // specific language governing permissions and limitations // under the License. +use std::sync::Arc; + use arrow_array::{ArrayRef, RecordBatch}; use arrow_schema::{DataType, Field, Schema}; -use datafusion::catalog::MemTable; -use datafusion::error::{DataFusionError, Result as DataFusionResult}; +use datafusion_catalog::MemTable; +use datafusion_common::error::{DataFusionError, Result as DataFusionResult}; +use datafusion_ffi::proto::logical_extension_codec::FFI_LogicalExtensionCodec; use datafusion_ffi::table_provider::FFI_TableProvider; use pyo3::exceptions::PyRuntimeError; use pyo3::types::PyCapsule; -use pyo3::{pyclass, pymethods, Bound, PyResult, Python}; -use std::sync::Arc; +use pyo3::{pyclass, pymethods, Bound, PyAny, PyResult, Python}; + +use crate::utils::ffi_logical_codec_from_pycapsule; /// In order to provide a test that demonstrates different sized record batches, /// the first batch will have num_rows, the second batch num_rows+1, and so on. #[pyclass(name = "MyTableProvider", module = "datafusion_ffi_example", subclass)] #[derive(Clone)] pub(crate) struct MyTableProvider { + logical_codec: FFI_LogicalExtensionCodec, num_cols: usize, num_rows: usize, num_batches: usize, @@ -76,16 +81,39 @@ impl MyTableProvider { } } -#[pymethods] impl MyTableProvider { - #[new] - pub fn new(num_cols: usize, num_rows: usize, num_batches: usize) -> Self { + pub fn new_from_ffi_session( + logical_codec: FFI_LogicalExtensionCodec, + num_cols: usize, + num_rows: usize, + num_batches: usize, + ) -> Self { Self { + logical_codec, num_cols, num_rows, num_batches, } } +} + +#[pymethods] +impl MyTableProvider { + #[new] + pub fn new( + session: &Bound, + num_cols: usize, + num_rows: usize, + num_batches: usize, + ) -> PyResult { + let logical_codec = ffi_logical_codec_from_pycapsule(session)?; + Ok(Self { + logical_codec, + num_cols, + num_rows, + num_batches, + }) + } pub fn __datafusion_table_provider__<'py>( &self, @@ -96,7 +124,12 @@ impl MyTableProvider { let provider = self .create_table() .map_err(|e| PyRuntimeError::new_err(e.to_string()))?; - let provider = FFI_TableProvider::new(Arc::new(provider), false, None); + let provider = FFI_TableProvider::new_with_ffi_codec( + Arc::new(provider), + false, + None, + self.logical_codec.clone(), + ); PyCapsule::new(py, provider, Some(name)) } diff --git a/examples/datafusion-ffi-example/src/utils.rs b/examples/datafusion-ffi-example/src/utils.rs new file mode 100644 index 000000000..9ecfb2661 --- /dev/null +++ b/examples/datafusion-ffi-example/src/utils.rs @@ -0,0 +1,79 @@ +use datafusion_ffi::proto::logical_extension_codec::FFI_LogicalExtensionCodec; +use pyo3::exceptions::PyValueError; +use pyo3::prelude::{PyAnyMethods, PyCapsuleMethods}; +use pyo3::types::PyCapsule; +use pyo3::{Bound, PyAny, PyResult}; +// +// pub(crate) fn ffi_task_ctx_provider_from_pycapsule( +// obj: &Bound, +// ) -> PyResult { +// if obj.hasattr("__datafusion_task_context_provider__")? { +// let capsule = obj +// .getattr("__datafusion_task_context_provider__")? +// .call0()?; +// let capsule = capsule.downcast::()?; +// validate_pycapsule(capsule, "datafusion_task_context_provider")?; +// +// let provider = unsafe { capsule.reference::() }; +// +// Ok(provider.clone()) +// } else { +// Err(PyValueError::new_err( +// "Expected PyCapsule object for FFI_Session, but attribute does not exist", +// )) +// } +// } + +macro_rules! ffi_from_pycapsule { + ($fn_name:ident, $ffi_type:ty, $capsule_name:literal) => { + pub(crate) fn $fn_name(obj: &Bound) -> PyResult<$ffi_type> { + let attr_name = concat!("__", $capsule_name, "__"); + + if obj.hasattr(attr_name)? { + let capsule = obj.getattr(attr_name)?.call0()?; + let capsule = capsule.downcast::()?; + validate_pycapsule(capsule, $capsule_name)?; + + let provider = unsafe { capsule.reference::<$ffi_type>() }; + + Ok(provider.clone()) + } else { + Err(PyValueError::new_err(format!( + "Expected PyCapsule object for {}, but attribute does not exist", + stringify!($ffi_type) + ))) + } + } + }; +} + +// Usage: +// ffi_from_pycapsule!( +// ffi_task_ctx_provider_from_pycapsule, +// FFI_TaskContextProvider, +// "datafusion_task_context_provider" +// ); + +ffi_from_pycapsule!( + ffi_logical_codec_from_pycapsule, + FFI_LogicalExtensionCodec, + "datafusion_logical_extension_codec" +); + +pub(crate) fn validate_pycapsule(capsule: &Bound, name: &str) -> PyResult<()> { + let capsule_name = capsule.name()?; + if capsule_name.is_none() { + return Err(PyValueError::new_err(format!( + "Expected {name} PyCapsule to have name set." + ))); + } + + let capsule_name = capsule_name.unwrap().to_str()?; + if capsule_name != name { + return Err(PyValueError::new_err(format!( + "Expected name '{name}' in PyCapsule, instead got '{capsule_name}'" + ))); + } + + Ok(()) +} diff --git a/examples/datafusion-ffi-example/src/window_udf.rs b/examples/datafusion-ffi-example/src/window_udf.rs index 0ec8c7c2d..187ea6846 100644 --- a/examples/datafusion-ffi-example/src/window_udf.rs +++ b/examples/datafusion-ffi-example/src/window_udf.rs @@ -15,19 +15,20 @@ // specific language governing permissions and limitations // under the License. +use std::any::Any; +use std::sync::Arc; + use arrow_schema::{DataType, FieldRef}; -use datafusion::error::Result as DataFusionResult; -use datafusion::functions_window::rank::rank_udwf; -use datafusion::logical_expr::function::{PartitionEvaluatorArgs, WindowUDFFieldArgs}; -use datafusion::logical_expr::{PartitionEvaluator, Signature, WindowUDF, WindowUDFImpl}; +use datafusion_common::error::Result as DataFusionResult; +use datafusion_expr::function::{PartitionEvaluatorArgs, WindowUDFFieldArgs}; +use datafusion_expr::{PartitionEvaluator, Signature, WindowUDF, WindowUDFImpl}; use datafusion_ffi::udwf::FFI_WindowUDF; +use datafusion_functions_window::rank::rank_udwf; use pyo3::types::PyCapsule; use pyo3::{pyclass, pymethods, Bound, PyResult, Python}; -use std::any::Any; -use std::sync::Arc; #[pyclass(name = "MyRankUDF", module = "datafusion_ffi_example", subclass)] -#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Eq, PartialEq, Hash)] pub(crate) struct MyRankUDF { inner: Arc, } @@ -35,8 +36,8 @@ pub(crate) struct MyRankUDF { #[pymethods] impl MyRankUDF { #[new] - fn new() -> Self { - Self { inner: rank_udwf() } + fn new() -> PyResult { + Ok(Self { inner: rank_udwf() }) } fn __datafusion_window_udf__<'py>(&self, py: Python<'py>) -> PyResult> { diff --git a/python/datafusion/context.py b/python/datafusion/context.py index 7dc06eb17..912f2756a 100644 --- a/python/datafusion/context.py +++ b/python/datafusion/context.py @@ -1301,3 +1301,19 @@ def _convert_table_partition_cols( ) return converted_table_partition_cols + + def __datafusion_task_context_provider__(self) -> Any: + """Access the PyCapsule FFI_TaskContextProvider.""" + return self.ctx.__datafusion_task_context_provider__() + + def __datafusion_logical_extension_codec__(self) -> Any: + """Access the PyCapsule FFI_LogicalExtensionCodec.""" + return self.ctx.__datafusion_logical_extension_codec__() + + def with_logical_extension_codec(self, codec: Any) -> SessionContext: + """Create a new session context with specified codec. + + This only supports codecs that have been implemented using the + FFI interface. + """ + return self.ctx.with_logical_extension_codec(codec) diff --git a/python/tests/test_dataframe.py b/python/tests/test_dataframe.py index f481f31f6..bdbfc3f87 100644 --- a/python/tests/test_dataframe.py +++ b/python/tests/test_dataframe.py @@ -1665,7 +1665,6 @@ def test_execution_plan(aggregate_df): # indent plan will be different for everyone due to absolute path # to filename, so we just check for some expected content assert "AggregateExec:" in indent - assert "CoalesceBatchesExec:" in indent assert "RepartitionExec:" in indent assert "DataSourceExec:" in indent assert "file_type=csv" in indent @@ -2434,9 +2433,7 @@ def test_write_parquet_with_options_writer_version( @pytest.mark.parametrize("writer_version", ["1.2.3", "custom-version", "0"]) def test_write_parquet_with_options_wrong_writer_version(df, tmp_path, writer_version): """Test that invalid writer versions in Parquet throw an exception.""" - with pytest.raises( - Exception, match="Unknown or unsupported parquet writer version" - ): + with pytest.raises(Exception, match="Invalid parquet writer version"): df.write_parquet_with_options( tmp_path, ParquetWriterOptions(writer_version=writer_version) ) diff --git a/src/catalog.rs b/src/catalog.rs index f8b86ec6a..46cf5ba20 100644 --- a/src/catalog.rs +++ b/src/catalog.rs @@ -25,7 +25,7 @@ use datafusion::catalog::{ }; use datafusion::common::DataFusionError; use datafusion::datasource::TableProvider; -use datafusion_ffi::schema_provider::{FFI_SchemaProvider, ForeignSchemaProvider}; +use datafusion_ffi::schema_provider::FFI_SchemaProvider; use pyo3::exceptions::PyKeyError; use pyo3::prelude::*; use pyo3::types::PyCapsule; @@ -109,8 +109,8 @@ impl PyCatalog { validate_pycapsule(capsule, "datafusion_schema_provider")?; let provider = unsafe { capsule.reference::() }; - let provider: ForeignSchemaProvider = provider.into(); - Arc::new(provider) as Arc + let provider: Arc = provider.into(); + provider as Arc } else { match schema_provider.extract::() { Ok(py_schema) => py_schema.schema, @@ -350,9 +350,9 @@ impl RustWrappedPyCatalogProvider { validate_pycapsule(capsule, "datafusion_schema_provider")?; let provider = unsafe { capsule.reference::() }; - let provider: ForeignSchemaProvider = provider.into(); + let provider: Arc = provider.into(); - Ok(Some(Arc::new(provider) as Arc)) + Ok(Some(provider as Arc)) } else { if let Ok(inner_schema) = py_schema.getattr("schema") { if let Ok(inner_schema) = inner_schema.extract::() { diff --git a/src/context.rs b/src/context.rs index ad4fc36b1..29c549fd6 100644 --- a/src/context.rs +++ b/src/context.rs @@ -27,7 +27,7 @@ use datafusion::arrow::datatypes::{DataType, Schema, SchemaRef}; use datafusion::arrow::pyarrow::PyArrowType; use datafusion::arrow::record_batch::RecordBatch; use datafusion::catalog::CatalogProvider; -use datafusion::common::{exec_err, ScalarValue, TableReference}; +use datafusion::common::{exec_datafusion_err, exec_err, ScalarValue, TableReference}; use datafusion::datasource::file_format::file_compression_type::FileCompressionType; use datafusion::datasource::file_format::parquet::ParquetFormat; use datafusion::datasource::listing::{ @@ -42,10 +42,14 @@ use datafusion::execution::memory_pool::{FairSpillPool, GreedyMemoryPool, Unboun use datafusion::execution::options::ReadOptions; use datafusion::execution::runtime_env::RuntimeEnvBuilder; use datafusion::execution::session_state::SessionStateBuilder; +use datafusion::execution::TaskContextProvider; use datafusion::prelude::{ AvroReadOptions, CsvReadOptions, DataFrame, NdJsonReadOptions, ParquetReadOptions, }; -use datafusion_ffi::catalog_provider::{FFI_CatalogProvider, ForeignCatalogProvider}; +use datafusion_ffi::catalog_provider::FFI_CatalogProvider; +use datafusion_ffi::execution::FFI_TaskContextProvider; +use datafusion_ffi::proto::logical_extension_codec::FFI_LogicalExtensionCodec; +use datafusion_proto::logical_plan::{DefaultLogicalExtensionCodec, LogicalExtensionCodec}; use object_store::ObjectStore; use pyo3::exceptions::{PyKeyError, PyValueError}; use pyo3::prelude::*; @@ -71,7 +75,9 @@ use crate::udaf::PyAggregateUDF; use crate::udf::PyScalarUDF; use crate::udtf::PyTableFunction; use crate::udwf::PyWindowUDF; -use crate::utils::{get_global_ctx, spawn_future, validate_pycapsule, wait_for_future}; +use crate::utils::{ + get_global_ctx, get_tokio_runtime, spawn_future, validate_pycapsule, wait_for_future, +}; /// Configuration options for a SessionContext #[pyclass(frozen, name = "SessionConfig", module = "datafusion", subclass)] @@ -296,7 +302,8 @@ impl PySQLOptions { #[pyclass(frozen, name = "SessionContext", module = "datafusion", subclass)] #[derive(Clone)] pub struct PySessionContext { - pub ctx: SessionContext, + pub ctx: Arc, + logical_codec: Arc, } #[pymethods] @@ -324,13 +331,15 @@ impl PySessionContext { .with_default_features() .build(); Ok(PySessionContext { - ctx: SessionContext::new_with_state(session_state), + ctx: Arc::new(SessionContext::new_with_state(session_state)), + logical_codec: Arc::new(DefaultLogicalExtensionCodec {}), }) } pub fn enable_url_table(&self) -> PyResult { Ok(PySessionContext { - ctx: self.ctx.clone().enable_url_table(), + ctx: Arc::new(self.ctx.as_ref().clone().enable_url_table()), + logical_codec: Arc::clone(&self.logical_codec), }) } @@ -339,6 +348,7 @@ impl PySessionContext { fn global_ctx(_cls: &Bound<'_, PyType>) -> PyResult { Ok(Self { ctx: get_global_ctx().clone(), + logical_codec: Arc::new(DefaultLogicalExtensionCodec {}), }) } @@ -630,8 +640,8 @@ impl PySessionContext { validate_pycapsule(capsule, "datafusion_catalog_provider")?; let provider = unsafe { capsule.reference::() }; - let provider: ForeignCatalogProvider = provider.into(); - Arc::new(provider) as Arc + let provider: Arc = provider.into(); + provider as Arc } else { match provider.extract::() { Ok(py_catalog) => py_catalog.catalog, @@ -1122,6 +1132,62 @@ impl PySessionContext { let stream = spawn_future(py, async move { plan.execute(part, Arc::new(ctx)) })?; Ok(PyRecordBatchStream::new(stream)) } + + pub fn __datafusion_task_context_provider__<'py>( + &self, + py: Python<'py>, + ) -> PyResult> { + let name = cr"datafusion_task_context_provider".into(); + + let ctx_provider = Arc::clone(&self.ctx) as Arc; + let ffi_ctx_provider = FFI_TaskContextProvider::from(&ctx_provider); + + PyCapsule::new(py, ffi_ctx_provider, Some(name)) + } + + pub fn __datafusion_logical_extension_codec__<'py>( + &self, + py: Python<'py>, + ) -> PyResult> { + let name = cr"datafusion_logical_extension_codec".into(); + + let runtime = get_tokio_runtime().0.handle().clone(); + let ctx_provider = Arc::clone(&self.ctx) as Arc; + let codec = FFI_LogicalExtensionCodec::new( + self.logical_codec.clone(), + Some(runtime), + &ctx_provider, + ); + + PyCapsule::new(py, codec, Some(name)) + } + + pub fn with_logical_extension_codec<'py>( + &self, + codec: Bound<'py, PyAny>, + ) -> PyDataFusionResult { + if codec.hasattr("__datafusion_logical_extension_codec__")? { + let capsule = codec + .getattr("__datafusion_logical_extension_codec__")? + .call0()?; + let capsule = capsule.downcast::().map_err(py_datafusion_err)?; + validate_pycapsule(capsule, "datafusion_logical_extension_codec")?; + + let codec = unsafe { capsule.reference::() }; + let codec: Arc = codec.into(); + + Ok({ + Self { + ctx: Arc::clone(&self.ctx), + logical_codec: codec, + } + }) + } else { + Err(PyDataFusionError::from(exec_datafusion_err!( + "Logical Extension Codec does not have expected PyCapsule object." + ))) + } + } } impl PySessionContext { @@ -1181,12 +1247,15 @@ pub fn parse_file_compression_type( impl From for SessionContext { fn from(ctx: PySessionContext) -> SessionContext { - ctx.ctx + ctx.ctx.as_ref().clone() } } impl From for PySessionContext { fn from(ctx: SessionContext) -> PySessionContext { - PySessionContext { ctx } + PySessionContext { + ctx: Arc::new(ctx), + logical_codec: Arc::new(DefaultLogicalExtensionCodec {}), + } } } diff --git a/src/dataframe.rs b/src/dataframe.rs index d920df71e..79b76779b 100644 --- a/src/dataframe.rs +++ b/src/dataframe.rs @@ -17,6 +17,7 @@ use std::collections::HashMap; use std::ffi::{CStr, CString}; +use std::str::FromStr; use std::sync::Arc; use arrow::array::{new_null_array, Array, ArrayRef, RecordBatch, RecordBatchReader}; @@ -175,7 +176,7 @@ impl PyParquetWriterOptions { pub fn new( data_pagesize_limit: usize, write_batch_size: usize, - writer_version: String, + writer_version: &str, skip_arrow_metadata: bool, compression: Option, dictionary_enabled: Option, @@ -193,8 +194,11 @@ impl PyParquetWriterOptions { allow_single_file_parallelism: bool, maximum_parallel_row_group_writers: usize, maximum_buffered_record_batches_per_stream: usize, - ) -> Self { - Self { + ) -> PyResult { + let writer_version = + datafusion::common::parquet_config::DFParquetWriterVersion::from_str(writer_version) + .map_err(py_datafusion_err)?; + Ok(Self { options: ParquetOptions { data_pagesize_limit, write_batch_size, @@ -218,7 +222,7 @@ impl PyParquetWriterOptions { maximum_buffered_record_batches_per_stream, ..Default::default() }, - } + }) } } diff --git a/src/expr.rs b/src/expr.rs index fc8023b20..c5776c597 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -145,8 +145,8 @@ impl PyExpr { match &self.expr { Expr::Alias(alias) => Ok(PyAlias::from(alias.clone()).into_bound_py_any(py)?), Expr::Column(col) => Ok(PyColumn::from(col.clone()).into_bound_py_any(py)?), - Expr::ScalarVariable(data_type, variables) => { - Ok(PyScalarVariable::new(data_type, variables).into_bound_py_any(py)?) + Expr::ScalarVariable(field, variables) => { + Ok(PyScalarVariable::new(field, variables).into_bound_py_any(py)?) } Expr::Like(value) => Ok(PyLike::from(value.clone()).into_bound_py_any(py)?), Expr::Literal(value, metadata) => Ok(PyLiteral::new_with_metadata(value.clone(), metadata.clone()).into_bound_py_any(py)?), diff --git a/src/expr/scalar_variable.rs b/src/expr/scalar_variable.rs index f3c128a4c..5bc056e76 100644 --- a/src/expr/scalar_variable.rs +++ b/src/expr/scalar_variable.rs @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -use datafusion::arrow::datatypes::DataType; +use arrow::datatypes::FieldRef; use pyo3::prelude::*; use crate::common::data_type::PyDataType; @@ -23,14 +23,14 @@ use crate::common::data_type::PyDataType; #[pyclass(frozen, name = "ScalarVariable", module = "datafusion.expr", subclass)] #[derive(Clone)] pub struct PyScalarVariable { - data_type: DataType, + field: FieldRef, variables: Vec, } impl PyScalarVariable { - pub fn new(data_type: &DataType, variables: &[String]) -> Self { + pub fn new(field: &FieldRef, variables: &[String]) -> Self { Self { - data_type: data_type.to_owned(), + field: field.to_owned(), variables: variables.to_vec(), } } @@ -40,7 +40,7 @@ impl PyScalarVariable { impl PyScalarVariable { /// Get the data type fn data_type(&self) -> PyResult { - Ok(self.data_type.clone().into()) + Ok(self.field.data_type().clone().into()) } fn variables(&self) -> PyResult> { @@ -48,6 +48,6 @@ impl PyScalarVariable { } fn __repr__(&self) -> PyResult { - Ok(format!("{}{:?}", self.data_type, self.variables)) + Ok(format!("{}{:?}", self.field.data_type(), self.variables)) } } diff --git a/src/expr/statement.rs b/src/expr/statement.rs index 40666dd8b..3d8c3c1c7 100644 --- a/src/expr/statement.rs +++ b/src/expr/statement.rs @@ -20,8 +20,8 @@ use std::sync::Arc; use arrow::datatypes::Field; use arrow::pyarrow::PyArrowType; use datafusion::logical_expr::{ - Deallocate, Execute, Prepare, SetVariable, TransactionAccessMode, TransactionConclusion, - TransactionEnd, TransactionIsolationLevel, TransactionStart, + Deallocate, Execute, Prepare, ResetVariable, SetVariable, TransactionAccessMode, + TransactionConclusion, TransactionEnd, TransactionIsolationLevel, TransactionStart, }; use pyo3::prelude::*; use pyo3::IntoPyObjectExt; @@ -259,6 +259,50 @@ impl PyTransactionEnd { } } +#[pyclass(frozen, name = "ResetVariable", module = "datafusion.expr", subclass)] +#[derive(Clone)] +pub struct PyResetVariable { + reset_variable: ResetVariable, +} + +impl From for PyResetVariable { + fn from(reset_variable: ResetVariable) -> PyResetVariable { + PyResetVariable { reset_variable } + } +} + +impl TryFrom for ResetVariable { + type Error = PyErr; + + fn try_from(py: PyResetVariable) -> Result { + Ok(py.reset_variable) + } +} + +impl LogicalNode for PyResetVariable { + fn inputs(&self) -> Vec { + vec![] + } + + fn to_variant<'py>(&self, py: Python<'py>) -> PyResult> { + self.clone().into_bound_py_any(py) + } +} + +#[pymethods] +impl PyResetVariable { + #[new] + pub fn new(variable: String) -> Self { + PyResetVariable { + reset_variable: ResetVariable { variable }, + } + } + + pub fn variable(&self) -> String { + self.reset_variable.variable.clone() + } +} + #[pyclass(frozen, name = "SetVariable", module = "datafusion.expr", subclass)] #[derive(Clone)] pub struct PySetVariable { diff --git a/src/sql/logical.rs b/src/sql/logical.rs index 37f20d287..786118199 100644 --- a/src/sql/logical.rs +++ b/src/sql/logical.rs @@ -55,7 +55,8 @@ use crate::expr::recursive_query::PyRecursiveQuery; use crate::expr::repartition::PyRepartition; use crate::expr::sort::PySort; use crate::expr::statement::{ - PyDeallocate, PyExecute, PyPrepare, PySetVariable, PyTransactionEnd, PyTransactionStart, + PyDeallocate, PyExecute, PyPrepare, PyResetVariable, PySetVariable, PyTransactionEnd, + PyTransactionStart, }; use crate::expr::subquery::PySubquery; use crate::expr::subquery_alias::PySubqueryAlias; @@ -115,6 +116,9 @@ impl PyLogicalPlan { PyTransactionEnd::from(plan.clone()).to_variant(py) } Statement::SetVariable(plan) => PySetVariable::from(plan.clone()).to_variant(py), + Statement::ResetVariable(plan) => { + PyResetVariable::from(plan.clone()).to_variant(py) + } Statement::Prepare(plan) => PyPrepare::from(plan.clone()).to_variant(py), Statement::Execute(plan) => PyExecute::from(plan.clone()).to_variant(py), Statement::Deallocate(plan) => PyDeallocate::from(plan.clone()).to_variant(py), diff --git a/src/udaf.rs b/src/udaf.rs index 92857f9f7..262366a8a 100644 --- a/src/udaf.rs +++ b/src/udaf.rs @@ -23,9 +23,9 @@ use datafusion::arrow::pyarrow::{PyArrowType, ToPyArrow}; use datafusion::common::ScalarValue; use datafusion::error::{DataFusionError, Result}; use datafusion::logical_expr::{ - create_udaf, Accumulator, AccumulatorFactoryFunction, AggregateUDF, + create_udaf, Accumulator, AccumulatorFactoryFunction, AggregateUDF, AggregateUDFImpl, }; -use datafusion_ffi::udaf::{FFI_AggregateUDF, ForeignAggregateUDF}; +use datafusion_ffi::udaf::FFI_AggregateUDF; use pyo3::prelude::*; use pyo3::types::{PyCapsule, PyTuple}; @@ -158,9 +158,9 @@ fn aggregate_udf_from_capsule(capsule: &Bound<'_, PyCapsule>) -> PyDataFusionRes validate_pycapsule(capsule, "datafusion_aggregate_udf")?; let udaf = unsafe { capsule.reference::() }; - let udaf: ForeignAggregateUDF = udaf.try_into()?; + let udaf: Arc = udaf.into(); - Ok(udaf.into()) + Ok(AggregateUDF::new_from_shared_impl(udaf)) } /// Represents an AggregateUDF diff --git a/src/udf.rs b/src/udf.rs index 5cf87c825..c5d25a4b7 100644 --- a/src/udf.rs +++ b/src/udf.rs @@ -22,8 +22,8 @@ use datafusion::arrow::datatypes::DataType; use datafusion::arrow::pyarrow::{FromPyArrow, PyArrowType, ToPyArrow}; use datafusion::error::DataFusionError; use datafusion::logical_expr::function::ScalarFunctionImplementation; -use datafusion::logical_expr::{create_udf, ColumnarValue, ScalarUDF}; -use datafusion_ffi::udf::{FFI_ScalarUDF, ForeignScalarUDF}; +use datafusion::logical_expr::{create_udf, ColumnarValue, ScalarUDF, ScalarUDFImpl}; +use datafusion_ffi::udf::FFI_ScalarUDF; use pyo3::prelude::*; use pyo3::types::{PyCapsule, PyTuple}; @@ -112,10 +112,10 @@ impl PyScalarUDF { validate_pycapsule(capsule, "datafusion_scalar_udf")?; let udf = unsafe { capsule.reference::() }; - let udf: ForeignScalarUDF = udf.try_into()?; + let udf: Arc = udf.into(); Ok(Self { - function: udf.into(), + function: ScalarUDF::new_from_shared_impl(udf), }) } else { Err(crate::errors::PyDataFusionError::Common( diff --git a/src/udtf.rs b/src/udtf.rs index 7226dbe92..37a7a3c78 100644 --- a/src/udtf.rs +++ b/src/udtf.rs @@ -20,7 +20,7 @@ use std::sync::Arc; use datafusion::catalog::{TableFunctionImpl, TableProvider}; use datafusion::error::Result as DataFusionResult; use datafusion::logical_expr::Expr; -use datafusion_ffi::udtf::{FFI_TableFunction, ForeignTableFunction}; +use datafusion_ffi::udtf::FFI_TableFunction; use pyo3::prelude::*; use pyo3::types::{PyCapsule, PyTuple}; @@ -55,9 +55,9 @@ impl PyTableFunction { validate_pycapsule(capsule, "datafusion_table_function")?; let ffi_func = unsafe { capsule.reference::() }; - let foreign_func: ForeignTableFunction = ffi_func.to_owned().into(); + let foreign_func: Arc = ffi_func.to_owned().into(); - PyTableFunctionInner::FFIFunction(Arc::new(foreign_func)) + PyTableFunctionInner::FFIFunction(foreign_func) } else { let py_obj = Arc::new(func.unbind()); PyTableFunctionInner::PythonFunction(py_obj) diff --git a/src/udwf.rs b/src/udwf.rs index d347ec0f1..542fa5c46 100644 --- a/src/udwf.rs +++ b/src/udwf.rs @@ -30,7 +30,7 @@ use datafusion::logical_expr::{ PartitionEvaluator, PartitionEvaluatorFactory, Signature, Volatility, WindowUDF, WindowUDFImpl, }; use datafusion::scalar::ScalarValue; -use datafusion_ffi::udwf::{FFI_WindowUDF, ForeignWindowUDF}; +use datafusion_ffi::udwf::FFI_WindowUDF; use pyo3::exceptions::PyValueError; use pyo3::prelude::*; use pyo3::types::{PyCapsule, PyList, PyTuple}; @@ -255,10 +255,10 @@ impl PyWindowUDF { validate_pycapsule(capsule, "datafusion_window_udf")?; let udwf = unsafe { capsule.reference::() }; - let udwf: ForeignWindowUDF = udwf.try_into()?; + let udwf: Arc = udwf.into(); Ok(Self { - function: udwf.into(), + function: WindowUDF::new_from_shared_impl(udwf), }) } else { Err(crate::errors::PyDataFusionError::Common( diff --git a/src/utils.rs b/src/utils.rs index cbc3d6d9b..72a914bee 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -23,7 +23,7 @@ use datafusion::common::ScalarValue; use datafusion::datasource::TableProvider; use datafusion::execution::context::SessionContext; use datafusion::logical_expr::Volatility; -use datafusion_ffi::table_provider::{FFI_TableProvider, ForeignTableProvider}; +use datafusion_ffi::table_provider::FFI_TableProvider; use pyo3::exceptions::PyValueError; use pyo3::prelude::*; use pyo3::types::PyCapsule; @@ -60,9 +60,9 @@ pub(crate) fn is_ipython_env(py: Python) -> &'static bool { /// Utility to get the Global Datafussion CTX #[inline] -pub(crate) fn get_global_ctx() -> &'static SessionContext { - static CTX: OnceLock = OnceLock::new(); - CTX.get_or_init(SessionContext::new) +pub(crate) fn get_global_ctx() -> &'static Arc { + static CTX: OnceLock> = OnceLock::new(); + CTX.get_or_init(|| Arc::new(SessionContext::new())) } /// Utility to collect rust futures with GIL released and respond to @@ -171,9 +171,9 @@ pub(crate) fn table_provider_from_pycapsule( validate_pycapsule(capsule, "datafusion_table_provider")?; let provider = unsafe { capsule.reference::() }; - let provider: ForeignTableProvider = provider.into(); + let provider: Arc = provider.into(); - Ok(Some(Arc::new(provider))) + Ok(Some(provider)) } else { Ok(None) }