mirror of
https://github.com/lancedb/lancedb.git
synced 2025-12-25 06:19:57 +00:00
This currently only works for local tables (remote tables cannot be queried) This is also exclusive to the sync interface. However, since the pyarrow dataset interface is synchronous I am not sure if there is much value in making an async-wrapping variant. In addition, I added a `to_batches` method to the base query in the sync API. This already exists in the async API. In the sync API this PR only adds support for vector queries and scalar queries and not for hybrid or FTS queries.
22 lines
579 B
Python
22 lines
579 B
Python
import duckdb
|
|
import pyarrow as pa
|
|
|
|
import lancedb
|
|
from lancedb.integrations.pyarrow import PyarrowDatasetAdapter
|
|
|
|
|
|
def test_basic_query(tmp_path):
|
|
data = pa.table({"x": [1, 2, 3, 4], "y": [5, 6, 7, 8]})
|
|
conn = lancedb.connect(tmp_path)
|
|
tbl = conn.create_table("test", data)
|
|
|
|
adapter = PyarrowDatasetAdapter(tbl) # noqa: F841
|
|
|
|
duck_conn = duckdb.connect()
|
|
|
|
results = duck_conn.sql("SELECT SUM(x) FROM adapter").fetchall()
|
|
assert results[0][0] == 10
|
|
|
|
results = duck_conn.sql("SELECT SUM(y) FROM adapter").fetchall()
|
|
assert results[0][0] == 26
|