)]}'
{
  "log": [
    {
      "commit": "d4a19cb25ca638cf33b9bc73d5e1e9f5017de789",
      "tree": "a576cfbc761ea3d980ac0354b069e90fd68c3f66",
      "parents": [
        "c0eea854181ed577ba5a95cb511c8e26c2f8c48a"
      ],
      "author": {
        "name": "小明同学",
        "email": "72908278+ChaomingZhangCN@users.noreply.github.com",
        "time": "Fri Aug 14 18:23:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 18:23:56 2026 +0800"
      },
      "message": "fix(tests): use portable bigint test literals (#200)\n\n* fix(parquet): use portable bigint test literals\n\n* fix(tests): format bigint predicate cases"
    },
    {
      "commit": "c0eea854181ed577ba5a95cb511c8e26c2f8c48a",
      "tree": "3f6a00f8a8d1d6f042444588656187c12beb69a1",
      "parents": [
        "68329f0865727d37e7a092e44fbaa93bf4e261d9"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Fri Aug 14 18:23:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 18:23:27 2026 +0800"
      },
      "message": "refactor(common): centralize checked class-pointer casts (#202)\n\n* refactor(common): centralize checked class-pointer casts\n\n* fix comments"
    },
    {
      "commit": "68329f0865727d37e7a092e44fbaa93bf4e261d9",
      "tree": "2dee0ccaeef1975e72718209420d6fd7a45558ba",
      "parents": [
        "67e6acac7a884af68ced8921e875b642fc02eb9e"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Thu Aug 13 18:05:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 18:05:19 2026 +0800"
      },
      "message": "build(lucene): use official Boost source archive (#201)"
    },
    {
      "commit": "67e6acac7a884af68ced8921e875b642fc02eb9e",
      "tree": "a4ed15b94058534260c6927301d84aa3b6440a7a",
      "parents": [
        "3cb6e1a61eb49eb087710f8e46263fcbf13ba22e"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Thu Aug 13 02:43:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 17:43:03 2026 +0800"
      },
      "message": "feat(shredding): support selected-key pushdown by MapSharedShreddingAccessBuilder (#195)\n\n* feat(shredding): support selected-key pushdown by MapSharedShreddingAccessBuilder\n\n* fix pre-commit\n\n* fix comment"
    },
    {
      "commit": "3cb6e1a61eb49eb087710f8e46263fcbf13ba22e",
      "tree": "70b3d6243c546fe7ef827c2fc6d90a568681f3af",
      "parents": [
        "1389694430100dc70afe43ab541e9a38795d9faf"
      ],
      "author": {
        "name": "Mr Dk.",
        "email": "mrdrivingduck@gmail.com",
        "time": "Thu Aug 13 16:04:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 16:04:23 2026 +0800"
      },
      "message": "perf(fs): avoid redundant object-store metadata requests (#189)\n\nRead planning already has data file sizes, but opening those files\nstill makes an extra metadata request on object stores.\n\nAdd a metadata-aware file-opening interface. Implementations that do\nnot need it validate the supplied metadata and fall back to the\nexisting path-based behavior. Object stores override it to use\ntrusted metadata directly, avoiding the extra request.\n\nRoute the new interface through filesystem routing and document the\ntrusted-metadata contract. Keep a follow-up for deletion vector\nindex files.\n\nUpdate the object-store test to use the metadata-aware interface.\n\nCo-authored-by: GPT-5.6 Terra \u003ccodex@users.noreply.github.com\u003e"
    },
    {
      "commit": "1389694430100dc70afe43ab541e9a38795d9faf",
      "tree": "dd562febe7858c71f90dd905719a93ddd4a1f705",
      "parents": [
        "f75a464303c8598a9be04fa0c464c5a69626db64"
      ],
      "author": {
        "name": "Nicholas Jiang",
        "email": "programgeek@163.com",
        "time": "Thu Aug 13 10:49:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 10:49:29 2026 +0800"
      },
      "message": "feat(read): support deletion vectors for data-evolution tables (#191)"
    },
    {
      "commit": "f75a464303c8598a9be04fa0c464c5a69626db64",
      "tree": "21f27aa56eab91f23f9b31f2947198801ab0583e",
      "parents": [
        "01fde19a64f795c12e93543acdb729c977c1d1f6"
      ],
      "author": {
        "name": "Zhou Hongfeng",
        "email": "87103887+zhf999@users.noreply.github.com",
        "time": "Wed Aug 12 13:56:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 13:56:09 2026 +0800"
      },
      "message": "perf(reader): rebase Arrow offsets by slicing buffers (zero-copy) instead of copying values (#188)\n\n* feat: support zero-copy slice for RecordBatch\n\n* test: add test cases\n\n* refractor: extract RebaseBoolean function\n\n* style: clang-tiyd\n\n* add test for large_list\n\n* stlye: add TODO\n\n* style: pre-commit\n\n* style: pre-commit\n\n* style: change variable type\n\n* test: add test case for timestamp\n\n* test: add test cases for nested columns with offsets is zero while children type is non-zero"
    },
    {
      "commit": "01fde19a64f795c12e93543acdb729c977c1d1f6",
      "tree": "4d0f02d7e8b774ab06bd12b12f5755e0779b09e2",
      "parents": [
        "fa37cb025216e71c5b20993c4ea52ba168ba7393"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Wed Aug 12 13:55:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 13:55:07 2026 +0800"
      },
      "message": "feat: support real-time append writes and reads with pluggable memory indexers (#163)\n\n* feat: support real-time append writes with pluggable memory indexers\n\n* adjust offset file\n\n* support union read and reclaim\n\n* fix clang-tidy\n\n* add tests\n\n* rm _OFFSET from paimon special fields\n\n* rm _OFFSET field\n\n* adjust license\n\n* refactor little\n\n* refactor commit\n\n* add tests\n\n* try best efforts when reclaim failed\n\n* fix comments"
    },
    {
      "commit": "fa37cb025216e71c5b20993c4ea52ba168ba7393",
      "tree": "47b4adba78567e528b18100850f773a16428b3e1",
      "parents": [
        "e0db538a7ee7e930d3c1a3bea15a64f4f93c6a76"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Aug 11 16:26:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 16:26:11 2026 +0800"
      },
      "message": "chore: clean up bitmap and CMake compatibility declarations (#193)\n\n* docs: remove bitmap global index compatibility note\n\n* build(cmake): retain CMake 3.22 compatibility"
    },
    {
      "commit": "e0db538a7ee7e930d3c1a3bea15a64f4f93c6a76",
      "tree": "2ad155bb500d256103498f2b2fbccfd7ca42b5b0",
      "parents": [
        "366323740cc13b5e113d9465080624b28e3880e8"
      ],
      "author": {
        "name": "Joey",
        "email": "joey.ljy@alibaba-inc.com",
        "time": "Tue Aug 11 13:54:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 13:54:26 2026 +0800"
      },
      "message": "feat(commit): support dropping delete file stats (#190)\n\n* feat(commit): support dropping delete file stats\n\nHonor manifest.delete-file-drop-stats during commit scans and manifest entry creation while preserving statistics for ADD entries and writer restore.\n\nCo-Authored-By: Codex \u003cnoreply@openai.com\u003e\nAI-Model: gpt-5\nCo-Authored-By: Claude Code \u003cnoreply@anthropic.com\u003e\n\n* fix(commit): refine delete file stats support\n\nRequire callers to pass drop_delete_file_stats explicitly, document the old-reader compatibility default, and cover PK metadata-only level upgrades end to end.\n\nCo-Authored-By: Codex \u003cnoreply@openai.com\u003e\nAI-Model: gpt-5\n\n---------\n\nCo-authored-by: Codex \u003cnoreply@openai.com\u003e\nCo-authored-by: Claude Code \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "366323740cc13b5e113d9465080624b28e3880e8",
      "tree": "04eeeb0f0bc8a37af42095d271b78f2f8cff8479",
      "parents": [
        "58745c5ba12c1e77b2802e4ca4faf2abf5839674"
      ],
      "author": {
        "name": "Mr Dk.",
        "email": "mrdrivingduck@gmail.com",
        "time": "Thu Aug 06 18:26:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 18:26:25 2026 +0800"
      },
      "message": "fix(arrow): retain pools for stream buffers (#182)\n\nKeep Arrow memory pools alive while returned stream buffers remain\nreferenced and note the allocation overhead for a future performance\nimprovement.\n\nAdd deterministic coverage for synchronous and asynchronous reads after\nadapter teardown.\n\nCo-authored-by: GPT-5.6 Terra \u003ccodex@users.noreply.github.com\u003e"
    },
    {
      "commit": "58745c5ba12c1e77b2802e4ca4faf2abf5839674",
      "tree": "5e5020f0fc5178581e1129dea4396d237d8ae38f",
      "parents": [
        "93298198c1c4895050f5630e15f363b0d0f8fe5d"
      ],
      "author": {
        "name": "Nicholas Jiang",
        "email": "programgeek@163.com",
        "time": "Thu Aug 06 13:09:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 13:09:30 2026 +0800"
      },
      "message": "feat(build): support Linux aarch64 builds (#181)"
    },
    {
      "commit": "93298198c1c4895050f5630e15f363b0d0f8fe5d",
      "tree": "6997da0c94c5be8b925882e89cb025fba1fe27d5",
      "parents": [
        "2975a7a9ac211f240d634c30406d76b06d000cad"
      ],
      "author": {
        "name": "Joey",
        "email": "joey.ljy@alibaba-inc.com",
        "time": "Thu Aug 06 10:59:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 10:59:50 2026 +0800"
      },
      "message": "fix(commit): allow disabled manifest delete stats option (#187)\n\nParse manifest.delete-file-drop-stats and reject it only when enabled, because false matches the existing C++ commit behavior.\n\n\nAI-Model: gpt-5\nAI-Contributed/Feature: 8/8\nAI-Contributed/UT: 6/6\n\nCo-authored-by: Codex \u003cnoreply@openai.com\u003e"
    },
    {
      "commit": "2975a7a9ac211f240d634c30406d76b06d000cad",
      "tree": "72bfc036108bf118bc7dd43145781d5eaf187854",
      "parents": [
        "7fda93dd34a4206a5d4cdbf051ec43a8aa3e8d2c"
      ],
      "author": {
        "name": "Zhou Hongfeng",
        "email": "87103887+zhf999@users.noreply.github.com",
        "time": "Wed Aug 05 19:50:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 19:50:48 2026 +0800"
      },
      "message": "fix(parquet): avoid seeking into the middle of a row group when prefetch and page index filtering are both enabled (#185)\n\n* test: add test cases to show problem\n\n* fix: avoid seek to the middle of a RowGroup when reading a parquet with prefetch\u003don and page-inex-filter\u003don\n\n* test: update test cases\n\n* fix: partially-matched path do not push next_row_to_read\n\n* test: update test comments and enable multi-thread reading\n\n* style: update comments\n\n* clang-format"
    },
    {
      "commit": "7fda93dd34a4206a5d4cdbf051ec43a8aa3e8d2c",
      "tree": "459c47cf8471a7de2955bfe862c8e6c0ed2f3785",
      "parents": [
        "653cf187548074d10d8c9e339a50f08e9bbadd14"
      ],
      "author": {
        "name": "liangjie",
        "email": "liangjie.liang@antgroup.com",
        "time": "Wed Aug 05 16:37:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 16:37:16 2026 +0800"
      },
      "message": "feat(aggregate): add Java-compatible field aggregators (#183)\n\n* feat(aggregate): add Java-compatible field aggregators\n\n* chore: use ASF license headers for aggregator files"
    },
    {
      "commit": "653cf187548074d10d8c9e339a50f08e9bbadd14",
      "tree": "6b3b7f1f3b9761a84f103422f6b363c8adb42bc6",
      "parents": [
        "ed60097612479d225893d7a0031bfb4f0c6fae27"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Tue Aug 04 23:29:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 14:29:49 2026 +0800"
      },
      "message": "feat: update commit message to version 12 (#179)\n\n* feat: update commit message to version 12\n\n* add compatibility test\n\n* fix pre-commit"
    },
    {
      "commit": "ed60097612479d225893d7a0031bfb4f0c6fae27",
      "tree": "8c4d6a2c0a1cf02cfd27646f7b3aa164d397dfbe",
      "parents": [
        "92e7e55a8de56b26a90da5f7dbf29966bad41c8e"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Wed Aug 05 11:44:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 11:44:05 2026 +0800"
      },
      "message": "chore: add github triage collaborators (#184)"
    },
    {
      "commit": "92e7e55a8de56b26a90da5f7dbf29966bad41c8e",
      "tree": "e280d722efd9a2b9dbde6db8034c3c061f73000f",
      "parents": [
        "b22463e6c3ed4c48403a9923e9e0113a38279998"
      ],
      "author": {
        "name": "Zhou Hongfeng",
        "email": "87103887+zhf999@users.noreply.github.com",
        "time": "Tue Aug 04 18:30:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 18:30:23 2026 +0800"
      },
      "message": "fix(parquet): allow reading nested list/map columns whose leaf types differ only in representation (#172)"
    },
    {
      "commit": "b22463e6c3ed4c48403a9923e9e0113a38279998",
      "tree": "df1f60eb0e03048c5eea7856070fda446d0c78f1",
      "parents": [
        "81608c7579e908a3b694beeab6dfe95234d39fa0"
      ],
      "author": {
        "name": "Zhou Hongfeng",
        "email": "87103887+zhf999@users.noreply.github.com",
        "time": "Tue Aug 04 18:29:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 18:29:30 2026 +0800"
      },
      "message": "fix(parquet): reuse RowGroupPageIndexReader in FileReaderWrapper layer (#166)"
    },
    {
      "commit": "81608c7579e908a3b694beeab6dfe95234d39fa0",
      "tree": "18dbb73e190071dadc8b4fea55b261eef2201a52",
      "parents": [
        "c961ff222129e55e085c353b652632b112fb1d87"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Tue Aug 04 16:49:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 16:49:12 2026 +0800"
      },
      "message": "fix: support nullable map key schemas and reject null key data (#176)\n\n* fix: support nullable map key schemas and reject null key data\n\n* add validate for avro"
    },
    {
      "commit": "c961ff222129e55e085c353b652632b112fb1d87",
      "tree": "41a408b8d331bb04ad8b7312d41b690aa3e93731",
      "parents": [
        "208f65ddffce8741134725597b7c558859159334"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Aug 04 15:13:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 15:13:15 2026 +0800"
      },
      "message": "fix(release): make source archives reproducible (#177)"
    },
    {
      "commit": "208f65ddffce8741134725597b7c558859159334",
      "tree": "26df35f91ed6b09c3b150034f89b574e03a60569",
      "parents": [
        "036f7f6aa49010619a1079e3eeb6f5aa0b533a7b"
      ],
      "author": {
        "name": "Nicholas Jiang",
        "email": "programgeek@163.com",
        "time": "Mon Aug 03 20:58:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 20:58:25 2026 +0800"
      },
      "message": "feat(rest): support rest catalog for databases, tables and snapshots (#165)\n\nAdd a REST catalog selected via the \"metastore\u003drest\" option:\n\n- RestHttpClient: blocking libcurl client with exponential-backoff\n  retries. 429/503 are retried for every method, a transient transport\n  error only for an idempotent one; a server closing the connection\n  without responding is not retried. A Retry-After header is honored in\n  both the delta-seconds and the HTTP-date form with a\n  locale-independent parse, and is never shortened: the overall retry\n  budget bounds it while the per-sleep cap bounds only the backoff. Easy\n  handles are pooled, so a request reuses the previous connection\n  instead of paying a handshake every time; TLS below 1.2 is refused and\n  requests carry a default user agent. Every transported request is\n  debug-logged with the server request id.\n- RestApi: HTTP + JSON protocol layer. \"/v1/config\" merges the server\n  options into the client ones (overrides \u003e client options \u003e defaults,\n  an override sent as null unsets the client option), \"header.\" options\n  are sent as request headers and a listing follows the page tokens to\n  the last page. A failed request maps to a Status by the code of the\n  parsed error body, falling back to the http status, and carries a\n  RestErrorDetail with that code so callers can tell e.g. an\n  authentication failure from another IO error. A response body is never\n  echoed into an error, since it may carry credentials, so a body that\n  is not an error object is only reported as unparsable.\n- RestCatalog: database, table and snapshot operations, with\n  \"table-default.\" option defaults and a schema conversion computing the\n  highest field id (ids at or above the new\n  SpecialFieldIds::SYSTEM_FIELD_ID_START are excluded, duplicated ids\n  are rejected at any nesting level). A branch stays in the object name\n  so the server resolves it and returns the branch\u0027s own schema, the\n  default branch \"main\" being matched ignoring case and addressed as the\n  bare table. The \"sys\" database serves the local global system tables\n  like FileSystemCatalog.\n- Bear token authentication provider (\"bear\" is the protocol\u0027s\n  historical spelling of \"bearer\"). RestAuthParameter::Create\n  url-encodes the query parameter values a signing provider signs.\n- CatalogOptions: public catalog-level option keys (metastore, uri,\n  token, token.provider, \"table-default.\" prefix), kept separate from\n  the table-level CoreOptions.\n- CatalogUtils: system database, system table and branch checks shared\n  by FileSystemCatalog and RestCatalog.\n- RestUtil::ExtractRequestId: the request id lookup shared by the debug\n  log line and the error message, falling back to any header whose name\n  carries a request id since a gateway may report it under its own name.\n\nThe pieces overlapping with the object store file systems move to\ncommon/utils: UrlUtils carries both URL encoding flavors\n(form-urlencoded for the REST api, RFC 3986 for S3), the generic HTTP\nclient moves there from common/fs, and the new SensitiveConfigUtils\nredacts credentials for every surface that may expose them - the\nsys.catalog_options table masks the value of a credential-carrying\noption key, keeping at most a short tail of an identifier-like value,\nand a server error message carrying a secret marker is redacted as a\nwhole.\n\nlibcurl is used from the system, so the new PAIMON_ENABLE_REST option\ndefaults to OFF like the other optional components with external\nrequirements; its CMake detection is a single find_package guarded by\nPAIMON_ENABLE_S3 OR PAIMON_ENABLE_REST.\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "036f7f6aa49010619a1079e3eeb6f5aa0b533a7b",
      "tree": "8e760ed9847bb1dc6e3f813b07db1fdc4a2b13a7",
      "parents": [
        "75544f79df885fe76ff3309ce530626ce18cb35c"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Mon Aug 03 14:53:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 14:53:15 2026 +0800"
      },
      "message": "chore: bump version to 0.4.0 (#175)"
    },
    {
      "commit": "75544f79df885fe76ff3309ce530626ce18cb35c",
      "tree": "5a0818998eff881dd208697d6f6fd1857c1a202d",
      "parents": [
        "4ad64a96fa9ec88b9baba9809644aa3aca8833c8"
      ],
      "author": {
        "name": "Zhou Hongfeng",
        "email": "87103887+zhf999@users.noreply.github.com",
        "time": "Mon Aug 03 13:05:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 13:05:53 2026 +0800"
      },
      "message": "feat(parquet): skip page headers of unselected pages via OffsetIndex-based direct read plan (#167)\n\n* fix(parquet): skip reading page header for unneeded pages\n\n* style: clang tidy\n\n* fix"
    },
    {
      "commit": "4ad64a96fa9ec88b9baba9809644aa3aca8833c8",
      "tree": "546fd410d82fc3373aaf5dcbbd6e506b005c2646",
      "parents": [
        "9277fdf4cd87a9eb8ab4b9c7a766e2884a57b604"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Mon Aug 03 11:42:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 11:42:54 2026 +0800"
      },
      "message": "docs: standardize Paimon C++ naming (#168)"
    },
    {
      "commit": "9277fdf4cd87a9eb8ab4b9c7a766e2884a57b604",
      "tree": "69c272456160db30c6566f537f76f44b817e6836",
      "parents": [
        "a8992628bbacec4f3e1b3bfa0b2ebfd204454731"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Sat Aug 01 16:00:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 01 16:00:30 2026 +0800"
      },
      "message": "chore: prepare the repository for v0.3.0 (#162)"
    },
    {
      "commit": "a8992628bbacec4f3e1b3bfa0b2ebfd204454731",
      "tree": "382eaa437cfc9e02bd753342c59cf0c5e36148d6",
      "parents": [
        "90b231b1eac7230c8220a512aa952ba2fe19900c"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Sat Aug 01 10:36:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 01 10:36:43 2026 +0800"
      },
      "message": "feat: migrate Paimon C++ 0.3 development history (#161)\n\n* feat: Add metadata system tables\n\n* fix: add break for CHAR_END_SUBTYPE\n\n* fix: Fix MemorySegment::Compare to use big-endian byte-order comparison semantics\n\n* chore(license): refine build support notices\n\n* fix: Fix undefined behavior in BinarySection bitmask constants caused by signed left shift\n\n* refactor: ColumnarArray: change constructor parameter to raw pointer to clarify non-owning semantics\n\n* feat: Support macOS builds with AppleClang and Homebrew Clang\n\n* fix: fix undefined behavior in bitwise left-shift operations across codebase\n\n* feat: optimize parquet reads with page-level filtering\n\n* fix: add ScopeGuard to wait async tasks before early return in OrphanFilesCleanerImpl::Clean()\n\n* feat(lumina): support null values in vector column during index building\n\n* chore: modify comment in RecordBatch \u0026 add check in GenericRow\n\n* fix: fix clang-tidy issues\n\n* chore: add check scale in BinaryRowWriter\n\n* fix: fix ub in Blob\n\n* refact: Refactor Literal operator\u003d\u003d to delegate to CompareTo for consistent equality semantics\n\n* refactor: Reuse RowGroupPageIndexReader across columns to improve page-level predicate pushdown performance\n\n* feat(blob): Support blob-descriptor-field for inline blob descriptor storage\n\n* fix: Like::TestString to align with Java LIKE semantics\n\n* chore: update LICENSE with additional PyTorch copyright information\n\n* fix: date validation reject invalid dates instead of silent normalization\n\n* fix: fix thread-safe problem for file store path factory\n\n* feat: Improve PK MOR read performance with batch queue and cached column metadata\n\n* fix: avoid signed integer overflow UB in BloomFilter and DeltaVarintCompressor\n\n* feat: optimize count(*) for pk/append table\n\nCo-authored-by: dalingmeng \u003cmenglingda.mld@alibaba-inc.com\u003e\n\n* feat(blob): support blob-view-field for cross-table blob reference re…\n\n* fix: fix unstable prefetch reader case\n\n* feat: remove support for FLOAT/DOUBLE type partition field\n\n* fix: skip object store check when UseRESTCatalogCommit is enabled\n\n* feat: add Bucket() virtual interface to DataSplit base class\n\n* fix(fs): normalize local filesystem paths and some refactoring\n\n* fix(fs): normalize local paths\n\n* fix(fs): simplify external path position update\n\n* fix(schema): treat rowkind as special field\n\n* refactor(fs): return LocalFile create as unique ptr\n\n* feat(benchmark): add append/pk table benchmark\n\n* Allow FileStoreCommit for PK tables with postpone bucket mode\n\n* Allow FileStoreCommit for PK tables with postpone bucket mode\n\nPostpone bucket mode (bucket\u003d-2) writes data like an append table:\nall files go to bucket--2/ directory and the REST catalog server\nhandles bucket redistribution during background compaction. The\ncommit logic (manifest and snapshot generation) is identical to\nappend tables, so there is no reason to block it.\n\nSee: https://paimon.apache.org/docs/master/primary-key-table/data-distribution/#postpone-bucket\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* Potential fix for pull request finding\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* Address review feedback: use NumBuckets() and Options::BUCKET constant\n\n- Replace raw schema options map lookup with TableSchema::NumBuckets()\n  for postpone bucket check\n- Use Options::BUCKET constant instead of hardcoded \"bucket\" in tests\n- Add IsNotImplemented() status kind assertion in rejection test\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* fix: Avoid signed overflow UB in BSI index and null-deref in bloom filter index\n\n* fix: LZ4 block compressor/decompressor safety issues\n\n* fix(avro): format avro types in decoder errors\n\n* fix: override CachedInputStream::Advance to avoid real I/O for skipped pages\n\n* fix: replace arrow type DECIMAL to DECIMAL128\n\n* fix: remove trailing semicolons from statement-like macro definitions\n\n* fix: change FileStorePathFactory::Create() to return shared_ptr\n\n* refactor(blob): refactor BlobFileContext to honor the actual schema when classifying BLOB fields\n\n* fix: address ubsan findings\n\n* fix(build): make package config relocatable\n\n* fix(parquet): fix incorrect chunk_end calculation in ComputePageRanges when dictionary page is present\n\n* feat(fs): support int64 file IO sizes\n\n* fix: small fixes for parquet reader including RowRanges, PreBuffer, ColumnIndexFilter and code cleanup\n\n* feat(blob view): support multi-thread reading upstream table \u0026 add inte test\n\n* test: add blob compatible test\n\n* refractor(parquet): simplify FileReaderWrapper and PageFilteredRowGroupReader with unified TargetRowGroup structure\n\n* fix(scan): fix dangling reference and unsigned overflow in FileStoreScan\n\n* feat(shredding): Add infrastructure for shared-shredding MAP storage layout\n\n* fix: make byte hashing independent of char signedness\n\n* feat(shared-shredding): support nested field projection in ORC format reader\n\n* fix: prevent zero-thread DefaultExecutor and validate FileSystem/SchemeMap conflict\n\n* fix: small fixes for AI reviewing feedback\n\n* feat: Optimize PK MOR read performance by reduce per-row object allocation and improve merge read performance.\n\n* feat: Add manifests and files system tables\n\n* fix: canonicalize NaN for Hive bucket hash\n\n* feat(cache): support manifest file cache\n\n* feat(schema): support pk table schema evolution\n\n* fix: fix min/max row id serialize bug\n\n* feat: update lumina lib to v0.3.0-rc1\n\n* feat(shredding): support shared-shredding map write\n\n* fix(parquet): fallback nested field reading to RowGroup reading (walkaround)\n\n* feat(tantivy): add Tantivy full-text global index via Rust FFI\n\n* feat(parquet): support parquet metadata cache\n\n* fix(format): reset avro reader on schema change\n\n* feat(shredding): support shared shredding file reader\n\n* fix: address avro blob and executor review issues\n\n* feat(shredding): improve shared-shredding adaptive width restore \u0026 refactor write\n\n* feat: support read for nested type sub column\n\n* fix: close input/output streams when remote lookup file read/write failed\n\n* fix(testing): address review issues\n\n* feat(shared_shredding): add read inte test for shared_shredding\n\n* feat: add CreateReader api with field_name \u0026 index_type\n\n* feat(shredding): add shared-shredding map placement policies\n\n* feat(types): support CHAR/VARCHAR/BINARY/VARBINARY in data type json parser\n\n* fix: align duplicate-key replacement semantics with Java Paimon\n\n* fix: handle non-contiguous RowRanges when resolving global row IDs\n\n* test: add tests for executor\n\n* fix: release global index writer before reader to avoid mem issue when write index failed\n\n* fix: fix IsThreadSafe() in UnionGlobalIndexReader\n\n* test: add map shared-shredding tests for compaction and alter table and predicates\n\n* feat(blob): Remove blob external storage mode\n\n* feat(schema): scan context support set table schema\n\n* feat(manifest): support snapshot live manifest cache\n\n* feat(parquet): support pushing bitmaps down to page-level filtering (except for nested columns)\n\n* chore: adjust set read_ranges_freshed_ in SetReadRanges\n\n* docs: add coding agent guidelines\n\n* fix: compile with correct flags with AppleClang\n\n* feat(shared-shredding): Expose shared-shredding utilities\n\n* feat(blob view): support blob-view.resolve.enabled to preserve blob view references at read time\n\n* fix(build): disable glog unwind without libunwind\n\n* fix(avro): include headers used by file batch reader\n\n* fix(orc): avoid removed Arrow bitmap append API\n\n* feat(commit): align functionality with java paimon commit\n\n* feat: add read-optimized system table\n\n* feat(blob): support blob.split-by-file-size to weigh blob files in scan splitting\n\n* feat(blob): support blob-write-null-on-missing-file and blob-write-null-on-fetch-failure options\n\n* fix(commit): fix changelogRecordCount nullopt and add ut\n\n* fix(fs): create parent directories before opening Jindo writers\n\n* fix(jindo): make async reads concurrency-safe\n\n* fix: enable TSAN and resolve detected data races\n\n* feat(parquet): support configurable bitmap row-range refining strategies (coalesce and trim)\n\n* feat(commit): support TruncateTable/Abort/RollbackToAsLatest and add ut\n\n* build: fetch Lumina from release package\n\n* fix(blob): identify a missing blob file with FileSystem::Exists\n\n* fix(btree): preserve empty keys in index metadata \u0026 disable global bitmap index\n\n* feat(variant): support variant data type\n\n* build: fetch Boost from OSS and define network test macro globally\n\n* build: fetch Boost from OSS\n\n* build: define network test macro globally\n\n* feat: add metrics storage-read-bytes for parquet and fix clean inte test\n\n* feat(lumina): support Lumina tag filtering\n\n* fix(reader): ensure batch readers return zero-offset Arrow arrays\n\n* feat: add global system tables framework under `sys` database\n\n* refactor(format): remove Lance support\n\n* refactor(tantivy): move FFI crate under crates\n\n* chore: clean up attribution and test data whitespace\n\n* fix(blob): support blob-only writes and reject nested blob fields\n\n* fix: nested list schema evolution\n\n* fix(abi): dynamic_cast error on Predicate across shared libraries\n\n* feat(fs): add object store and S3 file systems\n\nAdd a reusable read-only object store layer with a curl-based HTTP\ntransport.\n\nUse the AWS C authentication components for credential resolution and\nrequest signing while keeping S3 data access independent of the full AWS\nSDK.\n\n* feat(parquet): support page-level (page index) filtering for nested column types (patch arrow)\n\n* test: add test for test coverage\n\n* test: add ut for release-0.3\n\n* chore: remove Git LFS and refresh documentation\n\n* fix(blob): allow blob files across schema IDs\n\n* fix(core): support fallback keys for ignore-delete option\n\n* feat(shredding): support adaptive schemas across rolling files\n\n* fix(lucene): normalize prefix and wildcard queries\n\n* chore: update version to 0.3.0\n\n* feat(blob): support placeholder fallback for partial updates\n\n* feat(parquet): support configuring Arrow pre-buffer hole-size-limit for range coalescing\n\n* fix: align floating-point semantics with Java\n\n* chore: remove target-only migration leftover\n\n* fix(release): align documentation version\n\n* ci: add consolidated build and test workflow\n\n* fix: align source archive and integration tests\n\n* ci: disable clang-tidy\n\n---------\n\nCo-authored-by: Socrates \u003csuxiaogang223@icloud.com\u003e\nCo-authored-by: lszskye \u003c57179283+lszskye@users.noreply.github.com\u003e\nCo-authored-by: Zhang Jiawei \u003c30893610+zjw1111@users.noreply.github.com\u003e\nCo-authored-by: liangjie \u003cliangjie.liang@antgroup.com\u003e\nCo-authored-by: Zhou Hongfeng \u003c87103887+zhf999@users.noreply.github.com\u003e\nCo-authored-by: dalingmeng \u003c49717204+dalingmeng@users.noreply.github.com\u003e\nCo-authored-by: Yonghao Fang \u003cyonghao.fyh@alibaba-inc.com\u003e\nCo-authored-by: dalingmeng \u003cmenglingda.mld@alibaba-inc.com\u003e\nCo-authored-by: Joey \u003cliujiayi771@apache.org\u003e\nCo-authored-by: fourier307 \u003c8501328+fourier307@users.noreply.github.com\u003e\nCo-authored-by: Joey \u003cjoey.ljy@alibaba-inc.com\u003e\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\nCo-authored-by: Gang Wu \u003custcwg@gmail.com\u003e\nCo-authored-by: gripleaf \u003c425797155@qq.com\u003e\nCo-authored-by: spaces-x \u003cdlut.weixiang@gmail.com\u003e\nCo-authored-by: Nicholas Jiang \u003cprogramgeek@163.com\u003e\nCo-authored-by: Xiaoguang Zhu \u003csmdsbz@qq.com\u003e\nCo-authored-by: Mr Dk. \u003cmrdrivingduck@gmail.com\u003e\nCo-authored-by: Zouxxyy \u003czouxinyu.zxy@alibaba-inc.com\u003e\nCo-authored-by: XiaoHongbo \u003c1346652787@qq.com\u003e\nCo-authored-by: Wei Zhang \u003czhangweilst@gmail.com\u003e"
    },
    {
      "commit": "90b231b1eac7230c8220a512aa952ba2fe19900c",
      "tree": "d683a424f2d14459ded1f2553f7ff7d79de779f9",
      "parents": [
        "0b24a844b6311d1dbbb32074e09e93afdd35d58c"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Fri Jul 31 16:35:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 16:35:37 2026 +0800"
      },
      "message": "chore: enable rebase merges (#160)"
    },
    {
      "commit": "0b24a844b6311d1dbbb32074e09e93afdd35d58c",
      "tree": "16fd191eb4bebe9f5b0f0063ab0e9e3c1cbba16b",
      "parents": [
        "eae924b1e992cdd96d7a10bdbaf9bc82d5e536ff"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Wed Jul 29 15:30:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 15:30:04 2026 +0800"
      },
      "message": "chore: add and harden Apache release tooling (#156)"
    },
    {
      "commit": "eae924b1e992cdd96d7a10bdbaf9bc82d5e536ff",
      "tree": "fc666af4d528241811eb3c39c12e1bf304b26b53",
      "parents": [
        "131b0921663a2f7384b863124657a9fcfc0f6f21"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jul 23 21:19:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 21:19:09 2026 +0800"
      },
      "message": "chore: prepare Apache Paimon C++ 0.2.3 release (#155)\n\n* docs: align feature guidance with implementation\n\n* docs: clarify build and commit integration\n\n* chore: prepare Apache Paimon C++ 0.2.3 release"
    },
    {
      "commit": "131b0921663a2f7384b863124657a9fcfc0f6f21",
      "tree": "e9638063b75828694dcb68a53df7582d0db82d87",
      "parents": [
        "2e94a8f2f4e2700051f3808c60f39d92fb8e6832"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jul 23 14:01:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 14:01:55 2026 +0800"
      },
      "message": "fix: sync missing changes after repository migration (#154)\n\n* fix(build): make package config relocatable (#306)\n\n* fix: fix thread-safe problem for file store path factory (#323)\n\n* feat(lumina): support null values in vector column during index building (#310)\n\n* feat: add CreateReader api with field_name \u0026 index_type (#391)\n\n* test: add tests for executor (#396)\n\n* fix: fix IsThreadSafe() in UnionGlobalIndexReader (#395)\n\n* fix: release global index writer before reader to avoid mem issue when write index failed (#398)\n\n* fix: complete undefined shift fixes from #308\n\nMigrate the two remaining hunks from alibaba/paimon-cpp@620adbe3590d4fea2c9835eebc5bb66fe41eb633; the other hunks are already present in Apache.\n\n* chore: remove remaining Lance references\n\n* feat: remove support for FLOAT/DOUBLE type partition field (#333)\n\n* refactor: remove unused path-based reader builder\n\n---------\n\nCo-authored-by: Yonghao Fang \u003cyonghao.fyh@alibaba-inc.com\u003e\nCo-authored-by: lxy \u003c38709059+lxy-9602@users.noreply.github.com\u003e\nCo-authored-by: lszskye \u003c57179283+lszskye@users.noreply.github.com\u003e"
    },
    {
      "commit": "2e94a8f2f4e2700051f3808c60f39d92fb8e6832",
      "tree": "078cc9d2797af7afd9b556fa571683f1272fff67",
      "parents": [
        "823b350d998abeb97a2b901267a67698a2f59fb0"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jul 23 14:01:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 14:01:51 2026 +0800"
      },
      "message": "chore: clean up license and notice attribution (#153)"
    },
    {
      "commit": "823b350d998abeb97a2b901267a67698a2f59fb0",
      "tree": "a174d2e3636a1d4e8f668e0e0418326f8e481a3e",
      "parents": [
        "f7e575157d718dfd489fbf3bd0467fa1d4147772"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Wed Jul 22 11:49:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 11:49:12 2026 +0800"
      },
      "message": "feat(index): introduce Lumina vector index and enable Lucene builds (#151)"
    },
    {
      "commit": "f7e575157d718dfd489fbf3bd0467fa1d4147772",
      "tree": "9dda274896b986cde55cc722b3385c75b1c4d5dc",
      "parents": [
        "5c81256f095b0e6b829c133bf66ea024734d2285"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Jul 14 14:55:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 14:55:16 2026 +0800"
      },
      "message": "feat(fs): introduce Jindo file system support (#148)"
    },
    {
      "commit": "5c81256f095b0e6b829c133bf66ea024734d2285",
      "tree": "65bd1c6578a4d5683692c76fc6522ca92f30855d",
      "parents": [
        "be8b3fe249b1f615a00cc6a757e72264a0363de8"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Jul 14 14:55:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 14:55:05 2026 +0800"
      },
      "message": "chore: clean up test data README whitespace (#147)"
    },
    {
      "commit": "be8b3fe249b1f615a00cc6a757e72264a0363de8",
      "tree": "aa729b30a334c26f089837010cd405ae87ed0e23",
      "parents": [
        "f98d67ee5ca6204a8adc6cd48cc0bb5d4473c760"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Jul 14 14:54:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 14:54:31 2026 +0800"
      },
      "message": "fix: add ScopeGuard to wait async tasks before early return in OrphanFilesCleanerImpl::Clean() (#307) (#150)"
    },
    {
      "commit": "f98d67ee5ca6204a8adc6cd48cc0bb5d4473c760",
      "tree": "4d63dc93fdd5528783ff7d5a13d7c424d98fdc7b",
      "parents": [
        "a4f6fe5baad19e8baae029c77f1adc3446cb641f"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Fri Jul 10 17:00:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 17:00:24 2026 +0800"
      },
      "message": "chore: update homepage url links (#146)"
    },
    {
      "commit": "a4f6fe5baad19e8baae029c77f1adc3446cb641f",
      "tree": "f052294d161f632d21487246e231df913e7576f5",
      "parents": [
        "b7d8f52056052805425a2b47d4f0e0ce13a20adb"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Thu Jul 09 15:15:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 15:15:25 2026 +0800"
      },
      "message": "chore: add github workflows and update asf yaml (#144)"
    },
    {
      "commit": "b7d8f52056052805425a2b47d4f0e0ce13a20adb",
      "tree": "945b671730459051cde09d881520419fbdffe278",
      "parents": [
        "e0cf3f5b9a613192665079da8f9465ebf81f3372"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Wed Jul 08 17:46:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 17:46:06 2026 +0800"
      },
      "message": "fix: fix compile and format (#143)"
    },
    {
      "commit": "e0cf3f5b9a613192665079da8f9465ebf81f3372",
      "tree": "4d3ae9d04b706b74502d8ef0dc7f97af17255915",
      "parents": [
        "79729d719f8aea825d316c1184446df632137e58"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jul 07 20:28:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:28:32 2026 +0800"
      },
      "message": "fix: move append_only_writer files to core module (#141)"
    },
    {
      "commit": "79729d719f8aea825d316c1184446df632137e58",
      "tree": "00301d85431ce493d4c5663555e00058ecfe7296",
      "parents": [
        "eec4f8d5149c95f113fae4c89ac14fad7c8f1966"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Tue Jul 07 05:28:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:28:28 2026 +0800"
      },
      "message": "feat: introduce FieldMapping and FieldMappingBuilder (#137)"
    },
    {
      "commit": "eec4f8d5149c95f113fae4c89ac14fad7c8f1966",
      "tree": "b0477c9d4ee209b9ddcf3e5be3be7af38fad2c99",
      "parents": [
        "82a73ca33b19382ecfac5a7793414416bde24c24"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jul 07 20:28:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:28:23 2026 +0800"
      },
      "message": "test: add write integration test coverage (#124)"
    },
    {
      "commit": "82a73ca33b19382ecfac5a7793414416bde24c24",
      "tree": "bd0c206da7ff47df340c0809561d6a047b60eba2",
      "parents": [
        "584f6fbc4f178032ce595d750d6d88faf694456b"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jul 07 20:28:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:28:19 2026 +0800"
      },
      "message": "test: add testing utilities for data generation, row conversion and result validation (#123)"
    },
    {
      "commit": "584f6fbc4f178032ce595d750d6d88faf694456b",
      "tree": "485708d1d0231d059178f8e0ca39d02c018ac099",
      "parents": [
        "c8148825833e12b2d42ba9693e5a549e80a2c303"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jul 07 20:28:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:28:15 2026 +0800"
      },
      "message": "feat: add ORC format reader/writer utilities (#122)"
    },
    {
      "commit": "c8148825833e12b2d42ba9693e5a549e80a2c303",
      "tree": "9d5efe1b2dbf937567f5c7aba47f9cc11a7804fd",
      "parents": [
        "9fcb8478ce94d49af2197a1049dc3bd019da5a2e"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Thu Jul 02 19:17:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:17:17 2026 +0800"
      },
      "message": "test(orc): add unit tests for orc format (#136)"
    },
    {
      "commit": "9fcb8478ce94d49af2197a1049dc3bd019da5a2e",
      "tree": "4fd78020430a2d5604075f7f1266398c8bbf2eaf",
      "parents": [
        "c213775a5486c5c8eb533bba3c97c471e111789f"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Thu Jul 02 19:17:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:17:14 2026 +0800"
      },
      "message": "feat(orc): introduce ORC format infrastructure for statistics extraction, predicate pushdown, and read range generation (#135)"
    },
    {
      "commit": "c213775a5486c5c8eb533bba3c97c471e111789f",
      "tree": "87c25588deaf7d2cfb9c64881c2422360d5c2a5c",
      "parents": [
        "337b42d2dd825a1e87eca714a19d4acffb527e22"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Thu Jul 02 19:17:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:17:10 2026 +0800"
      },
      "message": "test: add scan_and_read_inte_test (#134)"
    },
    {
      "commit": "337b42d2dd825a1e87eca714a19d4acffb527e22",
      "tree": "8534e359e0fcd8920c3aee6886ffc158c32e6270",
      "parents": [
        "c8687c08fc9346d1b775888d952970ff81876a98"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Fri Jul 03 10:17:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:17:06 2026 +0800"
      },
      "message": "feat: mv append compact task and coordinator (#142)"
    },
    {
      "commit": "c8687c08fc9346d1b775888d952970ff81876a98",
      "tree": "f3914ab05b088c6e19a996034c1af86d852c4e3c",
      "parents": [
        "f71f7fae5cf6a22186854a9da2ec0d87f1832a56"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Fri Jul 03 10:17:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:17:02 2026 +0800"
      },
      "message": "feat: Migrate audit log and binlog system tables (#140)"
    },
    {
      "commit": "f71f7fae5cf6a22186854a9da2ec0d87f1832a56",
      "tree": "1f694acbd6a3a64d2e6068e8fc5830ff55d58c28",
      "parents": [
        "3415b20699481b1d444b9a523eb6f3a66bb12487"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Fri Jul 03 10:16:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:58 2026 +0800"
      },
      "message": "feat: Migrate blob file context and byte range utilities (#130)"
    },
    {
      "commit": "3415b20699481b1d444b9a523eb6f3a66bb12487",
      "tree": "1d3ec6e761c5771e3221004ca2d54fbc3b08107b",
      "parents": [
        "a65f96a697cef3f83f9a4a9a9284696b44182b61"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Fri Jul 03 10:16:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:54 2026 +0800"
      },
      "message": "feat(format): add ORC format adapter, stream implementations and builder utilities (#121)"
    },
    {
      "commit": "a65f96a697cef3f83f9a4a9a9284696b44182b61",
      "tree": "cb39731416a65f87f2f02d6ca4433a79a497d710",
      "parents": [
        "373c4832fad19b1c995158a3322127e55cfe93d3"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Fri Jul 03 10:16:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:50 2026 +0800"
      },
      "message": "feat(catalog): add catalog interfaces, file system catalog and snapshot commit utilities (#120)"
    },
    {
      "commit": "373c4832fad19b1c995158a3322127e55cfe93d3",
      "tree": "9442c68a676e7f59dbe0aba5f3e37b5f17da30ec",
      "parents": [
        "f99028b65cf962eba19f7468a182a09aa20c3c9e"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Fri Jul 03 10:16:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:45 2026 +0800"
      },
      "message": "feat: add commit message and system table utilities (#119)"
    },
    {
      "commit": "f99028b65cf962eba19f7468a182a09aa20c3c9e",
      "tree": "6963950886ef30c4a4cf44e4b5d1a942ee0e6e25",
      "parents": [
        "ffa2f23829abe2c7a02295af7c2ced1b7d9946c8"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Fri Jul 03 10:16:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:41 2026 +0800"
      },
      "message": "test(data): introduce avro orc and parquet fixtures (#139)"
    },
    {
      "commit": "ffa2f23829abe2c7a02295af7c2ced1b7d9946c8",
      "tree": "caf7ce568d2a3b2d0b94d52038f690d3057d8488",
      "parents": [
        "0f2cd19782e469a96c4a630d5c3ef8b636b8b0fe"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Fri Jul 03 10:16:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:37 2026 +0800"
      },
      "message": "feat(build): introduce build scripts and public API headers (#129)"
    },
    {
      "commit": "0f2cd19782e469a96c4a630d5c3ef8b636b8b0fe",
      "tree": "9b048493aa779b4724d90eb524065b5521b7aaf3",
      "parents": [
        "d945409532b8db12e113082c9ec51230bcf9bedb"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Fri Jul 03 10:16:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 10:16:33 2026 +0800"
      },
      "message": "feat(core): introduce core options (#115)"
    },
    {
      "commit": "d945409532b8db12e113082c9ec51230bcf9bedb",
      "tree": "c2490a2dbc06b16860f19043a6b18c05b5a1c391",
      "parents": [
        "0a31601b2be53b3ffc4d904fc3c1d249a92efc5e"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jun 30 16:56:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:42 2026 +0800"
      },
      "message": "feat: add snapshot, snapshot_info, and table core utilities with tests (#118)"
    },
    {
      "commit": "0a31601b2be53b3ffc4d904fc3c1d249a92efc5e",
      "tree": "f6499eecdab0554592fdfa303b9f631460684b84",
      "parents": [
        "805b01e73895355abdfdaefb5d0c306b3f4c6110"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jun 30 16:56:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:37 2026 +0800"
      },
      "message": "feat: add compact and postpone bucket writer utilities (#114)"
    },
    {
      "commit": "805b01e73895355abdfdaefb5d0c306b3f4c6110",
      "tree": "2e7a6254ebdf397047f6179362bed2d3a9e1713e",
      "parents": [
        "3e96684a412d1aced8459a87c6c5d2a859e24c62"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jun 30 16:56:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:32 2026 +0800"
      },
      "message": "feat(append): add bucketed append compact manager and coordinator tests (#113)"
    },
    {
      "commit": "3e96684a412d1aced8459a87c6c5d2a859e24c62",
      "tree": "ef727283c1bbd45d92efc4bfc781096b67e03233",
      "parents": [
        "e5aa95742bca434c5283228049b54db96ea28246"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Tue Jun 30 16:56:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:27 2026 +0800"
      },
      "message": "feat(append): add append-only writer, compact task and coordinator (#112)"
    },
    {
      "commit": "e5aa95742bca434c5283228049b54db96ea28246",
      "tree": "521dde86f547d7da4868cd3e19e681e68bc8d554",
      "parents": [
        "6b9eb689d92c32a9425e8782e2c52bdda1f91b4d"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Jun 30 16:56:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:22 2026 +0800"
      },
      "message": "feat(operation): introduce cleanup operations (#128)"
    },
    {
      "commit": "6b9eb689d92c32a9425e8782e2c52bdda1f91b4d",
      "tree": "792ed22bdd338fbef0a11532836e16a6fbffbef3",
      "parents": [
        "0435334e1d1c82dce24e16bd3a364970ab8b037b"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Jun 30 16:56:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:18 2026 +0800"
      },
      "message": "feat(cmake): introduce build configuration (#127)"
    },
    {
      "commit": "0435334e1d1c82dce24e16bd3a364970ab8b037b",
      "tree": "a1138f6dd452b7515e255d4c4c513a3ed99154a3",
      "parents": [
        "36941e2f25293c147c2e34dae109d09e6df93668"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Tue Jun 30 16:56:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:14 2026 +0800"
      },
      "message": "feat(docs): introduce C++ documentation (#126)"
    },
    {
      "commit": "36941e2f25293c147c2e34dae109d09e6df93668",
      "tree": "1870344bd7ea4855a63753a75a8c96ac0ec19242",
      "parents": [
        "2125a7348094d017e64daa86ae2303ddc900eef4"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Tue Jun 30 16:56:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:09 2026 +0800"
      },
      "message": "feat: Migrate global index scan and file meta utilities (#125)"
    },
    {
      "commit": "2125a7348094d017e64daa86ae2303ddc900eef4",
      "tree": "4b2781ee939128074225c7a8a7c1dda6feb86ff5",
      "parents": [
        "630735f3d68c69194977ac606d2430d2cd24570a"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Tue Jun 30 16:56:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:04 2026 +0800"
      },
      "message": "feat: Migrate Lucene global index for fts (#117)"
    },
    {
      "commit": "630735f3d68c69194977ac606d2430d2cd24570a",
      "tree": "40f95e3d8ddea6f8a77f1522b109de3549eeccfb",
      "parents": [
        "78f6f6bfd93972033bd13a512ddb25067409042a"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Tue Jun 30 16:56:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:56:00 2026 +0800"
      },
      "message": "test: Migrate data evolution and global index integration tests (#116)"
    },
    {
      "commit": "78f6f6bfd93972033bd13a512ddb25067409042a",
      "tree": "a2bdd1554153ebcd0c6e6f40289cde80ca9b3a4c",
      "parents": [
        "a4a65caf6265fd13d821e10fd4bb4f8bbb395c49"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Tue Jun 30 01:55:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:55:56 2026 +0800"
      },
      "message": "feat: add table scan, split generation and read infrastructure (#131)"
    },
    {
      "commit": "a4a65caf6265fd13d821e10fd4bb4f8bbb395c49",
      "tree": "ee5678c9c34005013d49a6ae27ad08f572c599f6",
      "parents": [
        "00f1fdd870c574ec77bbc0546a1b97dae2cfe7b2"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Tue Jun 30 01:55:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:55:51 2026 +0800"
      },
      "message": "test: add comprehensive tests for CastExecutor (#132)"
    },
    {
      "commit": "00f1fdd870c574ec77bbc0546a1b97dae2cfe7b2",
      "tree": "cb7e15cc999048e05d5baffdf73ecc3e6a75eb71",
      "parents": [
        "c66286180e2d52e9b70b01d88e660db0d872c64a"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Tue Jun 30 01:55:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:55:46 2026 +0800"
      },
      "message": "test: add integration tests for table scan functionality (#133)"
    },
    {
      "commit": "c66286180e2d52e9b70b01d88e660db0d872c64a",
      "tree": "4a2e6d4a0c875069bc72514cc6f3b3cfdddb1d79",
      "parents": [
        "29c9f20eccd8c10427a3cd25adcd10da1f0ef5fb"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jun 25 10:27:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:33 2026 +0800"
      },
      "message": "feat(common): introduce arrow utilities (#110)"
    },
    {
      "commit": "29c9f20eccd8c10427a3cd25adcd10da1f0ef5fb",
      "tree": "68d8c011b66a0da3b3dc8795a049a94f0121712a",
      "parents": [
        "c9e01dea8c973facf7b8f43950de4fa0ce82682f"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jun 25 10:27:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:29 2026 +0800"
      },
      "message": "feat(testing): introduce mock testing utilities (#109)"
    },
    {
      "commit": "c9e01dea8c973facf7b8f43950de4fa0ce82682f",
      "tree": "f289264ff60dc45470bc82befcb4ce29446a8e66",
      "parents": [
        "e5a7da003a7567dadc0fe87d6f9a4b61b469a45a"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jun 25 10:27:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:25 2026 +0800"
      },
      "message": "feat(test): introduce clean and blob table integration tests (#108)"
    },
    {
      "commit": "e5a7da003a7567dadc0fe87d6f9a4b61b469a45a",
      "tree": "b7185a2b72cb97515934f67d69272ea470ca8c1f",
      "parents": [
        "5ba61ad680a4a89c57e1b965a9f42a609739e394"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Thu Jun 25 10:27:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:21 2026 +0800"
      },
      "message": "feat(mergetree): add compact manager, task abstractions and file rewrite task (#105)"
    },
    {
      "commit": "5ba61ad680a4a89c57e1b965a9f42a609739e394",
      "tree": "6c41ddb19b101985ee1a679e6274016a5dcbf3c0",
      "parents": [
        "aa5a3fb41d463959a9c5d17b6064428f66287beb"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Thu Jun 25 10:27:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:17 2026 +0800"
      },
      "message": "feat(mergetree): add compaction core components and level management (#104)"
    },
    {
      "commit": "aa5a3fb41d463959a9c5d17b6064428f66287beb",
      "tree": "11f7b1b86f10d5244b82a1b7b68c0f83d6a0e655",
      "parents": [
        "0daaef9201430ece8691e4036dc2af386486e662"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Thu Jun 25 10:27:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:13 2026 +0800"
      },
      "message": "test: add FileStoreCommitImpl test coverage (#103)"
    },
    {
      "commit": "0daaef9201430ece8691e4036dc2af386486e662",
      "tree": "511fb68ec80bb43ce4f4e98b2a1ea2410e891e96",
      "parents": [
        "4bf94fed284f70055c81f2dbaa8b4b867b5db9fc"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Thu Jun 25 10:27:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:09 2026 +0800"
      },
      "message": "test: Migrate compaction integration tests (#107)"
    },
    {
      "commit": "4bf94fed284f70055c81f2dbaa8b4b867b5db9fc",
      "tree": "9ea212f84efd259f546f9e403b0d5767ac308f01",
      "parents": [
        "a2df2729f0823bfeb42669c9c006d860ae3c535c"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Thu Jun 25 10:27:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:05 2026 +0800"
      },
      "message": "test: Migrate read integration tests (#106)"
    },
    {
      "commit": "a2df2729f0823bfeb42669c9c006d860ae3c535c",
      "tree": "64d3f68375647a2d430314c69c65506c8a87d195",
      "parents": [
        "e160e778dd94d59426c4239a7bb2db510b989893"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Thu Jun 25 10:27:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:27:01 2026 +0800"
      },
      "message": "feat: Migrate lookup compact rewriter and remote manager (#102)"
    },
    {
      "commit": "e160e778dd94d59426c4239a7bb2db510b989893",
      "tree": "305add65538f5fdfe105582e9bb94d2e7fcbe254",
      "parents": [
        "646a0c4f48419a68fff3327c87f6c72366538f76"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Wed Jun 24 19:26:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:26:57 2026 +0800"
      },
      "message": "feat: implement TableRead and FallbackDataSplit (#111)"
    },
    {
      "commit": "646a0c4f48419a68fff3327c87f6c72366538f76",
      "tree": "5784b57f100069100e67f4f4b13de0fdb7d9ef35",
      "parents": [
        "03a40d536838d75eb387d52c2c6752bacabb83a7"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Wed Jun 24 19:26:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:26:53 2026 +0800"
      },
      "message": "feat: introduce type casting executors for Binary, Date, and Timestamp Types (#101)"
    },
    {
      "commit": "03a40d536838d75eb387d52c2c6752bacabb83a7",
      "tree": "7000fb20bca8a43afac772f4f1739bcdcf0d9053",
      "parents": [
        "91dd3592d8899c1508d40565c4a65ae3b6c28a6e"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Wed Jun 24 19:26:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:26:49 2026 +0800"
      },
      "message": "feat: introduce type casting executors for schema evolution (#100)"
    },
    {
      "commit": "91dd3592d8899c1508d40565c4a65ae3b6c28a6e",
      "tree": "255439159f7fb9d9afb813a7c020c55668debc75",
      "parents": [
        "990580f55a345ba5c3666ecd2147811899547735"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Mon Jun 22 17:33:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:33:24 2026 +0800"
      },
      "message": "feat(format): introduce avro writer components (#88)"
    },
    {
      "commit": "990580f55a345ba5c3666ecd2147811899547735",
      "tree": "6f9ff6c571d65f7ed09d70126429a7fb3b644e78",
      "parents": [
        "ddc8d631cfeb8835c5c3ddc59301b5a3f1d3dbfc"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Mon Jun 22 17:33:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:33:11 2026 +0800"
      },
      "message": "feat(format): introduce avro direct encoding (#94)"
    },
    {
      "commit": "ddc8d631cfeb8835c5c3ddc59301b5a3f1d3dbfc",
      "tree": "1e012b8233c7b6eaabb1afe345b849804ed374c3",
      "parents": [
        "337fccc22b0fa1217321da82b03793749ddbdc4c"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Mon Jun 22 17:32:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:32:59 2026 +0800"
      },
      "message": "feat(format): introduce blob file format (#98)"
    },
    {
      "commit": "337fccc22b0fa1217321da82b03793749ddbdc4c",
      "tree": "049472ea3458c4da41711ce46e91435757e8b205",
      "parents": [
        "dca7183723657e66c6ca989ad200dbb927037f09"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Mon Jun 22 02:32:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:32:45 2026 +0800"
      },
      "message": "feat(btree): add btree global index reader/writer/factory (#89)"
    },
    {
      "commit": "dca7183723657e66c6ca989ad200dbb927037f09",
      "tree": "47ecb496db1011aab66d7e50a8d28c436e3db0b8",
      "parents": [
        "9092d1b60061e9526cef4becb59d21aa263b3163"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Mon Jun 22 02:32:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:32:32 2026 +0800"
      },
      "message": "feat(btree): add btree global index integration tests (#90)"
    },
    {
      "commit": "9092d1b60061e9526cef4becb59d21aa263b3163",
      "tree": "6c89a65df1169b0fb1c27010e35a80a0c236bdfa",
      "parents": [
        "9b27b92f58cadc51a8ce54fb5b0f06c60e186e7b"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Mon Jun 22 02:32:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:32:18 2026 +0800"
      },
      "message": "feat: introduce table scan, split and plan (#99)"
    },
    {
      "commit": "9b27b92f58cadc51a8ce54fb5b0f06c60e186e7b",
      "tree": "dfc89fc0c1884f189a00f56543c734813a39a11d",
      "parents": [
        "abf9e6600ab1fc73503c879f88352e1bc4e17d28"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Mon Jun 22 17:32:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:32:07 2026 +0800"
      },
      "message": "feat: add file store write and restore utilities (#91)"
    },
    {
      "commit": "abf9e6600ab1fc73503c879f88352e1bc4e17d28",
      "tree": "987585c3e4a4f739902ad91e48752aff872351f9",
      "parents": [
        "04769321b45f31d0d1bca29d8e459a6d5af5281a"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Mon Jun 22 17:31:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:31:28 2026 +0800"
      },
      "message": "feat(core): add append-only/key-value file store write and compaction metrics (#92)"
    },
    {
      "commit": "04769321b45f31d0d1bca29d8e459a6d5af5281a",
      "tree": "a7f1da72b5235fcebd10a61fd590f2e110d34b9f",
      "parents": [
        "ec06b4fc5f055f8310eeca1cc79c51a0e2ee3704"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Mon Jun 22 17:31:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:31:14 2026 +0800"
      },
      "message": "feat: add file store commit and manifest merger support (#95)"
    },
    {
      "commit": "ec06b4fc5f055f8310eeca1cc79c51a0e2ee3704",
      "tree": "6b9acd63a9c5198d33517fce5fadec84d3916171",
      "parents": [
        "ff0950083997dddc418ec309c559fcd35d281214"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Mon Jun 22 17:30:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:30:59 2026 +0800"
      },
      "message": "feat: Migrate aggregate merge functions (#93)"
    },
    {
      "commit": "ff0950083997dddc418ec309c559fcd35d281214",
      "tree": "200a96dd8d326fa150722e41792b7c26ab6c3a54",
      "parents": [
        "2407cf1e8d57a6f57ff24bb3cf3dc59d8c0e7e2f"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Mon Jun 22 17:30:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:30:45 2026 +0800"
      },
      "message": "feat: Migrate lookup file support for pk compact (#96)"
    },
    {
      "commit": "2407cf1e8d57a6f57ff24bb3cf3dc59d8c0e7e2f",
      "tree": "efd8d91cd2be9ec5bcdf905488d4a9c089ee4d47",
      "parents": [
        "ba013b476c5bbc5cb27b338e47bb02e962828f59"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Mon Jun 22 17:27:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:27:57 2026 +0800"
      },
      "message": "feat: Migrate pk compact rewriters (#97)"
    },
    {
      "commit": "ba013b476c5bbc5cb27b338e47bb02e962828f59",
      "tree": "120d0826be828946c480808111f3e5a686d432e3",
      "parents": [
        "4d1c320093ff32408269e4fda11c1b3edae1c64c"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Wed Jun 17 19:16:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:57 2026 +0800"
      },
      "message": "feat: add index file metadata and handler infrastructure (#78)"
    },
    {
      "commit": "4d1c320093ff32408269e4fda11c1b3edae1c64c",
      "tree": "784076fce07d8d61fb3e8be0fcffab28477e3eff",
      "parents": [
        "a22663ac5ddd9c7bfc1883f62ef184c34a517d24"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Thu Jun 18 10:16:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:49 2026 +0800"
      },
      "message": "feat: Migrate sort merge reader (#85)"
    },
    {
      "commit": "a22663ac5ddd9c7bfc1883f62ef184c34a517d24",
      "tree": "fe95486bbb0417f6ab73cd8d9ada505f67557137",
      "parents": [
        "8447abf703f8456d80fa7c8fbf974ee616e79056"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Thu Jun 18 10:16:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:42 2026 +0800"
      },
      "message": "feat(manifest): add manifest entry, file metadata and serialization utilities (#86)"
    },
    {
      "commit": "8447abf703f8456d80fa7c8fbf974ee616e79056",
      "tree": "63700651ce98733b0f4de5b21d562c0f0620d1ef",
      "parents": [
        "bee3f8d67fe66e39ed356d59bf8d028456537628"
      ],
      "author": {
        "name": "lszskye",
        "email": "57179283+lszskye@users.noreply.github.com",
        "time": "Wed Jun 17 19:16:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:39 2026 +0800"
      },
      "message": "feat: add type casting infrastructure for schema evolution (#79)"
    },
    {
      "commit": "bee3f8d67fe66e39ed356d59bf8d028456537628",
      "tree": "3986885c569e2232da433ebe447370286420bafe",
      "parents": [
        "124d6ff11c56c783e1a58de19475a2470735d1ea"
      ],
      "author": {
        "name": "Zhang Jiawei",
        "email": "30893610+zjw1111@users.noreply.github.com",
        "time": "Thu Jun 18 10:16:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:30 2026 +0800"
      },
      "message": "feat(format): introduce avro file format (#84)"
    },
    {
      "commit": "124d6ff11c56c783e1a58de19475a2470735d1ea",
      "tree": "106d8da0cbd632c1f7c58c53a97e64632cca1317",
      "parents": [
        "0e85b9e47401935becb4e01fd68b4a454f00a3f0"
      ],
      "author": {
        "name": "lxy",
        "email": "38709059+lxy-9602@users.noreply.github.com",
        "time": "Thu Jun 18 10:16:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:25 2026 +0800"
      },
      "message": "feat: Migrate merge function module (#83)"
    },
    {
      "commit": "0e85b9e47401935becb4e01fd68b4a454f00a3f0",
      "tree": "a1fe7ed101a0143af4b0d2e4cad4fcb966df4e32",
      "parents": [
        "b1a05987803b8ebd2081c7eb285b8ccb03397171"
      ],
      "author": {
        "name": "Yonghao Fang",
        "email": "yonghao.fyh@alibaba-inc.com",
        "time": "Thu Jun 18 10:16:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 10:16:14 2026 +0800"
      },
      "message": "feat(manifest): add manifest and index manifest support (#87)"
    }
  ],
  "next": "b1a05987803b8ebd2081c7eb285b8ccb03397171"
}
