test(python): cover search after schema merge

This commit is contained in:
Gatefixer
2026-08-05 17:45:59 +00:00
parent c7ea91f3ea
commit 8dcde34f18
+31
View File
@@ -2109,6 +2109,37 @@ def test_merge(tmp_db: DBConnection, tmp_path):
table.merge(other_dataset, left_on="id")
def test_search_after_merge(tmp_db: DBConnection):
pytest.importorskip("lance")
pd = pytest.importorskip("pandas")
rng = np.random.default_rng(42)
row_count = 512
vectors = rng.standard_normal((row_count, 8)).astype(np.float32)
table = tmp_db.create_table(
"search_after_merge",
data=pd.DataFrame(
{
"id": [str(i) for i in range(row_count)],
"vector": list(vectors),
}
),
)
table.create_index("vector", config=IvfPq(num_partitions=1, num_sub_vectors=2))
links = pd.DataFrame(
{
"id": [str(i) for i in range(row_count // 2)],
"link": [f"https://example.com/{i}" for i in range(row_count // 2)],
}
)
table.merge(links, left_on="id")
result = table.search(vectors[-1]).refine_factor(50).limit(10).to_arrow()
links_by_id = dict(zip(result["id"].to_pylist(), result["link"].to_pylist()))
assert links_by_id[str(row_count - 1)] is None
def test_delete(mem_db: DBConnection):
table = mem_db.create_table(
"my_table",