)]}'
{
  "log": [
    {
      "commit": "d6eba0d5b14dec49636b2a4f578fe8d344673336",
      "tree": "313ed6beb03662515ea3b5754f56afc03ce1c9e8",
      "parents": [
        "207e67eae73f9a069ba469c9a1d8c9c6a1b73e95"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Mon Jun 01 12:12:11 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:12:11 2026 +0500"
      },
      "message": "cloudberry-pxf currently supports only cloudberry-2.x (#112)\n\n1. Use cloudberry 2.x in CI\n2. trying to workaround Rocky Linux issues with modular filtering"
    },
    {
      "commit": "207e67eae73f9a069ba469c9a1d8c9c6a1b73e95",
      "tree": "f53bf03add6554bcf48faefa436a810f24785957",
      "parents": [
        "1f79fccdbb3f3259dad886cd8e6f3b36fc27a1fe"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon May 18 15:40:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 12:40:11 2026 +0500"
      },
      "message": "Upgrade Go toolchain to 1.25 (#110)\n\n- CI workflow: GO_VERSION 1.24 -\u003e 1.25\n- Dockerfile: GO_VERSION 1.24.0 -\u003e 1.25.0\n- go.mod: go 1.24 -\u003e go 1.25\n- Documentation: Update minimum Go version requirement"
    },
    {
      "commit": "1f79fccdbb3f3259dad886cd8e6f3b36fc27a1fe",
      "tree": "c056321f46babc03b14ff37e9a533306eb4dd8a9",
      "parents": [
        "2789f811bb94ff155cc1b5076cda63a07ee73b34"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Mon Apr 20 13:02:46 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 13:02:46 2026 +0500"
      },
      "message": "Testcontainers: Fixes for JDBC test suite (#108)\n\nIn this PR following issues addressed:\n* Docker image size reduced from 4.52G to 3.34G (github provides 10G cache)\n* Runs MS SQL tests with FDW plugin\n* Always specify username/password for PostgreSQL JDBC tests (required for hardened PXF versions)\n* minor cleanups"
    },
    {
      "commit": "2789f811bb94ff155cc1b5076cda63a07ee73b34",
      "tree": "07ae5866e18982ba10380bbf24445248c24b5b79",
      "parents": [
        "b3c58b3c07b27f4f8048f7b45c0b84ca7ddf3aff"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Sun Apr 19 19:40:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 19 19:40:19 2026 +0800"
      },
      "message": "fix: support filter pushdown for numeric columns with integer constants\n\nWhen a numeric column is compared with an integer constant (e.g.,\n  biz_dt \u003d 20260331), PostgreSQL wraps the constant in an implicit\n  int4 -\u003e numeric type cast FuncExpr. The filter extraction code in\n  both the FDW path (fdw/pxf_filter.c) and the external table path\n  (external-table/src/pxffilters.c) only recognized plain Const\n  nodes, so these predicates were silently dropped and the query\n  fell back to a full scan on the remote source.\n\n  Before matching the Var+Const pattern, run eval_const_expressions()\n  on any operand that is neither a Var nor a Const. This folds the\n  implicit cast into a plain Const, after which the existing filter\n  serialization path can push the predicate down unchanged.\n\n  Fix is applied symmetrically in OpExprToPxfFilter (FDW) and\n  opexpr_to_pxffilter (external table). Neither function mutates\n  the original plan tree; only the local leftop/rightop pointers\n  are redirected at the simplified Const.\n\n  Test coverage:\n  * Extend FilterPushDownTest and FDW_FilterPushDownTest regression\n    suites with c3 \u003d 5, c3 \u003c 5, c3 \u003e 1, c3 \u003c\u003d 2, c3 \u003e\u003d 5, c3 \u003c\u003e 5,\n    and c3 BETWEEN 1 AND 5, covering the full set of supported\n    scalar operators when the constant type differs from the column\n    type.\n  * Synchronize the int-const block across both test segments of\n    FilterPushDownTest.sql and its expected output."
    },
    {
      "commit": "b3c58b3c07b27f4f8048f7b45c0b84ca7ddf3aff",
      "tree": "47f47b6d56d22b01401c6b18bbbf5f0237d37997",
      "parents": [
        "c3c759b62a8ef0e2a4d59c476cb882ed7cbed814"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Thu Apr 16 12:38:01 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 12:38:01 2026 +0500"
      },
      "message": "Testcontainers: Add MS SQL JDBC tests (#106)\n\n### Add Microsoft SQL JDBC tests\n\nAdd new tests to cover Cloudberry -\u003e PXF -\u003e JDBC path. In this test we are verifying that main data Cloudberry and MS SQL types can be converted back and forth.\n\nTest covers MS SQL 2019 and 2022 versions."
    },
    {
      "commit": "c3c759b62a8ef0e2a4d59c476cb882ed7cbed814",
      "tree": "86c0b452d7d5bd6a128ef44c9fc5139e94081f9d",
      "parents": [
        "c8e39e19aacc0a5a5deb4a8065927afd7d82f725"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Wed Apr 15 21:46:52 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 21:46:52 2026 +0500"
      },
      "message": "Docs: update JDBC-related docs (#107)\n\n* Docs: update JDBC-related docs\n\n* review"
    },
    {
      "commit": "c8e39e19aacc0a5a5deb4a8065927afd7d82f725",
      "tree": "397fe1f61ded6cb300f1c5a78f00e2ce121ed071",
      "parents": [
        "ccea789115fe65eb119a7bf886f4d68e30022f1f"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Wed Apr 15 08:37:23 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 08:37:23 2026 +0500"
      },
      "message": "Automation: run HBASE in standalone mode (#95)\n\nStart HBase only for test groups that require it (hbase, proxy) instead of launching it as part of the default Hadoop stack. This frees RAM for all other test groups.        \n   \nAdditionally, run HBase in standalone mode:                                                                                                                                   \n * No separate RegionServer process                        \n * No separate ZooKeeper process                                                                                                                                               \n * No dependency on HDFS"
    },
    {
      "commit": "ccea789115fe65eb119a7bf886f4d68e30022f1f",
      "tree": "3d7107bc27f27f51918e3722fe060e61a8ca24de",
      "parents": [
        "3935e9b9dd41dd5cc9523cfff16daa23f3f27006"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 15 10:15:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 10:15:50 2026 +0800"
      },
      "message": "Bump org.apache.tomcat.embed:tomcat-embed-core from 9.0.72 to 9.0.117 in /server (#105)\n\n* Bump org.apache.tomcat.embed:tomcat-embed-core in /server\n\nBumps org.apache.tomcat.embed:tomcat-embed-core from 9.0.72 to 9.0.117.\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.tomcat.embed:tomcat-embed-core\n  dependency-version: 9.0.117\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Update server/build.gradle\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Dianjin Wang \u003cwangdianjin@gmail.com\u003e"
    },
    {
      "commit": "3935e9b9dd41dd5cc9523cfff16daa23f3f27006",
      "tree": "e4ad30066c843cb2508ccfbaaf4fbd16590ccd50",
      "parents": [
        "076aae6c1ddf4e478da83fae053f492e90e3bac7"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Tue Apr 14 12:12:03 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 12:12:03 2026 +0500"
      },
      "message": "Testcontainers: Add Oracle JDBC test (#104)\n\nAdd new tests to cover Cloudberry -\u003e PXF -\u003e JDBC path. In this test we are verifying that main data Cloudberry and Oracle types can be converted back and forth.\n\nTest covers Oracle 23 (only supported by Testcontainers version)."
    },
    {
      "commit": "076aae6c1ddf4e478da83fae053f492e90e3bac7",
      "tree": "9384629eb49aaa55a13feee362e463e4b25bc4ec",
      "parents": [
        "b5711436acf3aca8d87585792536908ed8832635"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Apr 13 10:56:44 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Apr 13 14:54:32 2026 +0800"
      },
      "message": "Fix dependency submission action to use commit SHA\n\nUse pinned commit hash (4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2) instead\nof version tag @v5 to comply with Apache GitHub Actions policy.\n\nFixes #101\n"
    },
    {
      "commit": "b5711436acf3aca8d87585792536908ed8832635",
      "tree": "1edb05190ae662b6e66e5ec14fda38f30ef7b95b",
      "parents": [
        "a02fe8c3e890077f78c1ff0b10ea23af5cd572d2"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Sat Apr 11 19:59:56 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Apr 13 14:12:59 2026 +0800"
      },
      "message": "Align release artifact naming with Apache incubator conventions\n\nUpdate cloudberry-pxf-release.sh to generate artifact filenames\nwithout RC suffix (e.g., apache-cloudberry-pxf-2.1.0-incubating-src.tar.gz)\nwhile keeping RC identifier in directory names only.\n\nBenefits:\n- Simplifies promotion process after vote passes\n- No need to rename files for checksums/signatures\n- Consistent with best practices from other ASF Incubator projects\n- Files are ready for final release from RC stage, can use `svn mv` to\n  promote the RC artifacts to the final version.\n\nExample structure:\n  dev/incubator/cloudberry/2.1.0-incubating-rc1/\n    apache-cloudberry-pxf-2.1.0-incubating-src.tar.gz\n"
    },
    {
      "commit": "a02fe8c3e890077f78c1ff0b10ea23af5cd572d2",
      "tree": "c4634abf9aedbfdcc542b1897e32f38ca86c6046",
      "parents": [
        "d35ba21aad9331965e3235d372a6d175190afe33"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Apr 13 10:22:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 10:22:34 2026 +0800"
      },
      "message": "Upgrade Go toolchain to 1.24 (#99)\n\n- CI workflow: GO_VERSION 1.21 -\u003e 1.24\n- Dockerfile: GO_VERSION 1.21.13 -\u003e 1.24.0\n- go.mod: go 1.21.3 -\u003e go 1.24\n- Documentation: Update minimum Go version requirement\n* Refactor ci/singlecluster/Dockerfile to use GO_VERSION variable\n\nSee: https://github.com/apache/cloudberry-pxf/issues/96"
    },
    {
      "commit": "d35ba21aad9331965e3235d372a6d175190afe33",
      "tree": "3fd554213711748a9bfcdeb2ba421b97532f29d2",
      "parents": [
        "4fdba99817c9bcd8b38cdf12a807592d7dcc1ecb"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Sat Apr 11 11:15:06 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 11 09:15:06 2026 +0300"
      },
      "message": "CI: add caching for testcontainer images (#98)\n\nSpeed up our CI pipeline:\n* cache testcontainer images\n* do not rebuild singlecluster image on every test run\n* allow gradle parallel builds It was disabled for gradle 4.x in https://github.com/apache/cloudberry-pxf/commit/124115d1733fcea7c91514c98b2c58a1a0aaf81f"
    },
    {
      "commit": "4fdba99817c9bcd8b38cdf12a807592d7dcc1ecb",
      "tree": "b0b05677cef7dd587764eb2ff16700acd459b590",
      "parents": [
        "da54b0426ea29f486acbe600c4cddcd938369497"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Thu Apr 09 19:09:06 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 19:09:06 2026 +0500"
      },
      "message": "Testcontainers: Add ClickHouse JDBC test (#97)\n\n### Add ClickHouse JDBC tests\n\nAdd new tests to cover Cloudberry -\u003e PXF -\u003e JDBC path. In this test we are verifying that main data Cloudberry and ClickHouse types can be converted back and forth.\n\nTest covers ClickHouse 24.x and 26.x versions. Open-source ClickHouse has short support lifetime.\n\nI have tested following clickhouse-jdbc drivers:\n* 0.6.x (`jdbc-v1`) - works well with old ClickHouse versions. In ClickHouse 25.10 `jdbc-v1` got broken https://github.com/ClickHouse/clickhouse-java/issues/2636 and all queries raised an \"Magic is not correct\" error message.\n* 0.9.4 - fixes \"Magic\" issues, however has issue with String \u003c-\u003e bytea conversion `ERROR: PXF server error : Method: getBytes(\"bin\") encountered an exception.`\n* 0.9.7+ - works well\n\n### Add jdbc-pxf-drivers project\n\nAdd new `jdbc-pxf-drivers` project to server. It excluded from default DEB-package build. Explicit actions required to install jdbc-drivers.\n\n### Side quest\n\nCloudberry FDW serializes rows as Greenplum CSV \u003d\u003e PXF `TextRecordReader` parses the CSV stream via univocity CSV parser \u003d\u003e for `BYTEA` columns it calls `pgUtilities.parseByteaLiteral()` \u003d\u003e which returns a `ByteBuffer`."
    },
    {
      "commit": "da54b0426ea29f486acbe600c4cddcd938369497",
      "tree": "9b48af52723fb4462836c36922a4a7c8d98627ec",
      "parents": [
        "3942c55e9ee88d6fff301e68b315bb41833ed3a4"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@apache.org",
        "time": "Fri Apr 03 17:06:34 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 17:06:34 2026 +0500"
      },
      "message": "CI: cache deb and rpm for month (#94)\n\n**Cache CPU-heavy CI steps:**\n* DEB build\n* RPM build\n\nThis should speed up our CI pipelines and reduce github actions quota usage.\n\n**Implementations details:**\n* Github cache has 7 days TTL. Every build will reset expiration timeout. In order to force CI to build cloudberry from time to time - I am explicitly specifying current month in a cache key.\n* keep both: `actions/cache` and `actions/actions/upload-artifact`. In case cache eviction happens during build (e.g. hit 10Gb limit) we will still have running builds.\n* cache reused between `main` and other PRs (but not between PRs). So, cache will be filled only during builds in `main`."
    },
    {
      "commit": "3942c55e9ee88d6fff301e68b315bb41833ed3a4",
      "tree": "3d6babf1364a08d02e8e5ce084d78d7dcde1c16b",
      "parents": [
        "d9bded07dcfc8d3cba334bfee8fd655330944f55"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Apr 03 10:28:50 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Apr 03 17:13:00 2026 +0800"
      },
      "message": "Add procps dependency to RPM/DEB for pxf stop command\n\nThe pxf script uses the \u0027ps\u0027 command in the isRunning() function\nto check if the PXF process is running. However, minimal container\nimages like Rocky Linux 9 do not include the \u0027ps\u0027 command by default.\n\nThis causes the \u0027pxf stop\u0027 command to fail with:\n  /usr/local/cloudberry-pxf/bin/pxf: line 162: ps: command not found\n\nAdd explicit package dependencies to ensure the \u0027ps\u0027 command is\navailable when PXF is installed:\n- RPM packages: procps-ng\n- DEB packages: procps\n\nThe \u0027ps\u0027 command is used in:\n- server/pxf-service/src/scripts/pxf:162 (isRunning function)\n"
    },
    {
      "commit": "d9bded07dcfc8d3cba334bfee8fd655330944f55",
      "tree": "b705fe7d182c494107f670c30f797c6c9b700842",
      "parents": [
        "b968bbe8b4d430a5ec88e7df3d644cb852ca90e9"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@apache.org",
        "time": "Fri Apr 03 11:24:33 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 11:24:33 2026 +0500"
      },
      "message": "Run JDBC tests in Testcontainers (MVP) (#91)\n\n* Run JDBC test in Testcontainers\n* both Ubuntu 22.04 and  Rocky Linux 9"
    },
    {
      "commit": "b968bbe8b4d430a5ec88e7df3d644cb852ca90e9",
      "tree": "be8e33891cc35cdd70b4230c1fcacec3e0863c59",
      "parents": [
        "7cfe382014ca63ed2206668582eb46fd1bc29720"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Apr 02 17:25:50 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Apr 03 09:36:04 2026 +0800"
      },
      "message": "Include license files in all package distributions\n\nAdd NOTICE, DISCLAIMER, and LICENSE files to the stage target\nin Makefile to ensure they are included in all package formats\n(tar, rpm, and deb). This ensures proper license attribution and\ncompliance with Apache Software Foundation requirements for all\ndistribution methods.\n\nPreviously, these files were not copied during the packaging\nprocess, which could lead to incomplete license information in\ndistributed packages.\n"
    },
    {
      "commit": "7cfe382014ca63ed2206668582eb46fd1bc29720",
      "tree": "355c018ae17ad2f19dff93181a8366c3d144baf7",
      "parents": [
        "55165b1d1124555cd79de2cf055d3fad220beead"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Mar 31 17:17:30 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Apr 01 10:12:44 2026 +0800"
      },
      "message": "Include `-incubating` in extracted directory name\n\nUpdate release script to append `-incubating` suffix to the\nextracted directory name, ensuring consistency with Apache\nrelease naming conventions.\n\nExample output:\n- Tarball: apache-cloudberry-pxf-2.1.0-incubating-rc2-src.tar.gz\n- Extracted: apache-cloudberry-pxf-2.1.0-incubating/\n"
    },
    {
      "commit": "55165b1d1124555cd79de2cf055d3fad220beead",
      "tree": "197464e588d287ac9888264b69dd26d06649d979",
      "parents": [
        "5d13cad04d64c4dee1efe0742e63f4989884415e"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Fri Mar 27 12:30:41 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 12:30:41 2026 +0500"
      },
      "message": "Partially revert 48302989 to fix pxf_regress (#87)\n\n* Partially revert 4830298\n* Add `@Test(enabled\u003dfalse)` to failed tests"
    },
    {
      "commit": "5d13cad04d64c4dee1efe0742e63f4989884415e",
      "tree": "39fdf0bc3dcceaf39b96e93542e21c813c00b9aa",
      "parents": [
        "df8568f91326df1ce0b8bf97dbf630e5d7490a8f"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Thu Mar 26 20:53:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 20:53:27 2026 +0800"
      },
      "message": "ci: add Rocky 9 support for CI and Docker build environment (#78) \n\n- Unify CI scripts from ubuntu/ to common/, supporting both Ubuntu and Rocky/RHEL\n- via auto-detection of package manager (apt-get vs dnf)\n- Add Rocky 9 Docker Compose and RPM build script (rocky9/)\n- Parameterize singlecluster Dockerfile with ARG BASE_IMAGE for multi-distro builds\n- Add Rocky 9 singlecluster image build job to GitHub Actions workflow\n- Cross-platform JAVA_HOME auto-detection in build_pxf.sh"
    },
    {
      "commit": "df8568f91326df1ce0b8bf97dbf630e5d7490a8f",
      "tree": "b20208e529cf482f6166102d755086018bbae494",
      "parents": [
        "c064f7b1f528118da5af98e9b1f122f025f4bf31"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Thu Mar 26 17:10:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 14:10:22 2026 +0500"
      },
      "message": "fix: add Parquet UUID type support for read/write (#71)\n\n* fix: add Parquet UUID type support for read/write\n\n  - Add UUID (OID 2950) handling by mapping UUID to FIXED_LEN_BYTE_ARRAY primitive type. \n  - UUIDARRAY is also supported.\n  - Add BYTEA fallback for unknown FIXED_LEN_BYTE_ARRAY logical types\n  - Add uuid_types.parquet test fixture and corresponding unit tests"
    },
    {
      "commit": "c064f7b1f528118da5af98e9b1f122f025f4bf31",
      "tree": "80b82184f6bd03a4b8a015768a18690b6a7bf7ce",
      "parents": [
        "a159cf16df177f81a4a1b43d3e6159cd6be8030f"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Mon Mar 23 19:13:40 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 22:13:40 2026 +0800"
      },
      "message": "Add Java 17 support (#72)\n\n  * Upgrade Gradle from 6.8.2 to 7.6.6\n  * Replace gradle-lombok plugin with io.freefair.lombok 6.6.3\n  * Upgrade io.spring.dependency-management to 1.0.15.RELEASE\n  * Add -Xlint:-removal to suppress Security Manager deprecation warnings on Java 17+\n  * Add --add-opens JVM flags for JEP 486 module access (build and runtime)\n  * Add CI matrix job for Java 8, 11, 17 compatibility testing\n  * Remove server test group from automation (covered by java-compatibility-test)\n  * Refactor build_pxf.sh to use per-component install targets"
    },
    {
      "commit": "a159cf16df177f81a4a1b43d3e6159cd6be8030f",
      "tree": "5d15f644ace16ec0db43d280eaaa9859c73e07a4",
      "parents": [
        "0b7379308f1ed9b84b252c9f92cd0997b68ebe2d"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Mar 23 19:17:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 14:17:44 2026 +0300"
      },
      "message": "Brand: update pxf_fdw Makefile description (#75)\n\n* Brand: update pxf_fdw Makefile description\n* update pxf_fdw.control"
    },
    {
      "commit": "0b7379308f1ed9b84b252c9f92cd0997b68ebe2d",
      "tree": "f1aeb864023e2683608c394f5562849e3934eb89",
      "parents": [
        "982f4877e0fc20334e3c0587d95d1bcfc0640527"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Mar 04 10:57:01 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Mar 23 10:57:35 2026 +0800"
      },
      "message": "Fix release tarball base version naming\n\nFor RC tags like X.Y.Z-incubating-rcN, generate the source tarball\nfilename and top-level directory using VERSION_FILE (without -rcN).\n\n$VERSION_FILE is input from the file version.\n\nThis keeps the voted bits ready for promotion without rebuilding and\navoids -rcN showing up in the extracted source directory.\n"
    },
    {
      "commit": "982f4877e0fc20334e3c0587d95d1bcfc0640527",
      "tree": "3068b8f80d85da9fef24ff020c5218f828888aee",
      "parents": [
        "4f961d2a01846f81cf40901570b2e1974e2cb959"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Mar 10 11:38:31 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Mar 23 10:55:56 2026 +0800"
      },
      "message": "Bump version to 2.2.0-SNAPSHOT\n"
    },
    {
      "commit": "4f961d2a01846f81cf40901570b2e1974e2cb959",
      "tree": "2f299fbc2b690f9fedb4a9bba6b17be7b9b8de83",
      "parents": [
        "5ca0e7f3fedeacd8b74e661dfe9e390e2382ce1f"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Wed Mar 18 13:39:26 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 18 16:39:26 2026 +0800"
      },
      "message": "Fix Dependency submission workflow. (#83)\n\nAdd download `gradle-wrapper.jar` step to the Dependency Submission workflow. This should fix the regression in workflow that was introduced recently."
    },
    {
      "commit": "5ca0e7f3fedeacd8b74e661dfe9e390e2382ce1f",
      "tree": "4e266489c98daf4105cb8cd477fe35eed39c6a4f",
      "parents": [
        "36a77ba7a821b164e6d4cb8c0d51f3111cfa28d9"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Mar 18 14:15:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 18 14:15:47 2026 +0800"
      },
      "message": "ASF: update files to make ASF compliance (#80)\n\nThis commit updates our licensing documentation to strictly follow\nApache Software Foundation (ASF) release guidelines and automates\ncompliance verification.\n\nChanges include:\n- Replaced verbose file-by-file lists in the LICENSE file with\n  high-level directory summaries for modules inherited from the\n  original pxf-archive (such as fdw, external-table, server, cli,\n  load, etc.).\n- Retained the Dremio copyright attribution in the LICENSE file.\n- Added the apache-rat-plugin to pom.xml with proper exclusions and\n  custom Greenplum/VMware license family configurations.\n- Introduced a GitHub Actions workflow to run Apache RAT audits\n  automatically on PRs and updates.\n- Add the standard Apache License Header to the files created by the\n  Cloudberry community\n- Update README.md for gradle-wrapper.jar"
    },
    {
      "commit": "36a77ba7a821b164e6d4cb8c0d51f3111cfa28d9",
      "tree": "ff762222e5baee55082b65c3868e0e6e7da8cbd9",
      "parents": [
        "e3d8a0bb43b48a3e0e7b4aeafd2c1cd041339c6e"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Wed Mar 18 07:42:14 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 18 10:42:14 2026 +0800"
      },
      "message": "ASF: remove gradle-wrapper.jar file to make ASF compliant (#81)\n\n* Remove gradle wrapper from ASF Releases and leave it in git repository (mimic apache/calcite project).\n* Fetch gradle wrapper during build phase (mimic apache/nessie)\n* add gradle wrapper and gradle distribution checksum validation. Checksums from https://gradle.org/release-checksums/"
    },
    {
      "commit": "e3d8a0bb43b48a3e0e7b4aeafd2c1cd041339c6e",
      "tree": "b2e38a62a422fc90f2a8e53615cbd3f5014db8c2",
      "parents": [
        "cb17cddc5d56424204da9c7cccbedd8b83fd49dd"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Mar 10 12:10:09 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Mar 11 18:06:29 2026 +0800"
      },
      "message": "Update Makefile to include fdw in DEB/RPM\n"
    },
    {
      "commit": "cb17cddc5d56424204da9c7cccbedd8b83fd49dd",
      "tree": "5ea7a29676e3417eff6fb5a3aaa0c1f508148eb2",
      "parents": [
        "c379399922ae851021ea363072b1b37a6e51a029"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Mar 02 17:57:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 17:57:43 2026 +0800"
      },
      "message": "Add cloudberry-pxf ASF release script (#68)\n\n"
    },
    {
      "commit": "c379399922ae851021ea363072b1b37a6e51a029",
      "tree": "04788871df9eba678b1fe3c7dc8cba32cd230a09",
      "parents": [
        "21da190b8b2614251d17f1f321baca8dfea57329"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Tue Feb 24 07:45:22 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 10:45:22 2026 +0800"
      },
      "message": "Bump Parquet version from 1.12.3 to 1.15.2\n\n### Useful changes in Parquet 1.12.x -\u003e 1.15.x\n* Support LZ4_RAW codec\n* Implement vectored IO in Parquet file format\n* More optimal memory usage in compression codecs\n\nDependency tree changes are small:\n```\n+--- org.apache.parquet:parquet-column:1.15.1\n|    +--- org.apache.parquet:parquet-common:1.15.1\n|    |    +--- org.apache.parquet:parquet-format-structures:1.15.1\n|    +--- org.apache.parquet:parquet-encoding:1.15.1\n|    |    +--- org.apache.parquet:parquet-common:1.15.1 (*)\n+--- org.apache.parquet:parquet-hadoop:1.15.1\n|    +--- org.apache.parquet:parquet-column:1.15.1 (*)\n|    +--- org.apache.parquet:parquet-format-structures:1.15.1 (*)\n|    +--- org.apache.parquet:parquet-common:1.15.1 (*)\n|    +--- org.xerial.snappy:snappy-java:1.1.10.7\n|    +--- io.airlift:aircompressor:2.0.2\n|    +--- commons-pool:commons-pool:1.6\n|    +--- com.github.luben:zstd-jni:1.5.6-6\n+--- org.apache.parquet:parquet-jackson:1.15.1\n+--- org.apache.parquet:parquet-generator:1.15.1\n+--- org.apache.parquet:parquet-pig:1.15.1\n|    +--- org.apache.parquet:parquet-column:1.15.1 (*)\n|    +--- org.apache.parquet:parquet-hadoop:1.15.1 (*)\n|    +--- org.apache.parquet:parquet-common:1.15.1 (*)\n\\--- org.apache.parquet:parquet-format:2.10.0\n```\n\nIt has its own thrift library shaded. It doesn\u0027t depend on protobuf.\n`parquet-hadoop` in fact expects that there is `hadoop-client`, `hadoop-common`, `hadoop-annotations` and  `hadoop-mapreduce-client-core` provided.\n"
    },
    {
      "commit": "21da190b8b2614251d17f1f321baca8dfea57329",
      "tree": "49c2b44c6d4a119a46beac30834e1828a1e8ddcc",
      "parents": [
        "2b01f810b3456d6252aef81299b6f049ffd27a99"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Mon Feb 16 22:19:01 2026 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Feb 24 10:28:04 2026 +0800"
      },
      "message": "docs - pxf_fdw works with HDFS data sources\n"
    },
    {
      "commit": "2b01f810b3456d6252aef81299b6f049ffd27a99",
      "tree": "fb13afc1ed5dff5e07811779d7df54d7acd82f05",
      "parents": [
        "50e908b42f6ec0404f438860a36c2ee20ce6d167"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Feb 10 18:17:47 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Sat Feb 14 08:08:42 2026 +0800"
      },
      "message": "Package: update deb/rpm name formart\n\nUpdate the name format from `cloudberry-pxf-*` to `apache-cloudberry-pxf-incubating` for the deb/rpm files.\n"
    },
    {
      "commit": "50e908b42f6ec0404f438860a36c2ee20ce6d167",
      "tree": "56e7cf437f424ae197c2d01c58893565afe93972",
      "parents": [
        "6a0682e4aea6f88f56aeca35d2ed1e0c21ec6580"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Fri Feb 13 04:50:32 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 13 07:50:32 2026 +0800"
      },
      "message": "Update HBASE to 2.3.7 in PXF (#62)\n\n### hbase-client update\n\nUpdate `hbase-client` from `1.3.2` to `2.3.7` (latest version with minimal 3rd-party library updates) with following decision made:\n* Use hadoop 2 version - Despite of the fact that we are using hadoop 3 in automation tests, we still using hadoop2 libs for all other connectors.\n* Use shaded version of libraries when it relocates java-packages to new namespaces\n* Use non-shaded version of libraries when it just bundles several jars to single fat-jar. Fat jars hides dependencies from gradle, however puts classes on classpath. This will lead to unpredictable issues.\n\nFortunately, `hbase-client:2.3.7` depends on `hadoop-2.10.0` that we are using! No changes here.\n\n### update details\n\n```\nruntimeClasspath - Runtime classpath of source set \u0027main\u0027.\n\\--- org.apache.hbase:hbase-client:2.3.7\n     +--- org.apache.hbase.thirdparty:hbase-shaded-protobuf:3.3.0\n     +--- org.apache.hbase:hbase-common:2.3.7\n     |    +--- org.apache.hbase:hbase-logging:2.3.7\n     |    +--- org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:3.3.0\n     |    |    \\--- com.google.errorprone:error_prone_annotations:2.3.4\n     |    +--- org.apache.hbase.thirdparty:hbase-shaded-gson:3.3.0\n     |    +--- org.apache.hbase.thirdparty:hbase-shaded-netty:3.3.0\n     |    +--- commons-codec:commons-codec:1.13\n     |    +--- org.apache.commons:commons-lang3:3.9\n     |    +--- commons-io:commons-io:2.11.0\n     |    +--- com.google.protobuf:protobuf-java:2.5.0\n     |    +--- org.apache.htrace:htrace-core4:4.2.0-incubating\n     |    +--- org.apache.commons:commons-crypto:1.0.0\n     |    +--- org.apache.yetus:audience-annotations:0.5.0\n     |    \\--- org.apache.hadoop:hadoop-common:2.10.0 -\u003e 2.10.2\n     +--- org.apache.hbase:hbase-hadoop-compat:2.3.7\n     |    +--- org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:3.3.0 (*)\n     |    +--- org.apache.hbase:hbase-metrics-api:2.3.7\n     |    |    +--- org.apache.hbase:hbase-common:2.3.7 (*)\n     |    |    +--- org.apache.commons:commons-lang3:3.9\n     |    |    +--- org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:3.3.0 (*)\n     +--- org.apache.hbase:hbase-hadoop2-compat:2.3.7\n     |    +--- org.apache.hbase:hbase-hadoop-compat:2.3.7 (*)\n     |    +--- org.apache.hbase:hbase-common:2.3.7 (*)\n     |    +--- org.apache.hbase:hbase-metrics:2.3.7\n     |    |    +--- org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:3.3.0 (*)\n     |    |    +--- org.apache.hbase:hbase-common:2.3.7 (*)\n     |    |    +--- org.apache.hbase:hbase-metrics-api:2.3.7 (*)\n     |    |    +--- io.dropwizard.metrics:metrics-core:3.2.6\n     |    +--- org.apache.hbase:hbase-metrics-api:2.3.7 (*)\n     |    +--- org.apache.hadoop:hadoop-common:2.10.0 -\u003e 2.10.2 (*)\n     |    +--- javax.activation:javax.activation-api:1.2.0\n     |    +--- org.apache.commons:commons-lang3:3.9\n     |    +--- org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:3.3.0 (*)\n     +--- org.apache.hbase:hbase-protocol-shaded:2.3.7\n     |    +--- org.apache.hbase.thirdparty:hbase-shaded-protobuf:3.3.0\n     +--- org.apache.hbase:hbase-protocol:2.3.7\n     |    +--- com.google.protobuf:protobuf-java:2.5.0\n     +--- commons-codec:commons-codec:1.13\n     +--- commons-io:commons-io:2.11.0\n     +--- org.apache.commons:commons-lang3:3.9\n     +--- org.slf4j:slf4j-api:1.7.30 -\u003e 1.7.36\n     +--- org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:3.3.0 (*)\n     +--- com.google.protobuf:protobuf-java:2.5.0\n     +--- org.apache.hbase.thirdparty:hbase-shaded-netty:3.3.0\n     +--- org.apache.zookeeper:zookeeper:3.5.7 (*)\n     +--- org.apache.htrace:htrace-core4:4.2.0-incubating\n     +--- org.jruby.jcodings:jcodings:1.0.18\n     +--- org.jruby.joni:joni:2.1.11\n     |    \\--- org.jruby.jcodings:jcodings:1.0.13 -\u003e 1.0.18\n     +--- io.dropwizard.metrics:metrics-core:3.2.6 (*)\n     +--- org.apache.commons:commons-crypto:1.0.0\n     +--- org.apache.yetus:audience-annotations:0.5.0\n     +--- org.apache.hadoop:hadoop-auth:2.10.0 -\u003e 2.10.2 (*)\n     \\--- org.apache.hadoop:hadoop-common:2.10.0 -\u003e 2.10.2 (*)\n\n(*) - dependencies omitted (listed previously)\n```\n\n### Other changes\n\n* Automation tests: upgrade hbase to 2.3.7"
    },
    {
      "commit": "6a0682e4aea6f88f56aeca35d2ed1e0c21ec6580",
      "tree": "138d43d0f4d559a50b1c9c316800439e4bd66ff7",
      "parents": [
        "da1253e9454e6b97fdc02998f8212b17be96ed62"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Feb 09 14:54:07 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Feb 09 17:09:38 2026 +0800"
      },
      "message": "Package: update rpm and deb package files\n\nMain changes are included:\n  * Rename package from pxf-gpX to cloudberry-pxf\n  * Update installation paths to /usr/local/cloudberry-pxf-[VERSION]\n  * Remove legacy pxf-gp7.spec and pxf-cbdb1.spec files\n  * Update DEBIAN package control files with new naming\n  * Standardize package configuration based on cloudberry-pxf.spec\n"
    },
    {
      "commit": "da1253e9454e6b97fdc02998f8212b17be96ed62",
      "tree": "b648629ccfad48ce5c3732b448a70aab6271795a",
      "parents": [
        "0d605aaaf11fe7551a8fe69aa55c1155cd2245b7"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Feb 09 14:30:50 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Feb 09 17:09:38 2026 +0800"
      },
      "message": "ASF: Update Apache compliance and branding migration\n\nThis commit implements comprehensive changes to align the project with Apache\nSoftware Foundation incubation requirements and complete the migration from\nGreenplum to Apache Cloudberry branding.\n\n- Add DISCLAIMER file as required for Apache incubating projects\n- Update LICENSE file with comprehensive list of 245 files containing\n  Apache License headers, organized by module (FDW, External Table,\n  Server, Documentation, CI/Test templates)\n- Add Apache License headers to GitHub workflow files\n- Update CONTRIBUTING.md with Apache project contribution guidelines\n\n- Update README.md with Apache Cloudberry branding and simplified content\n- Update documentation templates in docs/content/ to use Cloudberry\n- Update automation and testing documentation\n- Migrate server scripts and Java components references\n\n- Update CI/CD workflows with proper Apache licensing\n- Clean up legacy CI documentation (remove ci/README.md)\n- Update build system references in Makefile\n- Enhance installation scripts to support both Cloudberry 2.0 and 2.1+\n\n- Add transition guide for Cloudberry migration\n- Update all user-facing documentation with correct branding\n- Simplify README.md focusing on essential information\n- Update book configuration for documentation generation\n\nThis change ensures full compliance with Apache incubation requirements\nwhile completing the transition to Apache Cloudberry ecosystem.\n"
    },
    {
      "commit": "0d605aaaf11fe7551a8fe69aa55c1155cd2245b7",
      "tree": "4197f05b610940e945b49a374813f81907cbd35f",
      "parents": [
        "ab7f902672ec6a579657e157d210cd912b5c210f"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Fri Feb 06 11:57:12 2026 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Sat Feb 07 09:48:21 2026 +0800"
      },
      "message": "docs - pxf works with ORC using Foreign Data Wrapper\n"
    },
    {
      "commit": "ab7f902672ec6a579657e157d210cd912b5c210f",
      "tree": "3c778331571c0575b19a3b131c5e78e1f4bc6501",
      "parents": [
        "0376ea75226a1dbd73f68af8df5278424a3c47af"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Fri Feb 06 08:26:56 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 06 11:26:56 2026 +0800"
      },
      "message": "Update parquet to 1.12.3 in PXF\n\nUpdate parquet to 1.12.3 (latest version with hadoop-client-2.x)\n* Add support for ZSTD compression\n* Temporary declare LZO as not supported. It causes following error in both current and in pre-upgrade builds:\n   ```\n   ERROR:  PXF server error : Class com.hadoop.compression.lzo.LzoCodec was not found  (seg1 10.11.0.131:6000 pid\u003d2567556)\n   ```\n* Add tests to cover different types of compression"
    },
    {
      "commit": "0376ea75226a1dbd73f68af8df5278424a3c47af",
      "tree": "d81dda36fbaccce3c67b242784f111cbb4b58c7d",
      "parents": [
        "29cb92d1f99e9d1d04f5342c3e08e289265cf0e3"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Thu Feb 05 12:50:26 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 15:50:26 2026 +0800"
      },
      "message": "docs - pxf works with ORC using Foreign Data Wrapper (#52)\n\nAdd examples on how to use PXF foreign data wrappers to access ORC files on S3/HDFS."
    },
    {
      "commit": "29cb92d1f99e9d1d04f5342c3e08e289265cf0e3",
      "tree": "2be37b44233ad3ca0f38eb49a4bafd023fec7939",
      "parents": [
        "88405c86a0513a593b007fb13cbe4bd3e75a9b2d"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Feb 05 15:13:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 15:13:43 2026 +0800"
      },
      "message": "Remove dev files from source dir\n\n* Remove obsoleted files under `dev` dir\n* Move `dev/start_minio.bash` to `ci/docker/pxf-cbdb-dev/ubuntu/script/start_minio.bash`\n\nSee: https://github.com/apache/cloudberry-pxf/issues/48"
    },
    {
      "commit": "88405c86a0513a593b007fb13cbe4bd3e75a9b2d",
      "tree": "699b217a6dbfd30293eed35568f2feaf1035f116",
      "parents": [
        "44b9dad2c247edf9f8f7557156abf272450842ae"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Feb 04 14:28:50 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Feb 05 15:09:12 2026 +0800"
      },
      "message": "Update Makefile and cloudberry-pxf for Apache Cloudberry\n"
    },
    {
      "commit": "44b9dad2c247edf9f8f7557156abf272450842ae",
      "tree": "e5f9e02743230b3daad227cbe479b4ae017644b5",
      "parents": [
        "54e342626e1e938723b4405e181e72ebfbba280d"
      ],
      "author": {
        "name": "Ed Espino",
        "email": "espino@apache.org",
        "time": "Thu Aug 29 00:41:27 2024 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Feb 05 15:09:12 2026 +0800"
      },
      "message": "Release support\n\nCherry-pick from 609435fa28ffeb2f659c6779c3ed90f150a5cb44\n"
    },
    {
      "commit": "54e342626e1e938723b4405e181e72ebfbba280d",
      "tree": "8d859469a3c8a1a0819b44e74b77b236186d6315",
      "parents": [
        "2e5b2fe9e8f4479380dad5a87aa9f47f14ffbcf1"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Thu Feb 05 09:03:41 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 12:03:41 2026 +0800"
      },
      "message": "Upgrade Apache ORC library in PXF\n\n* Bump Apache `ORC` library to 1.7.11\n   In theory, we can bump up to 1.9.8. However pxf-hbase tests fail with new protobuf-3.x. For now, let\u0027s move fast rather than struggle in dependency hell.\n\n* Bump `ORC`\u0027s dependencies to support `zstd` compression and tests for compression.\n   Surprisingly, according to documentation, `zstd` should work well. However, old `aircompressor:0.8` doesn\u0027t have the ZStd codec, and attempting to use it will lead to an error."
    },
    {
      "commit": "2e5b2fe9e8f4479380dad5a87aa9f47f14ffbcf1",
      "tree": "b31c33106ca9808c37d473afcf4e21c67002d870",
      "parents": [
        "d5750728a88b352309d8bbbe5050705747b4f95f"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Feb 05 10:20:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 10:20:02 2026 +0800"
      },
      "message": "Update go-libs url to `apache/cloudberry-go-libs` (#47)\n\n* Update go-libs url to `apache/cloudberry-go-libs`\n* Run go mod tidy to update go.mod and go.sum file\n* Update cluster_test.go\n* Remove the nil check for `failedCommand` in GenerateOutput function.\nAfter replacing greenplum-db/go-libs with apache/cloudberry-go-libs,\nthe `FailedCommands` field type changed from `[]*cluster.ShellCommand`\n(pointer slice) to `[]cluster.ShellCommand` (value slice).\n\nIn Go, struct values cannot be compared to nil, which caused the\nbuild error:\n```\n  invalid operation: failedCommand \u003d\u003d nil (mismatched types\n  cluster.ShellCommand and untyped nil)\n```\nThis nil check is no longer needed because:\n1. Value-type slice elements are always valid structs, never nil\n2. The NewRemoteOutput function only appends commands with non-nil\n   errors to FailedCommands, so empty iterations won\u0027t occur"
    },
    {
      "commit": "d5750728a88b352309d8bbbe5050705747b4f95f",
      "tree": "e5d209ff0ce6587f589e5aa0028d21bea5b14b82",
      "parents": [
        "f9dcc03debf6c31dac9560dc4d8541854ef6e3d7"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Wed Feb 04 07:10:12 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 04 10:10:12 2026 +0800"
      },
      "message": "Upgrade Apache AVRO library in PXF\n\n* Bump `avro` library to the latest java-8 compatible version.\n* Bump `avro` and its dependencies in automation tests.\n* Add support for `zstandard` compression codec and test covering all supported codecs.\n* Update documentation."
    },
    {
      "commit": "f9dcc03debf6c31dac9560dc4d8541854ef6e3d7",
      "tree": "bfcc0570ae5c32dea839225f719f87b34e631093",
      "parents": [
        "19ffc632b29e7c18e173e64389ad705006b0604d"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Wed Jan 28 16:52:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 16:52:23 2026 +0800"
      },
      "message": "feat: cleanup the PG_VERSION_NUM logic in source files (#41)\n\n"
    },
    {
      "commit": "19ffc632b29e7c18e173e64389ad705006b0604d",
      "tree": "eca4f95fb0574912aaeb846a004357cf79d08d03",
      "parents": [
        "be0c08fa52556a2daa70c668b8d913e1b3f587c5"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Jan 28 13:53:44 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Jan 28 15:32:24 2026 +0800"
      },
      "message": "CI: allow concurrent workflows on main branch\n\nPreviously, CI workflows triggered by pushes to the main branch were grouped\nby `${{ github.workflow }}-${{ github.ref }}` with `cancel-in-progress: true`.\nAs a result, when multiple PRs were merged in a short period of time, a newly\nmerged commit would cancel the CI workflow of the previous commit.\n\nThis change removes the cancellation behavior so that CI workflows for\ndifferent commits on the main branch can run in parallel. This ensures that\neach merged commit is fully validated by CI and avoids losing test results\ndue to automatic cancellation.\n\nNo changes to the CI steps themselves; only the workflow concurrency behavior\nis adjusted.\n"
    },
    {
      "commit": "be0c08fa52556a2daa70c668b8d913e1b3f587c5",
      "tree": "56167aa445ac51ccf0f2bb04ed58e53b3122143f",
      "parents": [
        "e991beb1b3d692aa742c2729e47773e3c778f14e"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Jan 28 13:42:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 13:42:28 2026 +0800"
      },
      "message": "Refactor: rename Java packages from `org.greenplum` to `org.apache.cloudberry`\n\nThis commit performs a global rebranding of the Java package structure to\nalign with the Apache Cloudberry project naming conventions and the\nofficial domain (cloudberry.apache.org).\n\nKey changes:\n* Renamed all Java package declarations and import statements from\n  \u0027org.greenplum\u0027 to \u0027org.apache.cloudberry\u0027.\n* Restructured physical directory paths from \u0027org/greenplum/\u0027 to\n  \u0027org/apache/cloudberry/\u0027 across all modules (server and automation).\n* Updated build configurations:\n  - Gradle \u0027group\u0027 in server/build.gradle\n  - Maven \u0027groupId\u0027 and dependencies in automation/pom.xml\n* Adjusted configuration files including:\n  - pxf-profiles-default.xml\n  - application.properties\n  - log4j2.xml / log4j.properties\n* Updated SQL scripts, test expected outputs (.ans, .out), and CI\n  entrypoint scripts.\n* Add breaking changes notes to the docs/content\n\nThis is a structural refactoring with no changes to functional logic.\nBut please note this will be a breaking change for developers."
    },
    {
      "commit": "e991beb1b3d692aa742c2729e47773e3c778f14e",
      "tree": "2099b8a2c39bcafeb4acec27351f9e13ea6a03d1",
      "parents": [
        "dac417b7900b8b1ef9aa030141008d176694332b"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Wed Jan 28 11:05:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 11:05:08 2026 +0800"
      },
      "message": "feat: Re-adapt cloudberry/pxf_fdw to Cloudberry (#31)\n\nCo-authored-by: Nikolay Antonov \u003costinru@gmail.com\u003e"
    },
    {
      "commit": "dac417b7900b8b1ef9aa030141008d176694332b",
      "tree": "fc53b5d93af01cb46390a0bc5bf9701034a15ab9",
      "parents": [
        "bfa51494b4faaffe8366a7ecee2d41833e7d396b"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jan 27 15:32:30 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Jan 28 09:57:21 2026 +0800"
      },
      "message": "Enforce linear commit history for main\n"
    },
    {
      "commit": "bfa51494b4faaffe8366a7ecee2d41833e7d396b",
      "tree": "87cefdde0a8b9f14189b058ed5b22ee89a103ddb",
      "parents": [
        "82db02688dc0ea0322778d5d2331175d0882fd9e"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Jan 26 18:20:34 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jan 27 16:10:12 2026 +0800"
      },
      "message": "CI: remove legacy Concourse CI, and rename `concourse` to `ci`\n\nMigrate from Concourse CI to GitHub Actions and remove legacy Greenplum 5/6\nsupport files for Apache Cloudberry compatibility.\n\nChanges:\n- Remove .github/workflows/create-release-on-tag.yml\n- Rename concourse/ to ci/, keeping only:\n  - ci/singlecluster/ (Hadoop test environment)\n  - ci/docker/pxf-cbdb-dev/ubuntu/ (Docker Compose + scripts)\n- Remove Concourse-specific files:\n  - pipelines/, tasks/, scripts/, terraform/, ansible/, settings/\n  - docker/{pxf-dev-base,pxf-dev-server,pxf-build-base,docs,sandbox,rpmrebuild}/\n- Remove Greenplum 5/6 RPM specs (package/pxf-gp{5,6}.spec)\n- Remove obsolete dev scripts:\n  - IPA/multinode Hadoop setup\n  - Dataproc cluster management\n  - create-release-branch.bash, rebuild_pxf.bash, set_up_gpadmin_user.bash\n- Remove downloads/README.md\n- Update path references in:\n  - .github/workflows/pxf-ci.yml\n  - README.md, cli/README.md, automation/README.Docker.md, docs/README.md\n  - ci/docker/pxf-cbdb-dev/ubuntu/script/{entrypoint.sh,entrypoint_kerberos.sh}\n"
    },
    {
      "commit": "82db02688dc0ea0322778d5d2331175d0882fd9e",
      "tree": "7ff8dba91508efd5115f15aa0e9c4d07f337d518",
      "parents": [
        "9eb45ace8a937bc642527b5da8d413e217ddacfa"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jan 27 12:18:01 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jan 27 14:18:45 2026 +0800"
      },
      "message": "ASF: update NOTICE \u0026 LICENSE files\n"
    },
    {
      "commit": "9eb45ace8a937bc642527b5da8d413e217ddacfa",
      "tree": "7bfe219fea28abda12081e802a5f33cee066b1db",
      "parents": [
        "148836dc8c918b93067c97b5d2ccad43c666d7b6"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Jan 26 17:41:07 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jan 27 14:17:10 2026 +0800"
      },
      "message": "ASF: update community files to follow ASF rules\n\nThis commit includes updates on these files:\n\n  .github/ISSUE_TEMPLATE/bug-report.yml\n  .github/ISSUE_TEMPLATE/config.yml\n  .github/pull_request_template.md\n  CODE-OF-CONDUCT.md\n  CONTRIBUTING.md\n  SECURITY.md\n"
    },
    {
      "commit": "148836dc8c918b93067c97b5d2ccad43c666d7b6",
      "tree": "766ee0e4be9f954d659395cea14e6766ce1300be",
      "parents": [
        "3b6d93dacb78576b0c97df9610f93c2418b9b145"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Fri Jan 23 20:06:02 2026 +0400"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Sat Jan 24 15:30:54 2026 +0800"
      },
      "message": "Fix: Always run PXF Automation tests when PR created\n"
    },
    {
      "commit": "3b6d93dacb78576b0c97df9610f93c2418b9b145",
      "tree": "fff46b253bfc4d946ad23064f75fcd5b091a7669",
      "parents": [
        "60d38b0c2d7a85f6112d5693a4ea25153a487ae0"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@yandex-team.ru",
        "time": "Tue Jan 20 19:29:12 2026 +0400"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Jan 21 17:17:56 2026 +0800"
      },
      "message": "Add dependency-submission workflow to collect gradle dependencies\n"
    },
    {
      "commit": "60d38b0c2d7a85f6112d5693a4ea25153a487ae0",
      "tree": "93f2e8b9c0b015ee8bafc291921b2b4d4d317e9f",
      "parents": [
        "a3e52c55bbe0fe6b7d00efee8b2f5666e10e8041"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Mon Dec 22 17:48:04 2025 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Tue Jan 20 11:58:06 2026 +0800"
      },
      "message": "asf.yaml: add active contributors as collaborators\n\nIn this commit, we added the following active contributors as\ncollaborators for this project:\n\n * Mulily0513\n * MisterRaindrop\n * ostinru\n"
    },
    {
      "commit": "a3e52c55bbe0fe6b7d00efee8b2f5666e10e8041",
      "tree": "59f089a20f20fbc873aca3c42cfadf0aea363af7",
      "parents": [
        "5ec3492218c70ad615f190df35b4d86ba4997b88"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Thu Jan 15 14:51:52 2026 +0400"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Jan 16 16:13:10 2026 +0800"
      },
      "message": "Automation: add README on how to run tests\n"
    },
    {
      "commit": "5ec3492218c70ad615f190df35b4d86ba4997b88",
      "tree": "d75ce09354f07aa82ba3cb42202e4ac1d709aab1",
      "parents": [
        "a932ece6bc578395f309c8664d1715c2fa1b6960"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Thu Jan 15 11:53:07 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Jan 16 14:00:27 2026 +0800"
      },
      "message": "Fix: gpdb test add pxf env and fix cloudtest null point\n"
    },
    {
      "commit": "a932ece6bc578395f309c8664d1715c2fa1b6960",
      "tree": "3d324d52655414767303e02ec87b8e0dad411f22",
      "parents": [
        "2b2959c32dec367ed5a0b7ded39d8ed0d8e1984f"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Thu Jan 15 09:51:27 2026 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Jan 15 18:09:47 2026 +0800"
      },
      "message": "Fix: external table regress allow demo text resolver to handle multiple fields\n\n- adjust DemoTextResolver to serialize multi-column records by joining fields\n- preserve legacy single-field end-of-stream semantics\n- update DemoResolverTest expectation to cover multi-field output\n"
    },
    {
      "commit": "2b2959c32dec367ed5a0b7ded39d8ed0d8e1984f",
      "tree": "2cadc2273deb6284b41a36e59a959ecd52c6d5cf",
      "parents": [
        "fdf58f3fae1818163ab5dd7e06093b5df421f29e"
      ],
      "author": {
        "name": "huluhuifeng",
        "email": "1095824838@qq.com",
        "time": "Wed Dec 31 07:25:55 2025 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Dec 31 11:09:31 2025 +0800"
      },
      "message": "Fix: Add load/performance/extension test groups and align env/test expectations\n\n- add bench_test and pxf_extension_test in run_tests.sh, plus matrix entries for bench and pxf_extension in CI\n- bump surefire heap to 4G to avoid OOM\n- update gpupgrade expected outputs to new PXF_HOME paths and JSON formatter error text\n- make ProtocolUtils/HiveBaseTest/JdbcHiveTest/OrcWriteTest/ParquetWriteTest more robust to env defaults (protocol, creds, hive JDBC URL)\n- keep MultiServerTest running under HDFS with a safe working directory fallback\n- set distribution key and INSERT pattern for performance test data load\n"
    },
    {
      "commit": "fdf58f3fae1818163ab5dd7e06093b5df421f29e",
      "tree": "6bf9b4f3d3c998c5f797dce91bc9ca49e0ff1373",
      "parents": [
        "5394ead50270ebfb5445beec5c1d3ac837eda689"
      ],
      "author": {
        "name": "huluhuifeng",
        "email": "1095824838@qq.com",
        "time": "Mon Dec 22 18:37:32 2025 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Dec 31 11:09:31 2025 +0800"
      },
      "message": "Fix: Add load/performance/extension test groups and align env/test expectations\n\n- add bench_test and pxf_extension_test in run_tests.sh, plus matrix entries for bench and pxf_extension in CI\n- bump surefire heap to 4G to avoid OOM\n- update gpupgrade expected outputs to new PXF_HOME paths and JSON formatter error text\n- make ProtocolUtils/HiveBaseTest/JdbcHiveTest/OrcWriteTest/ParquetWriteTest more robust to env defaults (protocol, creds, hive JDBC URL)\n- keep MultiServerTest running under HDFS with a safe working directory fallback\n- set distribution key and INSERT pattern for performance test data load\n"
    },
    {
      "commit": "5394ead50270ebfb5445beec5c1d3ac837eda689",
      "tree": "61c8421a6d52d4de8ce9c65dd138e33bb1802e1c",
      "parents": [
        "f3a7e030c7402df3d9dc092dcbdee08ac3e13f65"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Wed Dec 24 19:58:39 2025 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 26 11:04:15 2025 +0800"
      },
      "message": "Automation: upgrade testng to reduce amount of SKIPPED tests\n\nOld TestNG versions has bug https://github.com/testng-team/testng/issues/739 - when `@BeforeClass(alwaysRun \u003d true)` fails - all tests are marked as SKIPPED despite of `alwaysRun \u003d true`. Fixed in 6.9.5+.\n"
    },
    {
      "commit": "f3a7e030c7402df3d9dc092dcbdee08ac3e13f65",
      "tree": "2ef42d29827e6188bcd3a0bf800570872809e709",
      "parents": [
        "f923ce564f8c92647b9761d1b9abc843cf5cafbb"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Mon Dec 22 01:27:20 2025 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 26 11:04:15 2025 +0800"
      },
      "message": "Automation: wait for files to be copied in Hive tests\n"
    },
    {
      "commit": "f923ce564f8c92647b9761d1b9abc843cf5cafbb",
      "tree": "f68f1eb83298898ac4ff60a031a4b20fe53344a2",
      "parents": [
        "fbd6d65a33f3568c99aa23baa857bde3294f8ae1"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Sun Dec 21 23:28:04 2025 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 26 11:04:15 2025 +0800"
      },
      "message": "Automation: save automation logs\n"
    },
    {
      "commit": "fbd6d65a33f3568c99aa23baa857bde3294f8ae1",
      "tree": "6f5d2c09f964ead0df0e310dabed144426c521dc",
      "parents": [
        "112bcd1cf443d650c83a0b28316b85eafc4dbcd3"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Sun Dec 21 20:57:46 2025 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 26 11:04:15 2025 +0800"
      },
      "message": "Automation: Fail whole test-group when we have single failed test\n"
    },
    {
      "commit": "112bcd1cf443d650c83a0b28316b85eafc4dbcd3",
      "tree": "b22e06930e4c12c35c03e01be8505f6dc2b95175",
      "parents": [
        "7e7f496e0cab18bda9090f9cd26f5a05a1baf398"
      ],
      "author": {
        "name": "Nikolay Antonov",
        "email": "ostinru@gmail.com",
        "time": "Sun Dec 21 20:12:07 2025 +0500"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 26 11:04:15 2025 +0800"
      },
      "message": "Automation: add timeout on test phase\n\nTests may stuck for some reason and github will kill CI pipeline leaving\nus without any clue what happened.\nThis change limits time for each step to run. When timeout raised -\ngithub will kill single step, and other steps will collect results and\nwill provide test reports with logs.\n"
    },
    {
      "commit": "7e7f496e0cab18bda9090f9cd26f5a05a1baf398",
      "tree": "7c58b05dbb399ddf785a3ffd64d56c8fe458a271",
      "parents": [
        "387bab649122910b8386b8fae1aaa25e67b8c6de"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 19 18:29:14 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Add external-table to test matrix\n"
    },
    {
      "commit": "387bab649122910b8386b8fae1aaa25e67b8c6de",
      "tree": "c4bbd65c903bcb3a7cff5fdb5f256c5ca0379d31",
      "parents": [
        "b2209859f96819024ce69f22ff753bdc2116a634"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 19 17:29:17 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Reuse run_tests.sh for single test group execution instead of new script\n"
    },
    {
      "commit": "b2209859f96819024ce69f22ff753bdc2116a634",
      "tree": "c563862ff143bb6f8e70271c6c7ae7561944442e",
      "parents": [
        "d61f5b0e39d5c09fc54e06bc1ce3624b74dad33f"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 19 16:21:49 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Add run_single_test.sh with proper env setup, add missing test groups, and detailed test summary\n"
    },
    {
      "commit": "d61f5b0e39d5c09fc54e06bc1ce3624b74dad33f",
      "tree": "9e5e2b4b5c75e8746400a56749569df03223cf95",
      "parents": [
        "d5040cea6e42e5e6d0c8b79f8b10acf4b2e8233a"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 19 15:36:32 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Parallelize tests using matrix strategy for faster CI\n"
    },
    {
      "commit": "d5040cea6e42e5e6d0c8b79f8b10acf4b2e8233a",
      "tree": "7bcc436615b666a4b6ddc0bfba7cf03182d0550d",
      "parents": [
        "e35d434d89e7f479cd900b8d37f060581c823cca"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Fri Dec 19 11:42:41 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Update CI workflow to make it run\n"
    },
    {
      "commit": "e35d434d89e7f479cd900b8d37f060581c823cca",
      "tree": "279f6aad2bbfbb205b98ca07e1fee86cf6b95ccd",
      "parents": [
        "0f8adcc5e4ca494446ec717a6579f68d7ba402ab"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Fri Dec 19 10:51:04 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Update .github/workflows/pxf-ci.yml\n\nCo-authored-by: Dianjin Wang \u003cwangdianjin@gmail.com\u003e"
    },
    {
      "commit": "0f8adcc5e4ca494446ec717a6579f68d7ba402ab",
      "tree": "68dd6095fbfacb679455cc28c02d505bbe29825f",
      "parents": [
        "6e5b832b5e9c06a5d752b0ad52d7b779a42c83ed"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Fri Dec 19 10:50:58 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Update .github/workflows/pxf-ci.yml\n\nCo-authored-by: Dianjin Wang \u003cwangdianjin@gmail.com\u003e"
    },
    {
      "commit": "6e5b832b5e9c06a5d752b0ad52d7b779a42c83ed",
      "tree": "97fdc07c8cf15e71aada73b32e1d5025c7c0c640",
      "parents": [
        "483029896080525372cce935beab5685d76e63f8"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Fri Dec 19 09:28:39 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "this is github action test commit\n"
    },
    {
      "commit": "483029896080525372cce935beab5685d76e63f8",
      "tree": "395469a25ef8d1df92bf37b25502908af84a4935",
      "parents": [
        "b0de1f4c9e9043e127a9d4389fb87efdddd76382"
      ],
      "author": {
        "name": "huluhuifeng",
        "email": "1095824838@qq.com",
        "time": "Thu Nov 27 23:55:38 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Fix: stabilize base/feature automation test\n\n- Add Kerberos docker entrypoint to bootstrap secure singlecluster + PXF，\n- Improve run_tests.sh env/test runner (MinIO/S3A setup, gpupgrade helpers, hooks)\n- Harden automation/regress comparisons and expected outputs to reduce noise/flakes\n- Update pxf-pre/post-gpupgrade scripts to work with Cloudberry env\n"
    },
    {
      "commit": "b0de1f4c9e9043e127a9d4389fb87efdddd76382",
      "tree": "1685258d03caa7a0f2c7a7322a64560ca5a0f5fb",
      "parents": [
        "9ca5f55c9106c45dd9b3bd47f06a7b8e9819ec95"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Tue Dec 16 09:14:28 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "feat(ci): improve workflow automation and test reporting\n\n- Enhance CI workflow scripts and build process\n- Add detailed test reporting with statistics\n- Fix permission and disk space issues\n- Optimize Java memory and add debug logging\n- Update entrypoint for database initialization\n"
    },
    {
      "commit": "9ca5f55c9106c45dd9b3bd47f06a7b8e9819ec95",
      "tree": "61c01bb5cb62a7b91fa80adfaa4c3f1376007bb2",
      "parents": [
        "ca5f49fff5417fcbfe3cac0f3e7e1d6efc02a407"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Wed Dec 17 22:41:19 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "feat: Add MinIO S3 support and improve Docker test environment\n\n- Configure S3/MinIO integration with PXF servers\n- Add Parquet profile support in pxf-profiles.xml\n- Update cloud access test cases to use MinIO protocol\n- Configure Gradle and Go to use aliyun mirrors for faster builds\n- Improve Docker entrypoint with MinIO deployment\n- Update test utilities to support protocol switching (s3/minio/hdfs)\n- Fix OutOfMemory test server configuration\n"
    },
    {
      "commit": "ca5f49fff5417fcbfe3cac0f3e7e1d6efc02a407",
      "tree": "cb4c90ac3bb3ea6cde3f8efdd43e422ebdbc81a4",
      "parents": [
        "c13994d7d6b67951e69412cb515d5f8f45badaa1"
      ],
      "author": {
        "name": "huluhuifeng",
        "email": "1095824838@qq.com",
        "time": "Sun Nov 23 10:29:42 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "fix smoke hdfs hive hcatalog hcfs test group\n"
    },
    {
      "commit": "c13994d7d6b67951e69412cb515d5f8f45badaa1",
      "tree": "c8145d35372013e484b853fe1e9e81d64054740c",
      "parents": [
        "deee1e14ec3875800ffe1faea14840c51f570a0e"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Thu Dec 18 17:39:03 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "update pxf-ci.yml and pxf build branch use merge-with-upstream branch\n"
    },
    {
      "commit": "deee1e14ec3875800ffe1faea14840c51f570a0e",
      "tree": "8ab6c610d6b1c6dd9f5a19527d90a65d24239ec3",
      "parents": [
        "a43e9e2bf78459be57e812aff99ac07283927b63"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Wed Nov 19 22:06:52 2025 +0800"
      },
      "committer": {
        "name": "Max Yang",
        "email": "79948451+my-ship-it@users.noreply.github.com",
        "time": "Mon Dec 22 15:03:22 2025 +0800"
      },
      "message": "Add a basic pxf ci and summary test result\n"
    },
    {
      "commit": "a43e9e2bf78459be57e812aff99ac07283927b63",
      "tree": "7f837b0158b5c6da111cb6da55e9ff38fcf96f49",
      "parents": [
        "8839ece689f91d39d7aedc09bf1f5ad5ead80ce2"
      ],
      "author": {
        "name": "Max Yang",
        "email": "yangyu@hashdata.cn",
        "time": "Tue Jun 24 21:09:38 2025 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Modify operator precedence.\n"
    },
    {
      "commit": "8839ece689f91d39d7aedc09bf1f5ad5ead80ce2",
      "tree": "415d506c84f66a3657dc30ff06f4abc1918ea3bf",
      "parents": [
        "42dddc466f9e10ba355ffbad90ffe70e14e31519"
      ],
      "author": {
        "name": "WANG Weinan",
        "email": "wangweinan@hashdata.cn",
        "time": "Tue Jun 24 18:36:44 2025 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Fix stack overflow in add_projection_desc_httpheader_pg12\n"
    },
    {
      "commit": "42dddc466f9e10ba355ffbad90ffe70e14e31519",
      "tree": "a8b85c14ad0bda4d99978eb712c0699cd81a4589",
      "parents": [
        "26c0920e3513c12a2caeb1255c5ae9a54a7d9fbe"
      ],
      "author": {
        "name": "Bradford D. Boyle",
        "email": "bradfordb@vmware.com",
        "time": "Mon Sep 19 13:27:48 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Relax the requirement that C string length matches Java string length (#870)\n\nCommit 94f8ccad added a check that the length of received strings (as\r\ndetermined by strnlen) matched the length of the string as determined by\r\nthe Java-based PXF service; if they did not, this was treated as a fatal\r\nerror. Some users have reported that they have ORC/Parquet files with\r\nstrings that contain ASCCII NUL-bytes. These strings would not have a\r\nstrnlen calculate length that matches with the Java string lenght.\r\n\r\nThis commit removes the requirements that the lengths be equal and\r\ninstead logs a debug message when they do not match.\r\n\r\nAuthored-by: Bradford D. Boyle \u003cbradfordb@vmware.com\u003e"
    },
    {
      "commit": "26c0920e3513c12a2caeb1255c5ae9a54a7d9fbe",
      "tree": "095eff9ecb36317c49a9214bc27b5f825d3ac7cf",
      "parents": [
        "45efced0e188cb782098ddd50bf06f97397c3de5"
      ],
      "author": {
        "name": "Alexander Denissov",
        "email": "denalex@users.noreply.github.com",
        "time": "Thu Sep 15 17:00:27 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "added specs for gpdb7-rhel8-test-pxf docker image (#867)\n"
    },
    {
      "commit": "45efced0e188cb782098ddd50bf06f97397c3de5",
      "tree": "8c9149496605134c60303e6ab53028f43e8cece0",
      "parents": [
        "e021d6ff86ee02ad1d15c06709e0af60c4d05f69"
      ],
      "author": {
        "name": "Ashuka Xue",
        "email": "axue@vmware.com",
        "time": "Thu Sep 15 15:21:14 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "ci: allow existing artifacts to remain if there is no pivnet product (#868)\n\nIn the case that there is no pivnet artifact to pull down, do not error\nout. Instead, keep whatever artifact was already present in the bucket.\n"
    },
    {
      "commit": "e021d6ff86ee02ad1d15c06709e0af60c4d05f69",
      "tree": "b793ca20a4372de388076009308f97e492c24d58",
      "parents": [
        "4974d1fd6b13c341d652728e5b6f5bbe5fca4f32"
      ],
      "author": {
        "name": "Lisa Owen",
        "email": "lowen@pivotal.io",
        "time": "Wed Sep 14 17:14:39 2022 -0600"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "docs - command block formatting fix (#866)\n\n"
    },
    {
      "commit": "4974d1fd6b13c341d652728e5b6f5bbe5fca4f32",
      "tree": "27dc09dcb4490ff5baf19e544dfa7d2b41e106bc",
      "parents": [
        "613bdcb2ba3d2bd5a38139197aa3179ea13a01f1"
      ],
      "author": {
        "name": "Lisa Owen",
        "email": "lowen@pivotal.io",
        "time": "Wed Sep 14 16:37:35 2022 -0600"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "docs - misc updates/additions to the orc write docs (#864)\n\n* docs - misc updates/additions to the orc write docs\n\n* reword per bradford\n\n* more rewording per bradford\n"
    },
    {
      "commit": "613bdcb2ba3d2bd5a38139197aa3179ea13a01f1",
      "tree": "b793ca20a4372de388076009308f97e492c24d58",
      "parents": [
        "a2fe875bbc5813c899c26ce7ce9339431fc9caff"
      ],
      "author": {
        "name": "Lisa Owen",
        "email": "lowen@pivotal.io",
        "time": "Wed Sep 14 13:02:40 2022 -0600"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "docs - update jdbc driver version number (#865)\n"
    },
    {
      "commit": "a2fe875bbc5813c899c26ce7ce9339431fc9caff",
      "tree": "f2c40f35c36da7e0f80139a8946dd1c641ef8497",
      "parents": [
        "1f5c4badf700fd033551026cebfe6ac31483e093"
      ],
      "author": {
        "name": "Ashuka Xue",
        "email": "axue@vmware.com",
        "time": "Wed Sep 07 12:40:15 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Add JsonProtocolHandler to use HdfsFileFragmenter for multi-line JSON (#858)\n\nThis commit fixes an issue that could occur with multi-line JSON files.\n\nPreviously, it was possible for a fragment to improperly parse a JSON object if the split started in the middle of a string, causing wrong results. This commit now uses the HdfsFileFragmenter for multi-line JSON files.\n"
    },
    {
      "commit": "1f5c4badf700fd033551026cebfe6ac31483e093",
      "tree": "76fd537fb1a8308ad8799f4a84f5a8c9b457f5ed",
      "parents": [
        "5410b7b7b75774a2f416ebf1cdeda9656b7e79bf"
      ],
      "author": {
        "name": "Alexander Denissov",
        "email": "denalex@users.noreply.github.com",
        "time": "Tue Sep 06 15:03:16 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "removed jsoup dependency and unused class from the automation code (#863)\n"
    },
    {
      "commit": "5410b7b7b75774a2f416ebf1cdeda9656b7e79bf",
      "tree": "0fc7a862518c9df3a5b43e6a16444a68e14eb438",
      "parents": [
        "64875eb6652861811704f06b37dc9f8cbb223395"
      ],
      "author": {
        "name": "Alexander Denissov",
        "email": "denalex@users.noreply.github.com",
        "time": "Tue Sep 06 15:00:31 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "install Java 8 JDK in gp7 centos7 docker image (#862)\n\n"
    },
    {
      "commit": "64875eb6652861811704f06b37dc9f8cbb223395",
      "tree": "461e455ba988dd7f35af455bc2c11729e304c63a",
      "parents": [
        "39c1cd8cba7bc36a792ca78417ab8e87b5b558a3"
      ],
      "author": {
        "name": "Alexander Denissov",
        "email": "denalex@users.noreply.github.com",
        "time": "Tue Sep 06 12:05:11 2022 -0700"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "added Maven, Java 8 and pip install for GPDB7 docker images (#860)\n"
    },
    {
      "commit": "39c1cd8cba7bc36a792ca78417ab8e87b5b558a3",
      "tree": "1562aa2fbb999f242e5850cfe98c5525089f9620",
      "parents": [
        "635c1493f361f9d41c5499c399fe96ca29030df2"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Nov 06 10:24:57 2024 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Update asf.yaml and README.md\n"
    },
    {
      "commit": "635c1493f361f9d41c5499c399fe96ca29030df2",
      "tree": "112d2a6fd010932c3f278bfa2024ca4f0cfd677e",
      "parents": [
        "24a69b64d3f9185445aa88fe38be0b0d54369cba"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Jun 13 10:06:49 2024 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Update README.md (#1)\n"
    },
    {
      "commit": "24a69b64d3f9185445aa88fe38be0b0d54369cba",
      "tree": "4fd490e80c2ce2b7debc80c39de9ff7c30d41f23",
      "parents": [
        "4cf46962217c21e93f6340f99dd6d5523d38091b"
      ],
      "author": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Wed Nov 29 15:16:09 2023 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Add basic community files\n"
    },
    {
      "commit": "4cf46962217c21e93f6340f99dd6d5523d38091b",
      "tree": "88f4833b40a284c47de11532f6caedacbf8039a9",
      "parents": [
        "2b70d309e6d7174fe04ace05069981f510f26ef6"
      ],
      "author": {
        "name": "Terry Ning",
        "email": "ningshaoyi@hashdata.cn",
        "time": "Thu May 25 20:02:25 2023 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Bump Spring Boot\u0027s built-in Tomcat to 9.0.72\n\nThis PR is used to bump the Tomcat built in Spring Boot from 9.0.60\nto 9.0.72 because of the security issue CVE-2023-28708.\n\nAuthored-by: Terry Ning \u003cningshaoyi@hashdata.cn\u003e\n"
    },
    {
      "commit": "2b70d309e6d7174fe04ace05069981f510f26ef6",
      "tree": "078abbf67876ec840254ea884cc08cc797c33629",
      "parents": [
        "733ab55205b6043f07c8550cc23d9aaaa4547433"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "liuxiaoyu@hashdata.cn",
        "time": "Tue Oct 07 18:49:55 2025 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "fix: refactor projection header logic for PostgreSQL compatibility\n\n- Restore original projection counting logic in pxfheaders.c\n- Remove premature number calculation and header setting\n- Fix attribute collection flow for different PG versions\n- Clean up code formatting and comments\n- Update Makefile configuration\n- Minor formatting fix in pxfdelimited_formatter.c\n"
    },
    {
      "commit": "733ab55205b6043f07c8550cc23d9aaaa4547433",
      "tree": "f7704b80809dacb12614ca24645582078b4b3f17",
      "parents": [
        "9b8a8a6b0e674fc0a211707f7393aa54347502e4"
      ],
      "author": {
        "name": "kongfanshen",
        "email": "kongfanshen@hashdata.cn",
        "time": "Fri Oct 14 11:27:47 2022 +0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Add support for Cloudberry Database\n\nThis project is dedicated to supporting PXF in Cloudberry Database. In\nthis PR, we updated the build and test files to make it support\nCloudberryDB 1.0+. You can see more details in the commit.\n\nAuthored-by: Kongfanshen \u003ckongfanshen@hashdata.cn\u003e\nCo-authored-by: Hao Wu \u003cgfphoenix78@gmail.com\u003e\n"
    },
    {
      "commit": "9b8a8a6b0e674fc0a211707f7393aa54347502e4",
      "tree": "4352ed8ee5cdb7839f753ed27d9bd1a0995a4258",
      "parents": [
        "22810f6d1549a11606ff62da105cd8b2aa0677b4"
      ],
      "author": {
        "name": "Himanshu Pandey",
        "email": "pandeyhi@vmware.com",
        "time": "Fri Nov 18 08:56:44 2022 -0800"
      },
      "committer": {
        "name": "Dianjin Wang",
        "email": "wangdianjin@gmail.com",
        "time": "Thu Dec 18 16:21:00 2025 +0800"
      },
      "message": "Address PR Feedback\n"
    }
  ],
  "next": "22810f6d1549a11606ff62da105cd8b2aa0677b4"
}
