fix(storage): keep direct wrappers authoritative

Pin the builder ordering fix and cover non-preserving direct wrappers so recovery cannot bypass their probe semantics.
This commit is contained in:
Yang Cen
2026-08-12 23:19:15 +08:00
parent 01c255dcb7
commit 9f35d62999
3 changed files with 108 additions and 55 deletions
Generated
+41 -41
View File
@@ -141,7 +141,7 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -152,7 +152,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
dependencies = [
"anstyle",
"once_cell_polyfill",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -1756,7 +1756,7 @@ version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
dependencies = [
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -3034,7 +3034,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -3257,7 +3257,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -3456,7 +3456,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
[[package]]
name = "fsst"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"rand 0.9.5",
@@ -4561,7 +4561,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46"
dependencies = [
"hermit-abi",
"libc",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -4816,7 +4816,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a"
[[package]]
name = "lance"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arc-swap",
"arrow",
@@ -4891,7 +4891,7 @@ dependencies = [
[[package]]
name = "lance-arrow"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -4913,7 +4913,7 @@ dependencies = [
[[package]]
name = "lance-arrow-scalar"
version = "58.0.0"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -4927,7 +4927,7 @@ dependencies = [
[[package]]
name = "lance-arrow-stats"
version = "58.0.0"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-schema",
@@ -4937,7 +4937,7 @@ dependencies = [
[[package]]
name = "lance-bitpacking"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrayref",
"crunchy",
@@ -4948,7 +4948,7 @@ dependencies = [
[[package]]
name = "lance-core"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -4989,7 +4989,7 @@ dependencies = [
[[package]]
name = "lance-datafusion"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow",
"arrow-array",
@@ -5020,7 +5020,7 @@ dependencies = [
[[package]]
name = "lance-datagen"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow",
"arrow-array",
@@ -5038,7 +5038,7 @@ dependencies = [
[[package]]
name = "lance-derive"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"proc-macro2",
"quote",
@@ -5048,7 +5048,7 @@ dependencies = [
[[package]]
name = "lance-encoding"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-arith",
"arrow-array",
@@ -5083,7 +5083,7 @@ dependencies = [
[[package]]
name = "lance-file"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-arith",
"arrow-array",
@@ -5115,7 +5115,7 @@ dependencies = [
[[package]]
name = "lance-index"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arc-swap",
"arrow",
@@ -5183,7 +5183,7 @@ dependencies = [
[[package]]
name = "lance-index-core"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-schema",
@@ -5206,7 +5206,7 @@ dependencies = [
[[package]]
name = "lance-io"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow",
"arrow-array",
@@ -5243,7 +5243,7 @@ dependencies = [
[[package]]
name = "lance-linalg"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -5260,7 +5260,7 @@ dependencies = [
[[package]]
name = "lance-namespace"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow",
"async-trait",
@@ -5273,7 +5273,7 @@ dependencies = [
[[package]]
name = "lance-namespace-impls"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow",
"arrow-ipc",
@@ -5327,7 +5327,7 @@ dependencies = [
[[package]]
name = "lance-select"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -5343,7 +5343,7 @@ dependencies = [
[[package]]
name = "lance-table"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow",
"arrow-array",
@@ -5384,7 +5384,7 @@ dependencies = [
[[package]]
name = "lance-testing"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"arrow-array",
"arrow-schema",
@@ -5398,7 +5398,7 @@ dependencies = [
[[package]]
name = "lance-tokenizer"
version = "11.0.0-beta.6"
source = "git+https://github.com/lance-format/lance.git?rev=a7e3a2d2fffa5b085487bc72c3b9682df8f27db5#a7e3a2d2fffa5b085487bc72c3b9682df8f27db5"
source = "git+https://github.com/lance-format/lance.git?rev=cac38d23af60d8f436cfb4b3a922c6cf5ed67879#cac38d23af60d8f436cfb4b3a922c6cf5ed67879"
dependencies = [
"frostem",
"icu_segmenter",
@@ -6249,7 +6249,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -7641,8 +7641,8 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7"
dependencies = [
"heck 0.4.1",
"itertools 0.11.0",
"heck 0.5.0",
"itertools 0.12.1",
"log",
"multimap",
"petgraph",
@@ -7661,7 +7661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
dependencies = [
"anyhow",
"itertools 0.11.0",
"itertools 0.12.1",
"proc-macro2",
"quote",
"syn 2.0.117",
@@ -7932,7 +7932,7 @@ dependencies = [
"once_cell",
"socket2 0.6.3",
"tracing",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -8710,7 +8710,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -8781,7 +8781,7 @@ dependencies = [
"security-framework",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -9337,7 +9337,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",
@@ -9349,7 +9349,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",
@@ -9372,7 +9372,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -9479,7 +9479,7 @@ dependencies = [
"cfg-if 1.0.4",
"libc",
"psm",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -9771,7 +9771,7 @@ dependencies = [
"getrandom 0.4.2",
"once_cell",
"rustix",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -10748,7 +10748,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
+14 -14
View File
@@ -13,20 +13,20 @@ categories = ["database-implementations"]
rust-version = "1.91.0"
[workspace.dependencies]
lance = { "version" = "=11.0.0-beta.6", default-features = false, "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-core = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-datagen = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-file = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-io = { "version" = "=11.0.0-beta.6", default-features = false, "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-index = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-linalg = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-namespace = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-namespace-impls = { "version" = "=11.0.0-beta.6", default-features = false, "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-table = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-testing = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-datafusion = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-encoding = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance-arrow = { "version" = "=11.0.0-beta.6", "rev" = "a7e3a2d2fffa5b085487bc72c3b9682df8f27db5", "git" = "https://github.com/lance-format/lance.git" }
lance = { "version" = "=11.0.0-beta.6", default-features = false, "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-core = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-datagen = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-file = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-io = { "version" = "=11.0.0-beta.6", default-features = false, "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-index = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-linalg = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-namespace = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-namespace-impls = { "version" = "=11.0.0-beta.6", default-features = false, "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-table = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-testing = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-datafusion = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-encoding = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
lance-arrow = { "version" = "=11.0.0-beta.6", "rev" = "cac38d23af60d8f436cfb4b3a922c6cf5ed67879", "git" = "https://github.com/lance-format/lance.git" }
ahash = "0.8"
# Note that this one does not include pyarrow
arrow = { version = "58.0.0", optional = false }
+53
View File
@@ -4544,6 +4544,59 @@ mod tests {
);
}
#[tokio::test]
async fn test_open_recovery_direct_capability_respects_wrapper() {
let tmp_dir = tempdir().unwrap();
let dataset_path = tmp_dir.path().join("direct-wrapped.lance");
std::fs::create_dir(&dataset_path).unwrap();
let uri = url::Url::from_file_path(&dataset_path).unwrap();
let target = object_store::path::Path::from_url_path(uri.path()).unwrap();
let read_params = ReadParams {
store_options: Some(ObjectStoreParams {
object_store: Some((
Arc::new(object_store::local::LocalFileSystem::new()),
uri.clone(),
)),
native_directory_path_resolver: Some(NativeDirectoryPathResolver::new(|path| {
std::path::PathBuf::from(lance_io::local::to_local_path(path))
})),
object_store_wrapper: Some(Arc::new(OpenRecoveryTestStoreWrapper {
fail_exact_head: Some(target),
..Default::default()
})),
..Default::default()
}),
..Default::default()
};
let err = NativeTable::open_with_params(
uri.as_ref(),
"direct-wrapped",
Vec::new(),
None,
Some(read_params),
None,
None,
HashSet::new(),
None,
)
.await
.unwrap_err();
assert!(
!matches!(
&err,
Error::TableNotFound { .. } | Error::TableCorrupted { .. }
),
"direct wrapper probe errors must fail closed: {err:?}"
);
assert!(
err.to_string()
.contains("injected exact table probe failure"),
"got {err}"
);
}
#[tokio::test]
async fn test_open_missing_does_not_trust_incidental_directory_message() {
let target = object_store::path::Path::from("database/missing.lance");