)]}'
{
  "log": [
    {
      "commit": "a46a571a701b12f733b0e30645b98e8211d88d0b",
      "tree": "94f0981eec243a1ec4a81b97ad12dbb4b3c42860",
      "parents": [
        "f14ce1e6082ed4dd13f65d70893fd69f1678b315"
      ],
      "author": {
        "name": "Mika Naylor",
        "email": "mnaylor@confluent.io",
        "time": "Thu Jun 11 11:00:39 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 12:00:39 2026 +0200"
      },
      "message": "[FLINK-39897][table] Fix SQL serialization when using limit without order\n\nThis closes #28367."
    },
    {
      "commit": "f14ce1e6082ed4dd13f65d70893fd69f1678b315",
      "tree": "dbe3341600e9f5d28017057935ab787cb1c0facb",
      "parents": [
        "f8274080d47be0fb3583efacb0dace5e37c4f8ea"
      ],
      "author": {
        "name": "reswqa",
        "email": "reswqa@163.com",
        "time": "Tue Jun 02 15:33:45 2026 +0800"
      },
      "committer": {
        "name": "reswqa",
        "email": "reswqa@163.com",
        "time": "Thu Jun 11 16:31:54 2026 +0800"
      },
      "message": "[FLINK-39818][ci] Filter org.eclipse.parsson:parsson false positive for Elasticsearch connector\n"
    },
    {
      "commit": "f8274080d47be0fb3583efacb0dace5e37c4f8ea",
      "tree": "0d8e8e6231dbd48c66a7793e5a6c632ec500ba05",
      "parents": [
        "edfeb3269146ed05476a405335e8af0cb8569482"
      ],
      "author": {
        "name": "Jubin Soni",
        "email": "jubinsoni27@gmail.com",
        "time": "Wed Jun 10 22:57:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 07:57:27 2026 +0200"
      },
      "message": "[FLINK-39711][runtime] Expose maxExceptions on exception message parameters\n\n\n---------\n\nCo-authored-by: Jubin Soni \u003cjubin.soni@yahooinc.com\u003e"
    },
    {
      "commit": "edfeb3269146ed05476a405335e8af0cb8569482",
      "tree": "36ed421402be171e146e4fd5a2ef0f7b5eb26c62",
      "parents": [
        "f03c904426853ad3a62883d196b4f6b07c7ef365"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed Jun 10 16:30:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 16:30:17 2026 +0200"
      },
      "message": "[hotfix][build] Put commas into exclusion groups to avoid commas only"
    },
    {
      "commit": "f03c904426853ad3a62883d196b4f6b07c7ef365",
      "tree": "97ac96ea768832d75492d03df901805eddf866df",
      "parents": [
        "4828c1869f815d2b9cef2e8617b47f5fad01edeb"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "rgharib@confluent.io",
        "time": "Wed Jun 10 09:40:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 09:40:03 2026 +0200"
      },
      "message": "[FLINK-39868][table-runtime] Remove per-row logging from `parseUrl` and `subString`"
    },
    {
      "commit": "4828c1869f815d2b9cef2e8617b47f5fad01edeb",
      "tree": "2d79a80cdad28ac337f3719a554980daef83c431",
      "parents": [
        "9a63a472e56941b05d48fece3dc0ed7a8b3ab229"
      ],
      "author": {
        "name": "Yuepeng Pan",
        "email": "panyuepeng@apache.org",
        "time": "Wed Jun 10 01:10:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 01:10:06 2026 +0800"
      },
      "message": "[FLINK-39894][tools/releasing] Change version in generated REST API specifications yml files when creating a new release branch (#28365)"
    },
    {
      "commit": "9a63a472e56941b05d48fece3dc0ed7a8b3ab229",
      "tree": "6c9f7d4364293d272f7e65046c1c5c2f0f28f07b",
      "parents": [
        "afb5ef94dd9ffc619ff90dd663501224777592ec"
      ],
      "author": {
        "name": "Yuepeng Pan",
        "email": "panyuepeng@apache.org",
        "time": "Tue Jun 09 19:14:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 19:14:51 2026 +0800"
      },
      "message": "[hotfix][runtime/test] Enhance the test case CreditBasedPartitionRequestClientHandlerTest#testReceiveCompressedBuffer for checking totalQueueSizeInBytes (#28355)"
    },
    {
      "commit": "afb5ef94dd9ffc619ff90dd663501224777592ec",
      "tree": "1991c4c362f6cdd5c952e4798d34ee9b4d13ca11",
      "parents": [
        "c46e3aef83672d51d00d1706dbf6d90dc66fe602"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Sat Jun 06 21:20:12 2026 +0200"
      },
      "committer": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Tue Jun 09 00:05:30 2026 +0200"
      },
      "message": "[FLINK-39879][tests] Stop CheckpointAcknowledgeFailureITCase hanging on slow CI\n\nThe test waited on an unbounded future that never completes when the tiny\npekko.ask.timeout (load-bearing for the AskTimeoutException assertion) fails\nthe job before the keyed state is updated, hanging the surefire fork until\nthe CI watchdog kills it. Propagate a terminal job failure into the wait so\nthe test fails fast with the real cause, and add @Timeout(5, MINUTES) as the\nhard anti-hang guard. The product-side follow-up is tracked as FLINK-39738.\n\nGenerated-by: Claude Opus 4.8 (1M context)\n"
    },
    {
      "commit": "c46e3aef83672d51d00d1706dbf6d90dc66fe602",
      "tree": "7b9c51a24b2bb8f9eba3923e97903e45d85996a9",
      "parents": [
        "392e0325e880e50f8f564377f212c1cbfbbe1c76"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Mon Jun 08 10:08:22 2026 +0200"
      },
      "committer": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Mon Jun 08 11:41:25 2026 +0200"
      },
      "message": "[FLINK-39884][ci] Free up additional disk space for CI runs\n\nThe existing free_disk_space.sh frees ~28GB, but several large toolchains\nshipped with the Azure Ubuntu runner image are left in place. Remove the\nones that are unused by a Flink Java/e2e build to give CI more headroom and\nreduce disk-pressure flakiness:\n\n- Hosted tool caches: CodeQL, go, node, Ruby and PyPy. The Python tool cache\n  is intentionally kept, because the e2e job\u0027s UsePythonVersion task runs\n  after this script and relies on it.\n- Other language/SDK directories: swift, miniconda, microsoft (Edge) and ghc.\n- Preloaded Docker base images, via \"docker image prune\". Flink restores its\n  cached testcontainers images later in the pipeline, so this does not evict\n  anything the build needs.\n\nGenerated-by: Claude Code (Opus 4.8)\n"
    },
    {
      "commit": "392e0325e880e50f8f564377f212c1cbfbbe1c76",
      "tree": "92c09c4b8a8c19728bffc5c016221d31f56b5a25",
      "parents": [
        "f77b82156870c28c7d6dd4e01047d4a9620eeb87"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Mon Jun 08 11:02:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:02:06 2026 +0200"
      },
      "message": "[hotfix][ci] Do not run GHA nightly if there is no newer commits since the last run"
    },
    {
      "commit": "f77b82156870c28c7d6dd4e01047d4a9620eeb87",
      "tree": "bd30f19145d30c6d48098f5be35c1877e28a5a35",
      "parents": [
        "5c2e1d0bb9eec48eca3497721bbfca8909c4db21"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sun Jun 07 15:00:09 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@confluent.io",
        "time": "Mon Jun 08 11:00:29 2026 +0200"
      },
      "message": "[hotfix][tests] Replace deprecated `JavaConversions` in `TableTestBase`\n"
    },
    {
      "commit": "5c2e1d0bb9eec48eca3497721bbfca8909c4db21",
      "tree": "75d1217dc512def24cb5ae4df2f0ae34ef2df86e",
      "parents": [
        "6a8cb80a6043431a3f158ff6c2aea0a32099791a"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat Jun 06 10:19:08 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@confluent.io",
        "time": "Mon Jun 08 11:00:29 2026 +0200"
      },
      "message": "[FLINK-39882][table] Parser can not parse unparsed polymorphic table functions with several table args\n"
    },
    {
      "commit": "6a8cb80a6043431a3f158ff6c2aea0a32099791a",
      "tree": "498c20f6d673f7538ef99a318c3f039d94b444ee",
      "parents": [
        "d720d58c3bf2b871eda86851f23b8c7cc1ee55ab"
      ],
      "author": {
        "name": "Xuyang",
        "email": "xyzhong188@163.com",
        "time": "Mon Jun 08 14:12:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:12:34 2026 +0800"
      },
      "message": "[FLINK-39820][docs] Update delta join documentation with new features in 2.3 (#28354)"
    },
    {
      "commit": "d720d58c3bf2b871eda86851f23b8c7cc1ee55ab",
      "tree": "07c93a19ef807ce3e0220ce64faa9e37c42e2138",
      "parents": [
        "af30def508f155a1b80ed7c4d8f0bbaa34c78813"
      ],
      "author": {
        "name": "Yuepeng Pan",
        "email": "panyuepeng@apache.org",
        "time": "Sun Jun 07 22:48:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 22:48:26 2026 +0800"
      },
      "message": "[hotfix] Fix some typos for connector-base, protobuf, runtime, table-planner and tests modules. (#28328)"
    },
    {
      "commit": "af30def508f155a1b80ed7c4d8f0bbaa34c78813",
      "tree": "cec9ef36b0fb6a91188a4dab7ab7c687f7514984",
      "parents": [
        "a552ca37a509d228f011024070dc76d6b90d54b9"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sun Jun 07 08:29:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 08:29:18 2026 +0200"
      },
      "message": "[FLINK-38809][Tests] Upgrade Testcontainers to 2.0.5"
    },
    {
      "commit": "a552ca37a509d228f011024070dc76d6b90d54b9",
      "tree": "1dab8dba24c3ee6dba96498ab728d74cc4effd44",
      "parents": [
        "832fb189bc209cde705c4b6a7a032992bf536c2d"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sun Jun 07 08:26:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 08:26:47 2026 +0200"
      },
      "message": "[FLINK-39880][tests] Bump minikdc to 3.4.3"
    },
    {
      "commit": "832fb189bc209cde705c4b6a7a032992bf536c2d",
      "tree": "f9fc0c13f27acb07b1c302bc20e8df95a59cdb66",
      "parents": [
        "5c0e9a8b45fbb264cdbc48640aa4d890d97fb41f"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat Jun 06 00:09:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 00:09:43 2026 +0200"
      },
      "message": "[FLINK-39872][e2e] Add `wrapInExecutionException` to `common.sh` "
    },
    {
      "commit": "5c0e9a8b45fbb264cdbc48640aa4d890d97fb41f",
      "tree": "3c281c3fb4815f3947de572bfc686262066fbf99",
      "parents": [
        "8a5687898a664d51b9038dcb21f50f59ab313864"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Fri Jun 05 13:19:00 2026 +0200"
      },
      "committer": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Fri Jun 05 22:07:50 2026 +0200"
      },
      "message": "[FLINK-39865][ci] Replace abandoned travis-ci artifacts uploader with AWS CLI for nightly S3 upload\n\nThe nightly \"Upload artifacts to S3\" step installed the travis-ci/artifacts\nuploader via `curl ... | bash`. That installer downloads its binary from a\nhardcoded travis-ci S3 bucket which now returns HTTP 403, so the XML error\npage was saved as the `artifacts` binary and executed, breaking every nightly\nrun since 2026-06-02. The travis-ci/artifacts project is abandoned.\n\nReplace it with the maintained AWS CLI (`aws s3 cp --recursive`), installing\nAWS CLI v2 in the build container when absent. Credentials are now read from\nthe environment (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY) instead of being\npassed as command-line arguments, so they no longer appear in the `set -x`\ntrace. The default (private) ACL and bucket-root upload layout are preserved.\n\nGenerated-by: Claude Code (Opus 4.8)\n"
    },
    {
      "commit": "8a5687898a664d51b9038dcb21f50f59ab313864",
      "tree": "aac59089181cb94c5e49fd492b2504d547a10d6c",
      "parents": [
        "676365b5ee7052ddca7c98737f8c9cb49584cc32"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Thu Jun 04 12:15:08 2026 +0200"
      },
      "committer": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Fri Jun 05 20:22:09 2026 +0200"
      },
      "message": "[FLINK-39846][tests] Restore IPv6 guard and config in IPv6HostnamesITCase under AdaptiveScheduler\n\nThe JUnit5 migration (FLINK-39124, #27669) converted the JUnit4 \u0027@Rule MiniClusterWithClientResource(... setConfiguration(getConfiguration()) ...)\u0027 to a static \u0027@RegisterExtension MiniClusterExtension\u0027 with a hardcoded configuration, dropping the call to getConfiguration(). That method bound the cluster to a local IPv6 address and skipped the test (via an IPv6 assumption) when no non-loopback IPv6 address is available. After the migration the guard became dead code, so the test ran unconditionally without IPv6 configuration and failed in the test_cron_adaptive_scheduler nightly leg on master (the job uses GlobalWindows.createWithEndOfStreamTrigger() -\u003e a blocking data exchange the AdaptiveScheduler does not support).\n\nResolve the IPv6 address once at class load and configure the MiniCluster with it when present; use a class-level @EnabledIf condition to skip the class (before the MiniCluster is started) when no usable IPv6 address is available, restoring the pre-migration skip behavior. Also tag the test with FailsWithAdaptiveScheduler so it is excluded from the adaptive profile even when an IPv6 address is available, since the blocking exchange is genuinely incompatible with the AdaptiveScheduler.\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n"
    },
    {
      "commit": "676365b5ee7052ddca7c98737f8c9cb49584cc32",
      "tree": "722a8d4590377e80f9c2859c6ca4a23658ae7fae",
      "parents": [
        "ef04bb14902657205e3f4131c6c16f4fa4855b89"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Fri Jun 05 19:03:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 19:03:54 2026 +0200"
      },
      "message": "[FLINK-39858][rest] Fail orphaned in-flight request futures on RestClient close (#28315)\n\n* [FLINK-39858][rest] Fail orphaned in-flight request futures on RestClient close\n\nRestClient tracked in-flight requests only via responseChannelFutures, whose\nentries the connect listener removes once connect completes. A close() racing\nwith a request already past the connect phase could leave its response future\nuncompleted, hanging the caller. Track each terminal response future for its\nwhole lifetime and fail those on close.\n\nGenerated-by: Claude Code (Claude Opus 4.8)"
    },
    {
      "commit": "ef04bb14902657205e3f4131c6c16f4fa4855b89",
      "tree": "2a1ffabf15ea4eefa93ac9dd5efaead85ff37688",
      "parents": [
        "80189e470f462ec02ee6aeafca31b8ac15efd439"
      ],
      "author": {
        "name": "Timo Walther",
        "email": "twalthr@apache.org",
        "time": "Fri Jun 05 18:23:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 18:23:13 2026 +0200"
      },
      "message": "[FLINK-39823][table] Fix incorrect type inference for typed PTF table args\n\nThis closes #28323."
    },
    {
      "commit": "80189e470f462ec02ee6aeafca31b8ac15efd439",
      "tree": "18d20c44eb6cb2b58ccb40c84924580a13c0fe42",
      "parents": [
        "7a915ff7747d2772f714df34e5849887753c9872"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "rgharib@confluent.io",
        "time": "Fri Jun 05 17:33:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 17:33:34 2026 +0200"
      },
      "message": "[FLINK-39799][table] Preserve user-typed query text for materialized table and view definitions"
    },
    {
      "commit": "7a915ff7747d2772f714df34e5849887753c9872",
      "tree": "daa7c39e79675f6ad7c19104bd355615d541a03d",
      "parents": [
        "a62a144a5e99ef1d66007f2caf409a62fdbcb5ad"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri Jun 05 17:31:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 17:31:13 2026 +0200"
      },
      "message": "[FLINK-39857] Upgrade Pekko to 1.6.0 "
    },
    {
      "commit": "a62a144a5e99ef1d66007f2caf409a62fdbcb5ad",
      "tree": "74db548699e035738f86ba54569270a500432ab9",
      "parents": [
        "ed1738d57b411b3740f7ab791f217e7c1691112d"
      ],
      "author": {
        "name": "Jim Hughes",
        "email": "jhughes@confluent.io",
        "time": "Fri Jun 05 11:28:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 17:28:50 2026 +0200"
      },
      "message": "[FLINK-39421][table] Fix metadata filter contract and add coverage \n\nPushFilterIntoTableSourceScanRule now classifies each input predicate\nby identity-Set membership in the source\u0027s accepted/remaining lists,\nallowing arbitrary non-contiguous subsets. An input absent from both\nraises a TableException.\n\nMetadata-only predicates the rule cannot push (source does not support\nit or the spec is already attached) now stay as a runtime Calc; the\nprior physical route created a FilterPushDownSpec that crashed\ncompiled-plan restore once ProjectPushDownSpec narrowed the row type.\n\nMetadataFilterPushDownSpec enforces the same identity round-trip on\nrestore; needAdjustFieldReferenceAfterProjection() returns false so\nScanReuser can share a scan across queries with the same metadata\nfilter but different projections.\n\nTests cover the four MetadataFilterResult shapes end-to-end, the\ncoverage invariant, and JSON serde of the spec."
    },
    {
      "commit": "ed1738d57b411b3740f7ab791f217e7c1691112d",
      "tree": "6ada31ef4a1a32f293039613c8847d9cef09c9f2",
      "parents": [
        "15da2ba1471ee1cb86580efce1326fa9957dd97e"
      ],
      "author": {
        "name": "nattilabalint",
        "email": "59573297+nattilabalint@users.noreply.github.com",
        "time": "Fri Jun 05 15:56:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 15:56:58 2026 +0200"
      },
      "message": "[FLINK-39761][runtime] Set \u0027Connection: close\u0027 header in `StaticFileServerHandler` when sending \u0027304 Not Modified\u0027 responses"
    },
    {
      "commit": "15da2ba1471ee1cb86580efce1326fa9957dd97e",
      "tree": "d7ef54f05538b501d16a7ef656c8193ce1e2ef0d",
      "parents": [
        "c3ec5690874a55110ef3ecfb80a335c415ee1b57"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "rgharib@confluent.io",
        "time": "Fri Jun 05 11:32:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 11:32:23 2026 +0200"
      },
      "message": "[FLINK-39652][docs] Improve documentation for regexp functions (#28325)"
    },
    {
      "commit": "c3ec5690874a55110ef3ecfb80a335c415ee1b57",
      "tree": "cc127162f885adafffacd20a6ae7fb93bcba2444",
      "parents": [
        "4e98dce287836fb88d863e4d0abce60784ce7397"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Thu Jun 04 11:06:38 2026 +0200"
      },
      "committer": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Thu Jun 04 22:28:24 2026 +0200"
      },
      "message": "[FLINK-39845][tests] Fix SavepointITCase.testStopWithSavepointFailsOverToSavepoint under AdaptiveScheduler\n\nThe JUnit5 migration (FLINK-39124, #27667) replaced a cause-chain search (ExceptionUtils.assertThrowable -\u003e findThrowable) with a direct-cause assertion (assertThatThrownBy(...).hasCauseInstanceOf(StopWithSavepointStoppingException.class)). Under the AdaptiveScheduler, StopWithSavepoint.onLeave() wraps the expected StopWithSavepointStoppingException inside a FlinkException (\"Stop with savepoint operation could not be completed.\"), so it is no longer the direct cause. This regressed the test_cron_adaptive_scheduler nightly leg on master (red every build since 2026-03-21); the default scheduler still exposes it as the direct cause and passed.\n\nRestore the chain search via FlinkAssertions.anyCauseMatches so the test passes under both the default and adaptive schedulers, matching the pre-migration behavior still present on release-2.1.\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n"
    },
    {
      "commit": "4e98dce287836fb88d863e4d0abce60784ce7397",
      "tree": "87938f3bef41604adfb3adecf7e069fe6f5bf949",
      "parents": [
        "690b6a3fff4483e98399011d40ca70f6c00e2289"
      ],
      "author": {
        "name": "Dennis-Mircea Ciupitu",
        "email": "dennis.mircea.ciupitu@gmail.com",
        "time": "Thu Jun 04 12:31:43 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 10:31:43 2026 +0100"
      },
      "message": "[hotfix][docs] Fix typo and heading level in state backends documentation (#28173)\n\n* [hotfix][docs] Fix typo and heading level in state backends documentation\n\n* [hotfix][docs] Update the Available State Backends general description\n\n* [hotfix][docs] Address review comment"
    },
    {
      "commit": "690b6a3fff4483e98399011d40ca70f6c00e2289",
      "tree": "79c560453b24390c6a6cd08139d46b9a2a7fd172",
      "parents": [
        "a3072eeb30b755654e7e323932e681f9d1fe0935"
      ],
      "author": {
        "name": "Dennis-Mircea Ciupitu",
        "email": "dennis.mircea.ciupitu@gmail.com",
        "time": "Thu Jun 04 12:29:02 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 10:29:02 2026 +0100"
      },
      "message": "[hotfix][table-runtime] Fix typo in RowTimeMiniBatchAssignerOperator class name (#28172)"
    },
    {
      "commit": "a3072eeb30b755654e7e323932e681f9d1fe0935",
      "tree": "c068a6f84c095754852fc462c06aa2cf889118ab",
      "parents": [
        "4490b3074e67a6197177cacddde4149bd6597aee"
      ],
      "author": {
        "name": "Yuepeng Pan",
        "email": "panyuepeng@apache.org",
        "time": "Thu Jun 04 09:20:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 09:20:47 2026 +0800"
      },
      "message": "[FLINK-39836][runtime-web] Add missing License Header to .eslintrc.js and .stylelintrc.js in web-dashboard (#28307)"
    },
    {
      "commit": "4490b3074e67a6197177cacddde4149bd6597aee",
      "tree": "a767016e99cd5e22fcf509c03bba10b73a22ae47",
      "parents": [
        "b63688eea97597e47bedaa5430184dada222fe4a"
      ],
      "author": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Wed Jun 03 17:03:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 17:03:29 2026 +0200"
      },
      "message": "[FLINK-39258][table] Extend restore tests for TO_CHANGELOG and FROM_CHANGELOG \n\nThis closes #28278."
    },
    {
      "commit": "b63688eea97597e47bedaa5430184dada222fe4a",
      "tree": "766b069b36ad4df7aaf4b8495381c8a03dbd63c1",
      "parents": [
        "cebcd7074a6c583206125c2c1cfda7151a5e536e"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed Jun 03 12:02:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 12:02:45 2026 +0200"
      },
      "message": "[FLINK-39829][build] Bump scala to 2.12.21"
    },
    {
      "commit": "cebcd7074a6c583206125c2c1cfda7151a5e536e",
      "tree": "84ac4e54378842ccc9943c64422ca3e5642d29e1",
      "parents": [
        "8bf4827a3bee9a848f885999028356b7b5cc070d"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Wed Jun 03 11:33:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 11:33:44 2026 +0200"
      },
      "message": "[FLINK-39821][table] Make REGEXP_REPLACE return type nullable (#28293)\n\nREGEXP_REPLACE used nullableIfArgs, so the planner inferred a NOT NULL output when all three arguments were NOT NULL. The runtime returns null for a non-literal regex that fails to compile, since a column reference or CONCAT result is only validated at runtime, not at planning time. That let a null value flow through a column the planner believed was non-null.\n\nSwitches the output type strategy to explicit(STRING().nullable()), matching REGEXP_EXTRACT which is nullable for the same reason. REGEXP keeps nullableIfArgs because its runtime returns false, not null, on an invalid pattern.\n\nAdds a RegexpFunctionsITCase case with NOT NULL arguments and a non-literal invalid regex, asserting the output type stays nullable and the value is null."
    },
    {
      "commit": "8bf4827a3bee9a848f885999028356b7b5cc070d",
      "tree": "4fb9604e92f400092ac944aa8c0c94547c69f5f1",
      "parents": [
        "8ca97a33d25080bf06db74fb45b2df1fa921c4d6"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Wed Jun 03 08:59:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 08:59:01 2026 +0200"
      },
      "message": "[FLINK-39136][filesystems] Bump google-cloud-storage to 2.68.0 in flink-gs-fs-hadoop (#28286)\n\n* [FLINK-39136][filesystems] Bump google-cloud-storage to 2.68.0 in flink-gs-fs-hadoop\n\nThe GCS file system bundled google-cloud-storage 2.29.1, which throws a\nNullPointerException instead of retrying certain GCS 503 Service Unavailable\nerrors during resumable uploads, breaking checkpointing for jobs writing to\ngs:// via a RecoverableWriter. The upstream fix is in googleapis/java-storage#2987.\n\nBump google-cloud-storage 2.29.1 -\u003e 2.68.0 and the matching grpc artifacts\n1.59.1 -\u003e 1.81.0, regenerate the bundled-dependency NOTICE accordingly, add the\nbundled license file for the newly bundled stax2-api, and update the version\nlinks in the GCS filesystem documentation.\n\nAdd integration tests that run against a real GCS bucket, mirroring the existing\nS3 filesystem integration tests. They are skipped unless a bucket is configured\nvia the IT_CASE_GCS_BUCKET environment variable; authentication uses Application\nDefault Credentials (GOOGLE_APPLICATION_CREDENTIALS).\n\nGenerated-by: Claude Code (Opus 4.8)"
    },
    {
      "commit": "8ca97a33d25080bf06db74fb45b2df1fa921c4d6",
      "tree": "fbac5e287d39fa187dd11cd61df7da243ff18118",
      "parents": [
        "3b31886d0c06caf2fe62b4687ca3819d2d27d302"
      ],
      "author": {
        "name": "Efrat Levitan",
        "email": "elevitan@confluent.io",
        "time": "Mon Jun 01 15:51:37 2026 +0300"
      },
      "committer": {
        "name": "Piotr Nowojski",
        "email": "pnowojski@users.noreply.github.com",
        "time": "Wed Jun 03 08:17:04 2026 +0200"
      },
      "message": "[FLINK-39811][s3] Document adjusted part size for s5cmd\n"
    },
    {
      "commit": "3b31886d0c06caf2fe62b4687ca3819d2d27d302",
      "tree": "827fd20d2b293f930dfbe22c0b83af08b29f93d4",
      "parents": [
        "04193173887aa46b52152cec4d1e4925c3d0d780"
      ],
      "author": {
        "name": "Efrat Levitan",
        "email": "41479945+Efrat19@users.noreply.github.com",
        "time": "Thu May 28 10:49:12 2026 +0300"
      },
      "committer": {
        "name": "Piotr Nowojski",
        "email": "pnowojski@users.noreply.github.com",
        "time": "Wed Jun 03 08:17:04 2026 +0200"
      },
      "message": "[FLINK-39811][s3] Optionally Adjust s5cmd part size to fully ustilize s5cmd workers pool during downloads\n\nUnlike the upload path (recoverableWriter) which sets S3_MULTIPART_MIN_PART_SIZE of 5 MiB[1], we don\u0027t set any part size for s5cmd so downloads part size fall back to its default of 50MiB[2].\n\nAs a result, the effective concurrency is capped to batchSize / 50MiB, underutilizing the worker pool for downloaded batchSizes below (50*5 MiB) (5 being s5cmd default concurrency[3])\n\ns3 sdk source ref[4] showing N(\u003dconcurrency) channels are initialized but only (batchsize/partsize) of them are assigned a range to read.\n\n[1]https://github.com/apache/flink/blob/master/flink-filesystems/flink-s3-fs-base/src/main/java/org/apache/flink/fs/s3/common/FlinkS3FileSystem.java\\#L93\n[2]https://github.com/peak/s5cmd/blob/54d6a8a955688f07e5acc40d61f9c42ceac6c33b/command/cp.go\\#L30\n[3]https://github.com/peak/s5cmd/blob/54d6a8a955688f07e5acc40d61f9c42ceac6c33b/command/cp.go\\#L29\n[4]https://github.com/aws/aws-sdk-go/blob/070853e88d22854d2355c2543d0958a5f76ad407/service/s3/s3manager/download.go\\#L329-L338\n"
    },
    {
      "commit": "04193173887aa46b52152cec4d1e4925c3d0d780",
      "tree": "95e959d3b271f1aef92f07b5ad084cab3bdf95a3",
      "parents": [
        "a5a7925415bdf6f257b100cc27e9aeb19d096d04"
      ],
      "author": {
        "name": "Ferenc Csaky",
        "email": "fcsaky@apache.org",
        "time": "Wed Jun 03 07:36:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 07:36:08 2026 +0200"
      },
      "message": "[hotfix][docs] Update Kafka connector doc version"
    },
    {
      "commit": "a5a7925415bdf6f257b100cc27e9aeb19d096d04",
      "tree": "fa9e7a5c1db59d32c5b8353a3e54c0da2898a080",
      "parents": [
        "8cce8e8f74f84de90416c97059fbe8d94d2a8ba9"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Tue Jun 02 17:15:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 17:15:47 2026 +0200"
      },
      "message": "[FLINK-39651][table] REGEXP plan-time validation and hot-path log cleanup (#28292)\n\n* [FLINK-39651][table] Drop hot-path error log in REGEXP\n\nSqlFunctionUtils.regExp caught any exception from pattern compilation with LOG.error, producing one stack trace per record processed when an invalid regex was supplied (for example a column-referenced or function-built pattern that fails to compile).\n\nThe pattern is already looked up through REGEXP_PATTERN_CACHE, so the only hot-path cost left was the logging. PatternSyntaxException is now caught silently and returns false, preserving the prior runtime contract without flooding the log. Other exception types are no longer swallowed.\n\nAdds runtime IT cases for REGEXP in RegexpFunctionsITCase covering literal valid/no-match, null input, column-ref invalid, and function-call regex paths.\n\n* [FLINK-39651][table] Route REGEXP through BridgingSqlFunction\n\nMigrates REGEXP to the modern BuiltInFunctionDefinition stack while keeping the existing StringCallGen codegen path.\n\nThe function definition is renamed to name(\"REGEXP\") and marked runtimeProvided() so it is exposed to both SQL and Table API conversion through CoreModule. A new arm in ExprCodeGenerator\u0027s BridgingSqlFunction block routes the call to StringCallGen.generateRegExp. The legacy FlinkSqlOperatorTable.REGEXP entry, the DirectConvertRule mapping, and the case REGEXP arm in StringCallGen are removed.\n\nBehavior is preserved: same arg types, same codegen call, same runtime helper. Only the registration path changes. The Table API and Python string representation now renders as REGEXP(...) to match the function name.\n\n* [FLINK-39651][table] Validate REGEXP literal patterns at plan time\n\nAdds RegexpInputTypeStrategy which validates the two STRING arguments and delegates the literal-pattern check to the shared StrategyUtils.validateLiteralPattern helper introduced for the regex function family. Literal regex arguments are eagerly compiled during type inference and surface failures as ValidationException; non-literal or null-literal arguments are deferred to runtime.\n\nREGEXP is wired through the new strategy via SpecificInputTypeStrategies.REGEXP.\n\nTests: new RegexpInputTypeStrategyTest covers the four branches (non-literal defers, valid literal compiles, null literal is deferred, invalid literal fails). RegexpFunctionsITCase gains a plan-time validation TestSetSpec covering both Table API and SQL paths."
    },
    {
      "commit": "8cce8e8f74f84de90416c97059fbe8d94d2a8ba9",
      "tree": "c60fd690a0bda849549c057b329a03413cb21528",
      "parents": [
        "50ff839d0d681160797468bbcf2bf0c917dd882a"
      ],
      "author": {
        "name": "Efrat Levitan",
        "email": "efrat890089@gmail.com",
        "time": "Tue May 26 12:00:17 2026 +0300"
      },
      "committer": {
        "name": "Rui Fan",
        "email": "1996fanrui@gmail.com",
        "time": "Tue Jun 02 15:21:53 2026 +0200"
      },
      "message": "[FLINK-39790][state/metrics] Fix State latency/size tracking metrics not exported without sampling\n\nPreviousely when set to\nstate.*-track.keyed-state-enabled: true\nstate.*-track.sample-interval: 1\n\nmetrics are not exported because for sampleInterval of 1, StateMetricBase#loopUpdateCounter will always return 0.\n"
    },
    {
      "commit": "50ff839d0d681160797468bbcf2bf0c917dd882a",
      "tree": "ff18f68f5537f06f6084aae02f88b783506d0dc3",
      "parents": [
        "ea8905a85b6fbb2476c7126d477de7ffc9cd375f"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Mon Jun 01 23:06:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 23:06:25 2026 +0200"
      },
      "message": "[FLINK-39812][table] Migrate `FlinkTypeFactory` to java"
    },
    {
      "commit": "ea8905a85b6fbb2476c7126d477de7ffc9cd375f",
      "tree": "6ce3f887f5ff3b52624e822ea6cd60cdc58c6d2d",
      "parents": [
        "cc348d480963ef619b3f55832e8ed2f50944ca88"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Mon Jun 01 21:01:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 21:01:06 2026 +0200"
      },
      "message": "[FLINK-39815][tests] Mark SecurityManager related tests with `FailsOnJava25`"
    },
    {
      "commit": "cc348d480963ef619b3f55832e8ed2f50944ca88",
      "tree": "27d3916cc94db153d953b473d8c194c81fd1fda7",
      "parents": [
        "afd806e559489b797e717b3c6a048440a19744db"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Mon Jun 01 13:24:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:24:36 2026 +0200"
      },
      "message": "[FLINK-39801][table] Skip serializing empty partition/order keys for PTF table args"
    },
    {
      "commit": "afd806e559489b797e717b3c6a048440a19744db",
      "tree": "4fb65e991b3b5aba64390a09a50e065f8f110386",
      "parents": [
        "f952a922ed33d899af8acb303ee82557b6998a81"
      ],
      "author": {
        "name": "Arvind Kandpal",
        "email": "arvind.kandpal@ksolves.com",
        "time": "Mon Jun 01 15:12:05 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 17:42:05 2026 +0800"
      },
      "message": "[FLINK-37422][docs] Fix typos and translation alignment in streaming analytics zh document"
    },
    {
      "commit": "f952a922ed33d899af8acb303ee82557b6998a81",
      "tree": "92f6c7f9a2724d4bc0df177f79b12b3f7b50296b",
      "parents": [
        "6c756a084d40f4716cdfdb4fdd71b0c919c448e6"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Mon Jun 01 11:02:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 11:02:54 2026 +0200"
      },
      "message": "[FLINK-39717][docs] Document SET/RESET key handling for ALTER TABLE, CATALOG, MODEL and DATABASE\n\nThis closes #28211."
    },
    {
      "commit": "6c756a084d40f4716cdfdb4fdd71b0c919c448e6",
      "tree": "b7faf737d1a61f087436a45de6b9c277ba13e891",
      "parents": [
        "810f0810478089616de4d4085f202f61f247e843"
      ],
      "author": {
        "name": "Vishal Kamlapure",
        "email": "96493703+Vishal-Kamlapure@users.noreply.github.com",
        "time": "Mon Jun 01 08:44:04 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 11:14:04 2026 +0800"
      },
      "message": "[hotfix][docs] Fix code examples and minor issues in DataStream documentation"
    },
    {
      "commit": "810f0810478089616de4d4085f202f61f247e843",
      "tree": "22e5ab5bdc86da6456077877a59221a34d40cf8d",
      "parents": [
        "3a785f917e8172ba6276a268b8d3716e07a975af"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat May 30 20:59:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 30 20:59:46 2026 +0200"
      },
      "message": "[FLINK-39806][build] Add jdk25 required flags"
    },
    {
      "commit": "3a785f917e8172ba6276a268b8d3716e07a975af",
      "tree": "8838da12fd65c9a44b315c8a40e174ea5fa0b072",
      "parents": [
        "fa2678926fa7e626e6c7e44ec0da6b749dc602cd"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat May 30 07:18:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 30 07:18:37 2026 +0200"
      },
      "message": "[FLINK-39803][e2e] Ignore jdk25 native access and deprecated method warnings"
    },
    {
      "commit": "fa2678926fa7e626e6c7e44ec0da6b749dc602cd",
      "tree": "fd55269fa6ed58f570ff3f62fc67497ce5e377d6",
      "parents": [
        "59bb8b7a089b22665e06baee15c574541c402383"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri May 29 21:05:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 21:05:54 2026 +0200"
      },
      "message": "[FLINK-36602][tests] Add pre Calcite 1.38.0 tests for CALCITE-7562 issue"
    },
    {
      "commit": "59bb8b7a089b22665e06baee15c574541c402383",
      "tree": "e6b14576d31f704ffcc701bcffb3b403b22e6684",
      "parents": [
        "c033b17fae27117fbfc6b007348e9499d7830023"
      ],
      "author": {
        "name": "Mika Naylor",
        "email": "mnaylor@confluent.io",
        "time": "Fri May 29 19:04:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 19:04:04 2026 +0200"
      },
      "message": "[FLINK-39379][table] Add state management to PTF test harness (#28212)\n\nExtends the PTF Test Harness to support the use of state (map, list, pojo, and row).\nThe harness passes state objects to a PTF via eval() and converts the state into an internal format (Map/List/RowData) after eval() returned to also provide testing of state serialization.\nThe harness can initialize, inspect (get), set, or clear individual states of a PTF.\nThis change does not yet add support for state TTL."
    },
    {
      "commit": "c033b17fae27117fbfc6b007348e9499d7830023",
      "tree": "2be7e598a9f8e260fa1793a7c2eb3c8626bb738b",
      "parents": [
        "e400c2c221368e98e80d5589cacbcb0b1585ba66"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "rgharib@confluent.io",
        "time": "Thu May 28 16:00:22 2026 +0200"
      },
      "committer": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Fri May 29 11:20:07 2026 +0200"
      },
      "message": "[FLINK-39636][table] Widen output column nullability for partial deletes\n\nWhen produces_full_deletes\u003dfalse, the operator nulls out columns that are not part of the upsert key or PARTITION BY on DELETE rows. The output schema previously declared those columns as NOT NULL, mirroring the input, which conflicts with the values the operator emits at runtime.\n\nRead produces_full_deletes in OUTPUT_TYPE_STRATEGY and widen non-preserved columns to nullable. Preserved columns (upsert key plus partition keys) keep their declared nullability. The new ChangelogTypeStrategyUtils#computePreservedColumnIndices helper centralizes the index computation so the runtime and the type strategy stay\n  in sync.\n\nAdd ToChangelogOutputTypeStrategyTest covering all three cases: full deletes preserves NOT NULL, partial deletes with an upsert key widens only the non-key columns, and partial deletes without an upsert key widens everything.\n"
    },
    {
      "commit": "e400c2c221368e98e80d5589cacbcb0b1585ba66",
      "tree": "a3ecf621399fe9bd84d4b6e0b0357b409ec577a4",
      "parents": [
        "32f9e60eb9d7c33bac4fb3f91dc0200f03507c0c"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "rgharib@confluent.io",
        "time": "Thu May 28 15:25:50 2026 +0200"
      },
      "committer": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Fri May 29 11:20:07 2026 +0200"
      },
      "message": "[FLINK-39636][table] Remove unnecessary validation in TO_CHANGELOG\n\nDrop two checks that protected against user mistakes the engine can already handle silently:\n\n- op_mapping entries that reference change operations the input cannot produce no longer throw. The extra entries are unreachable at runtime, not harmful.\n- produces_full_deletes\u003dtrue against an append-only input no longer throws. The argument is a no-op there, equivalent to omitting it.\n\nThe remaining check covers the only case where the argument changes semantics in a way the function cannot honor:\nproduces_full_deletes\u003dfalse with no upsert key and no PARTITION BY, leaving nothing to preserve when nulling non-key columns. Rename validateProducesFullDeletes to validateProducesPartialDeletes to reflect the surviving case.\n\nClean up the now-redundant test cases, javadocs, and docs sections.\n"
    },
    {
      "commit": "32f9e60eb9d7c33bac4fb3f91dc0200f03507c0c",
      "tree": "ea73236ffc0cc658efaf1e10cca513d3a0c26919",
      "parents": [
        "d763453e045ad445c7d5a8382559d34a9429a1e9"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Tue May 26 12:59:44 2026 +0200"
      },
      "committer": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Fri May 29 11:20:07 2026 +0200"
      },
      "message": "[FLINK-39636][table] Emit partial DELETE rows in TO_CHANGELOG via upsert key\n\nWires TO_CHANGELOG to consume the upsert key surfaced by TableSemantics so row-semantic partial DELETE rows preserve identifying columns without requiring PARTITION BY. Also flips the produces_full_deletes default to true so the safe full-pre-image behavior is the default, and false is the explicit opt-in to partial deletes.\n"
    },
    {
      "commit": "d763453e045ad445c7d5a8382559d34a9429a1e9",
      "tree": "b4b3a029056ef16e8dd9e735ba23ba0961faef87",
      "parents": [
        "340fbf879fd3e03dea7b37f7c28c6c404db21f65"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Tue May 26 10:56:29 2026 +0200"
      },
      "committer": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Fri May 29 11:20:07 2026 +0200"
      },
      "message": "[FLINK-39735][table] Expose input upsert key on TableSemantics\n\nAdds upsertKeyColumns() to TableSemantics so ProcessTableFunctions can read the planner-derived upsert key candidates of each table input at specialization time. The planner exposes all candidates; picking one is the function\u0027s responsibility. UpsertKeyUtils provides a stable smallestKey helper for that choice.\n\nCo-Authored-By: Jubin Soni \u003cjubinsoni27@gmail.com\u003e\n"
    },
    {
      "commit": "340fbf879fd3e03dea7b37f7c28c6c404db21f65",
      "tree": "8bbcdf264eb1193314034a6f34fdfeb13f802b6b",
      "parents": [
        "bca2c0a6170adbbf39cfaf4327ec368f003e4f40"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Fri May 22 17:06:54 2026 +0200"
      },
      "committer": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Fri May 29 11:20:07 2026 +0200"
      },
      "message": "[FLINK-39636][table] Refactor ToChangelogTypeStrategy\n\nAligns the structure of ToChangelogTypeStrategy with FromChangelogTypeStrategy. Pure refactor, no behavior change.\n"
    },
    {
      "commit": "bca2c0a6170adbbf39cfaf4327ec368f003e4f40",
      "tree": "e074f4f808cd9fd469b670c385d04946264dcc43",
      "parents": [
        "692507671e8a65e6c803a053c0b53c725fe9b91d"
      ],
      "author": {
        "name": "Ramin Gharib",
        "email": "ramingharib@gmail.com",
        "time": "Thu May 21 17:57:55 2026 +0200"
      },
      "committer": {
        "name": "Gustavo de Morais",
        "email": "gustavopguto@gmail.com",
        "time": "Fri May 29 11:20:07 2026 +0200"
      },
      "message": "[FLINK-39636][table] Add produces_full_deletes parameter to TO_CHANGELOG\n\nIntroduces the optional produces_full_deletes boolean argument on the built-in TO_CHANGELOG PTF. Controls whether DELETE rows downstream carry the full pre-image. Only the partition-key path is covered here; row-semantic partial deletes via the upsert key follow in a later commit.\n"
    },
    {
      "commit": "692507671e8a65e6c803a053c0b53c725fe9b91d",
      "tree": "d83864992eee8d5217d31df7553925603abd2a12",
      "parents": [
        "09547cea2e250e147b126cf3e7e225cb8230f99f"
      ],
      "author": {
        "name": "SameerDevgon",
        "email": "49345451+SameerDevgon@users.noreply.github.com",
        "time": "Fri May 29 01:38:21 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 22:08:21 2026 +0200"
      },
      "message": "[FLINK-39425][metrics] `OpenTelemetryEventReporter` ignores `service.name` and `service.version config`"
    },
    {
      "commit": "09547cea2e250e147b126cf3e7e225cb8230f99f",
      "tree": "cbf74a97c9ff44c0edfa461c8ad44023e00d2736",
      "parents": [
        "5d9860c29db0f14736d7c8416c032b4cc22b2b87"
      ],
      "author": {
        "name": "Fabian Hueske",
        "email": "fhueske@confluent.io",
        "time": "Thu May 28 19:26:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 19:26:18 2026 +0200"
      },
      "message": "[hotfix][table] Fix flaky TemporalJoinITCase (#28273)\n\nFix was needed because FLINK-39719 modified TemporalRowTimeJoinOperator to drop late arriving probe-side records.\nTemporalJoinITCase\u0027s test data contained late records that would be dropped (or not) depending on when sources emitted watermarks.\nThis fix adjusts the watermark definition of the source table such that no late data is produced."
    },
    {
      "commit": "5d9860c29db0f14736d7c8416c032b4cc22b2b87",
      "tree": "5e0c0bf1490b7d61b141ccec7f760d8829f83cf2",
      "parents": [
        "85a8e7ac0c3b76101b354e82f7d8be85643114f7"
      ],
      "author": {
        "name": "Purushottam Sinha",
        "email": "psinha@confluent.io",
        "time": "Thu May 28 18:34:29 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 15:04:29 2026 +0200"
      },
      "message": "[FLINK-39768][tests][JUnit5 migration] Module: flink-avro - `AvroStreamingFileSinkITCase`"
    },
    {
      "commit": "85a8e7ac0c3b76101b354e82f7d8be85643114f7",
      "tree": "935b9007a741b41b03bc9c784c51864dcbc413dc",
      "parents": [
        "4ea57c18cbe0fb2b71758a1d758b804dd75dd43b"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Thu May 28 15:02:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 15:02:26 2026 +0200"
      },
      "message": "[FLINK-39793][table] Bump quartz to 2.5.2"
    },
    {
      "commit": "4ea57c18cbe0fb2b71758a1d758b804dd75dd43b",
      "tree": "d205d750e5cea112de852f260c835d548c7cd550",
      "parents": [
        "7402fd1ed34c9b560b4b18b8a3b5a3b7b87a7012"
      ],
      "author": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Thu May 28 10:54:52 2026 +0200"
      },
      "committer": {
        "name": "Martijn Visser",
        "email": "2989614+MartijnVisser@users.noreply.github.com",
        "time": "Thu May 28 14:20:42 2026 +0200"
      },
      "message": "[FLINK-39794][tests] Bind StreamNetworkBenchmarkEnvironment to loopback\n\nGenerated-by: Claude Opus 4.7\n"
    },
    {
      "commit": "7402fd1ed34c9b560b4b18b8a3b5a3b7b87a7012",
      "tree": "b2d2b78df92a3c99c9b0f907f7f1ecf0decc2ccf",
      "parents": [
        "34f770d7681ba7a4149fd671d14b12d546ffd90c"
      ],
      "author": {
        "name": "Hao Li",
        "email": "1127478+lihaosky@users.noreply.github.com",
        "time": "Wed May 27 13:58:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 22:58:44 2026 +0200"
      },
      "message": "[FLINK-39726][table] Support `USING CONNECTION` clause in `CREATE TABLE`"
    },
    {
      "commit": "34f770d7681ba7a4149fd671d14b12d546ffd90c",
      "tree": "ecbbc1d57cc3f3f1535f5ea5c52e95ab63dada68",
      "parents": [
        "176939632f520633ccdec653b121b503e77bd6d1"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed May 27 22:55:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 22:55:43 2026 +0200"
      },
      "message": "[FLINK-39702] Exclude netty 3.x from hadoop"
    },
    {
      "commit": "176939632f520633ccdec653b121b503e77bd6d1",
      "tree": "27a363ae61d5ebe8c5a46ba5f1bf43504466e90d",
      "parents": [
        "75120b525b87b512e3f74abfbdc4dbe3ff445912"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed May 27 22:31:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 22:31:58 2026 +0200"
      },
      "message": "[FLINK-39773][tests] Use random ports in `ClusterEntryPointTest` "
    },
    {
      "commit": "75120b525b87b512e3f74abfbdc4dbe3ff445912",
      "tree": "600ab0675b926f2cfdd19ba23e7f43293eaeff4a",
      "parents": [
        "383d5640d2a7d298e8ce13c5b3caf38998150077"
      ],
      "author": {
        "name": "Keith Lee",
        "email": "leekeiabstraction@gmail.com",
        "time": "Wed May 27 11:16:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 11:16:36 2026 +0100"
      },
      "message": "[FLINK-39753][state/rocksdb] Close ColumnFamilyOptions from getDescriptor() in Compactor (#28251)\n\nColumnFamilyHandle.getDescriptor() allocates a new native ColumnFamilyOptions\non every call and does not close it, preventing the shared block cache from\nbeing freed. Wrap the call in try-with-resources so the options are closed\nafter reading numLevels()."
    },
    {
      "commit": "383d5640d2a7d298e8ce13c5b3caf38998150077",
      "tree": "ec8d8c9b0e50ce8652b7c90771de2e0c235850bd",
      "parents": [
        "b194666f597e1dcb6cbb515d6d636bea29c9ffb9"
      ],
      "author": {
        "name": "Fabian Hueske",
        "email": "fhueske@confluent.io",
        "time": "Wed May 27 09:47:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 09:47:56 2026 +0200"
      },
      "message": "[FLINK-39719][table] Drop late probe records from TemporalRowTimeJoinOperator (#28229)\n\nTemporalRowTimeJoinOperator cleans up build-side state when the watermark advances.\nHence, late arriving probe-side records might not see the correct build-side state and join with no or incorrect data.\nEspecially for probe-side inputs with retractions, this is causing problems for downstream operators that cannot match retraction because insertions and retractions differ.\nThis change drops late arriving probe-side records and tracks the number of dropped records in a metric.\nThe new behavior is aligned with other operators that operate in event-time and clean up state on watermark progress such as windowed or OVER aggregates and interval joins.\n\nChanges:\n* drop late arriving probe-side records\n* track dropped record count as a metric\n* adjust existing tests\n* add new unit tests to ensure correct dropping behavior\n* add late data behavior to docs"
    },
    {
      "commit": "b194666f597e1dcb6cbb515d6d636bea29c9ffb9",
      "tree": "4c4d4feb57741a12876e8f49c7bea058b559ea57",
      "parents": [
        "8eef95f62d96f8d5682e313c0291b85af144812b"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Mon May 25 13:40:08 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 22:13:18 2026 +0200"
      },
      "message": "[FLINK-39751][tests] Add `FailsOnJava25`\n\nThis closes #28249.\n"
    },
    {
      "commit": "8eef95f62d96f8d5682e313c0291b85af144812b",
      "tree": "8bbe31be4194b82c78a70b00333cfe3b7489706d",
      "parents": [
        "8c029d0c27d51bf257c83068ba46af093fdd3bd6"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 17:42:30 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 22:12:50 2026 +0200"
      },
      "message": "[hotfix][tests] Migrate `ClusterUncaughtExceptionHandlerITCase` to JUnit5\n"
    },
    {
      "commit": "8c029d0c27d51bf257c83068ba46af093fdd3bd6",
      "tree": "bcfd9e4ffa94b8377e179b1e925154e396877a49",
      "parents": [
        "0b77c1107935b5c6fa96cd6ba5fdd9136bf9bf70"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 21:10:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 21:10:17 2026 +0200"
      },
      "message": "[FLINK-39577][table] Reuse Calcite\u0027s `COALESCE` to apply simplifications from `RexSimplify`"
    },
    {
      "commit": "0b77c1107935b5c6fa96cd6ba5fdd9136bf9bf70",
      "tree": "57bb21eae4c2ede6996cda08efbd6ae75df7594a",
      "parents": [
        "04a31ba953f357cf50345b277227cd2ac930f28d"
      ],
      "author": {
        "name": "Aleksandr Savonin",
        "email": "savonitar@gmail.com",
        "time": "Tue May 26 20:44:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 20:44:10 2026 +0200"
      },
      "message": "[hotfix] Fix typo \u0027mim\u0027 -\u003e \u0027min\u0027 (#28260)"
    },
    {
      "commit": "04a31ba953f357cf50345b277227cd2ac930f28d",
      "tree": "c919a839a3b7ad82a490f77256272353990c2632",
      "parents": [
        "b07e12d2234f5e26785ffac713772c8820bb8db7"
      ],
      "author": {
        "name": "Efrat Levitan",
        "email": "efrat890089@gmail.com",
        "time": "Tue May 26 10:35:14 2026 +0300"
      },
      "committer": {
        "name": "Rui Fan",
        "email": "1996fanrui@gmail.com",
        "time": "Tue May 26 20:37:37 2026 +0200"
      },
      "message": "[FLINK-39145][tests] Skip counters accumulation when state isn\u0027t initialized\n\nSink task might be cancelled before state was initialized, should be handled as a valid scenario to avoid test failures due to null state.\n"
    },
    {
      "commit": "b07e12d2234f5e26785ffac713772c8820bb8db7",
      "tree": "8e17a00a30c51f8b749860df26eafc826e3d3cc7",
      "parents": [
        "587a9d8b93e9b0089d645bb7c4da54dba2619a81"
      ],
      "author": {
        "name": "Gabor Somogyi",
        "email": "gabor_somogyi2@apple.com",
        "time": "Tue May 26 17:39:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 17:39:45 2026 +0200"
      },
      "message": "[FLINK-39737][s3] Switch to StandardRetryStrategy with configurable backoff for throttle-aware retry"
    },
    {
      "commit": "587a9d8b93e9b0089d645bb7c4da54dba2619a81",
      "tree": "467fe1bbbb09c048ef8cc0e86808b3ac112a48b4",
      "parents": [
        "3052f6469bad9ef7db33ade8de65b235143d437e"
      ],
      "author": {
        "name": "Hao Li",
        "email": "1127478+lihaosky@users.noreply.github.com",
        "time": "Tue May 26 08:08:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 17:08:11 2026 +0200"
      },
      "message": "[FLINK-39590][table] Add support for CONNECTION in catalog APIs\n\nThis closes #28085."
    },
    {
      "commit": "3052f6469bad9ef7db33ade8de65b235143d437e",
      "tree": "f94f25c881548df0451ef8f93d55cd6c290b2d50",
      "parents": [
        "4ef170781894c3ef1eb6f96f21d536fadd985597"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Mon May 25 13:44:41 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 14:14:53 2026 +0200"
      },
      "message": "[hotfix] Allow security manager only if java version is less than 24\n"
    },
    {
      "commit": "4ef170781894c3ef1eb6f96f21d536fadd985597",
      "tree": "e3fdd21b83eb00ed77e76f16d26819a9a4bc81e7",
      "parents": [
        "570cb32dc1e1a365352b2c6c8abb7053b6aea3a8"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 09:18:54 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 14:14:34 2026 +0200"
      },
      "message": "[FLINK-39762][ci] Add wget in case of java 25\n\nThis closes #28255.\n"
    },
    {
      "commit": "570cb32dc1e1a365352b2c6c8abb7053b6aea3a8",
      "tree": "bfa3abb1dd18409e7e00af1d221dc28350cd3dd1",
      "parents": [
        "45295cf62608ca172b83ac42d9128d027a91d06a"
      ],
      "author": {
        "name": "Arvind Kandpal",
        "email": "arvind.kandpal@ksolves.com",
        "time": "Tue May 19 11:43:54 2026 +0530"
      },
      "committer": {
        "name": "reswqa",
        "email": "reswqa@163.com",
        "time": "Tue May 26 20:03:48 2026 +0800"
      },
      "message": "[FLINK-38192][table] Improve DynamicSourceUtils exception msg\n"
    },
    {
      "commit": "45295cf62608ca172b83ac42d9128d027a91d06a",
      "tree": "25c0fd6a7430a9141f76110e7ab0805257bf78b6",
      "parents": [
        "00f22d1b14350090c6855cea1696742fadce2c69"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 08:48:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 08:48:24 2026 +0200"
      },
      "message": "[FLINK-38503] Adapt `DefaultClusterClientServiceLoader` to java 25"
    },
    {
      "commit": "00f22d1b14350090c6855cea1696742fadce2c69",
      "tree": "71336ecc6239e19db1e5bd532cc7267cbaa471dd",
      "parents": [
        "0b1da64c2701fabc490ce688167d37fd819049e7"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 07:24:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 07:24:13 2026 +0200"
      },
      "message": "[FLINK-39750][tests] Drop `FailsOnJava11`"
    },
    {
      "commit": "0b1da64c2701fabc490ce688167d37fd819049e7",
      "tree": "f0c2b77e93c972fdaddc530eef34555e114e7092",
      "parents": [
        "17216cee20f731a258d96fcee3719b7f737b0d4f"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue May 26 07:20:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 07:20:07 2026 +0200"
      },
      "message": "[FLINK-39755][tests] `RuntimeOpenRestAPIDocsCompletenessITCase` fails for jdk 21+"
    },
    {
      "commit": "17216cee20f731a258d96fcee3719b7f737b0d4f",
      "tree": "2db131914e8d23fdff9aa89dc825fab35c1e2b04",
      "parents": [
        "8177d666934f854a5b0ad8f5525c1993277b9132"
      ],
      "author": {
        "name": "jhanishant260",
        "email": "78213737+jhanishant260@users.noreply.github.com",
        "time": "Tue May 26 03:41:35 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 00:11:35 2026 +0200"
      },
      "message": "[hotfix][docs] Fix duplicate word typos in documentation"
    },
    {
      "commit": "8177d666934f854a5b0ad8f5525c1993277b9132",
      "tree": "e63f8ca005e19777c874c806b847127e58c54f94",
      "parents": [
        "f3ffe4e1e1bc8e833e86509c9f22d45290beb6a6"
      ],
      "author": {
        "name": "Hao Li",
        "email": "1127478+lihaosky@users.noreply.github.com",
        "time": "Mon May 25 12:31:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 12:31:27 2026 -0700"
      },
      "message": "[FLINK-39619][docs] Add release notes for Flink 2.3 "
    },
    {
      "commit": "f3ffe4e1e1bc8e833e86509c9f22d45290beb6a6",
      "tree": "64880ee679e71d45611fdbb7e7b340b37dcdd5ec",
      "parents": [
        "bf545feb4ee73d30a0a8ecaed0795709b7f05960"
      ],
      "author": {
        "name": "Roman Khachatryan",
        "email": "khachatryan.roman@gmail.com",
        "time": "Wed Apr 23 18:10:08 2025 +0200"
      },
      "committer": {
        "name": "Roman",
        "email": "khachatryan.roman@gmail.com",
        "time": "Mon May 25 15:28:30 2026 +0200"
      },
      "message": "[FLINK-39738] Use pekko ask() instead of tell() to ack the checkpoint\n\nThis allows to fail checkpoints faster in case of exceeding pekko framesize\ninstead of waiting for checkpoint timeout.\n"
    },
    {
      "commit": "bf545feb4ee73d30a0a8ecaed0795709b7f05960",
      "tree": "04b883ac5a411954cb049477bbba4b7353d36bd4",
      "parents": [
        "8d83511bbf037f4816b4fdcf8e1732c57bebc413"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Mon May 25 11:45:51 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 11:45:51 2026 +0200"
      },
      "message": "[FLINK-39746][build] Add jdk25 profile in `common_docker.sh`"
    },
    {
      "commit": "8d83511bbf037f4816b4fdcf8e1732c57bebc413",
      "tree": "e5c6f16b00e5001a0ac70747ac7e6468f349e6c4",
      "parents": [
        "6f422510a8f3150ac67d40d30cca67065a8c54e5"
      ],
      "author": {
        "name": "lincoln lee",
        "email": "lincoln.86xy@gmail.com",
        "time": "Mon May 25 14:40:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 14:40:28 2026 +0800"
      },
      "message": "[FLINK-39720][table] SubQueryDecorrelator produces incorrect plans for correlated EXISTS with HAVING on aggregate outputs\n\nThis closes #28217."
    },
    {
      "commit": "6f422510a8f3150ac67d40d30cca67065a8c54e5",
      "tree": "64fe67d7ab303aefdad4f9e961203dee022ac70e",
      "parents": [
        "198ea6ae646785bbb34b463626281a2f95502d12"
      ],
      "author": {
        "name": "Roman Khachatryan",
        "email": "khachatryan.roman@gmail.com",
        "time": "Fri Mar 13 13:10:28 2026 +0100"
      },
      "committer": {
        "name": "Roman",
        "email": "khachatryan.roman@gmail.com",
        "time": "Sun May 24 18:38:26 2026 +0200"
      },
      "message": "[hotfix][table/runtime] Fix RowDataKeySerializerSnapshot.resolveSchemaCompatibility()\n"
    },
    {
      "commit": "198ea6ae646785bbb34b463626281a2f95502d12",
      "tree": "f93253d8f5adef2891a3b0f8520ad0bda74f4b09",
      "parents": [
        "f08eb4345004b1422d100fccdee9667804122ad2"
      ],
      "author": {
        "name": "Roman Khachatryan",
        "email": "khachatryan.roman@gmail.com",
        "time": "Fri Mar 13 13:09:41 2026 +0100"
      },
      "committer": {
        "name": "Roman",
        "email": "khachatryan.roman@gmail.com",
        "time": "Sun May 24 18:38:26 2026 +0200"
      },
      "message": "[hotfix][table/runtime] Remove redundant state access in LinkedMultiSetState.add\n"
    },
    {
      "commit": "f08eb4345004b1422d100fccdee9667804122ad2",
      "tree": "b75b51dc06b2ada8b2938d5ac24e69e0a604d439",
      "parents": [
        "91e58c24cee31c59d9e67e068a4508ccd0cb577a"
      ],
      "author": {
        "name": "Roman Khachatryan",
        "email": "khachatryan.roman@gmail.com",
        "time": "Fri Mar 13 13:08:50 2026 +0100"
      },
      "committer": {
        "name": "Roman",
        "email": "khachatryan.roman@gmail.com",
        "time": "Sun May 24 18:38:26 2026 +0200"
      },
      "message": "[FLINK-39740][table/runtime] Fix highSqn update in LinkedMultiSetState.add\n"
    },
    {
      "commit": "91e58c24cee31c59d9e67e068a4508ccd0cb577a",
      "tree": "e9e5152ca58a1708a13c52f36db72479ddd7712f",
      "parents": [
        "4f8b4a88b1eb492bc5a9b22cb1616f9fc4af165c"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sun May 24 09:15:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 24 09:15:42 2026 +0200"
      },
      "message": "[FLINK-39742][tests] FlinkImageBuilder checks for Java 25"
    },
    {
      "commit": "4f8b4a88b1eb492bc5a9b22cb1616f9fc4af165c",
      "tree": "504f00330f6e3ab6175e59eb6be5f9c85443eecf",
      "parents": [
        "e68a4887d3b11e306afc5daf7f161a5f490ee7b8"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat May 23 00:35:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 00:35:41 2026 +0200"
      },
      "message": "[FLINK-39695][table] Outer join on nested field fails with conversion to relational algebra failed to preserve datatypes"
    },
    {
      "commit": "e68a4887d3b11e306afc5daf7f161a5f490ee7b8",
      "tree": "f86c29c6dffd8624139abc413e06d6c6878ae585",
      "parents": [
        "e62e227c1d36eba17fd0b8c00b9ddc56ce697034"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri May 22 21:27:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 21:27:50 2026 +0200"
      },
      "message": "[FLINK-39736][build] Do not allow Security Manager for jdk24+"
    },
    {
      "commit": "e62e227c1d36eba17fd0b8c00b9ddc56ce697034",
      "tree": "bc440a67c6f095572a43fc5304df3f8b160c9210",
      "parents": [
        "67fffa22fdfc57ca77d8e90ae87be6ea15780c8b"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri May 22 17:56:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 17:56:33 2026 +0200"
      },
      "message": "[FLINK-39734][ci] Exclude 2.1 and 2.2 from GHA nightly"
    },
    {
      "commit": "67fffa22fdfc57ca77d8e90ae87be6ea15780c8b",
      "tree": "44b84b72cf7fe1e7ccb0ca79de292c4ddf80a7ec",
      "parents": [
        "239e73ecebc2eefd23bc76013d633c6c8a36d23e"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri May 22 16:37:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:37:34 2026 +0200"
      },
      "message": "[FLINK-39733][build] Do not use `net.jcip.annotations`"
    },
    {
      "commit": "239e73ecebc2eefd23bc76013d633c6c8a36d23e",
      "tree": "5a940e0a02aa2960639d64a75f62bdd5688ac858",
      "parents": [
        "2741d9659d5c9ac21a7bb52c613baa522f6967cc"
      ],
      "author": {
        "name": "Dawid Wysakowicz",
        "email": "dwysakowicz@apache.org",
        "time": "Fri May 22 16:26:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:26:02 2026 +0200"
      },
      "message": "[FLINK-39156][docs] Document ON CONFLICT \n\nThis closes #27683."
    },
    {
      "commit": "2741d9659d5c9ac21a7bb52c613baa522f6967cc",
      "tree": "9ec1c1b554e105665e07911b35ef1b21069957ef",
      "parents": [
        "92ec61e6968445650f5ecd1e787072641e77fed0"
      ],
      "author": {
        "name": "Jim Hughes",
        "email": "jhughes@confluent.io",
        "time": "Fri May 22 09:33:36 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 15:33:36 2026 +0200"
      },
      "message": "[FLINK-39729][table] Fix flaky CorrelateRestoreTest by using materialized data assertion\n\nGenerated-by: Claude Code (claude-opus-4-6)"
    },
    {
      "commit": "92ec61e6968445650f5ecd1e787072641e77fed0",
      "tree": "7daf1bd74c17bdf32b6e01551ccb03c7eb7d8b59",
      "parents": [
        "3ac4da3bb860ce1ed1c627fd703aaa1c1d4e96d1"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri May 22 13:07:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:07:06 2026 +0200"
      },
      "message": "[FLINK-39731][table] Port from Calcite fix for `SqlValidatorImpl` should reject `MATCH_RECOGNIZE` with duplicate `MEASURE`"
    },
    {
      "commit": "3ac4da3bb860ce1ed1c627fd703aaa1c1d4e96d1",
      "tree": "525ee9c6884ec10f24c69bc518b65a55f2fb6d0a",
      "parents": [
        "8ffb4994f725836cf14b0160ef21227b69762261"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Fri May 22 09:18:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 09:18:03 2026 +0200"
      },
      "message": "[hotfix] Fix compiliation for java 11 (#28225)"
    },
    {
      "commit": "8ffb4994f725836cf14b0160ef21227b69762261",
      "tree": "60d4680c1b4a4662f6996dd06d2187b4094c2a9c",
      "parents": [
        "cd34cf96b61d0417e25629c4fc82608f95af8ce8"
      ],
      "author": {
        "name": "Samrat",
        "email": "decorde.apex@gmail.com",
        "time": "Thu May 21 22:19:25 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 18:49:25 2026 +0200"
      },
      "message": "[hotfix][doc] Add flink-s3-fs-native in AGENTS.md"
    },
    {
      "commit": "cd34cf96b61d0417e25629c4fc82608f95af8ce8",
      "tree": "0f62ac09bb30502b6ef1dbd97c08978f379a1577",
      "parents": [
        "83472155500f46bbaf21f0dd716825e865dcb891"
      ],
      "author": {
        "name": "Gustavo de Morais",
        "email": "gdemorais@confluent.io",
        "time": "Thu May 21 17:11:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 17:11:43 2026 +0200"
      },
      "message": "[FLINK-39708][table] Support TO_CHANGELOG retract/upsert stream -\u003e upsert stream with set semantics (#28199)"
    },
    {
      "commit": "83472155500f46bbaf21f0dd716825e865dcb891",
      "tree": "7a2ee075bf8f6199ab5845aa49296ab5637d9103",
      "parents": [
        "9ea760128217666f1bacb89a0d54ffc9b248eb73"
      ],
      "author": {
        "name": "Samrat",
        "email": "decorde.apex@gmail.com",
        "time": "Thu May 21 19:24:01 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 15:54:01 2026 +0200"
      },
      "message": "[FLINK-39709][s3]Update documentation for native-s3 Implementation (#28200)"
    },
    {
      "commit": "9ea760128217666f1bacb89a0d54ffc9b248eb73",
      "tree": "3898f0f97d3f5a45acc2ed2574f1f8fe2badc1f7",
      "parents": [
        "a9c40d34d95dbb74aed030b7d417a53bd5527ac1"
      ],
      "author": {
        "name": "Dennis-Mircea Ciupitu",
        "email": "dennis.mircea.ciupitu@gmail.com",
        "time": "Thu May 21 14:45:57 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 12:45:57 2026 +0100"
      },
      "message": "[hotfix][docs] Fix incorrect HashMapStateBackend recommendations (#28094)\n\n* [hotfix][docs] Fix incorrect HashMapStateBackend recommendations\n\n* [hotfix][docs] Address PR comment\n\n* [hotfix][docs] Address review comments"
    },
    {
      "commit": "a9c40d34d95dbb74aed030b7d417a53bd5527ac1",
      "tree": "efe300a9b0eb696a0501ea841f993368bcfaf83f",
      "parents": [
        "34b6c8fbbc1d6d94d6d76f43bfe52dce2b0d8122"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed May 13 14:12:18 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Thu May 21 13:27:00 2026 +0200"
      },
      "message": "[hotfix] Disable CAST with FORMAT as not supported yet\n"
    }
  ],
  "next": "34b6c8fbbc1d6d94d6d76f43bfe52dce2b0d8122"
}
