From 4a5341edb1fcc063be635a98259fd27b880114f8 Mon Sep 17 00:00:00 2001 From: LanceDB Robot Date: Wed, 29 Apr 2026 10:52:25 -0700 Subject: [PATCH] chore: update lance dependency to v6.0.0-beta.7 (#3334) ## Summary - Update Lance Rust dependencies to `6.0.0-beta.7` using `ci/set_lance_version.py`. - Update Java `lance-core.version` to `6.0.0-beta.7`. - Align Arrow/DataFusion/PyO3 dependency versions and apply required compatibility fixes for the Lance upgrade. Triggering tag: [v6.0.0-beta.7](https://github.com/lance-format/lance/releases/tag/v6.0.0-beta.7) ## Verification - `cargo clippy --workspace --tests --all-features -- -D warnings` - `cargo fmt --all` --- Cargo.lock | 406 +++++++++--------- Cargo.toml | 62 +-- java/pom.xml | 2 +- nodejs/Cargo.toml | 2 +- python/Cargo.toml | 8 +- python/src/expr.rs | 2 +- python/src/header.rs | 2 +- python/src/index.rs | 4 +- python/src/namespace.rs | 4 +- python/src/permutation.rs | 10 +- python/src/query.rs | 17 +- python/src/session.rs | 2 +- python/src/table.rs | 20 +- python/src/table/scannable.rs | 7 +- rust/lancedb/src/remote/table/insert.rs | 6 +- rust/lancedb/src/table/datafusion.rs | 13 +- rust/lancedb/src/table/datafusion/insert.rs | 6 +- .../src/table/datafusion/scannable_exec.rs | 6 +- 18 files changed, 301 insertions(+), 278 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 315556ed8..0c8354b78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -166,9 +166,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4754a624e5ae42081f464514be454b39711daae0458906dacde5f4c632f33a8" +checksum = "d441fdda254b65f3e9025910eb2c2066b6295d9c8ed409522b8d2ace1ff8574c" dependencies = [ "arrow-arith", "arrow-array", @@ -188,9 +188,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b3141e0ec5145a22d8694ea8b6d6f69305971c4fa1c1a13ef0195aef2d678b" +checksum = "ced5406f8b720cc0bc3aa9cf5758f93e8593cda5490677aa194e4b4b383f9a59" dependencies = [ "arrow-array", "arrow-buffer", @@ -202,9 +202,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8955af33b25f3b175ee10af580577280b4bd01f7e823d94c7cdef7cf8c9aef" +checksum = "772bd34cacdda8baec9418d80d23d0fb4d50ef0735685bd45158b83dfeb6e62d" dependencies = [ "ahash", "arrow-buffer", @@ -221,9 +221,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c697ddca96183182f35b3a18e50b9110b11e916d7b7799cbfd4d34662f2c56c2" +checksum = "898f4cf1e9598fdb77f356fdf2134feedfd0ee8d5a4e0a5f573e7d0aec16baa4" dependencies = [ "bytes", "half", @@ -233,9 +233,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "646bbb821e86fd57189c10b4fcdaa941deaf4181924917b0daa92735baa6ada5" +checksum = "b0127816c96533d20fc938729f48c52d3e48f99717e7a0b5ade77d742510736d" dependencies = [ "arrow-array", "arrow-buffer", @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da746f4180004e3ce7b83c977daf6394d768332349d3d913998b10a120b790a" +checksum = "ca025bd0f38eeecb57c2153c0123b960494138e6a957bbda10da2b25415209fe" dependencies = [ "arrow-array", "arrow-cast", @@ -270,9 +270,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fdd994a9d28e6365aa78e15da3f3950c0fdcea6b963a12fa1c391afb637b304" +checksum = "42d10beeab2b1c3bb0b53a00f7c944a178b622173a5c7bcabc3cb45d90238df4" dependencies = [ "arrow-buffer", "arrow-schema", @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf7df950701ab528bf7c0cf7eeadc0445d03ef5d6ffc151eaae6b38a58feff1" +checksum = "609a441080e338147a84e8e6904b6da482cefb957c5cdc0f3398872f69a315d0" dependencies = [ "arrow-array", "arrow-buffer", @@ -299,9 +299,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff8357658bedc49792b13e2e862b80df908171275f8e6e075c460da5ee4bf86" +checksum = "6ead0914e4861a531be48fe05858265cf854a4880b9ed12618b1d08cba9bebc8" dependencies = [ "arrow-array", "arrow-buffer", @@ -323,9 +323,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d8f1870e03d4cbed632959498bcc84083b5a24bded52905ae1695bd29da45b" +checksum = "763a7ba279b20b52dad300e68cfc37c17efa65e68623169076855b3a9e941ca5" dependencies = [ "arrow-array", "arrow-buffer", @@ -336,9 +336,9 @@ dependencies = [ [[package]] name = "arrow-pyarrow" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18c442b4c266aaf3d7f7dd40fd7ae058cef7f113b00ff0cd8256e1e218ec544" +checksum = "e63351dc11981a316c828a6032a5021345bba882f68bc4a36c36825a50725089" dependencies = [ "arrow-array", "arrow-data", @@ -348,9 +348,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18228633bad92bff92a95746bbeb16e5fc318e8382b75619dec26db79e4de4c0" +checksum = "e14fe367802f16d7668163ff647830258e6e0aeea9a4d79aaedf273af3bdcd3e" dependencies = [ "arrow-array", "arrow-buffer", @@ -361,9 +361,9 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c872d36b7bf2a6a6a2b40de9156265f0242910791db366a2c17476ba8330d68" +checksum = "c30a1365d7a7dc50cc847e54154e6af49e4c4b0fddc9f607b687f29212082743" dependencies = [ "bitflags", "serde_core", @@ -372,9 +372,9 @@ dependencies = [ [[package]] name = "arrow-select" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bf3e3efbd1278f770d67e5dc410257300b161b93baedb3aae836144edcaf4b" +checksum = "78694888660a9e8ac949853db393af2a8b8fc82c19ce333132dfa2e72cc1a7fe" dependencies = [ "ahash", "arrow-array", @@ -386,9 +386,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "57.3.0" +version = "58.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e968097061b3c0e9fe3079cf2e703e487890700546b5b0647f60fca1b5a8d8" +checksum = "61e04a01f8bb73ce54437514c5fd3ee2aa3e8abe4c777ee5cc55853b1652f79e" dependencies = [ "arrow-array", "arrow-buffer", @@ -1928,9 +1928,9 @@ dependencies = [ [[package]] name = "datafusion" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c18ba387f9c05ac1f3be32a73f8f3cc6c1cfc43e5d4b7a8e5b0d3a5eb48dc7" +checksum = "93db0e623840612f7f2cd757f7e8a8922064192363732c88692e0870016e141b" dependencies = [ "arrow", "arrow-schema", @@ -1964,11 +1964,11 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.13.2", "parking_lot", "rand 0.9.4", "regex", - "sqlparser 0.59.0", + "sqlparser 0.61.0", "tempfile", "tokio", "url", @@ -1977,9 +1977,9 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c75a4ce672b27fb8423810efb92a3600027717a1664d06a2c307eeeabcec694" +checksum = "37cefde60b26a7f4ff61e9d2ff2833322f91df2b568d7238afe67bde5bdffb66" dependencies = [ "arrow", "async-trait", @@ -1995,16 +1995,16 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.13.2", "parking_lot", "tokio", ] [[package]] name = "datafusion-catalog-listing" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8b9a3795ffb46bf4957a34c67d89a67558b311ae455c8d4295ff2115eeea50" +checksum = "17e112307715d6a7a331111a4c2330ff54bc237183511c319e3708a4cff431fb" dependencies = [ "arrow", "async-trait", @@ -2020,14 +2020,14 @@ dependencies = [ "futures", "itertools 0.14.0", "log", - "object_store", + "object_store 0.13.2", ] [[package]] name = "datafusion-common" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "205dc1e20441973f470e6b7ef87626a3b9187970e5106058fef1b713047f770c" +checksum = "d72a11ca44a95e1081870d3abb80c717496e8a7acb467a1d3e932bb636af5cc2" dependencies = [ "ahash", "arrow", @@ -2036,20 +2036,21 @@ dependencies = [ "half", "hashbrown 0.16.1", "indexmap 2.13.0", + "itertools 0.14.0", "libc", "log", - "object_store", + "object_store 0.13.2", "paste", - "sqlparser 0.59.0", + "sqlparser 0.61.0", "tokio", "web-time", ] [[package]] name = "datafusion-common-runtime" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf5880c02ff6f5f11fb5bc19211789fb32fd3c53d79b7d6cb2b12e401312ba0" +checksum = "89f4afaed29670ec4fd6053643adc749fe3f4bc9d1ce1b8c5679b22c67d12def" dependencies = [ "futures", "log", @@ -2058,9 +2059,9 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc614d6e709450e29b7b032a42c1bdb705f166a6b2edef7bed7c7897eb905499" +checksum = "e9fb386e1691355355a96419978a0022b7947b44d4a24a6ea99f00b6b485cbb6" dependencies = [ "arrow", "async-trait", @@ -2079,7 +2080,7 @@ dependencies = [ "glob", "itertools 0.14.0", "log", - "object_store", + "object_store 0.13.2", "rand 0.9.4", "tokio", "url", @@ -2087,9 +2088,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-arrow" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e497d5fc48dac7ce86f6b4fb09a3a494385774af301ff20ec91aebfae9b05b4" +checksum = "ffa6c52cfed0734c5f93754d1c0175f558175248bf686c944fb05c373e5fc096" dependencies = [ "arrow", "arrow-ipc", @@ -2105,15 +2106,15 @@ dependencies = [ "datafusion-session", "futures", "itertools 0.14.0", - "object_store", + "object_store 0.13.2", "tokio", ] [[package]] name = "datafusion-datasource-csv" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dfc250cad940d0327ca2e9109dc98830892d17a3d6b2ca11d68570e872cf379" +checksum = "503f29e0582c1fc189578d665ff57d9300da1f80c282777d7eb67bb79fb8cdca" dependencies = [ "arrow", "async-trait", @@ -2127,16 +2128,16 @@ dependencies = [ "datafusion-physical-plan", "datafusion-session", "futures", - "object_store", + "object_store 0.13.2", "regex", "tokio", ] [[package]] name = "datafusion-datasource-json" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91e9677ed62833b0e8129dec0d1a8f3c9bb7590bd6dd714a43e4c3b663e4aa0" +checksum = "e33804749abc8d0c8cb7473228483cb8070e524c6f6086ee1b85a64debe2b3d2" dependencies = [ "arrow", "async-trait", @@ -2150,31 +2151,35 @@ dependencies = [ "datafusion-physical-plan", "datafusion-session", "futures", - "object_store", + "object_store 0.13.2", + "serde_json", "tokio", + "tokio-stream", ] [[package]] name = "datafusion-doc" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e13e5fe3447baa0584b61ee8644086e007e1ef6e58f4be48bc8a72417854729" +checksum = "8de6ac0df1662b9148ad3c987978b32cbec7c772f199b1d53520c8fa764a87ee" [[package]] name = "datafusion-execution" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48a6cc03e34899a54546b229235f7b192634c8e832f78a267f0989b18216c56d" +checksum = "c03c7fbdaefcca4ef6ffe425a5fc2325763bfb426599bb0bf4536466efabe709" dependencies = [ "arrow", + "arrow-buffer", "async-trait", "chrono", "dashmap", "datafusion-common", "datafusion-expr", + "datafusion-physical-expr-common", "futures", "log", - "object_store", + "object_store 0.13.2", "parking_lot", "rand 0.9.4", "tempfile", @@ -2183,9 +2188,9 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3315d87eca7a7df58e52a1fb43b4c4171b545fd30ffc3102945c162a9f6ddb" +checksum = "574b9b6977fedbd2a611cbff12e5caf90f31640ad9dc5870f152836d94bad0dd" dependencies = [ "arrow", "async-trait", @@ -2200,14 +2205,14 @@ dependencies = [ "itertools 0.14.0", "paste", "serde_json", - "sqlparser 0.59.0", + "sqlparser 0.61.0", ] [[package]] name = "datafusion-expr-common" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c6d83feae0753799f933a2c47dfd15980c6947960cb95ed60f5c1f885548b3" +checksum = "7d7c3adf3db8bf61e92eb90cb659c8e8b734593a8f7c8e12a843c7ddba24b87e" dependencies = [ "arrow", "datafusion-common", @@ -2218,9 +2223,9 @@ dependencies = [ [[package]] name = "datafusion-functions" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b82962015cc3db4d7662459c9f7fcda0591b5edacb8af1cf3bc3031f274800" +checksum = "f28aa4e10384e782774b10e72aca4d93ef7b31aa653095d9d4536b0a3dbc51b6" dependencies = [ "arrow", "arrow-buffer", @@ -2239,6 +2244,7 @@ dependencies = [ "itertools 0.14.0", "log", "md-5", + "memchr", "num-traits", "rand 0.9.4", "regex", @@ -2249,9 +2255,9 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e42c227d9e55a6c8041785d4a8a117e4de531033d480aae10984247ac62e27e" +checksum = "00aa6217e56098ba84e0a338176fe52f0a84cca398021512c6c8c5eff806d0ad" dependencies = [ "ahash", "arrow", @@ -2265,14 +2271,15 @@ dependencies = [ "datafusion-physical-expr-common", "half", "log", + "num-traits", "paste", ] [[package]] name = "datafusion-functions-aggregate-common" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cead3cfed825b0b688700f4338d281cd7857e4907775a5b9554c083edd5f3f95" +checksum = "b511250349407db7c43832ab2de63f5557b19a20dfd236b39ca2c04468b50d47" dependencies = [ "ahash", "arrow", @@ -2283,9 +2290,9 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ea99612970aebab8cf864d02eb3d296bbab7f4881e1023d282b57fe431b201" +checksum = "ef13a858e20d50f0a9bb5e96e7ac82b4e7597f247515bccca4fdd2992df0212a" dependencies = [ "arrow", "arrow-ord", @@ -2299,16 +2306,18 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-macros", "datafusion-physical-expr-common", + "hashbrown 0.16.1", "itertools 0.14.0", + "itoa", "log", "paste", ] [[package]] name = "datafusion-functions-table" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83dbf3ab8b9af6f209b068825a7adbd3b88bf276f2a1ec14ba09567b97f5674" +checksum = "72b40d3f5bbb3905f9ccb1ce9485a9595c77b69758a7c24d3ba79e334ff51e7e" dependencies = [ "arrow", "async-trait", @@ -2322,9 +2331,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732edabe07496e2fc5a1e57a284d7a36edcea445a2821119770a0dea624b472c" +checksum = "d4e88ec9d57c9b685d02f58bfee7be62d72610430ddcedb82a08e5d9925dbfb6" dependencies = [ "arrow", "datafusion-common", @@ -2340,9 +2349,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c6e30e09700799bd52adce8c377ab03dda96e73a623e4803a31ad94fe7ce14" +checksum = "8307bb93519b1a91913723a1130cfafeee3f72200d870d88e91a6fc5470ede5c" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -2350,9 +2359,9 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402f2a8ed70fb99a18f71580a1fe338604222a3d32ddeac6e72c5b34feea2d4d" +checksum = "2e367e6a71051d0ebdd29b2f85d12059b38b1d1f172c6906e80016da662226bd" dependencies = [ "datafusion-doc", "quote", @@ -2361,9 +2370,9 @@ dependencies = [ [[package]] name = "datafusion-optimizer" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99f32edb8ba12f08138f86c09b80fae3d4a320551262fa06b91d8a8cb3065a5b" +checksum = "e929015451a67f77d9d8b727b2bf3a40c4445fdef6cdc53281d7d97c76888ace" dependencies = [ "arrow", "chrono", @@ -2380,9 +2389,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "987c5e29e96186589301b42e25aa7d11bbe319a73eb02ef8d755edc55b5b89fc" +checksum = "4b1e68aba7a4b350401cfdf25a3d6f989ad898a7410164afe9ca52080244cb59" dependencies = [ "ahash", "arrow", @@ -2403,9 +2412,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-adapter" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de89d0afa08b6686697bd8a6bac4ba2cd44c7003356e1bce6114d5a93f94b5c" +checksum = "ea22315f33cf2e0adc104e8ec42e285f6ed93998d565c65e82fec6a9ee9f9db4" dependencies = [ "arrow", "datafusion-common", @@ -2418,9 +2427,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602d1970c0fe87f1c3a36665d131fbfe1c4379d35f8fc5ec43a362229ad2954d" +checksum = "b04b45ea8ad3ac2d78f2ea2a76053e06591c9629c7a603eda16c10649ecf4362" dependencies = [ "ahash", "arrow", @@ -2435,9 +2444,9 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b24d704b6385ebe27c756a12e5ba15684576d3b47aeca79cc9fb09480236dc32" +checksum = "7cb13397809a425918f608dfe8653f332015a3e330004ab191b4404187238b95" dependencies = [ "arrow", "datafusion-common", @@ -2453,9 +2462,9 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c21d94141ea5043e98793f170798e9c1887095813b8291c5260599341e383a38" +checksum = "5edc023675791af9d5fb4cc4c24abf5f7bd3bd4dcf9e5bd90ea1eff6976dcc79" dependencies = [ "ahash", "arrow", @@ -2477,6 +2486,7 @@ dependencies = [ "indexmap 2.13.0", "itertools 0.14.0", "log", + "num-traits", "parking_lot", "pin-project-lite", "tokio", @@ -2484,9 +2494,9 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a68cce43d18c0dfac95cacd74e70565f7e2fb12b9ed41e2d312f0fa837626b1" +checksum = "ac8c76860e355616555081cab5968cec1af7a80701ff374510860bcd567e365a" dependencies = [ "arrow", "datafusion-common", @@ -2501,9 +2511,9 @@ dependencies = [ [[package]] name = "datafusion-session" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4e1c40a0b1896aed4a4504145c2eb7fa9b9da13c2d04b40a4767a09f076199" +checksum = "5412111aa48e2424ba926112e192f7a6b7e4ccb450145d25ce5ede9f19dc491e" dependencies = [ "async-trait", "datafusion-common", @@ -2515,19 +2525,20 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "52.4.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1891e5b106d1d73c7fe403bd8a265d19c3977edc17f60808daf26c2fe65ffb" +checksum = "fa0d133ddf8b9b3b872acac900157f783e7b879fe9a6bccf389abebbfac45ec1" dependencies = [ "arrow", "bigdecimal", "chrono", "datafusion-common", "datafusion-expr", + "datafusion-functions-nested", "indexmap 2.13.0", "log", "regex", - "sqlparser 0.59.0", + "sqlparser 0.61.0", ] [[package]] @@ -3010,8 +3021,8 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-array", "rand 0.9.4", @@ -3859,15 +3870,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "indoc" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -dependencies = [ - "rustversion", -] - [[package]] name = "inout" version = "0.1.4" @@ -4066,8 +4068,8 @@ dependencies = [ [[package]] name = "lance" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-arith", @@ -4113,7 +4115,7 @@ dependencies = [ "lance-tokenizer", "log", "moka", - "object_store", + "object_store 0.12.5", "permutation", "pin-project", "prost", @@ -4135,8 +4137,8 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-array", "arrow-buffer", @@ -4157,8 +4159,8 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrayref", "paste", @@ -4167,8 +4169,8 @@ dependencies = [ [[package]] name = "lance-core" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-array", "arrow-buffer", @@ -4188,7 +4190,7 @@ dependencies = [ "mock_instant", "moka", "num_cpus", - "object_store", + "object_store 0.12.5", "pin-project", "prost", "rand 0.9.4", @@ -4205,8 +4207,8 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-array", @@ -4237,8 +4239,8 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-array", @@ -4256,8 +4258,8 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-arith", "arrow-array", @@ -4294,8 +4296,8 @@ dependencies = [ [[package]] name = "lance-file" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-arith", "arrow-array", @@ -4316,7 +4318,7 @@ dependencies = [ "lance-io", "log", "num-traits", - "object_store", + "object_store 0.12.5", "prost", "prost-build", "prost-types", @@ -4327,8 +4329,8 @@ dependencies = [ [[package]] name = "lance-index" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-arith", @@ -4370,7 +4372,7 @@ dependencies = [ "log", "ndarray", "num-traits", - "object_store", + "object_store 0.12.5", "prost", "prost-build", "prost-types", @@ -4392,8 +4394,8 @@ dependencies = [ [[package]] name = "lance-io" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-arith", @@ -4420,7 +4422,7 @@ dependencies = [ "libc", "log", "moka", - "object_store", + "object_store 0.12.5", "object_store_opendal", "opendal", "path_abs", @@ -4437,8 +4439,8 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-array", "arrow-buffer", @@ -4454,8 +4456,8 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "async-trait", @@ -4468,8 +4470,8 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-ipc", @@ -4489,7 +4491,7 @@ dependencies = [ "lance-namespace", "lance-table", "log", - "object_store", + "object_store 0.12.5", "quick-xml 0.38.4", "rand 0.9.4", "reqwest", @@ -4518,8 +4520,8 @@ dependencies = [ [[package]] name = "lance-table" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow", "arrow-array", @@ -4539,7 +4541,7 @@ dependencies = [ "lance-file", "lance-io", "log", - "object_store", + "object_store 0.12.5", "prost", "prost-build", "prost-types", @@ -4558,8 +4560,8 @@ dependencies = [ [[package]] name = "lance-testing" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "arrow-array", "arrow-schema", @@ -4570,8 +4572,8 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "6.0.0-beta.4" -source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.4#226dafe0a00f995d9e3230c2d61cc06be51994d4" +version = "6.0.0-beta.7" +source = "git+https://github.com/lance-format/lance.git?tag=v6.0.0-beta.7#bdcc31608cd00eac60aefbb8da2551f7eb6fc8aa" dependencies = [ "rust-stemmers", "serde", @@ -4637,7 +4639,7 @@ dependencies = [ "log", "moka", "num-traits", - "object_store", + "object_store 0.12.5", "pin-project", "polars", "polars-arrow", @@ -4892,9 +4894,9 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c23545df7ecf1b16c303910a69b079e8e251d60f7dd2cc9b4177f2afaf1746" +checksum = "db9a0d582c2874f68138a16ce1867e0ffde6c0bb0a0df85e1f36d04146db488a" dependencies = [ "twox-hash", ] @@ -4989,15 +4991,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -5377,6 +5370,32 @@ dependencies = [ "web-time", ] +[[package]] +name = "object_store" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622acbc9100d3c10e2ee15804b0caa40e55c933d5aa53814cd520805b7958a49" +dependencies = [ + "async-trait", + "bytes", + "chrono", + "futures-channel", + "futures-core", + "futures-util", + "http 1.4.0", + "humantime", + "itertools 0.14.0", + "parking_lot", + "percent-encoding", + "thiserror 2.0.18", + "tokio", + "tracing", + "url", + "walkdir", + "wasm-bindgen-futures", + "web-time", +] + [[package]] name = "object_store_opendal" version = "0.55.0" @@ -5387,7 +5406,7 @@ dependencies = [ "bytes", "chrono", "futures", - "object_store", + "object_store 0.12.5", "opendal", "pin-project", "tokio", @@ -6203,7 +6222,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "itertools 0.14.0", "log", "multimap", @@ -6273,28 +6292,26 @@ checksum = "40e24eee682d89fb193496edf918a7f407d30175b2e785fe057e4392dfd182e0" [[package]] name = "pyo3" -version = "0.26.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383" +checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12" dependencies = [ - "indoc", "libc", - "memoffset", "once_cell", "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", - "unindent", ] [[package]] name = "pyo3-async-runtimes" -version = "0.26.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ee6d4cb3e8d5b925f5cdb38da183e0ff18122eb2048d4041c9e7034d026e23" +checksum = "9e7364a95bf00e8377bbf9b0f09d7ff9715a29d8fcf93b47d1a967363b973178" dependencies = [ - "futures", + "futures-channel", + "futures-util", "once_cell", "pin-project-lite", "pyo3", @@ -6304,9 +6321,9 @@ dependencies = [ [[package]] name = "pyo3-async-runtimes-macros" -version = "0.26.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c29bc5c673e36a8102d0b9179149c1bb59990d8db4f3ae58bd7dceccab90b951" +checksum = "c23399970eea9c31d0ac84cee4a9d8dd05f89b1da2f4dd5bb44b32a3f66db4f8" dependencies = [ "proc-macro2", "quote", @@ -6315,18 +6332,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.26.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f" +checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.26.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105" +checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e" dependencies = [ "libc", "pyo3-build-config", @@ -6334,9 +6351,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.26.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded" +checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -6346,9 +6363,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.26.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf" +checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -7469,7 +7486,7 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -7481,7 +7498,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54254b8531cafa275c5e096f62d48c81435d1015405a91198ddb11e967301d40" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -7573,9 +7590,9 @@ dependencies = [ [[package]] name = "sqlparser" -version = "0.59.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4591acadbcf52f0af60eafbb2c003232b2b4cd8de5f0e9437cb8b1b59046cc0f" +checksum = "dbf5ea8d4d7c808e1af1cbabebca9a2abe603bcefc22294c5b95018d53200cb7" dependencies = [ "log", "sqlparser_derive", @@ -7583,9 +7600,9 @@ dependencies = [ [[package]] name = "sqlparser_derive" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" +checksum = "a6dd45d8fc1c79299bfbb7190e42ccbbdf6a5f52e4a6ad98d92357ea965bd289" dependencies = [ "proc-macro2", "quote", @@ -8059,6 +8076,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", + "tokio-util", ] [[package]] @@ -8324,12 +8342,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -[[package]] -name = "unindent" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" - [[package]] name = "untrusted" version = "0.7.1" diff --git a/Cargo.toml b/Cargo.toml index 94a42ad7c..2f75c2ee3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,40 +13,40 @@ categories = ["database-implementations"] rust-version = "1.91.0" [workspace.dependencies] -lance = { "version" = "=6.0.0-beta.4", default-features = false, "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-core = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-datagen = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-file = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-io = { "version" = "=6.0.0-beta.4", default-features = false, "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-index = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-linalg = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-namespace-impls = { "version" = "=6.0.0-beta.4", default-features = false, "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-table = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-testing = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-datafusion = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-encoding = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } -lance-arrow = { "version" = "=6.0.0-beta.4", "tag" = "v6.0.0-beta.4", "git" = "https://github.com/lance-format/lance.git" } +lance = { "version" = "=6.0.0-beta.7", default-features = false, "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-core = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-datagen = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-file = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-io = { "version" = "=6.0.0-beta.7", default-features = false, "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-index = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-linalg = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-namespace-impls = { "version" = "=6.0.0-beta.7", default-features = false, "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-table = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-testing = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-datafusion = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-encoding = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } +lance-arrow = { "version" = "=6.0.0-beta.7", "tag" = "v6.0.0-beta.7", "git" = "https://github.com/lance-format/lance.git" } ahash = "0.8" # Note that this one does not include pyarrow -arrow = { version = "57.2", optional = false } -arrow-array = "57.2" -arrow-data = "57.2" -arrow-ipc = "57.2" -arrow-ord = "57.2" -arrow-schema = "57.2" -arrow-select = "57.2" -arrow-cast = "57.2" +arrow = { version = "58.0.0", optional = false } +arrow-array = "58.0.0" +arrow-data = "58.0.0" +arrow-ipc = "58.0.0" +arrow-ord = "58.0.0" +arrow-schema = "58.0.0" +arrow-select = "58.0.0" +arrow-cast = "58.0.0" async-trait = "0" -datafusion = { version = "52.1", default-features = false } -datafusion-catalog = "52.1" -datafusion-common = { version = "52.1", default-features = false } -datafusion-execution = "52.1" -datafusion-expr = "52.1" -datafusion-functions = "52.1" -datafusion-physical-plan = "52.1" -datafusion-physical-expr = "52.1" -datafusion-sql = "52.1" +datafusion = { version = "53.0.0", default-features = false } +datafusion-catalog = "53.0.0" +datafusion-common = { version = "53.0.0", default-features = false } +datafusion-execution = "53.0.0" +datafusion-expr = "53.0.0" +datafusion-functions = "53.0.0" +datafusion-physical-plan = "53.0.0" +datafusion-physical-expr = "53.0.0" +datafusion-sql = "53.0.0" env_logger = "0.11" half = { "version" = "2.7.1", default-features = false, features = [ "num-traits", diff --git a/java/pom.xml b/java/pom.xml index 822d553e2..886f64a8d 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -28,7 +28,7 @@ UTF-8 15.0.0 - 6.0.0-beta.4 + 6.0.0-beta.7 false 2.30.0 1.7 diff --git a/nodejs/Cargo.toml b/nodejs/Cargo.toml index a4603e080..2b54311ec 100644 --- a/nodejs/Cargo.toml +++ b/nodejs/Cargo.toml @@ -16,7 +16,7 @@ crate-type = ["cdylib"] async-trait.workspace = true arrow-ipc.workspace = true arrow-array.workspace = true -arrow-buffer = "57.2" +arrow-buffer = "58.0.0" half.workspace = true arrow-schema.workspace = true env_logger.workspace = true diff --git a/python/Cargo.toml b/python/Cargo.toml index fd38fa641..57195bf63 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -15,7 +15,7 @@ name = "_lancedb" crate-type = ["cdylib"] [dependencies] -arrow = { version = "57.2", features = ["pyarrow"] } +arrow = { version = "58.0.0", features = ["pyarrow"] } async-trait = "0.1" bytes = "1" lancedb = { path = "../rust/lancedb", default-features = false } @@ -25,8 +25,8 @@ lance-namespace-impls.workspace = true lance-io.workspace = true env_logger.workspace = true log.workspace = true -pyo3 = { version = "0.26", features = ["extension-module", "abi3-py39"] } -pyo3-async-runtimes = { version = "0.26", features = [ +pyo3 = { version = "0.28", features = ["extension-module", "abi3-py39"] } +pyo3-async-runtimes = { version = "0.28", features = [ "attributes", "tokio-runtime", ] } @@ -38,7 +38,7 @@ snafu.workspace = true tokio = { version = "1.40", features = ["sync"] } [build-dependencies] -pyo3-build-config = { version = "0.26", features = [ +pyo3-build-config = { version = "0.28", features = [ "extension-module", "abi3-py39", ] } diff --git a/python/src/expr.rs b/python/src/expr.rs index e12c7d0a8..7d29fcd05 100644 --- a/python/src/expr.rs +++ b/python/src/expr.rs @@ -17,7 +17,7 @@ use pyo3::{Bound, PyAny, PyResult, exceptions::PyValueError, prelude::*, pyfunct /// [`expr_lit`] and combined with the methods on this struct. On the Python /// side a thin wrapper class (`lancedb.expr.Expr`) delegates to these methods /// and adds Python operator overloads. -#[pyclass(name = "PyExpr")] +#[pyclass(name = "PyExpr", from_py_object)] #[derive(Clone)] pub struct PyExpr(pub DfExpr); diff --git a/python/src/header.rs b/python/src/header.rs index 13338f4ec..85ad14358 100644 --- a/python/src/header.rs +++ b/python/src/header.rs @@ -33,7 +33,7 @@ impl PyHeaderProvider { Ok(headers_py) => { // Convert Python dict to Rust HashMap let bound_headers = headers_py.bind(py); - let dict: &Bound = bound_headers.downcast().map_err(|e| { + let dict: &Bound = bound_headers.cast().map_err(|e| { format!("HeaderProvider.get_headers must return a dict: {}", e) })?; diff --git a/python/src/index.rs b/python/src/index.rs index 602b5e420..ce90280b0 100644 --- a/python/src/index.rs +++ b/python/src/index.rs @@ -13,7 +13,7 @@ use pyo3::{ Bound, FromPyObject, PyAny, PyResult, Python, exceptions::{PyKeyError, PyValueError}, intern, pyclass, pymethods, - types::PyAnyMethods, + types::{PyAnyMethods, PyString}, }; use crate::util::parse_distance_type; @@ -22,7 +22,7 @@ pub fn class_name(ob: &'_ Bound<'_, PyAny>) -> PyResult { let full_name = ob .getattr(intern!(ob.py(), "__class__"))? .getattr(intern!(ob.py(), "__name__"))?; - let full_name = full_name.downcast()?.to_string_lossy(); + let full_name = full_name.cast::()?.to_string_lossy(); match full_name.rsplit_once('.') { Some((_, name)) => Ok(name.to_string()), diff --git a/python/src/namespace.rs b/python/src/namespace.rs index e96c667a6..bb0e4d6d3 100644 --- a/python/src/namespace.rs +++ b/python/src/namespace.rs @@ -183,7 +183,7 @@ async fn call_py_method_primitive( ) -> lance_core::Result where Req: serde::Serialize + Send + 'static, - Resp: for<'py> pyo3::FromPyObject<'py> + Send + 'static, + Resp: for<'a, 'py> pyo3::FromPyObject<'a, 'py> + Send + 'static, { let request_json = serde_json::to_string(&request).map_err(|e| { lance_core::Error::io(format!( @@ -203,7 +203,7 @@ where // Call the Python method let result = py_namespace.call_method1(py, method_name, (request_arg,))?; - let value: Resp = result.extract(py)?; + let value: Resp = result.extract(py).map_err(Into::into)?; Ok::<_, PyErr>(value) }) }) diff --git a/python/src/permutation.rs b/python/src/permutation.rs index 21b8c9c47..ac20a2cc9 100644 --- a/python/src/permutation.rs +++ b/python/src/permutation.rs @@ -25,12 +25,12 @@ use pyo3_async_runtimes::tokio::future_into_py; fn table_from_py<'a>(table: Bound<'a, PyAny>) -> PyResult> { if table.hasattr("_inner")? { - Ok(table.getattr("_inner")?.downcast_into::()?) + Ok(table.getattr("_inner")?.cast_into::
()?) } else if table.hasattr("_table")? { Ok(table .getattr("_table")? .getattr("_inner")? - .downcast_into::
()?) + .cast_into::
()?) } else { Err(PyRuntimeError::new_err( "Provided table does not appear to be a Table or RemoteTable instance", @@ -90,9 +90,9 @@ impl PyAsyncPermutationBuilder { database .getattr("_conn")? .getattr("_inner")? - .downcast_into::()? + .cast_into::()? } else { - database.getattr("_inner")?.downcast_into::()? + database.getattr("_inner")?.cast_into::()? }; let database = conn.borrow().database()?; slf.modify(|builder| builder.persist(database, table_name)) @@ -243,7 +243,7 @@ impl PyPermutationReader { let Some(selection) = selection else { return Ok(Select::All); }; - let selection = selection.downcast_into::()?; + let selection = selection.cast_into::()?; let selection = selection .iter() .map(|(key, value)| { diff --git a/python/src/query.rs b/python/src/query.rs index 98876739b..1b64b5eaa 100644 --- a/python/src/query.rs +++ b/python/src/query.rs @@ -33,7 +33,7 @@ use pyo3::pyfunction; use pyo3::pymethods; use pyo3::types::PyList; use pyo3::types::{PyDict, PyString}; -use pyo3::{FromPyObject, exceptions::PyRuntimeError}; +use pyo3::{Borrowed, FromPyObject, exceptions::PyRuntimeError}; use pyo3::{PyErr, pyclass}; use pyo3::{exceptions::PyValueError, intern}; use pyo3_async_runtimes::tokio::future_into_py; @@ -43,9 +43,12 @@ use crate::util::parse_distance_type; use crate::{arrow::RecordBatchStream, util::PyLanceDB}; use crate::{error::PythonErrorExt, index::class_name}; -impl FromPyObject<'_> for PyLanceDB { - fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult { - match class_name(ob)?.as_str() { +impl<'a, 'py> FromPyObject<'a, 'py> for PyLanceDB { + type Error = PyErr; + + fn extract(ob: Borrowed<'a, 'py, PyAny>) -> PyResult { + let ob = ob.to_owned(); + match class_name(&ob)?.as_str() { "MatchQuery" => { let query = ob.getattr("query")?.extract()?; let column = ob.getattr("column")?.extract()?; @@ -424,7 +427,7 @@ impl Query { "Query text is required for nearest_to_text", ))?; - let query = if let Ok(query_text) = fts_query.downcast::() { + let query = if let Ok(query_text) = fts_query.cast::() { let mut query_text = query_text.to_string(); let columns = query .get_item("columns")? @@ -606,7 +609,7 @@ impl TakeQuery { } } -#[pyclass] +#[pyclass(from_py_object)] #[derive(Clone)] pub struct FTSQuery { inner: LanceDbQuery, @@ -735,7 +738,7 @@ impl FTSQuery { } } -#[pyclass] +#[pyclass(from_py_object)] #[derive(Clone)] pub struct VectorQuery { inner: LanceDbVectorQuery, diff --git a/python/src/session.rs b/python/src/session.rs index 2433114b6..891e61e44 100644 --- a/python/src/session.rs +++ b/python/src/session.rs @@ -11,7 +11,7 @@ use pyo3::{PyResult, pyclass, pymethods}; /// Sessions allow you to configure cache sizes for index and metadata caches, /// which can significantly impact memory use and performance. They can /// also be re-used across multiple connections to share the same cache state. -#[pyclass] +#[pyclass(from_py_object)] #[derive(Clone)] pub struct Session { pub(crate) inner: Arc, diff --git a/python/src/table.rs b/python/src/table.rs index d44b6c1fd..715ac79cc 100644 --- a/python/src/table.rs +++ b/python/src/table.rs @@ -29,7 +29,7 @@ use pyo3_async_runtimes::tokio::future_into_py; mod scannable; /// Statistics about a compaction operation. -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct CompactionStats { /// The number of fragments removed @@ -43,7 +43,7 @@ pub struct CompactionStats { } /// Statistics about a cleanup operation -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct RemovalStats { /// The number of bytes removed @@ -53,7 +53,7 @@ pub struct RemovalStats { } /// Statistics about an optimize operation -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct OptimizeStats { /// Statistics about the compaction operation @@ -62,7 +62,7 @@ pub struct OptimizeStats { pub prune: RemovalStats, } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct UpdateResult { pub rows_updated: u64, @@ -88,7 +88,7 @@ impl From for UpdateResult { } } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct AddResult { pub version: u64, @@ -109,7 +109,7 @@ impl From for AddResult { } } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct DeleteResult { pub num_deleted_rows: u64, @@ -135,7 +135,7 @@ impl From for DeleteResult { } } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct MergeResult { pub version: u64, @@ -171,7 +171,7 @@ impl From for MergeResult { } } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct AddColumnsResult { pub version: u64, @@ -192,7 +192,7 @@ impl From for AddColumnsResult { } } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct AlterColumnsResult { pub version: u64, @@ -213,7 +213,7 @@ impl From for AlterColumnsResult { } } -#[pyclass(get_all)] +#[pyclass(get_all, from_py_object)] #[derive(Clone, Debug)] pub struct DropColumnsResult { pub version: u64, diff --git a/python/src/table/scannable.rs b/python/src/table/scannable.rs index 5d02ca024..faf2c7fae 100644 --- a/python/src/table/scannable.rs +++ b/python/src/table/scannable.rs @@ -126,8 +126,11 @@ impl Scannable for PyScannable { } } -impl<'py> FromPyObject<'py> for PyScannable { - fn extract_bound(ob: &pyo3::Bound<'py, PyAny>) -> pyo3::PyResult { +impl<'a, 'py> FromPyObject<'a, 'py> for PyScannable { + type Error = pyo3::PyErr; + + fn extract(ob: pyo3::Borrowed<'a, 'py, PyAny>) -> pyo3::PyResult { + let ob = ob.to_owned(); // Convert from Scannable dataclass. let schema: PyArrowType = ob.getattr("schema")?.extract()?; let schema = Arc::new(schema.0); diff --git a/rust/lancedb/src/remote/table/insert.rs b/rust/lancedb/src/remote/table/insert.rs index 8aec28609..49ebb2015 100644 --- a/rust/lancedb/src/remote/table/insert.rs +++ b/rust/lancedb/src/remote/table/insert.rs @@ -43,7 +43,7 @@ pub struct RemoteInsertExec { client: RestfulLanceDbClient, input: Arc, overwrite: bool, - properties: PlanProperties, + properties: Arc, add_result: Arc>>, metrics: ExecutionPlanMetricsSet, upload_id: Option, @@ -118,7 +118,7 @@ impl RemoteInsertExec { client, input, overwrite, - properties, + properties: Arc::new(properties), add_result: Arc::new(Mutex::new(None)), metrics: ExecutionPlanMetricsSet::new(), upload_id, @@ -232,7 +232,7 @@ impl ExecutionPlan for RemoteInsertExec { self } - fn properties(&self) -> &PlanProperties { + fn properties(&self) -> &Arc { &self.properties } diff --git a/rust/lancedb/src/table/datafusion.rs b/rust/lancedb/src/table/datafusion.rs index bd93dd05d..d8956acb2 100644 --- a/rust/lancedb/src/table/datafusion.rs +++ b/rust/lancedb/src/table/datafusion.rs @@ -39,21 +39,26 @@ use lance_index::scalar::FullTextSearchQuery; struct MetadataEraserExec { input: Arc, schema: Arc, - properties: PlanProperties, + properties: Arc, } impl MetadataEraserExec { fn compute_properties_from_input( input: &Arc, schema: &Arc, - ) -> PlanProperties { + ) -> Arc { let input_properties = input.properties(); let eq_properties = input_properties .eq_properties .clone() .with_new_schema(schema.clone()) .unwrap(); - input_properties.clone().with_eq_properties(eq_properties) + Arc::new( + input_properties + .as_ref() + .clone() + .with_eq_properties(eq_properties), + ) } fn new(input: Arc) -> Self { @@ -87,7 +92,7 @@ impl ExecutionPlan for MetadataEraserExec { self } - fn properties(&self) -> &PlanProperties { + fn properties(&self) -> &Arc { &self.properties } diff --git a/rust/lancedb/src/table/datafusion/insert.rs b/rust/lancedb/src/table/datafusion/insert.rs index 51be4abb8..f2cf21f13 100644 --- a/rust/lancedb/src/table/datafusion/insert.rs +++ b/rust/lancedb/src/table/datafusion/insert.rs @@ -81,7 +81,7 @@ pub struct InsertExec { dataset: Arc, input: Arc, write_params: WriteParams, - properties: PlanProperties, + properties: Arc, partial_transactions: Arc>>, metrics: ExecutionPlanMetricsSet, } @@ -107,7 +107,7 @@ impl InsertExec { dataset, input, write_params, - properties, + properties: Arc::new(properties), partial_transactions: Arc::new(Mutex::new(Vec::with_capacity(num_partitions))), metrics: ExecutionPlanMetricsSet::new(), } @@ -136,7 +136,7 @@ impl ExecutionPlan for InsertExec { self } - fn properties(&self) -> &PlanProperties { + fn properties(&self) -> &Arc { &self.properties } diff --git a/rust/lancedb/src/table/datafusion/scannable_exec.rs b/rust/lancedb/src/table/datafusion/scannable_exec.rs index a55b6e13f..8a7177480 100644 --- a/rust/lancedb/src/table/datafusion/scannable_exec.rs +++ b/rust/lancedb/src/table/datafusion/scannable_exec.rs @@ -20,7 +20,7 @@ pub(crate) struct ScannableExec { // We don't require Scannable to be Sync, so we wrap it in a Mutex to allow safe concurrent access. source: Mutex>, num_rows: Option, - properties: PlanProperties, + properties: Arc, tracker: Option>, } @@ -49,7 +49,7 @@ impl ScannableExec { Self { source, num_rows, - properties, + properties: Arc::new(properties), tracker, } } @@ -70,7 +70,7 @@ impl ExecutionPlan for ScannableExec { self } - fn properties(&self) -> &PlanProperties { + fn properties(&self) -> &Arc { &self.properties }