fix(python): preserve request metadata for missing remote tables

Fixes #4750

Remote missing-table errors retained HTTP metadata in Rust but the Python binding converted them to a plain `ValueError`, discarding the request ID and status. This raises a `TableNotFoundError` that preserves the original message, request ID, status code, and chained HTTP cause while remaining compatible with existing `ValueError` and `lance_namespace.errors.TableNotFoundError` handlers. Local and non-HTTP errors retain their previous behavior.

Validation covers sync and async opens across cached/uncached and root/nested paths, exception pickling, local compatibility, the remote and error test suites, Clippy, formatting, Ruff, and all applicable PR checks including CodeQL.
This commit is contained in:
lancedb-gatefixer[bot]
2026-11-01 11:10:44 +08:00
committed by GitHub
parent fdf886d42a
commit 71b23ed9fb
5 changed files with 133 additions and 2 deletions
+2
View File
@@ -750,6 +750,8 @@ so the fetch APIs cannot read their bytes yet.
::: lancedb.remote.errors.HttpError
::: lancedb.remote.errors.TableNotFoundError
::: lancedb.exceptions.MissingValueError
::: lancedb.exceptions.MissingColumnError