diff --git a/paimon-python/pypaimon/snapshot/snapshot.py b/paimon-python/pypaimon/snapshot/snapshot.py index d5f72dedcf46..b1fdbaafea4c 100644 --- a/paimon-python/pypaimon/snapshot/snapshot.py +++ b/paimon-python/pypaimon/snapshot/snapshot.py @@ -17,7 +17,7 @@ ################################################################################ from dataclasses import dataclass -from typing import Dict, Optional +from typing import Optional from pypaimon.common.json_util import json_field @@ -27,21 +27,20 @@ @dataclass class Snapshot: # Required fields + version: int = json_field("version") id: int = json_field("id") schema_id: int = json_field("schemaId") base_manifest_list: str = json_field("baseManifestList") delta_manifest_list: str = json_field("deltaManifestList") + total_record_count: int = json_field("totalRecordCount") + delta_record_count: int = json_field("deltaRecordCount") commit_user: str = json_field("commitUser") commit_identifier: int = json_field("commitIdentifier") commit_kind: str = json_field("commitKind") time_millis: int = json_field("timeMillis") # Optional fields with defaults - version: Optional[int] = json_field("version", default=None) - log_offsets: Optional[Dict[int, int]] = json_field("logOffsets", default_factory=dict) changelog_manifest_list: Optional[str] = json_field("changelogManifestList", default=None) index_manifest: Optional[str] = json_field("indexManifest", default=None) - total_record_count: Optional[int] = json_field("totalRecordCount", default=None) - delta_record_count: Optional[int] = json_field("deltaRecordCount", default=None) changelog_record_count: Optional[int] = json_field("changelogRecordCount", default=None) watermark: Optional[int] = json_field("watermark", default=None) statistics: Optional[str] = json_field("statistics", default=None) diff --git a/paimon-python/pypaimon/tests/rest/rest_catalog_commit_snapshot_test.py b/paimon-python/pypaimon/tests/rest/rest_catalog_commit_snapshot_test.py index f038f3c0ae61..e9f95d3d0b0e 100644 --- a/paimon-python/pypaimon/tests/rest/rest_catalog_commit_snapshot_test.py +++ b/paimon-python/pypaimon/tests/rest/rest_catalog_commit_snapshot_test.py @@ -57,11 +57,12 @@ def setUp(self): schema_id=0, base_manifest_list="manifest-list-1", delta_manifest_list="manifest-list-1", + total_record_count=1, + delta_record_count=1, commit_user="test_user", commit_identifier=12345, commit_kind="APPEND", - time_millis=int(time.time() * 1000), - log_offsets={} + time_millis=int(time.time() * 1000) ) # Create test statistics diff --git a/paimon-python/pypaimon/tests/rest/rest_server.py b/paimon-python/pypaimon/tests/rest/rest_server.py index 1970b79dd067..b97d015dbeef 100755 --- a/paimon-python/pypaimon/tests/rest/rest_server.py +++ b/paimon-python/pypaimon/tests/rest/rest_server.py @@ -541,11 +541,12 @@ def _write_snapshot_files(self, identifier: Identifier, snapshot, statistics): "schemaId": getattr(snapshot, 'schema_id', 0), "baseManifestList": getattr(snapshot, 'base_manifest_list', f"manifest-list-{uuid.uuid4()}"), "deltaManifestList": getattr(snapshot, 'delta_manifest_list', f"manifest-list-{uuid.uuid4()}"), + "totalRecordCount": getattr(snapshot, 'total_record_count'), + "deltaRecordCount": getattr(snapshot, 'delta_record_count'), "commitUser": getattr(snapshot, 'commit_user', 'rest-server'), "commitIdentifier": getattr(snapshot, 'commit_identifier', 1), "commitKind": getattr(snapshot, 'commit_kind', 'APPEND'), - "timeMillis": getattr(snapshot, 'time_millis', 1703721600000), - "logOffsets": getattr(snapshot, 'log_offsets', {}) + "timeMillis": getattr(snapshot, 'time_millis', 1703721600000) } with open(snapshot_file, 'w') as f: diff --git a/paimon-python/pypaimon/write/file_store_commit.py b/paimon-python/pypaimon/write/file_store_commit.py index 42b1e0ca24e9..e30b272e26fc 100644 --- a/paimon-python/pypaimon/write/file_store_commit.py +++ b/paimon-python/pypaimon/write/file_store_commit.py @@ -199,7 +199,7 @@ def _try_commit(self, commit_kind, commit_entries, commit_identifier): new_snapshot_id = self._generate_snapshot_id() total_record_count += delta_record_count snapshot_data = Snapshot( - version=1, + version=3, id=new_snapshot_id, schema_id=self.table.table_schema.id, base_manifest_list=base_manifest_list,