)]}'
{
  "commit": "c263bdd9afc0a188690c78b8585f5fac734a3f51",
  "tree": "b9c2ad7def88ce816ab24975e72c9326447ad57c",
  "parents": [
    "e3b56d8280509f7081eacf7c6c82e3a0f792bad0"
  ],
  "author": {
    "name": "ChengHui Chen",
    "email": "27797326+chenghuichen@users.noreply.github.com",
    "time": "Mon Jul 28 10:05:08 2025 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 28 10:05:08 2025 +0800"
  },
  "message": "#49 Implement Python native write with PyArrow (#51)\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "328c7e63039ea67780ac7e971b2d6f7b6c211773",
      "old_mode": 33261,
      "old_path": "dev/dev-requirements.txt",
      "new_id": "00945251a9d82288426a330669681df26d2202ca",
      "new_mode": 33261,
      "new_path": "dev/dev-requirements.txt"
    },
    {
      "type": "modify",
      "old_id": "c41cdf4e26917d6ee5bf3f54842133eab3a6fd5a",
      "old_mode": 33188,
      "old_path": "pypaimon/__init__.py",
      "new_id": "e154fadd32b99b34e94ca0bce5090eb9c0c60773",
      "new_mode": 33188,
      "new_path": "pypaimon/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "44717bf3b37ba6c5556b5285280bd71b93e14c6e",
      "old_mode": 33188,
      "old_path": "pypaimon/api/__init__.py",
      "new_id": "4b57391f6033e04a2ad2b82b57feac1c7ae19e48",
      "new_mode": 33188,
      "new_path": "pypaimon/api/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "313215902e29f7616e8ff2fe7a3754fd8b18909d",
      "old_mode": 33188,
      "old_path": "pypaimon/api/catalog.py",
      "new_id": "6e77a315d51d8420ef1b078d5143b523a5542298",
      "new_mode": 33188,
      "new_path": "pypaimon/api/catalog.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c497e22834799ba85c92b392f1e2a4013768cb9b",
      "new_mode": 33188,
      "new_path": "pypaimon/api/catalog_factory.py"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/__init__.py",
      "new_id": "db89430020ddf034107df7368ed2b7eca78dffac",
      "new_mode": 33188,
      "new_path": "pypaimon/api/database.py",
      "score": 76
    },
    {
      "type": "copy",
      "old_id": "9883cb88766b9b15e5cebf1ccaa93d25ca40c62f",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/empty_record_reader.py",
      "new_id": "e01b85ba578326faf41a40a289bc6d883fc9d773",
      "new_mode": 33188,
      "new_path": "pypaimon/api/schema.py",
      "score": 61
    },
    {
      "type": "modify",
      "old_id": "7eef7b40ac3671d51eabbabe578396858aa7b8c6",
      "old_mode": 33188,
      "old_path": "pypaimon/api/table.py",
      "new_id": "310c7dbc122dc4fd81a77efb844ba5dcc4d84aa0",
      "new_mode": 33188,
      "new_path": "pypaimon/api/table.py"
    },
    {
      "type": "modify",
      "old_id": "60b31e70668abacbe0bdf7d3a5782097ec8cf107",
      "old_mode": 33188,
      "old_path": "pypaimon/api/table_read.py",
      "new_id": "ca8847f2e5003ed7fd17bdc9f2b241e38f4b4619",
      "new_mode": 33188,
      "new_path": "pypaimon/api/table_read.py"
    },
    {
      "type": "modify",
      "old_id": "88396209e11c811f26afe84342f6286cf20aff14",
      "old_mode": 33188,
      "old_path": "pypaimon/api/table_write.py",
      "new_id": "fcb4ff9c7613442135be862b297d7aacdae72bfc",
      "new_mode": 33188,
      "new_path": "pypaimon/api/table_write.py"
    },
    {
      "type": "modify",
      "old_id": "9152d3a4b662b8808137570d7edb1ecfbc772472",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/__init__.py",
      "new_id": "35d479de0ff47bebd1e99e6d6732b01cef880315",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "41d7a0dd3de6eef1d20cbf05198d69c0ea750fad",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/java_gateway.py",
      "new_id": "372b767dd0be21dce517c89fc320faa7522449d9",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/java_gateway.py"
    },
    {
      "type": "modify",
      "old_id": "34bd1c8391e7c35d07346cfa8a0dbabac80fce77",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/java_implementation.py",
      "new_id": "467e38d2f45ba71844bf4e050bd4df7b760e9057",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/java_implementation.py"
    },
    {
      "type": "modify",
      "old_id": "b0d0e41d5a7d855019c2d38204b572d8faba4776",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/tests/test_data_types.py",
      "new_id": "44ee89b23e0a2c4c84bb8256b728bea57c40d399",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/tests/test_data_types.py"
    },
    {
      "type": "modify",
      "old_id": "e3591c9491f07a99c9c8381e29db3110166562b7",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/tests/test_object_metadata.py",
      "new_id": "b1aa5eb20dba0bd16deb7a7cac25a74033d48ce4",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/tests/test_object_metadata.py"
    },
    {
      "type": "modify",
      "old_id": "f538c93ec024980449ee7b9739eeedf8b70d6764",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/tests/test_preicates.py",
      "new_id": "13ad06f9e0edff0777e94a669731f44fcce83f77",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/tests/test_preicates.py"
    },
    {
      "type": "modify",
      "old_id": "14e41387df606d0e67c89ebbdde88d1401dbfef8",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/tests/test_write_and_read.py",
      "new_id": "4a6a56bba87fd048ace914252b5105acc0ab9425",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/tests/test_write_and_read.py"
    },
    {
      "type": "modify",
      "old_id": "2a2aac9796f932b13e442ec854d040d1bd7e79db",
      "old_mode": 33188,
      "old_path": "pypaimon/py4j/util/java_utils.py",
      "new_id": "0976b51734abc820a379ca5b49b901d6e9eaaf34",
      "new_mode": 33188,
      "new_path": "pypaimon/py4j/util/java_utils.py"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f19dfebdaab06a08be7ae04094759e2185732d35",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/abstract_catalog.py"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/__init__.py",
      "new_id": "32442a2c12b90797832f2ae62b9c8a4c29c3cf88",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/catalog_constant.py",
      "score": 78
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4216b1429c33066c365a3fe164698857a771ebfa",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/catalog_exception.py"
    },
    {
      "type": "rename",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/__init__.py",
      "new_id": "c44772fbbbd180a041d49ceda4c51c96bf95151a",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/catalog_option.py",
      "score": 84
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1242f5bdf3c808ab62c11f245fc855881af95dec",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/filesystem_catalog.py"
    },
    {
      "type": "copy",
      "old_id": "9883cb88766b9b15e5cebf1ccaa93d25ca40c62f",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/empty_record_reader.py",
      "new_id": "da131c8deeafa1eef900cebef85fc82a7d0ff740",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/catalog/hive_catalog.py",
      "score": 63
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bb47eff62586d1a0d627e9b1377b6aea14999c8a",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/core_option.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab755860544baa155cad339e686e9a5e4fe9cd80",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/data_field.py"
    },
    {
      "type": "modify",
      "old_id": "9f377297eed0346858f5427f8f72f01ebe13703e",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/exception.py",
      "new_id": "d034fd1c78a8145d658f783a0ea8daea982f0309",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/exception.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6eb8c60f7bf34acb4d1bc8c28baa0fdb2dc62d53",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/file_io.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "586493cd0a9f5d2a32520637f280c87b83040ade",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/identifier.py"
    },
    {
      "type": "modify",
      "old_id": "cadff46a6c00a3ec32ca8c4b482ffad20e0392fd",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/predicate.py",
      "new_id": "3bb6a4304e43c8ab373f92d5f349f1e045fcffbf",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/predicate.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e8a866909c417e7a862bb87d532c97a33e64d991",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/common/predicate_builder.py"
    },
    {
      "type": "delete",
      "old_id": "244539d4c3394557f1f06d445f849a064c0d80af",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/columnar_row.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d8c9951e11bf445339fc2cd6203abbb3a7c65917",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/key_value.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "8ae21a29bd3a6becabc1bdbaca0f4b032cbf0ac2",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/offset_row.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0c38598c2a0dd3f6ea70b485322beea835541e6f",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/interval_partition.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "40a43407c6b06151dfdf0b27605a82fe101d2858",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/partition_info.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b8d7c623b188d59c149de4690232bf297d85eced",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/read_builder_impl.py"
    },
    {
      "type": "rename",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5133fe86886b3c355a3181ae1a5036df912c244f",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/concat_batch_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63becce91cc3fed74630b4691aaad27ce570b7eb",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/concat_record_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0c536b73f7b59293b4d445fc12a758162f1ce889",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/data_file_record_reader.py"
    },
    {
      "type": "rename",
      "old_id": "ccb70e002ac5661f3d3b639052220d2a0a425205",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/drop_delete_reader.py",
      "new_id": "9d203d437f3e5b85ee708f2346872a974496eaf3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/drop_delete_reader.py",
      "score": 77
    },
    {
      "type": "rename",
      "old_id": "9883cb88766b9b15e5cebf1ccaa93d25ca40c62f",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/empty_record_reader.py",
      "new_id": "7874f95033539c63892b72dbb8b8574591c0945f",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/empty_record_reader.py",
      "score": 85
    },
    {
      "type": "rename",
      "old_id": "ef578290ea0ee13d82d7832e23cd400934e43239",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/filter_record_reader.py",
      "new_id": "28a41dd969d3d74cf6ffd2a61be67bd085e30996",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/filter_record_reader.py",
      "score": 72
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d145045fbe58d77ecccfb5da89a25a8140142ce9",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/format_avro_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3bc8a13d70ae3200193858dab673abe4f4f7fe4",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/format_pyarrow_reader.py"
    },
    {
      "type": "rename",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/core/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/iface/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ec8229022b3c6bfb1fdb748f8414beeb991afa7",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/iface/record_batch_reader.py"
    },
    {
      "type": "rename",
      "old_id": "4d3712c6c30bb2ab51336c504d3683aec7f3e7ab",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/core/record_iterator.py",
      "new_id": "6684d8fd4c4cb4d2a56aa3eedec140b15f6e0827",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/iface/record_iterator.py",
      "score": 90
    },
    {
      "type": "rename",
      "old_id": "f7226fa27e243fb4b9bdcab3e86216303b18762b",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/core/record_reader.py",
      "new_id": "d93e4803c2ab4482050b58c7b8eba1ae99673b71",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/iface/record_reader.py",
      "score": 90
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f236d694c3ea8bc0d757a4ebf8e5c9a77ebe7cf7",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/key_value_unwrap_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a779d4db7bba00ade6bb9292f52b72eab539be41",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/key_value_wrap_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14688e123138596218345f6134a6f9926006866f",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/reader/sort_merge_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87d11119aabdfd21e93916a680c6e24ce68bb42d",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/split_impl.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3ddac29eb98012248438de8195bea73d2f582d81",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/split_read.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6850e936dcaff3b841b07571d4327dbff720b566",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/table_read_impl.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0427e197ca560adfe702380350cd0f36024da86c",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/read/table_scan_impl.py"
    },
    {
      "type": "delete",
      "old_id": "6852516823e375e8b1503915e4dc3487fa5518e7",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/avro_format_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "ccbffab3d58fccaba8a45d125655e0290fca2d99",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/concat_record_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "124e4af5146032a263eea57f62aac22f907cd337",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/core/columnar_row_iterator.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "590a65e1d2b89ce7eea2fdb5b21629fcae72acdd",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/core/file_record_iterator.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2d03cd1dfa8aec1c9598c39f024c0ffb5bf385e1",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/core/file_record_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "a8b28eb95cbde9e5072ac7dce585d274085e44b7",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/data_file_record_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9add03e3acb1eeafb8ae0ec29dc50503714a6fa1",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/key_value_unwrap_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "980e7e5dd9c9e0daf504fe3d1a0d478b32b6800e",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/key_value_wrap_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "07ed9f77e980eaee2333329cad930b29722cfa71",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/pyarrow_dataset_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "30757b2bacb1779d9d6591d0e98e1a4b8bfe7086",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/sort_merge_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/row/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7800084ef30062a0db2c11cc9b524bdfaf7aa967",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/row/binary_row.py"
    },
    {
      "type": "rename",
      "old_id": "4c46ed926c537b5ba3d6a5e342a13aee4dfc7b27",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/internal_row.py",
      "new_id": "7c7d0d2ee8d1b7bd87f73e06d1629b6cbb80b1a0",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/row/internal_row.py",
      "score": 83
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0ac342ba5e86ae523604d9b3a4bb894d215c158",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/row/key_value.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e3975bd4d666a3e7387bb10f2c3c6797dfbfd47c",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/row/offset_row.py"
    },
    {
      "type": "rename",
      "old_id": "ff9b9b18e9b62d397658a8781d3aed91f8dcb7ca",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/row_kind.py",
      "new_id": "06a2904fb33b3d9355ec89c4c659161d6c2ad76a",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/row/row_kind.py",
      "score": 90
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/sample/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/sample/hdfs_read_and_write.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3be54bcb5352d220a3d29d680b22c164526b6e6b",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/sample/oss_read_and_write.py"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/__init__.py",
      "score": 100
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/__init__.py",
      "new_id": "df6c8e949d87587fa48545d08c08a958a86773d5",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/bucket_mode.py",
      "score": 81
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "86fab1984d3f0a71ae9555ac948a8b0b8236cff9",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/data_file_meta.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bc27a6209c0940089d357ea3136807e66ab60198",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/file_store_table.py"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/common/row/__init__.py",
      "new_id": "0edbad4f57d61f1efecbd374e227a3980954ff02",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/manifest_entry.py",
      "score": 76
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "49ea44e5b7e642c625616f58b1abbf10e4444974",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/manifest_file_manager.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "afd061c97b97d1cb455d7eddfa92116aa13e0b11",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/manifest_list_manager.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b8258219a8d91b20b475ab7a1f62c2d32af4437",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/schema.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1c4051186a26290b881ac6855c0b8c1ab850fdd0",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/schema_manager.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7fb631e2a86a0904b548a47612ceecda17f81fc4",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/schema_util.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1bf571ba95de24c157f09d6da5c2158fabab5acc",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/snapshot.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d82108487fb329aa3a182e59a0c93badb139a26",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/table/snapshot_manager.py"
    },
    {
      "type": "modify",
      "old_id": "e173487d4605efd62d8459a73ee2b0033ca95c06",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/tests/__init__.py",
      "new_id": "92d694e22ef69e302efaae759e0310e62b56d44b",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/tests/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c94fbe232c0f0fae5aa2db87b38fefaa33186c0",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/tests/test_append_only_reader.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a7fda71ce11cae85ca13d0c77fa325f1cf6a6cfa",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/tests/test_native_write_and_read.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02d32b1070ba1267393dc9d15f429f882e3c06f9",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/tests/test_primary_key_reader.py"
    },
    {
      "type": "delete",
      "old_id": "fe9efb3e6b9a2e29a051c10bab95063c20f485e6",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/tests/test_pynative_reader.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e945ba76b341ee344349c9289165b698987de7f9",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/util/global_timer.py"
    },
    {
      "type": "modify",
      "old_id": "e3c549959420429fc45f08503e7b7b44430c1136",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/util/predicate_converter.py",
      "new_id": "d84c98f4157b39d82502fb6552b5825f422b6fcf",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/util/predicate_converter.py"
    },
    {
      "type": "modify",
      "old_id": "8178449e4440552ae5c2ba3cdca9c1090794ceb1",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/util/predicate_utils.py",
      "new_id": "e312cf7fd22e1bf160689cdc3c67683f3194285d",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/util/predicate_utils.py"
    },
    {
      "type": "delete",
      "old_id": "0ccae0f95abe5423dae441407bc1d9e2b3b1da84",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/util/reader_convert_func.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "92c8ddf15bb646a5086354c30050ad5164833b7f",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/util/reader_converter.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "copy",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/writer/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ee2e162d8e678d7f2e11bf99600e46128bf2da2",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/batch_table_commit_impl.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0b05f3ab726ee5c8996a8d84d7e031efe11d6c1d",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/batch_table_write_impl.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "34d713a754e5cfc1443f3b02ebc1458c196b5239",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/batch_write_builder.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a846edb99589e7c6a12a2a77f18876b890615941",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/commit_message_impl.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cd57dc5b42e0114c795a7f4938c5b1ea492387ff",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/file_store_commit.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b971f2263882e0517b14c8cf3ee3e9c4b31440d1",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/file_store_write.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3cc9d5a5f22e043537d071135b7eeed9c5232fcd",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/row_key_extractor.py"
    },
    {
      "type": "rename",
      "old_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/writer/__init__.py",
      "new_id": "65b48d4d79b4e39f57109bc0e22c48a5cd04b3a3",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/writer/__init__.py",
      "score": 100
    },
    {
      "type": "copy",
      "old_id": "9883cb88766b9b15e5cebf1ccaa93d25ca40c62f",
      "old_mode": 33188,
      "old_path": "pypaimon/pynative/reader/empty_record_reader.py",
      "new_id": "b5c9e47a5a7b89e11da52caa4a2a32c7b71b2552",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/writer/append_only_data_writer.py",
      "score": 68
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bb0e1b94a080e638c51b46695072109391b8b404",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/writer/data_writer.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f9dddab6fe899466e4ba421da123b8ef49389464",
      "new_mode": 33188,
      "new_path": "pypaimon/pynative/write/writer/key_value_data_writer.py"
    },
    {
      "type": "modify",
      "old_id": "0762a6975ec6406a203088ac5321b18cb7eeb616",
      "old_mode": 33188,
      "old_path": "setup.py",
      "new_id": "5795f5324e74fdc0c2271540ada692dc5d669341",
      "new_mode": 33188,
      "new_path": "setup.py"
    },
    {
      "type": "modify",
      "old_id": "8ce06f8dae0efa19ab87ca3a03e8321c3cc3d7d9",
      "old_mode": 33188,
      "old_path": "tox.ini",
      "new_id": "693c910ce882e6f18f5e73da16ac9eaffdf0bd34",
      "new_mode": 33188,
      "new_path": "tox.ini"
    }
  ]
}
