Skip to content

Commit 18fb8e6

Browse files
committed
add test
1 parent 02c9ccb commit 18fb8e6

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

tests/integration/test_reads.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,51 @@ def test_pyarrow_limit(catalog: Catalog) -> None:
244244
full_result = table_test_limit.scan(selected_fields=("idx",), limit=999).to_arrow()
245245
assert len(full_result) == 10
246246

247+
# test `to_arrow_batch_reader`
248+
limited_result = table_test_limit.scan(selected_fields=("idx",), limit=1).to_arrow_batch_reader().read_all()
249+
assert len(limited_result) == 1
250+
251+
empty_result = table_test_limit.scan(selected_fields=("idx",), limit=0).to_arrow_batch_reader().read_all()
252+
assert len(empty_result) == 0
253+
254+
full_result = table_test_limit.scan(selected_fields=("idx",), limit=999).to_arrow_batch_reader().read_all()
255+
assert len(full_result) == 10
256+
257+
@pytest.mark.integration
258+
@pytest.mark.parametrize("catalog", [pytest.lazy_fixture("session_catalog_hive"), pytest.lazy_fixture("session_catalog")])
259+
def test_pyarrow_limit_with_multiple_files(catalog: Catalog) -> None:
260+
table_name = "default.test_pyarrow_limit_with_multiple_files"
261+
try:
262+
catalog.drop_table(table_name)
263+
except:
264+
pass
265+
reference_table = catalog.load_table("default.test_limit")
266+
data = reference_table.scan().to_arrow()
267+
table_test_limit = catalog.create_table(table_name, schema=reference_table.schema())
268+
table_test_limit.append(data)
269+
table_test_limit.append(data)
270+
assert len(table_test_limit.inspect.files()) == 2
271+
272+
# # test with multiple files
273+
limited_result = table_test_limit.scan(selected_fields=("idx",), limit=1).to_arrow()
274+
assert len(limited_result) == 1
275+
276+
empty_result = table_test_limit.scan(selected_fields=("idx",), limit=0).to_arrow()
277+
assert len(empty_result) == 0
278+
279+
full_result = table_test_limit.scan(selected_fields=("idx",), limit=999).to_arrow()
280+
assert len(full_result) == 10 * 2
281+
282+
# test `to_arrow_batch_reader`
283+
limited_result = table_test_limit.scan(selected_fields=("idx",), limit=1).to_arrow_batch_reader().read_all()
284+
assert len(limited_result) == 1
285+
286+
empty_result = table_test_limit.scan(selected_fields=("idx",), limit=0).to_arrow_batch_reader().read_all()
287+
assert len(empty_result) == 0
288+
289+
full_result = table_test_limit.scan(selected_fields=("idx",), limit=999).to_arrow_batch_reader().read_all()
290+
assert len(full_result) == 10 * 2
291+
247292

248293
@pytest.mark.integration
249294
@pytest.mark.filterwarnings("ignore")

0 commit comments

Comments
 (0)