Skip to content

Commit 2e53a17

Browse files
committed
fix
1 parent 3a2c59a commit 2e53a17

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

paimon-python/pypaimon/tests/py36/ao_predicate_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def setUpClass(cls):
4040
('f1', pa.string()),
4141
])
4242
cls.catalog.create_table('default.test_append', Schema.from_pyarrow_schema(
43-
pa_schema, options={'file.format': _random_format()}), False)
43+
pa_schema, options={'file.format': _random_format(), 'metadata.stats-mode': 'full'}), False)
4444

4545
df = pd.DataFrame({
4646
'f0': [1, 2, 3, 4, 5],

paimon-python/pypaimon/tests/py36/rest_ao_read_write_test.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"""
1818
import logging
1919
import time
20+
import random
2021
from datetime import date
2122
from decimal import Decimal
2223
from unittest.mock import Mock
@@ -143,7 +144,9 @@ def test_full_data_types(self):
143144
('f10', pa.decimal128(10, 2)),
144145
('f11', pa.date32()),
145146
])
146-
schema = Schema.from_pyarrow_schema(simple_pa_schema)
147+
stats_enabled = random.random() < 0.5
148+
options = {'metadata.stats-mode': 'full'} if stats_enabled else {}
149+
schema = Schema.from_pyarrow_schema(simple_pa_schema, options=options)
147150
self.rest_catalog.create_table('default.test_full_data_types', schema, False)
148151
table = self.rest_catalog.get_table('default.test_full_data_types')
149152

@@ -183,14 +186,25 @@ def test_full_data_types(self):
183186
manifest_files[0].file_name,
184187
lambda row: table_scan.starting_scanner._filter_manifest_entry(row),
185188
drop_stats=False)
186-
min_value_stats = GenericRowDeserializer.from_bytes(manifest_entries[0].file.value_stats.min_values.data,
187-
table.fields).values
188-
max_value_stats = GenericRowDeserializer.from_bytes(manifest_entries[0].file.value_stats.max_values.data,
189-
table.fields).values
190-
expected_min_values = [col[0].as_py() for col in expect_data]
191-
expected_max_values = [col[1].as_py() for col in expect_data]
192-
self.assertEqual(min_value_stats, expected_min_values)
193-
self.assertEqual(max_value_stats, expected_max_values)
189+
# Python write does not produce value stats
190+
if stats_enabled:
191+
self.assertEqual(manifest_entries[0].file.value_stats_cols, None)
192+
min_value_stats = GenericRowDeserializer.from_bytes(manifest_entries[0].file.value_stats.min_values.data,
193+
table.fields).values
194+
max_value_stats = GenericRowDeserializer.from_bytes(manifest_entries[0].file.value_stats.max_values.data,
195+
table.fields).values
196+
expected_min_values = [col[0].as_py() for col in expect_data]
197+
expected_max_values = [col[1].as_py() for col in expect_data]
198+
self.assertEqual(min_value_stats, expected_min_values)
199+
self.assertEqual(max_value_stats, expected_max_values)
200+
else:
201+
self.assertEqual(manifest_entries[0].file.value_stats_cols, [])
202+
min_value_stats = GenericRowDeserializer.from_bytes(manifest_entries[0].file.value_stats.min_values.data,
203+
[]).values
204+
max_value_stats = GenericRowDeserializer.from_bytes(manifest_entries[0].file.value_stats.max_values.data,
205+
[]).values
206+
self.assertEqual(min_value_stats, [])
207+
self.assertEqual(max_value_stats, [])
194208

195209
def test_mixed_add_and_delete_entries_same_partition(self):
196210
"""Test record_count calculation with mixed ADD/DELETE entries in same partition."""

0 commit comments

Comments
 (0)