)]}'
{
  "log": [
    {
      "commit": "73a1af180dbf7ee22b993900956c92f0d05fde97",
      "tree": "a8ca61b22832f5bd4d5241ee9908654a99ffc7ad",
      "parents": [
        "c6b01db5069099f64a26117f0ed4aa2137ccf505"
      ],
      "author": {
        "name": "Hoon Oh",
        "email": "hoonoh@geico.com",
        "time": "Tue Apr 28 17:28:00 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Apr 28 17:28:00 2026 +0800"
      },
      "message": "[KYUUBI #7407] STGroup free to avoid OOM Kill\n\n### Why are the changes needed?\n\nWhen LDAP Authentication is used ST Token is created and saved in the cache, but it is never freed up.\nThis is causing continuous increase in heap usage, eventually causing out-of-memory for kyuubi server pods.\n\nThis changes is added to clear ST Tokens. Also ST Group is added to avoid any race condition during clean up.\n\n### How was this patch tested?\n\nThis patch was tested in our customer environment. We observed there\u0027s no more continuous heap increase after the fix.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nCursor auto-complete feature was used.\n\nCloses #7408 from oh0873/hoonoh/STTokenCleanups.\n\nCloses #7407\n\n72740e0e0 [Hoon Oh] Update kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/ldap/Query.scala\n18ee9bb66 [Hoon Oh] Added () to createFilter and render\ndd0f9103d [Hoon Oh] Explicit group definition\n321c4306d [Hoon Oh] Update kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/ldap/Query.scala\n28cadbc3d [Hoon Oh] STGroup free to avoid OOM Kill\n\nLead-authored-by: Hoon Oh \u003choonoh@geico.com\u003e\nCo-authored-by: Hoon Oh \u003c92890928+oh0873@users.noreply.github.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "c6b01db5069099f64a26117f0ed4aa2137ccf505",
      "tree": "192ba4076238229af2a5d69dcd7585f95d34cc6b",
      "parents": [
        "a99d6e03a37c5f0202fb01ca30838841fccfcb3e"
      ],
      "author": {
        "name": "Hiroki Egawa",
        "email": "hiegawa@lycorp.co.jp",
        "time": "Tue Apr 28 10:16:44 2026 +0900"
      },
      "committer": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Tue Apr 28 10:16:44 2026 +0900"
      },
      "message": "[KYUUBI #7415] Add a configuration to include additional Spark keys as path validation targets\n\n### Why are the changes needed?\n\nTo add Spark configuration keys for path validation without rebuilding.\nClose: https://github.com/apache/kyuubi/issues/7415\n\n### How was this patch tested?\n\nUnit tests.\n\n```shell\n$ ./build/mvn clean install -Dtest\u003dnone -DwildcardSuites\u003dorg.apache.kyuubi.engine.KyuubiApplicationManagerSuite\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7416 from LamiumAmplexicaule/add-spark-keys-as-check-target.\n\nCloses #7415\n\n2f8450c18 [Hiroki Egawa] Rename config name to `kyuubi.server.spark.file.config.list`\n61fc167de [Hiroki Egawa] Rename config name to `kyuubi.session.spark.file.config.list`\n418fd2263 [Hiroki Egawa] Remove redundant cases and add missing coverage\ne7726ffb7 [Hiroki Egawa] Add a configuration to include additional Spark keys as path validation targets\n\nAuthored-by: Hiroki Egawa \u003chiegawa@lycorp.co.jp\u003e\nSigned-off-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\n"
    },
    {
      "commit": "a99d6e03a37c5f0202fb01ca30838841fccfcb3e",
      "tree": "86fb9bca39423456a80165502840588ae7c7366e",
      "parents": [
        "100446cf6edc4326a759cb34226d9c03e4de8ae6"
      ],
      "author": {
        "name": "lifumao",
        "email": "lifumao@tencent.com",
        "time": "Mon Apr 27 10:52:52 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Apr 27 10:52:52 2026 +0800"
      },
      "message": "[KYUUBI #7422] [KSHC] Fix FileWriterFactory using the same TaskAttemptId for different task attempts\n\n### Why are the changes needed?\n\nPort SPARK-48484 to KSHC.\n\nFix https://github.com/apache/kyuubi/issues/7421. In the KSHC, `FileWriterFactory` is forked from\nSpark\u0027s `org.apache.spark.sql.execution.datasources.v2.FileWriterFactory`. However, it still contains a\nbug later fixed on the Spark side by https://github.com/apache/spark/pull/46811. This PR ports that upstream fix to KSHC.\n\n### How was this patch tested?\n\nUT\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNO\n\nCloses #7422 from maomaodev/kyuubi-7421.\n\nCloses #7422\n\n1272f8757 [lifumao] [KSHC] Fix FileWriterFactory using the same TaskAttemptId for different task attempts\n\nAuthored-by: lifumao \u003clifumao@tencent.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "100446cf6edc4326a759cb34226d9c03e4de8ae6",
      "tree": "b90162b6fa8b86667d76323c12fee90ea43c612f",
      "parents": [
        "a9b2123ce201f80e57a1a89b0202b971a536d23b"
      ],
      "author": {
        "name": "lifumao",
        "email": "lifumao@tencent.com",
        "time": "Wed Apr 22 14:18:53 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Apr 22 14:18:53 2026 +0800"
      },
      "message": "[KYUUBI #7335] DynamicPartitionDataSingleWriter needs sort before write\n\n### Why are the changes needed?\n\nFix https://github.com/apache/kyuubi/issues/7335. For DynamicPartitionDataSingleWriter, the records to be written are required to be sorted on partition and/or bucket column(s) before writing. See [FileFormatDataWriter.scala](https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/FileFormatDataWriter.scala#L353-L363)\n\n### How was this patch tested?\n\nUT\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNO\n\nCloses #7414 from maomaodev/kyuubi-7335.\n\nCloses #7335\n\nb720bd8fd [lifumao] DynamicPartitionDataSingleWriter needs sort before write\n\nAuthored-by: lifumao \u003clifumao@tencent.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "a9b2123ce201f80e57a1a89b0202b971a536d23b",
      "tree": "f2919eef1966d647748234ebbccb8279a5ddc672",
      "parents": [
        "80a8c5023caadbb9b4085c6397cbce5e688d628a"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Tue Apr 21 21:15:14 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Apr 21 21:15:14 2026 +0800"
      },
      "message": "[KYUUBI #7386] Remove axios dependency and replace with native fetch in web-ui\n\n### Why are the changes needed?\n\nReplace axios with the native Fetch API in request.ts, removing the axios dependency from package.json. Reducing the dependent libraries to reduce the possibility of supply chain attack and to reduce future maintenance cost. Enforce Node.js \u003e\u003d18 via the engines field and update README accordingly.\n\n### How was this patch tested?\n\nCovered by the existing unit tests.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #7386 from aajisaka/remove-axios.\n\nCloses #7386\n\n75c0402d1 [Cheng Pan] fix lint\n11dc81e4d [Cheng Pan] Fix login failure and preserve server error messages\n6cfb0b365 [Akira Ajisaka] Address review comments\nc0634b7f1 [Akira Ajisaka] Remove axios dependency and replace with native fetch in web-ui\n\nLead-authored-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\nCo-authored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "80a8c5023caadbb9b4085c6397cbce5e688d628a",
      "tree": "ba4f93eb77e14254bc3b41795c67566377dda5ef",
      "parents": [
        "cca958120732d31c247bae4a8ed47e5a1032aef3"
      ],
      "author": {
        "name": "Kent Yao",
        "email": "yao@apache.org",
        "time": "Tue Apr 21 17:31:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 17:31:17 2026 +0800"
      },
      "message": "Revert \"Bump pytest from 7.4.4 to 9.0.3 in /python (#7401)\" (#7413)\n\nThis reverts commit 6f0d86a6859d82a5c47db94c0a10dbf7db0bdc45."
    },
    {
      "commit": "cca958120732d31c247bae4a8ed47e5a1032aef3",
      "tree": "6a15ab3fb15f10b8e2bc6243fde35d3213f11ed8",
      "parents": [
        "2475be884817f0d0e5fb9c88cca84b25720324d2"
      ],
      "author": {
        "name": "zhigang",
        "email": "iamzhigangwang@gmail.com",
        "time": "Tue Apr 21 11:26:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 11:26:10 2026 +0800"
      },
      "message": "[KYUUBI #7379][2a/4] Data Agent Engine: tool system, data source, and prompt templates (#7400)\n\n* [KYUUBI #7379][PR 2a/4] Data Agent Engine: tool system, data source, and prompt templates\n\nTool system with risk-based separation (RunSelectQueryTool / RunMutationQueryTool),\nToolRegistry with JSON schema generation, and SqlReadOnlyChecker keyword whitelist.\n\nData source abstraction with JdbcDialect auto-detection (Spark/Trino/MySQL/SQLite),\nGenericDialect fallback for unknown JDBC subprotocols, TableRef value object for\nstructured table references with Jackson deserialization support, and HikariCP-backed\nDataSourceFactory with credential isolation.\n\nComposable SystemPromptBuilder with per-dialect prompt templates (base.md +\ndatasource-{name}.md), SQL workflow guidance, and query risk classification.\n\n* Refactor SystemPromptBuilder: datasource replaces instead of appends, remove jdbcUrl shortcut\n\n- SystemPromptBuilder.datasource() now replaces the previous datasource section\n  instead of appending, matching the single-datasource-per-session model\n- Remove jdbcUrl() convenience method; callers use JdbcDialect.fromUrl() directly\n- Remove redundant tests (pool config defaults, toString, tool metadata, fast timeout)\n- Clean up todo comment in JdbcDialect\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* [KYUUBI #7379] Add new data-agent deps to LICENSE-binary\n\nRegister the three Apache-2.0 libraries bundled by the data-agent\nengine (openai-java, victools jsonschema-generator and\njsonschema-module-jackson) so the binary distribution\u0027s LICENSE\nfile reflects the dependencies it ships.\n\n* [KYUUBI #7379] Address PR 2a review: bounded tool pool, column labels, config validation\n\n- ToolRegistry: replace unbounded cached thread pool with bounded\n  ThreadPoolExecutor (MAX\u003d8, SynchronousQueue, reject-fast); implement\n  AutoCloseable so the engine can shut the pool down cleanly\n- SqlExecutor: use ResultSetMetaData.getColumnLabel so SQL AS aliases\n  render in the markdown header the LLM sees\n- KyuubiConf: add checkValue(\u003e\u003d 1s) on the two data-agent timeout\n  entries; units stay consistent with existing timeConf conventions\n- Tests: new MySQL integration test covering the column-alias fix;\n  MySQL harness now uses ObjectMapper for tool args and closes the\n  registry in teardown\n\n* [KYUUBI #7379] Reframe SqlReadOnlyChecker design note as guardrail rationale\n\nThe previous design note argued against SQL parsers by claiming they fail\non dialect-specific queries — which isn\u0027t accurate for Calcite Babel with a\nmatching SqlDialect. Replace it with the real rationale: the checker is a\nguardrail against LLM misrouting, not a security boundary, because the\napproval gate for writes is the separate run_mutation_query tool. Also drop\nthe now-redundant Postgres EXPLAIN ANALYZE caveat from the keyword list.\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2475be884817f0d0e5fb9c88cca84b25720324d2",
      "tree": "70a0e60e2abfb7ae8c57b0b7ccb1e24b264e61b3",
      "parents": [
        "d4c4f6d8057679c6423a84b96f0caaa48b07e4f5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:34:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:34:35 2026 +0800"
      },
      "message": "Bump brace-expansion from 1.1.11 to 1.1.13 in /kyuubi-server/web-ui (#7371)\n\nBumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.13.\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.13)\n\n---\nupdated-dependencies:\n- dependency-name: brace-expansion\n  dependency-version: 1.1.13\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d4c4f6d8057679c6423a84b96f0caaa48b07e4f5",
      "tree": "4a2711d954a70fe663f8bb1578042fdef53acf4e",
      "parents": [
        "0725d7a0f64f92088e03e3dce7a3c8aa66b9b858"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:34:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:34:17 2026 +0800"
      },
      "message": "Bump immutable from 4.1.0 to 4.3.8 in /kyuubi-server/web-ui (#7342)\n\nBumps [immutable](https://github.com/immutable-js/immutable-js) from 4.1.0 to 4.3.8.\n- [Release notes](https://github.com/immutable-js/immutable-js/releases)\n- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/immutable-js/immutable-js/compare/v4.1.0...v4.3.8)\n\n---\nupdated-dependencies:\n- dependency-name: immutable\n  dependency-version: 4.3.8\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0725d7a0f64f92088e03e3dce7a3c8aa66b9b858",
      "tree": "f4846b31c05d1c69f514691084ed1bef2a642194",
      "parents": [
        "c40461ed04fef0844d071fdf1af40dd367a84a86"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:33:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:33:55 2026 +0800"
      },
      "message": "Bump picomatch from 2.3.1 to 2.3.2 in /kyuubi-server/web-ui (#7367)\n\nBumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.\n- [Release notes](https://github.com/micromatch/picomatch/releases)\n- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: picomatch\n  dependency-version: 2.3.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c40461ed04fef0844d071fdf1af40dd367a84a86",
      "tree": "0caf16b54e6c4997a1600f8d40cc1ddd2254aa48",
      "parents": [
        "6f0d86a6859d82a5c47db94c0a10dbf7db0bdc45"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:27:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:27:47 2026 +0800"
      },
      "message": "Bump follow-redirects from 1.15.9 to 1.16.0 in /kyuubi-server/web-ui (#7402)\n\nBumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.9 to 1.16.0.\n- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)\n- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.9...v1.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: follow-redirects\n  dependency-version: 1.16.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6f0d86a6859d82a5c47db94c0a10dbf7db0bdc45",
      "tree": "4865722786a563b46f8675ddb59c6b7ad9117085",
      "parents": [
        "5dba32953dc2c2fb6006a71e3ce64b4807d0827e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:27:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:27:30 2026 +0800"
      },
      "message": "Bump pytest from 7.4.4 to 9.0.3 in /python (#7401)\n\nBumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.4 to 9.0.3.\n- [Release notes](https://github.com/pytest-dev/pytest/releases)\n- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)\n- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.4...9.0.3)\n\n---\nupdated-dependencies:\n- dependency-name: pytest\n  dependency-version: 9.0.3\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5dba32953dc2c2fb6006a71e3ce64b4807d0827e",
      "tree": "7474c5923afe45f2ce453534f5205f439c200ae7",
      "parents": [
        "80ff8b35232220af9a833456ed70a94721bfa883"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:23:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:23:12 2026 +0800"
      },
      "message": "Bump org.bouncycastle:bcprov-jdk18on from 1.79 to 1.84 (#7411)\n\nBumps [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) from 1.79 to 1.84.\n- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)\n- [Commits](https://github.com/bcgit/bc-java/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.bouncycastle:bcprov-jdk18on\n  dependency-version: \u00271.84\u0027\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "80ff8b35232220af9a833456ed70a94721bfa883",
      "tree": "3c34f78ba91f105079b1301d592589e89be16377",
      "parents": [
        "e2ea980eaf9f0bb0ca52abdbebcab94c57d9c2cb"
      ],
      "author": {
        "name": "Hoon Oh",
        "email": "hoonoh@geico.com",
        "time": "Thu Apr 16 15:29:11 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Apr 16 15:29:11 2026 +0800"
      },
      "message": "[KYUUBI #7403] Password with colon bug fixes\n\n### Why are the changes needed?\n\nIf a password contains a colon, REST API does not pick up colons. Similarly, password string like `correctpassword:random-charachars` gets parsed as `correctpassword`.\n\n### How was this patch tested?\n\nTested in local build, password with colon are getting parsed properly.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nTest Suite was helped by Cursor auto-complete.\n\nCloses #7404 from oh0873/hoonoh/colon-password-bug-fix.\n\nCloses #7403\n\n1bd8e196f [Hoon Oh] Password with colon bug fixes\n\nAuthored-by: Hoon Oh \u003choonoh@geico.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "e2ea980eaf9f0bb0ca52abdbebcab94c57d9c2cb",
      "tree": "4b9f12a89c6bc7b197a1179534c6c4035e0b6235",
      "parents": [
        "4c33a42c788e16c46051647fcbd2d8d1f26dac90"
      ],
      "author": {
        "name": "lifumao",
        "email": "lifumao@tencent.com",
        "time": "Thu Apr 16 15:28:25 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Apr 16 15:28:25 2026 +0800"
      },
      "message": "[KYUUBI #7406] Remove redundant table properties when KSHC create table\n\n### Why are the changes needed?\n\nFixed https://github.com/apache/kyuubi/issues/6443. When creating an external table via KSHC with `EXTERNAL` and `LOCATION` specified, the KSHC table properties will include `external\u003dtrue`(lowercase). Meanwhile, Hive Metastore automatically appends `EXTERNAL\u003dTRUE` (uppercase). On some metastore backends (e.g. MySQL with a case-insensitive collation), this leads to a duplicate primary key conflict in TABLE_PARAMS.\n\nThis PR removes redundant table properties when KSHC creates tables. For example, the `external` property will be excluded.\n\n### How was this patch tested?\n\nUT\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7406 from maomaodev/kyuubi-6443.\n\nCloses #7406\n\n83e3f92d5 [lifumao] fix ut\ne006281f5 [lifumao] fix ut\n5d8e916a6 [lifumao] Remove redundant table properties when KSHC create table\n\nAuthored-by: lifumao \u003clifumao@tencent.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "4c33a42c788e16c46051647fcbd2d8d1f26dac90",
      "tree": "59dd142044c2541ec47c93a6e5708c98ce1a9707",
      "parents": [
        "db2c29145ded3ffc757f5efa63af495710dfddee"
      ],
      "author": {
        "name": "Yutong-1424",
        "email": "yutonghan27@gmail.com",
        "time": "Wed Apr 15 23:04:49 2026 -0700"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Apr 16 14:08:15 2026 +0800"
      },
      "message": "[KYUUBI #7391] Improve session REST security\n\nCo-authored-by: Han, Yutong \u003cyutonghan@geico.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "db2c29145ded3ffc757f5efa63af495710dfddee",
      "tree": "108a2e89351edcb1e3a44a6e78da01d944129ce0",
      "parents": [
        "f8bc00a858e8c51cbcaa0ba9c062fdc0a3417cb4"
      ],
      "author": {
        "name": "lifumao",
        "email": "lifumao@tencent.com",
        "time": "Mon Apr 13 19:14:10 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Apr 13 19:14:10 2026 +0800"
      },
      "message": "[KYUUBI #7398] SERDEPROPERTIES are missing when KSHC create table\n\n### Why are the changes needed?\n\n1. Execute the following SQL to create table and insert.\n```\nCREATE TABLE test_table (name STRING, age INT)\nROW FORMAT SERDE \u0027org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\u0027\nWITH SERDEPROPERTIES (\u0027field.delim\u0027 \u003d \u0027,\u0027)\nSTORED AS TEXTFILE;\n\nINSERT INTO TABLE test_table VALUES (\u0027alice\u0027, 30);\n```\n2. Check the underlying HDFS data. Output is `alice30`, Expected is `alice,30`\n```\nhdfs dfs -cat /usr/hive/warehouse/test_table/part-00000-08cdc3f0-15af-413a-a709-46e24f1ace91-c000\n```\n3. Cause: SERDEPROPERTIES are missing when KSHC create table, it did not strip the `option.` prefix. See: https://github.com/apache/spark/pull/28026\n\n### How was this patch tested?\n\nUT\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7399 from maomaodev/kyuubi-7398.\n\nCloses #7398\n\n815f60a08 [lifumao] add toOptionsAndSerdeProps ut\n66b8fcd88 [lifumao] add toOptionsAndSerdeProps ut\n11fc7b185 [lifumao] SERDEPROPERTIES are missing when KSHC create table\n490009dfb [lifumao] SERDEPROPERTIES are missing when KSHC create table\n3d2060c4b [lifumao] SERDEPROPERTIES are missing when KSHC create table\n00fce8e3f [lifumao] SERDEPROPERTIES are missing when KSHC create table\necacba732 [lifumao] SERDEPROPERTIES are missing when KSHC create table\n\nAuthored-by: lifumao \u003clifumao@tencent.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "f8bc00a858e8c51cbcaa0ba9c062fdc0a3417cb4",
      "tree": "77e69aac368121d28747057004687d4806b216ce",
      "parents": [
        "a94cdda7d8cb178af53cb24bd7b90df585c3b879"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 09:47:38 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Apr 13 09:47:38 2026 +0800"
      },
      "message": "[KYUUBI #7396] Bump log4j from 2.25.3 to 2.25.4\n\nBumps org.apache.logging.log4j:log4j-layout-template-json from 2.25.3 to 2.25.4.\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dorg.apache.logging.log4j:log4j-layout-template-json\u0026package-manager\u003dmaven\u0026previous-version\u003d2.25.3\u0026new-version\u003d2.25.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `dependabot rebase` will rebase this PR\n- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/kyuubi/network/alerts).\n\n\u003c/details\u003e\n\nCloses #7396 from dependabot[bot]/dependabot/maven/org.apache.logging.log4j-log4j-layout-template-json-2.25.4.\n\nCloses #7396\n\n73d5197d9 [Cheng Pan] update dev/dependencyList\nfa6661f8c [dependabot[bot]] Bump org.apache.logging.log4j:log4j-layout-template-json\n\nLead-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "a94cdda7d8cb178af53cb24bd7b90df585c3b879",
      "tree": "0d8ff4b56ede39f2c8d21609e1a8175ed8a18430",
      "parents": [
        "bb67bd6c6f6eff385fb71b342f15b53b9d30a46f"
      ],
      "author": {
        "name": "wangzhigang",
        "email": "wzg443064@alibaba-inc.com",
        "time": "Fri Apr 10 17:46:37 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Apr 10 17:46:37 2026 +0800"
      },
      "message": "[KYUUBI #7379][1/4] Data Agent Engine: module skeleton, configuration, and engine core\n\n### Why are the changes needed?\n\nPart 1 of 4 for the Data Agent Engine ([umbrella](https://github.com/apache/kyuubi/issues/7379), [KPIP-7373](https://github.com/apache/kyuubi/discussions/7373)).\n\nThis PR adds a new `DATA_AGENT` engine type with the module skeleton fully runnable via Echo provider. It establishes the foundation for subsequent PRs (tool system, agent runtime, REST API, and Web UI).\n\nChanges include:\n- Module `pom.xml`, `build/dist` packaging\n- All `kyuubi.engine.data.agent.*` configuration entries\n- `DATA_AGENT` engine type, `EngineRef` branch, `DataAgentProcessBuilder` with API key redaction\n- Engine core: `DataAgentEngine`, `BackendService`, `TBinaryFrontendService`, `SessionManager/Impl`, `OperationManager`\n- `DataAgentOperation`, `ExecuteStatement` — async agent execution with event-to-JSON conversion\n- `IncrementalFetchIterator` — thread-safe producer/consumer streaming with compaction\n- Event system: `AgentEvent`, `EventType`, all lifecycle/content/tool events\n- `EchoProvider` — test provider that echoes input with proper event sequence\n\n### How was this patch tested?\n\n- `IncrementalFetchIteratorSuite` — basic ops, position tracking, concurrent producer/consumer safety\n- `IncrementalFetchIteratorCompactionSuite` — compaction trigger, position correctness, fetchAbsolute after compaction\n- `DataAgentOperationSuite` — JDBC round-trip with Echo provider, multiple queries in same session\n- `EchoProviderTest` — event sequence validation and content echo\n- `EventTest` — immutability, truncation, null handling, SSE name uniqueness\n- `DataAgentProcessBuilderSuite` — main class, API key redaction, memory, classpath, java options\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nPartially assisted by Claude Code (Claude Opus 4.6) for test deduplication, code style fixes, and PR splitting. Core design and implementation are human-authored.\n\nCloses #7385 from wangzhigang1999/pr1/data-agent-skeleton.\n\nCloses #7379\n\n396566c62 [wangzhigang] Clarify DATA_AGENT subdomain isolation rationale in EngineRef\n67ca18858 [wangzhigang] Fix SSE event serialization: serialize toolArgs as JSON and add isError to TOOL_RESULT\ndb763c024 [wangzhigang] Fix CI: add sqlite-jdbc test dep and remove MockLlmProvider suite\nb05c88b9c [wangzhigang] [KYUUBI #7379][PR 1/4] Data Agent Engine: module skeleton, configuration, and engine core\n\nLead-authored-by: wangzhigang \u003cwzg443064@alibaba-inc.com\u003e\nCo-authored-by: wangzhigang \u003ciamzhigangwang@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "bb67bd6c6f6eff385fb71b342f15b53b9d30a46f",
      "tree": "7653f36822f1dc17699737d3030e1c9c396750ef",
      "parents": [
        "f9f0b1aa57fe3e2743157eabbe6937489300a3c4"
      ],
      "author": {
        "name": "wangzhigang",
        "email": "wzg443064@alibaba-inc.com",
        "time": "Thu Apr 09 18:13:58 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Apr 09 18:13:58 2026 +0800"
      },
      "message": "[KYUUBI #7389] Fix wrong parameter binding order in JDBCMetadataStore#transformMetadataState\n\nCloses #7389\n\nThe SQL placeholders expect (targetState, identifier, fromState) but the code passed (fromState, identifier, targetState), causing the UPDATE to set state back to fromState and match on targetState instead. This made cancelUnscheduledBatch silently fail.\n\n### Why are the changes needed?\n\nIn `JDBCMetadataStore#transformMetadataState`, the SQL is:\n```sql\nUPDATE metadata SET state \u003d ? WHERE identifier \u003d ? AND state \u003d ?\n```\nThe placeholders expect `(targetState, identifier, fromState)`, but the code passes `(fromState, identifier, targetState)`:\n```scala\nwithUpdateCount(connection, query, fromState, identifier, targetState)\n```\n\nThis causes `cancelUnscheduledBatch(\"INITIALIZED\" -\u003e \"CANCELED\")` to execute:\n```sql\nUPDATE metadata SET state \u003d \u0027INITIALIZED\u0027 WHERE identifier \u003d ? AND state \u003d \u0027CANCELED\u0027\n```\nWhich matches no rows and silently returns `false`. The bug has existed since v1.8.0 ([KYUUBI #4790]).\n\n### How was this patch tested?\n\nAdded a unit test `transformMetadataState should transition state correctly` in `JDBCMetadataStoreSuite` that:\n1. Inserts a metadata record with `state \u003d \"INITIALIZED\"`\n2. Calls `transformMetadataState(id, \"INITIALIZED\", \"CANCELED\")`\n3. Asserts the method returns `true`\n4. Asserts the persisted state is `\"CANCELED\"`\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7390 from wangzhigang1999/fix/transformMetadataState-param-order.\n\nCloses #7389\n\ne3142a578 [wangzhigang] [KYUUBI] Fix wrong parameter binding order in JDBCMetadataStore#transformMetadataState\n\nAuthored-by: wangzhigang \u003cwzg443064@alibaba-inc.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "f9f0b1aa57fe3e2743157eabbe6937489300a3c4",
      "tree": "50665022442d78ed4fdc17eaec2e99d85a7fd28f",
      "parents": [
        "3a529eb7f9b8320a8a782b4dad1c18864854f9e5"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Thu Apr 09 15:58:25 2026 +0900"
      },
      "committer": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Thu Apr 09 15:58:25 2026 +0900"
      },
      "message": "[KYUUBI #7374] Fix static zero IV in InternalSecurityAccessor\n\n### Why are the changes needed?\n\nReplace the hardcoded IV with a per-encryption random IV.\n\n### How was this patch tested?\n\nCovered by existing unit test `InternalSecurityAccessorSuite`\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #7374 from aajisaka/fix-iv.\n\nCloses #7374\n\nabfe62864 [Akira Ajisaka] Throw IllegalArgumentException for malformed tokens. Specify UTF-8 charset\n96351c86d [Akira Ajisaka] Move random into object\nf5a840b7b [Akira Ajisaka] Fix static zero IV in InternalSecurityAccessor\n\nAuthored-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\nSigned-off-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\n"
    },
    {
      "commit": "3a529eb7f9b8320a8a782b4dad1c18864854f9e5",
      "tree": "31cde4453fe0bd87d148d81a35a474dca9bb8bc6",
      "parents": [
        "ed5d8b6af46d0ad04b533a1dc30230b0041cce8c"
      ],
      "author": {
        "name": "lifumao",
        "email": "lifumao@tencent.com",
        "time": "Fri Apr 03 19:14:39 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Apr 03 19:14:39 2026 +0800"
      },
      "message": "[KYUUBI #7377] KSHC create database respects catalog-level warehouse\n\n### Why are the changes needed?\n\nWhen creating a database using KSHC, the database location does not respect\n`spark.sql.catalog.\u003ccatalog\u003e.hive.metastore.warehouse.dir`. Instead, it always falls back to `spark.sql.warehouse.dir`.\n\n### How was this patch tested?\n\nUT\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7378 from maomaodev/kyuubi-7377.\n\nCloses #7377\n\n7eb12dd99 [lifumao] inline vars\n62e1be011 [lifumao] KSHC create database respects catalog-level warehouse\n5d1266915 [lifumao] KSHC create database respects catalog-level warehouse\n\nAuthored-by: lifumao \u003clifumao@tencent.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "ed5d8b6af46d0ad04b533a1dc30230b0041cce8c",
      "tree": "faed9935512a2cbfdf911b5427def70c03167e3f",
      "parents": [
        "1bc129ac244bdcb12afade534c7962a63edd49be"
      ],
      "author": {
        "name": "Hiroki Egawa",
        "email": "hiegawa@lycorp.co.jp",
        "time": "Thu Apr 02 14:32:10 2026 +0900"
      },
      "committer": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Thu Apr 02 14:32:10 2026 +0900"
      },
      "message": "[KYUUBI #7348] Separate the principal and keytab used for ZooKeeper authentication between the service and the engine\n\n### Why are the changes needed?\n\nThe engine and the service are separate components, so their authentication principal and keytab should also be separated.\nClose: #7348\n\n### How was this patch tested?\n\nUnit tests.\n\n```shell\n./build/mvn clean install -Dtest\u003dnone -DwildcardSuites\u003dorg.apache.kyuubi.ha.client.zookeeper.EmbeddedZookeeperDiscoveryClientSuite,org.apache.kyuubi.ha.client.zookeeper.ZookeeperClientProviderSuite,org.apache.kyuubi.engine.spark.SparkProcessBuilderSuite\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7349 from LamiumAmplexicaule/separate-princiapl-and-keytab.\n\nCloses #7348\n\nfd5ee95ff [Hiroki Egawa] [KYUUBI #7348] Move restore logic to beforeEach/afterEach\n47ade1b0e [Hiroki Egawa] [KYUUBI #7348] Save and restore `javax.security.auth.login.Configuration` on zookeeper auth test\nb8622214f [Hiroki Egawa] [KYUUBI #7348] Fix spacing between sentences\n20b6f0d40 [Hiroki Egawa] [KYUUBI #7348] Add documentation for fallback of `kyuubi.ha.zookeeper.engine.auth.principal` and `kyuubi.ha.zookeeper.engine.auth.keytab`\nb2dc88c7c [Hiroki Egawa] [KYUUBI #7348] Separate the principal and keytab used for ZooKeeper authentication between the service and the engine\n\nAuthored-by: Hiroki Egawa \u003chiegawa@lycorp.co.jp\u003e\nSigned-off-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\n"
    },
    {
      "commit": "1bc129ac244bdcb12afade534c7962a63edd49be",
      "tree": "0cf41f751744d45f648acc7003c91d93ed28a8bb",
      "parents": [
        "c237522916e4788d2175bbe8a198e55ce758938f"
      ],
      "author": {
        "name": "Han, Yutong",
        "email": "yutonghan@geico.com",
        "time": "Tue Mar 31 10:18:24 2026 -0700"
      },
      "committer": {
        "name": "Fei Wang",
        "email": "fwang12@ebay.com",
        "time": "Tue Mar 31 10:18:24 2026 -0700"
      },
      "message": "[KYUUBI #7319] Fix kyuubi sessions to return 404 for non-existent sessions\n\n### Why are the changes needed?\n\nThis PR addresses below issue with the Kyuubi sessions API:\n\n1**Incorrect HTTP status codes**: When attempting to delete a non-existent session, the API currently returns HTTP 500 (Internal Server Error), which is misleading. A non-existent resource should return HTTP 404 (Not Found) to properly indicate the resource doesn\u0027t exist.\n\n### How was this patch tested?\n\n **Test for 404 response on delete non-existent session**: Added `delete_non-existent_admin_session_returns_404` test in `AdminResourceSuite.scala` that verifies deleting a non-existent session returns HTTP 404 instead of 500.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7319 from Yutong-1424/hotfix/yutong/fix_kyuubi_sessions.\n\nCloses #7319\n\ne2e3fd862 [Han, Yutong] revert security improvement changes\n0b0d0e749 [Han, Yutong] Replace admin with clientPrincipalUser so openSession’s user matches AuthenticationFilter identity for list session.\naade31cbc [Han, Yutong] fix: compare session identifier as string in SessionsResourceSuite\n14c03d99a [Han, Yutong] Replace try/catch exception handling with direct session existence check\n79f640664 [Han, Yutong] - Replace try/catch with getSessionOption() for cleaner 404 handling - Fix type mismatch - Update test assertions for correct redaction verification - Configure redaction pattern at suite level\na4d81e9c7 [Han, Yutong] Fix kyuubi sessions API to return 404 for non-existent sessions and add security improvements\n\nAuthored-by: Han, Yutong \u003cyutonghan@geico.com\u003e\nSigned-off-by: Fei Wang \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "c237522916e4788d2175bbe8a198e55ce758938f",
      "tree": "2918e3f6ae2a1ce9d3647f8f7a1391279f8d9b47",
      "parents": [
        "e0e822d71995bc0801d5c54a5e93fa91c7b308b0"
      ],
      "author": {
        "name": "lifumao",
        "email": "lifumao@tencent.com",
        "time": "Mon Mar 30 12:52:28 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 30 12:52:28 2026 +0800"
      },
      "message": "[KYUUBI #7369] KSHC support the PURGE TABLE\n\n### Why are the changes needed?\n\n1. Support `DROP TABLE ... PURGE` syntax in KSHC, so users can explicitly purge table data.\n2. Add a compatibility configuration `spark.sql.kyuubi.hive.connector.dropTableAsPurgeTable` (default: false) in KSHC. When set to true, `DROP TABLE` behaves like `PURGE`— data is removed immediately and HDFS Trash is bypassed (preserving the previous behavior). When set to false, `DROP TABLE` will move table data to the HDFS Trash instead.\n\n### How was this patch tested?\n\n1. unit test\n4. Manually test\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nno\n\nCloses #7370 from maomaodev/kyuubi-7369.\n\nCloses #7369\n\ndb989d172 [lifumao] Revert \"change code\"\ncbb70e0a8 [lifumao] change code\n7ad375f7c [lifumao] change style code\nfd2c6ae51 [lifumao] change code\n18a7207ee [lifumao] add migration guide\n971f000ab [lifumao] KSHC support the PURGE TABLE\nf6ef13581 [lifumao] KSHC support the PURGE TABLE\n\nAuthored-by: lifumao \u003clifumao@tencent.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "e0e822d71995bc0801d5c54a5e93fa91c7b308b0",
      "tree": "81fe9e7b7a436cff60ae340ef5c7e859d3dc3a97",
      "parents": [
        "7969f859c321fa64fc644a36122b531ed345a461"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 30 09:03:13 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 30 09:03:13 2026 +0800"
      },
      "message": "[KYUUBI #7372] Pin GHA actions version to satisfy ASF policy\n\n### Why are the changes needed?\n\nPin GHA actions version to satisfy ASF [GitHub Actions Policy](https://infra.apache.org/github-actions-policy.html)\n\nSee details at https://github.com/apache/infrastructure-actions\n\n### How was this patch tested?\n\nMonitor CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7372 from pan3793/pin-actions.\n\nCloses #7372\n\nefa7dbd12 [Cheng Pan] Pin GHA actions version to satisfy ASF policy\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "7969f859c321fa64fc644a36122b531ed345a461",
      "tree": "949ce02f4c58d11ed92ef0d1fd52f2dbb840dbce",
      "parents": [
        "52b038b93cb5e214fcd4a1ed9d1fa8cd3ae8abbc"
      ],
      "author": {
        "name": "Denis Krivenko",
        "email": "dnskrv88@gmail.com",
        "time": "Mon Mar 23 22:45:40 2026 +0100"
      },
      "committer": {
        "name": "Denis Krivenko",
        "email": "dnskrv88@gmail.com",
        "time": "Mon Mar 23 22:45:40 2026 +0100"
      },
      "message": "[KYUUBI #7365] [DOC] Fix links\n\n### Why are the changes needed?\nThe PR fixes broken links in the documentation.\nSome links broke after [replacing recommonmark with myst](https://github.com/apache/kyuubi/pull/7237), while others (like [kyuubi 1.9.4/aqe](https://kyuubi.readthedocs.io/en/v1.9.4/deployment/spark/aqe.html#:~:text\u003dConfiguring%20by%20spark%2Ddefaults.conf)) used incorrect paths and were already broken before the change.\n\n### How was this patch tested?\nBuilt the documentation with the following command and verified the fixed links manually:\n```shell\nmake html\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7365 from dnskr/docs-fix-links.\n\nCloses #7365\n\n9dcbeed30 [Denis Krivenko] [DOC] Fix links\n\nAuthored-by: Denis Krivenko \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: Denis Krivenko \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "52b038b93cb5e214fcd4a1ed9d1fa8cd3ae8abbc",
      "tree": "2f127c7b48df2e701a015a656c9346bd49f35fe2",
      "parents": [
        "8e52e7b82f8b44b33c6142ab473341cc10473607"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 18:26:51 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 18:26:51 2026 +0800"
      },
      "message": "[KYUUBI #7357] Bump Maven 3.9.14\n\n### Why are the changes needed?\n\nFix a major issue https://github.com/apache/maven/issues/11634 - Due to improvements in parallel PUT method - used for deploy artifacts - in resolver 1.9.25, bugs of concurrency processing in some repository managers can be disclosed.\n\nFully release notes:\n\nhttps://maven.apache.org/docs/3.9.13/release-notes.html\nhttps://maven.apache.org/docs/3.9.14/release-notes.html\n\n### How was this patch tested?\n\nPass GHA, and will be verified in 1.11.1 RC1 release process.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7357 from pan3793/maven-3.9.14.\n\nCloses #7357\n\n3e2e83876 [Cheng Pan] Bump Maven 3.9.14\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "8e52e7b82f8b44b33c6142ab473341cc10473607",
      "tree": "c4d10fa282bc7bc90bbc0b0899fded5ee6fc3c54",
      "parents": [
        "9d6480d04806b404c0466fd645f778d3d9f9eaad"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 16:12:28 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 16:12:28 2026 +0800"
      },
      "message": "[KYUUBI #7356] Bump Hadoop 3.4.3\n\n### Why are the changes needed?\n\nPrepare for Java 25 support.- Hadoop 3.4.3 is the first version that can use UGI on Java 25, see HADOOP-19212, though it may not be fully compatible with Java 25.\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7356 from pan3793/hadoop-3.4.3.\n\nCloses #7356\n\n5b5a99e4a [Cheng Pan] Bump Hadoop 3.4.3\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "9d6480d04806b404c0466fd645f778d3d9f9eaad",
      "tree": "11370335a4ed8229749950589f6067c1f18c6269",
      "parents": [
        "588efc7d700d109251341a6f7ffbbef748201650"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 16:07:35 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 16:07:35 2026 +0800"
      },
      "message": "[KYUUBI #7355] Bump Kafka 3.9.2\n\n### Why are the changes needed?\n\nKafka 3.9.2 switches to `at.yawk.lz4:lz4-java` for security purpose, which does not really affect Kyuubi since we excluded all compression libs from kafka-clients, but it\u0027s always good to keep 3rd party libs up-to-date.\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7355 from pan3793/kafka-3.9.2.\n\nCloses #7355\n\n37af2ec59 [Cheng Pan] Bump Kafka 3.9.2\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "588efc7d700d109251341a6f7ffbbef748201650",
      "tree": "cec155a28711472e4ed52935af8d2445ff0df63e",
      "parents": [
        "939e6e3bf305ad2173aab9dc43bb13ffaee9d575"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 10:10:00 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 10:10:00 2026 +0800"
      },
      "message": "[KYUUBI #7350] Make TPC-H/DS connector compatible with Spark 4.2\n\n### Why are the changes needed?\n\nAdapt to SPARK-54870, which added a new arg to case class `CharType`/`VarCharType`\n\n### How was this patch tested?\n\nWe don\u0027t have Spark 4.2 CI coverage yet, so CI only ensures it won\u0027t breaking for older Spark versions.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7350 from pan3793/tpc-spark-4.2.\n\nCloses #7350\n\nb16d00f83 [Cheng Pan] TPC H/DS connector compatible with Spark 4.2\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "939e6e3bf305ad2173aab9dc43bb13ffaee9d575",
      "tree": "9abc499ad55307653f302db5ff44415590e62c84",
      "parents": [
        "ceaf517511805bd66412a34436596a463d7b8ac6"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 10:08:09 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Mar 13 10:08:09 2026 +0800"
      },
      "message": "[KYUUBI #7351] Ignore GitHub Copilot and Claude folders by Git\n\n### Why are the changes needed?\n\nAs title.\n\n### How was this patch tested?\n\nReview.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo, but this is for AI.\n\nCloses #7351 from pan3793/ignore-ai-dir.\n\nCloses #7351\n\n83da2180b [Cheng Pan] Ignore GitHub Copilot and Claude folders by Git\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "ceaf517511805bd66412a34436596a463d7b8ac6",
      "tree": "43e4bbe4d2261c379961e4898f9200711da3ab02",
      "parents": [
        "a3de0ded7d3a64cc81271a116fb2c0fa8511c4b7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 12 21:59:32 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Mar 12 21:59:32 2026 +0800"
      },
      "message": "[KYUUBI #7344] Bump markdown from 3.7 to 3.8.1 in /docs\n\nBumps [markdown](https://github.com/Python-Markdown/markdown) from 3.7 to 3.8.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn\u0027t crash parser (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDRY fix in \u003ccode\u003eabbr\u003c/code\u003e extension by introducing method \u003ccode\u003ecreate_element\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1483\"\u003e#1483\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClean up test directory by removing some redundant tests and port\nnon-redundant cases to the newer test framework.\u003c/li\u003e\n\u003cli\u003eImproved performance of the raw HTML post-processor (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1510\"\u003e#1510\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackslash Unescape IDs set via \u003ccode\u003eattr_list\u003c/code\u003e on \u003ccode\u003etoc\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1493\"\u003e#1493\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003emd_in_html\u003c/code\u003e processes content inside \u0026quot;markdown\u0026quot; blocks as they are\nparsed outside of \u0026quot;markdown\u0026quot; blocks to keep things more consistent for\nthird-party extensions (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1503\"\u003e#1503\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e handle tags within inline code blocks better (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1075\"\u003e#1075\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e fix handling of one-liner block HTML handling (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1074\"\u003e#1074\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e\u0026lt;center\u0026gt;\u003c/code\u003e is treated like a block-level element (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1481\"\u003e#1481\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eabbr\u003c/code\u003e extension respects \u003ccode\u003eAtomicString\u003c/code\u003e and does not process\nperceived abbreviations in these strings (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1512\"\u003e#1512\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esmarty\u003c/code\u003e extension correctly renders nested closing quotes (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1514\"\u003e#1514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn\u0027t crash parser (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.0] - 2025-04-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDRY fix in \u003ccode\u003eabbr\u003c/code\u003e extension by introducing method \u003ccode\u003ecreate_element\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1483\"\u003e#1483\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClean up test directory by removing some redundant tests and port\nnon-redundant cases to the newer test framework.\u003c/li\u003e\n\u003cli\u003eImproved performance of the raw HTML post-processor (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1510\"\u003e#1510\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackslash Unescape IDs set via \u003ccode\u003eattr_list\u003c/code\u003e on \u003ccode\u003etoc\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1493\"\u003e#1493\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003emd_in_html\u003c/code\u003e processes content inside \u0026quot;markdown\u0026quot; blocks as they are\nparsed outside of \u0026quot;markdown\u0026quot; blocks to keep things more consistent for\nthird-party extensions (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1503\"\u003e#1503\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e handle tags within inline code blocks better (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1075\"\u003e#1075\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e fix handling of one-liner block HTML handling (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1074\"\u003e#1074\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e\u0026lt;center\u0026gt;\u003c/code\u003e is treated like a block-level element (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1481\"\u003e#1481\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eabbr\u003c/code\u003e extension respects \u003ccode\u003eAtomicString\u003c/code\u003e and does not process\nperceived abbreviations in these strings (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1512\"\u003e#1512\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esmarty\u003c/code\u003e extension correctly renders nested closing quotes (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1514\"\u003e#1514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.7.0] - 2024-08-16\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003eabbr\u003c/code\u003e Extension\u003c/p\u003e\n\u003cp\u003eA new \u003ccode\u003eAbbrTreeprocessor\u003c/code\u003e has been introduced, which replaces the now deprecated\n\u003ccode\u003eAbbrInlineProcessor\u003c/code\u003e. Abbreviation processing now happens after Attribute Lists,\navoiding a conflict between the two extensions (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1460\"\u003e#1460\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eAbbrPreprocessor\u003c/code\u003e class has been renamed to \u003ccode\u003eAbbrBlockprocessor\u003c/code\u003e, which\nbetter reflects what it is. \u003ccode\u003eAbbrPreprocessor\u003c/code\u003e has been deprecated.\u003c/p\u003e\n\u003cp\u003eA call to \u003ccode\u003eMarkdown.reset()\u003c/code\u003e now clears all previously defined abbreviations.\u003c/p\u003e\n\u003cp\u003eAbbreviations are now sorted by length before executing \u003ccode\u003eAbbrTreeprocessor\u003c/code\u003e\nto ensure that multi-word abbreviations are implemented even if an abbreviation\nexists for one of those component words. (\u003ca href\u003d\"https://redirect.github.com/Python-Markdown/markdown/issues/1465\"\u003e#1465\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eAbbreviations without a definition are now ignored. This avoids applying\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/3870f20ba1dd214609b380e921dffc5f115730f5\"\u003e\u003ccode\u003e3870f20\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/820721485c928c6f97f3d74f37afb6d2450aef9e\"\u003e\u003ccode\u003e8207214\u003c/code\u003e\u003c/a\u003e Ensure incomplete markup declaration in raw HTML doesn\u0027t crash parser.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/64a3c0fbc00327fbfee1fd6b44da0e5453287fe4\"\u003e\u003ccode\u003e64a3c0f\u003c/code\u003e\u003c/a\u003e Fix HTML handling of \u003ccode\u003e\\\u0026lt;/\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/f2b9fd10f1fc7b0683f226e6a82da8e8375bccf5\"\u003e\u003ccode\u003ef2b9fd1\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003emd_in_html\u003c/code\u003e does not drop content\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/513de8a0db81c840f917488af7078a45f74542bf\"\u003e\u003ccode\u003e513de8a\u003c/code\u003e\u003c/a\u003e Update pypa/gh-action-pypi-publish to v1.12.4\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/b34e1d03387be771aa626241fe56f8f0c34243f2\"\u003e\u003ccode\u003eb34e1d0\u003c/code\u003e\u003c/a\u003e Bump version to 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/e6b71632726c049ab9a7a1b42e816a67f422064b\"\u003e\u003ccode\u003ee6b7163\u003c/code\u003e\u003c/a\u003e Update deploy workflow to normalize version\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/bd67d4862b388c7c2dd1ae90635c633472c2c77c\"\u003e\u003ccode\u003ebd67d48\u003c/code\u003e\u003c/a\u003e Improve changelog validation\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/e912575a903215ebafaeb0fecbdad079d998b9ba\"\u003e\u003ccode\u003ee912575\u003c/code\u003e\u003c/a\u003e Fix incorrect TOC list structure in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Python-Markdown/markdown/commit/42d4b4336e97485b96c1e4e9fcdb4e8df2501217\"\u003e\u003ccode\u003e42d4b43\u003c/code\u003e\u003c/a\u003e Fix CI badge in README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/Python-Markdown/markdown/compare/3.7...3.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmarkdown\u0026package-manager\u003dpip\u0026previous-version\u003d3.7\u0026new-version\u003d3.8.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `dependabot rebase` will rebase this PR\n- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/kyuubi/network/alerts).\n\n\u003c/details\u003e\n\nCloses #7344 from dependabot[bot]/dependabot/pip/docs/markdown-3.8.1.\n\nCloses #7344\n\nfd55846fb [dependabot[bot]] Bump markdown from 3.7 to 3.8.1 in /docs\n\nAuthored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "a3de0ded7d3a64cc81271a116fb2c0fa8511c4b7",
      "tree": "f6954742eb9126a5829c9d6eacaf42c60cf7048b",
      "parents": [
        "f3199219bd8439c571c11e797170ec134b62db05"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Mar 12 21:55:30 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Mar 12 21:55:30 2026 +0800"
      },
      "message": "[KYUUBI #7352] Skip Java 8 tests for Spark engine\n\n### Why are the changes needed?\n\nRemove Java 8 and keep only Java 17 tests for the Spark engine. We have `-release 8` guard, so it should be low risk.\n\nThis reduces the ASF CI resource usage.\n\n### How was this patch tested?\n\nReview.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7352 from pan3793/skip-8.\n\nCloses #7352\n\na925c5e90 [Cheng Pan] Skip Java 8 tests for Spark engine\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "f3199219bd8439c571c11e797170ec134b62db05",
      "tree": "1dc85cb962e5849c4044891a798f8b3afe3e9fa3",
      "parents": [
        "75ad1a3255868938ba62a4de477307869889bbaa"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 02 14:31:26 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 02 14:31:26 2026 +0800"
      },
      "message": "[KYUUBI #7331] Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3\n\nBumps org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3.\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dorg.apache.logging.log4j:log4j-core\u0026package-manager\u003dmaven\u0026previous-version\u003d2.24.3\u0026new-version\u003d2.25.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `dependabot rebase` will rebase this PR\n- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/kyuubi/network/alerts).\n\n\u003c/details\u003e\n\nCloses #7331 from dependabot[bot]/dependabot/maven/org.apache.logging.log4j-log4j-core-2.25.3.\n\nCloses #7331\n\n19409ab09 [Cheng Pan] update dependencyList\nce7643357 [dependabot[bot]] Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3\n\nLead-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "75ad1a3255868938ba62a4de477307869889bbaa",
      "tree": "26ecede091e6246593dcd9530d27c86d51d8a123",
      "parents": [
        "ffde2a2afa81f0e2c50a38532cd1a18ad32427e8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 02 14:22:20 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 02 14:22:20 2026 +0800"
      },
      "message": "[KYUUBI #7330] Bump org.bouncycastle:bcpkix-jdk18on from 1.78 to 1.79\n\nBumps [org.bouncycastle:bcpkix-jdk18on](https://github.com/bcgit/bc-java) from 1.78 to 1.79.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html\"\u003eorg.bouncycastle:bcpkix-jdk18on\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e2.1.1 VersionRelease: 1.84Date:      TBD\u003c/p\u003e\n\u003cp\u003e2.2.1 VersionRelease: 1.83Date:      2025, November 27th.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/bcgit/bc-java/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dorg.bouncycastle:bcpkix-jdk18on\u0026package-manager\u003dmaven\u0026previous-version\u003d1.78\u0026new-version\u003d1.79)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `dependabot rebase` will rebase this PR\n- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/kyuubi/network/alerts).\n\n\u003c/details\u003e\n\nCloses #7330 from dependabot[bot]/dependabot/maven/org.bouncycastle-bcpkix-jdk18on-1.79.\n\nCloses #7330\n\ne6c17d50f [dependabot[bot]] Bump org.bouncycastle:bcpkix-jdk18on from 1.78 to 1.79\n\nAuthored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "ffde2a2afa81f0e2c50a38532cd1a18ad32427e8",
      "tree": "2b4b38986f7804007d73eb8295f6baf4b2a1c703",
      "parents": [
        "ba7e0571cf3992446689ac7abf8180e817beca1b"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 02 10:33:36 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 02 10:33:36 2026 +0800"
      },
      "message": "[KYUUBI #7327] Spark master version goes 4.2.0-SNAPSHOT\n\n### Why are the changes needed?\n\nSpark master version goes 4.2.0-SNAPSHOT\n\n### How was this patch tested?\n\nMonitor daily CI after landing.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7327 from pan3793/master-4.2.\n\nCloses #7327\n\ne108db0d5 [Cheng Pan] Spark master version goes 4.2.0-SNAPSHOT\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "ba7e0571cf3992446689ac7abf8180e817beca1b",
      "tree": "8ce1831a96f211900388339ecf0163c5cdf7a9f8",
      "parents": [
        "c8a0ecbc5f60564054e603c670cf7b3baf52c947"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Mon Mar 02 10:32:40 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Mar 02 10:32:40 2026 +0800"
      },
      "message": "[KYUUBI #7339] [DOC] Fix non-consecutive header level increase\n\n### Why are the changes needed?\nThe changes fix the following warnings that are printed during the documentation building:\n```\n./kyuubi/docs/connector/spark/kudu.md.rst:42: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/connector/spark/kudu.md.rst:46: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/connector/spark/kudu.md.rst:50: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/connector/spark/kudu.md.rst:56: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/connector/spark/kudu.md.rst:82: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/connector/spark/kudu.md.rst:103: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/connector/spark/kudu.md.rst:121: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n\n./kyuubi/docs/monitor/logging.md.rst:190: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/monitor/logging.md.rst:194: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/monitor/logging.md.rst:210: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n./kyuubi/docs/monitor/logging.md.rst:214: WARNING: Non-consecutive header level increase; H2 to H4 [myst.header]\n```\n\n### How was this patch tested?\nChecked that there are no warnings anymore during the documentation build process and the pages look the same.\n```\nmake html\n\nopen _build/html/monitor/logging.html\nopen _build/html/connector/spark/kudu.html\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7339 from dnskr/doc-fix-non-consecutive-header-level-increase.\n\nCloses #7339\n\n18fc95b3e [dnskr] [DOC] Fix non-consecutive header level increase\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "c8a0ecbc5f60564054e603c670cf7b3baf52c947",
      "tree": "e126692b976c29aba2db0cadebb428706c51d537",
      "parents": [
        "c5acf543a01668c9de373681a6c49f6c85d5a1a0"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Sat Feb 14 09:29:00 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Sat Feb 14 09:29:00 2026 +0800"
      },
      "message": "[KYUUBI #7328] Bump testcontainers-scala 0.44.1\n\n### Why are the changes needed?\n\nTo fix the issue \"Docker 29.0.0 could not find a valid Docker environment\"\n\nhttps://github.com/testcontainers/testcontainers-java/issues/11212\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7328 from pan3793/tc.\n\nCloses #7328\n\na640cf864 [Cheng Pan] kafka container\n262daaac3 [Cheng Pan] Bump testcontainers-scala 0.44.1\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "c5acf543a01668c9de373681a6c49f6c85d5a1a0",
      "tree": "e18b300b48360ce3f4184b6e7a5289e1246586c3",
      "parents": [
        "2037881ff7c2a32efdcc22bca3e427eb5c0780b1"
      ],
      "author": {
        "name": "Yuming Wang",
        "email": "yumwang@ebay.com",
        "time": "Thu Feb 12 23:39:50 2026 -0800"
      },
      "committer": {
        "name": "Fei Wang",
        "email": "feiwang@apache.org",
        "time": "Thu Feb 12 23:39:50 2026 -0800"
      },
      "message": "[KYUUBI #7317] [KYUUBI-7316] Fix parsePropertyFromUrl to remove query string from parsed values\n\n### Why are the changes needed?\n\nFixed the `parsePropertyFromUrl` method in `Utils.java` to properly remove query string parts (everything after ?) from parsed JDBC URL property values, making it consistent with the `extractURLComponents` method.\n\nWhen parsing JDBC URLs with query strings like: `jdbc:hive2://host:10012/db;auth\u003dJWT?kyuubi.session.cluster\u003dclusterA`.\nThe `parsePropertyFromUrl` method was incorrectly returning `JWT?kyuubi.session.cluster\u003dclusterA` for the `auth` property, while `extractURLComponents` correctly returned only `JWT`. This inconsistency could cause authentication failures in JWT auth scenarios with additional query parameters.\n\n### How was this patch tested?\n\n1. URLs with query strings parse properties correctly without the query string\n2. URLs without query strings continue to work as expected\n3. Both parsing methods return consistent results\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7317 from wangyum/KYUUBI-7316.\n\nCloses #7317\n\n6b8d3b58d [Yuming Wang] f\n88a3c5a06 [Yuming Wang] fix\ne89260ce1 [Yuming Wang] fix\n206f28d27 [Yuming Wang] fix\n\nAuthored-by: Yuming Wang \u003cyumwang@ebay.com\u003e\nSigned-off-by: Fei Wang \u003cfeiwang@apache.org\u003e\n"
    },
    {
      "commit": "2037881ff7c2a32efdcc22bca3e427eb5c0780b1",
      "tree": "5bfef049464b52b935092b5804a6b9314fa59c67",
      "parents": [
        "73882e542100c50560577a51346ed5f572e449be"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Fri Feb 06 09:39:18 2026 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Fri Feb 06 09:39:18 2026 -0800"
      },
      "message": "[KYUUBI #7313] If the k8s application is pending, audit the status as well\n\n### Why are the changes needed?\n\nI saw that, a pod pending for 3 hours.\n```\n/var/log/hadoop/kyuubi/audit/k8s-audit.log.2026-01-23-08.gz::2026-01-23 08:09:31.356 INFO [-935552520-pool-3-thread-2861] org.apache.kyuubi.engine.KubernetesApplicationAuditLogger: eventType\u003dUPDATE\tlabel\u003dcb370310-9c4c-4982-817e-85f4f6c031a9\tcontext\u003dkube-apiserver-a-spark\tnamespace\u003ddls-prod\tpod\u003dkyuubi-hadp-adi-hadp-w-md-tbl-location-w-muso-0-ae7bd346-20260123-stm-cb370310-9c4c-4982-817e-85f4f6c031a9-driver\tpodState\u003dPending\tcontainers\u003d[]\tappId\u003dspark-f67cc33544654d828d36cc9553404a3e\tappName\u003dhadp-adi-hadp-w-md-t-818abc6d23397c33859c76dff9aa82e7244a92ba\tappState\u003dPENDING\tappError\u003d\u0027\u0027\n/var/log/hadoop/kyuubi/audit/k8s-audit.log.2026-01-23-11.gz::2026-01-23 11:09:50.121 INFO [-935552520-pool-3-thread-2902] org.apache.kyuubi.engine.KubernetesApplicationAuditLogger: eventType\u003dUPDATE\tlabel\u003dcb370310-9c4c-4982-817e-85f4f6c031a9\tcontext\u003dkube-apiserver-a-spark\tnamespace\u003ddls-prod\tpod\u003dkyuubi-hadp-adi-hadp-w-md-tbl-location-w-muso-0-ae7bd346-20260123-stm-cb370310-9c4c-4982-817e-85f4f6c031a9-driver\tpodState\u003dPending\tcontainers\u003d[]\tappId\u003dspark-f67cc33544654d828d36cc9553404a3e\tappName\u003dhadp-adi-hadp-w-md-t-818abc6d23397c33859c76dff9aa82e7244a92ba\tappState\u003dPENDING\tappError\u003d\u0027\u0027\n```\n\nHowever, the audit log did not record that why the pod pending for so long time.\n\nSo, I think we should check the pod state if pod is pending.\n\nAlso, for yarn app, it would also return the app pending reason for example waiting for am allocation.\n### How was this patch tested?\n\nCode review.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7313 from turboFei/audit_k8s_pending.\n\nCloses #7313\n\n1faff5efa [Wang, Fei] comments\nb456a8440 [Wang, Fei] If the k8s application is pending, audit the status as well\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "73882e542100c50560577a51346ed5f572e449be",
      "tree": "89a5d046ad2655cd08474e9f0771aaf9b99498e8",
      "parents": [
        "dfd9b4935378c79d3c1f99e344273ff71e21765b"
      ],
      "author": {
        "name": "yuqi",
        "email": "yuqi@bestpay.com.cn",
        "time": "Tue Feb 03 10:28:22 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Feb 03 10:28:22 2026 +0800"
      },
      "message": "[KYUUBI #7318] Allow specifying the executionMode when executing the tpcds benchmark\n\n### Why are the changes needed?\n\nThe underlying system supports specifying the executionMode when running the TPCDS benchmark, but this option is not exposed to users through parameters.\n\n### How was this patch tested?\n\nManual test\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7318 from ychris78/tpcde_execution_mode.\n\nCloses #7318\n\nf61162a4a [yuqi] reformat code\n76b9578fc [Cheng Pan] Apply suggestion from @pan3793\nbb4fb17af [yuqi] reformat code\n55f72bc5d [yuqi] refine\nf3056949e [yuqi] Allow specifying the executionMode when executing the tpcds benchmark\n\nLead-authored-by: yuqi \u003cyuqi@bestpay.com.cn\u003e\nCo-authored-by: Cheng Pan \u003cpan3793@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "dfd9b4935378c79d3c1f99e344273ff71e21765b",
      "tree": "5e8cab982f5be27602729bf296cc23e370a89c83",
      "parents": [
        "69e8e95429b5bafb9eae1bff15cbaf1636756395"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Jan 21 21:46:03 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Jan 21 21:46:03 2026 +0800"
      },
      "message": "[KYUUBI #7310] JSON metrics report path supports variables substitution\n\n### Why are the changes needed?\n\nThis PR enhances `kyuubi.metrics.json.location` to support variable substitution: `{{KYUUBI_HOME}}`, `{{KYUUBI_WORK_DIR_ROOT}}`, and changes the default value to `{{KYUUBI_HOME}}/metrics` - I suppose it is a more reasonable default value than `{{KYUUBI_WORK_DIR_ROOT}}/metrics`, given others dirs also under `KYUUBI_HOME` by default\n\n```\nexport KYUUBI_LOG_DIR\u003d\"${KYUUBI_LOG_DIR:-\"${KYUUBI_HOME}/logs\"}\"\nexport KYUUBI_PID_DIR\u003d\"${KYUUBI_PID_DIR:-\"${KYUUBI_HOME}/pid\"}\"\nexport KYUUBI_WORK_DIR_ROOT\u003d\"${KYUUBI_WORK_DIR_ROOT:-\"${KYUUBI_HOME}/work\"}\"\n```\n\nTo make things more consistent, variable substitution behavior is also updated for `kyuubi.metadata.store.jdbc.url`\n\n### How was this patch tested?\n\nManually tested by\n\n```\nbin/kyuubi run \\\n  --conf kyuubi.metrics.reporters\u003dJSON \\\n  --conf kyuubi.metrics.json.location\u003d{{KYUUBI_HOME}}/metrics\n```\n\n```\nbin/kyuubi run \\\n  --conf kyuubi.metrics.reporters\u003dJSON \\\n  --conf kyuubi.metrics.json.location\u003d{{KYUUBI_WORK_DIR_ROOT}}/metrics\n```\n\nand checks the metrics JSON file.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7310 from pan3793/json-metrics.\n\nCloses #7310\n\n71e4b28bb [Cheng Pan] Update kyuubi-common/src/main/scala/org/apache/kyuubi/Utils.scala\n11002836e [Cheng Pan] nit\n2b27c386e [Cheng Pan] rename\nd6db4e206 [Cheng Pan] fix\n0fb1165ac [Cheng Pan] JSON metrics report path supports variables substitution\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "69e8e95429b5bafb9eae1bff15cbaf1636756395",
      "tree": "b100a0aa377c22626e651f8f912c6652399fcc31",
      "parents": [
        "b49ef7906be3142479ae643b071d6f5eec5b4002"
      ],
      "author": {
        "name": "anandnalya",
        "email": "anand.nalya@automattic.com",
        "time": "Thu Jan 15 18:53:02 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Jan 15 18:53:02 2026 +0800"
      },
      "message": "[KYUUBI #7304] Fix NumberFormatException when parsing ISO 8601 duration for session idle timeout\n\nThe `sessionIdleTimeoutThreshold` in `SparkSessionImpl` was using `.toLong` directly on the config string value, which fails when the value is in ISO 8601 duration format (e.g., `PT40M`). This change uses `Duration.parse()` to properly handle ISO 8601 duration format with fallback to plain milliseconds, consistent with how `ConfigBuilder.timeConf` handles duration parsing elsewhere in the codebase.\n\nCloses #7304\n\n### Why are the changes needed?\n\nThis fixes https://github.com/apache/kyuubi/issues/7304 which affects v1.11.0 and v1.10.3\n\n### How was this patch tested?\n\nTested with integration tests.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nIntegration tests Generated-by: Claude Opus 4.5\n\nCloses #7306 from anandnalya/fix/session-idle-timeout-duration-parsing.\n\nCloses #7304\n\n3bb8891e0 [anandnalya] [KYUUBI #7304] Fix NumberFormatException when parsing ISO 8601 duration for session idle timeout\n\nAuthored-by: anandnalya \u003canand.nalya@automattic.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "b49ef7906be3142479ae643b071d6f5eec5b4002",
      "tree": "01b3485cbacb5a93cda55d22139589fed016b750",
      "parents": [
        "0436c459eb5a20062ad12b0b0a41da34517bde8c"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Jan 14 15:08:15 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Jan 14 15:08:15 2026 +0800"
      },
      "message": "[KYUUBI #7303] Bump Spark 4.1.1\n\n### Why are the changes needed?\n\nhttps://spark.apache.org/releases/spark-release-4.1.1.html\n\n### How was this patch tested?\n\nGHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7303 from pan3793/spark-4.1.1.\n\nCloses #7303\n\n8595aa984 [Cheng Pan] Bump Spark 4.1.1\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "0436c459eb5a20062ad12b0b0a41da34517bde8c",
      "tree": "361c2ce2e94b2101483ed65883fac279eecfbb4c",
      "parents": [
        "526a8aa9c81f27f139c7e73c6db569fd31aec5c3"
      ],
      "author": {
        "name": "chenliang.lu",
        "email": "chenlianglu@tencent.com",
        "time": "Tue Jan 13 09:29:21 2026 +0800"
      },
      "committer": {
        "name": "wforget",
        "email": "643348094@qq.com",
        "time": "Tue Jan 13 09:29:21 2026 +0800"
      },
      "message": "[KYUUBI #7180][LINEAGE] Subquery in the project should always drill down to get the lineage relationships\n\n### Why are the changes needed?\n\nThe following SQL statement will get the wrong column lineage result:\ncreate table table0(a int, b string, c string)\ncreate table table1(a int, b string, c string)\nselect (select sum(a) from table0 where table1.b \u003d table0.b) as aa, b from table1\n\nThe root cause:\nFrom  https://github.com/apache/spark/pull/32687 ,  we can know the references for a subquery expression are defined as outer attribute references.  So we should always drill down to get the corresponding column lineage relationship for the subquery plan.\n\n### How was this patch tested?\n\nadd new ut\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nno\n\nCloses #7181 from yabola/lineage-subquery.\n\nCloses #7180\n\n866046aa2 [chenliang.lu] improve code\ne9ded00b3 [chenliang.lu] improve the subquery extraction operator\n5ea674475 [chenliang.lu] [KYUUBI #7180][LINEAGE] Subquery in the project should drill down to get the column lineage relationships\n\nAuthored-by: chenliang.lu \u003cchenlianglu@tencent.com\u003e\nSigned-off-by: wforget \u003c643348094@qq.com\u003e\n"
    },
    {
      "commit": "526a8aa9c81f27f139c7e73c6db569fd31aec5c3",
      "tree": "bb52ebf083d637cc66f13ee20d539d5b8db8dd43",
      "parents": [
        "f5c9dae88fe5aed1201d7e45d630bd1a605f0f80"
      ],
      "author": {
        "name": "attilapiros",
        "email": "piros.attila.zsolt@gmail.com",
        "time": "Fri Jan 09 09:56:53 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Jan 09 09:56:53 2026 +0800"
      },
      "message": "[KYUUBI #7299] [AUTHZ] Remove redundant concatenation with the list of conditions\n\n### Why are the changes needed?\n\nThis concatenation with the list of conditions `conditionList` is redundant as the `columnPrune` method already contains it.\n\n### How was this patch tested?\n\nExisting unit tests.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7299 from attilapiros/apiros_fix_1.\n\nCloses #7299\n\n18af3589a [attilapiros] Remove redundant concatenation with the list of conditions\n\nAuthored-by: attilapiros \u003cpiros.attila.zsolt@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "f5c9dae88fe5aed1201d7e45d630bd1a605f0f80",
      "tree": "bbd9773cd9a89961f622e46680b4aaffc818dc9f",
      "parents": [
        "8bed9de894f1b4ae0f510cc58daf7199555f6e98"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 05 14:24:31 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Jan 05 14:24:31 2026 +0800"
      },
      "message": "[KYUUBI #7243] Bump js-yaml from 4.1.0 to 4.1.1\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md\"\u003ejs-yaml\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.1.1] - 2025-11-12\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix prototype pollution issue in yaml merge (\u0026lt;\u0026lt;) operator.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/cc482e775913e6625137572a3712d2826170e53a\"\u003e\u003ccode\u003ecc482e7\u003c/code\u003e\u003c/a\u003e 4.1.1 released\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/50968b862e75866ef90e626572fe0b2f97b55f9f\"\u003e\u003ccode\u003e50968b8\u003c/code\u003e\u003c/a\u003e dist rebuild\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/d092d866031751cb27c12d93f3e2470ad74d678b\"\u003e\u003ccode\u003ed092d86\u003c/code\u003e\u003c/a\u003e lint fix\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/383665ff4248ec2192d1274e934462bb30426879\"\u003e\u003ccode\u003e383665f\u003c/code\u003e\u003c/a\u003e fix prototype pollution in merge (\u0026lt;\u0026lt;)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/0d3ca7a27b03a6c974790a30a89e456007d62976\"\u003e\u003ccode\u003e0d3ca7a\u003c/code\u003e\u003c/a\u003e README.md: HTTP \u003d\u0026gt; HTTPS (\u003ca href\u003d\"https://redirect.github.com/nodeca/js-yaml/issues/678\"\u003e#678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/49baadd52af887d2991e2c39a6639baa56d6c71b\"\u003e\u003ccode\u003e49baadd\u003c/code\u003e\u003c/a\u003e doc: \u0027empty\u0027 style option for !!null\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nodeca/js-yaml/commit/ba3460eb9d3e4478edcbc29edabe17c2157fc9ce\"\u003e\u003ccode\u003eba3460e\u003c/code\u003e\u003c/a\u003e Fix demo link (\u003ca href\u003d\"https://redirect.github.com/nodeca/js-yaml/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003djs-yaml\u0026package-manager\u003dnpm_and_yarn\u0026previous-version\u003d4.1.0\u0026new-version\u003d4.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `dependabot rebase` will rebase this PR\n- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `dependabot merge` will merge this PR after your CI passes on it\n- `dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `dependabot reopen` will reopen this PR if it is closed\n- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/kyuubi/network/alerts).\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n\nCloses #7243 from dependabot[bot]/dependabot/npm_and_yarn/kyuubi-server/web-ui/js-yaml-4.1.1.\n\nCloses #7243\n\n1dbbed949 [dependabot[bot]] Bump js-yaml from 4.1.0 to 4.1.1 in /kyuubi-server/web-ui\n\nAuthored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "8bed9de894f1b4ae0f510cc58daf7199555f6e98",
      "tree": "8f996a937466a08ee965fe43d6930140a59f6fbb",
      "parents": [
        "88493b0bc32c3ed0e9d21e1b810cc5dede958825"
      ],
      "author": {
        "name": "ruanwenjun",
        "email": "wenjun@apache.org",
        "time": "Mon Jan 05 14:22:44 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Jan 05 14:22:44 2026 +0800"
      },
      "message": "[KYUUBI #7290] Prevent engine session leak after Kyuubi session closed\n\n### Why are the changes needed?\nclose #7290\nWhen we close a kyuubi session, if the engine session(thrift client) has not initialized, then the kyuubi session will be closed, but the engine session might be alive, then will result in a resource leak.\n\n### How was this patch tested?\nCan be tested by when the engine pod is pending, and then kill the jdbc client, the driver pod should be killed after initialized.\n\n### Was this patch authored or co-authored using generative AI tooling?\nNO\n\nCloses #7294 from ruanwenjun/dev_wenjun_fix7290.\n\nCloses #7290\n\n142a21088 [ruanwenjun] make sure the client closed\n974520645 [ruanwenjun] set shouldRetry to false\nd3c860874 [ruanwenjun] remove unused comment\n866126d32 [ruanwenjun] If the session already closed, then return\n3b2ee3921 [ruanwenjun] [KYUUBI #7290] Fix the engine session might still alive when kyuubi session has been closed\n\nAuthored-by: ruanwenjun \u003cwenjun@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "88493b0bc32c3ed0e9d21e1b810cc5dede958825",
      "tree": "c10a1a41a445cae30fc13de36aec0fb5236338c1",
      "parents": [
        "5e23c32dc04cea50d59c8f85e8c723c8280d95fc"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Jan 05 14:18:14 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Jan 05 14:18:14 2026 +0800"
      },
      "message": "[KYUUBI #7295] Upgrade components of play ground to recent versions\n\n### Why are the changes needed?\n\nUpgrade components of play ground to recent versions, in addition, Kyuubi and Spark switch to JDK 17, while other components like Hadoop and Hive, remamin using JDK 8.\n\n### How was this patch tested?\n\nTested locally by building images and run demo, the updated docker images will be available on DockerHub soon, reviewer can test it too.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7295 from pan3793/playground.\n\nCloses #7295\n\n43ba4f97b [Cheng Pan] chmod\n093468915 [Cheng Pan] ca-certificates-java\na4b643d34 [Cheng Pan] docs\nbb7de285a [Cheng Pan] docs\nbe24b2a34 [Cheng Pan] nit\n3e9bd6822 [Cheng Pan] nit\n30e0abc9e [Cheng Pan] docs\n73a01e40e [Cheng Pan] fix\n883d27c84 [Cheng Pan] playground\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "5e23c32dc04cea50d59c8f85e8c723c8280d95fc",
      "tree": "c19d5d2a02fc0694c929a242fce7aa381c676b6b",
      "parents": [
        "8f7804d1d4ffb803989b760b81a945fcb904e74f"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Mon Jan 05 14:13:32 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Jan 05 14:13:32 2026 +0800"
      },
      "message": "[KYUUBI #7292] Add instruction to archive older releases\n\n### Why are the changes needed?\n\nArchive older releases https://www.apache.org/legal/release-policy.html#when-to-archive\n\nCloses #7292\n\n### How was this patch tested?\n\nNot tested\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7297 from aajisaka/archive-old-releases.\n\nCloses #7292\n\n4cbefd381 [Cheng Pan] nit\n677d52024 [Cheng Pan] nit\nb1f1f6797 [Akira Ajisaka] Fix svn delete command example\nef8c5754b [Akira Ajisaka] [KYUUBI #7292] Add instruction to archive older releases\n\nLead-authored-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\nCo-authored-by: Cheng Pan \u003cpan3793@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "8f7804d1d4ffb803989b760b81a945fcb904e74f",
      "tree": "e383aa2f09f979baf67a7e83e72cd53274357236",
      "parents": [
        "eecdaaa4d78fef90d6acac9ab36cc1b9d3babe1c"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Mon Jan 05 10:18:57 2026 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Jan 05 10:18:57 2026 +0800"
      },
      "message": "[KYUUBI #7291] Update the NOTICE files for 2026\n\n### Why are the changes needed?\n\nUpdate the NOTICE files for 2026.\n\nCloses #7291\n\n### How was this patch tested?\nNot tested\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7296 from aajisaka/notice-2026.\n\nCloses #7291\n\n5937f4ffb [Akira Ajisaka] Update the NOTICE files for 2026\n\nAuthored-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "eecdaaa4d78fef90d6acac9ab36cc1b9d3babe1c",
      "tree": "833f617b437bcb6eea1328e1ba28c9512be07bcc",
      "parents": [
        "45860bd3c69d05e2d9b3073e28d59b781f0fdd5d"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Dec 26 14:14:10 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Dec 26 14:14:10 2025 +0800"
      },
      "message": "[KYUUBI #7289] Release requires Java 17 or 21\n\n### Why are the changes needed?\n\nI hit an issue while preparing 1.11.0 RC0, which indicates I need to use a higher version of JDK for releasing.\n\n```\n[INFO] --- antlr4:4.13.1:antlr4 (default)  kyuubi-extension-spark-4-0_2.13 ---\n[WARNING] Error injecting: org.antlr.mojo.antlr4.Antlr4Mojo\njava.lang.UnsupportedClassVersionError: org/antlr/v4/Tool has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0\n    at java.lang.ClassLoader.defineClass1 (Native Method)\n    at java.lang.ClassLoader.defineClass (ClassLoader.java:756)\n    at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)\n```\n\nIn https://github.com/apache/kyuubi/pull/7144, we made it always use `-release:8` for `jdk9+`, so we still produce Java 8 compatible bytecode even using JDK 17, for all modules except Spark 4.0/4.1 extension modules.\n\n### How was this patch tested?\n\nWill verify this in the next RC of 1.11.0\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7289 from pan3793/release-java17.\n\nCloses #7289\n\n17e29bea0 [Cheng Pan] Release requires Java 17 or 21\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "45860bd3c69d05e2d9b3073e28d59b781f0fdd5d",
      "tree": "2989b6c36addf0efdcd5fabef1e1b5ebbd590a13",
      "parents": [
        "675d3e7e20b31fe3e7928946136e7a40849ed39a"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Dec 26 00:14:10 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Fri Dec 26 00:14:10 2025 +0800"
      },
      "message": "[KYUUBI #7288] Bump Maven 3.9.12\n\n### Why are the changes needed?\n\nUpgrade to the latest version of Maven, so that `build/mvn` can benefit from CDN instead of Aapche archive site.\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7288 from pan3793/maven-3.9.12.\n\nCloses #7288\n\n1bb91effe [Cheng Pan] Bump Maven 3.9.12\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "675d3e7e20b31fe3e7928946136e7a40849ed39a",
      "tree": "92268a17509c9a8057b7db9abe4c36a24dbc52f2",
      "parents": [
        "2d534bd2c0ca337b0b84d56b46a5ca6753434761"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 20:53:08 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 20:53:08 2025 +0800"
      },
      "message": "[KYUUBI #7285] Deprecate support for Flink 1.19, Spark 3.3, 3.4\n\n### Why are the changes needed?\n\nFlink 1.19 and Spark 3.3, 3.4 are EOLed for a long time, and Kyuubi are likely to drop the support for those versions in the future, this PR adds a deprecated warning message before dropping.\n\n### How was this patch tested?\n\nReview.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7285 from pan3793/deprecate.\n\nCloses #7285\n\n569dca40f [Cheng Pan] nit\n66441fd91 [Cheng Pan] Deprecate support for Flink 1.19, Spark 3.3, 3.4\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "2d534bd2c0ca337b0b84d56b46a5ca6753434761",
      "tree": "a8ee6ede9ddf588deafc952764c576c42e37d866",
      "parents": [
        "0ef4201b770e3943ee511276f4ea00621da530f4"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 20:52:05 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 20:52:05 2025 +0800"
      },
      "message": "[KYUUBI #7284] Upgrade Flink and Spark to latest patched version\n\n### Why are the changes needed?\n\nTest with latest patched version.\n\nFlink 1.19.1 \u003d\u003e 1.19.3\nFlink 1.20.0 \u003d\u003e 1.20.3\nSpark 3.4.3 \u003d\u003e 3.4.4\nSpark 3.5.5 \u003d\u003e 3.5.7\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7284 from pan3793/version-bump.\n\nCloses #7284\n\n8a04411d2 [Cheng Pan] Upgrade Flink and Spark to latest patched version\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "0ef4201b770e3943ee511276f4ea00621da530f4",
      "tree": "60c3ee32070644b45232a945c88647cd6a0193ab",
      "parents": [
        "acdb6a36d3643074ede173786bbe0f908194383c"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 20:48:52 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 20:48:52 2025 +0800"
      },
      "message": "[KYUUBI #7287] Fix checkstyle workflow\n\n### Why are the changes needed?\n\nFix checkstyle workflow by adding `-am` on compiling special module\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7287 from pan3793/style.\n\nCloses #7287\n\na8ec1f31f [Cheng Pan] java17\n65ae8cf71 [Cheng Pan] Fix checkstyle workflow\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "acdb6a36d3643074ede173786bbe0f908194383c",
      "tree": "49ee2d1677ef31eab2d8032032e46fdc3cd31277",
      "parents": [
        "7a97dfb3ff983b9ef9a93e6fac14aca377b071c8"
      ],
      "author": {
        "name": "echo567",
        "email": "liujunhui00@outlook.com",
        "time": "Thu Dec 25 11:08:24 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 25 11:08:24 2025 +0800"
      },
      "message": "[KYUUBI #7245] Fix arrow batch converter error\n\n### Why are the changes needed?\nControl the amount of data to prevent memory overflow and increase to initial speed.\n\nWhen `kyuubi.operation.result.format\u003darrow`, `spark.connect.grpc.arrow.maxBatchSize` does not work as expected.\n\nReproduction:\nYou can debug `KyuubiArrowConverters` or add the following log to line 300 of `KyuubiArrowConverters`:\n\n```\nlogInfo(s\"Total limit: ${limit}, rowCount: ${rowCount}, \" +\ns\"rowCountInLastBatch:${rowCountInLastBatch},\" +\ns\"estimatedBatchSize: ${estimatedBatchSize},\" +\ns\"maxEstimatedBatchSize: ${maxEstimatedBatchSize},\" +\ns\"maxRecordsPerBatch:${maxRecordsPerBatch}\")\n```\n\nTest data: 1.6 million rows, 30 columns per row. Command executed:\n```\nbin/beeline \\\n  -u \u0027jdbc:hive2://10.168.X.X:XX/default;thrift.client.max.message.size\u003d2000000000\u0027 \\\n  --hiveconf kyuubi.operation.result.format\u003darrow \\\n  -n test -p \u0027testpass\u0027 \\\n  --outputformat\u003dcsv2 -e \"select * from db.table\" \u003e /tmp/test.csv\n```\n\nLog output\n```\n25/11/13 13:52:57 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 200000, lastBatchRowCount:200000, estimatedBatchSize: 145600000 maxEstimatedBatchSize: 4,maxRecordsPerBatch:10000\n25/11/13 13:52:57 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 200000, lastBatchRowCount:200000, estimatedBatchSize: 145600000\n```\n\nOriginal Code\n```\nwhile (rowIter.hasNext \u0026\u0026 (\nrowCountInLastBatch \u003d\u003d 0 \u0026\u0026 maxEstimatedBatchSize \u003e 0 ||\nestimatedBatchSize \u003c\u003d 0 ||\nestimatedBatchSize \u003c maxEstimatedBatchSize ||\nmaxRecordsPerBatch \u003c\u003d 0 ||\nrowCountInLastBatch \u003c maxRecordsPerBatch ||\nrowCount \u003c limit ||\nlimit \u003c 0))\n```\nWhen the `limit` is not set, i.e., `-1`, all data will be retrieved at once. If the row count is too large, the following three problems will occur:\n(1) Driver/executor oom\n(2) Array oom cause of array length is not enough\n(3) Transfer data slowly\n\nAfter updating the code, the log output is as follows:\n```\n25/11/14 10:57:16 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 5762, rowCountInLastBatch:5762, estimatedBatchSize: 4194736, maxEstimatedBatchSize: 4194304, maxRecordsPerBatch:10000\n25/11/14 10:57:16 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 11524, rowCountInLastBatch: 5762, estimatedBatchSize: 4194736, maxEstimatedBatchSize: 4194304, maxRecordsPerBatch: 10000\n25/11/14 10:57:16 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 17286, rowCountInLastBatch: 5762, estimatedBatchSize: 4194736, maxEstimatedBatchSize: 4194304, maxRecordsPerBatch: 10000\n```\nThe estimatedBatchSize is slightly larger than the maxEstimatedBatchSize. Data can be written in batches as expected.\n\nFix #7245.\n\n### How was this patch tested?\nTest data: 1.6 million rows, 30 columns per row.\n```\n25/11/14 10:57:16 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 5762, rowCountInLastBatch:5762, estimatedBatchSize: 4194736, maxEstimatedBatchSize: 4194304, maxRecordsPerBatch:10000\n25/11/14 10:57:16 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 11524, rowCountInLastBatch: 5762, estimatedBatchSize: 4194736, maxEstimatedBatchSize: 4194304, maxRecordsPerBatch: 10000\n25/11/14 10:57:16 INFO KyuubiArrowConverters: Total limit: -1, rowCount: 17286, rowCountInLastBatch: 5762, estimatedBatchSize: 4194736, maxEstimatedBatchSize: 4194304, maxRecordsPerBatch: 10000\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7246 from echo567/fix-arrow-converter.\n\nCloses #7245\n\n6ef4ef13f [echo567] Merge branch \u0027master\u0027 into fix-arrow-converter\nc9d0d186f [echo567] fix(arrow): repairing arrow based on spark\n479d7e40b [echo567] fix(spark): fix arrow batch converter error\n\nAuthored-by: echo567 \u003cliujunhui00@outlook.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "7a97dfb3ff983b9ef9a93e6fac14aca377b071c8",
      "tree": "89a173eefe09631edfecc24fbe4868630828e92e",
      "parents": [
        "3667026eece44b44334ce5f50d18b1ce95e2b19a"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Dec 24 12:49:53 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Dec 24 12:49:53 2025 +0800"
      },
      "message": "Bump 1.12.0-SNAPSHOT\n"
    },
    {
      "commit": "3667026eece44b44334ce5f50d18b1ce95e2b19a",
      "tree": "ee23562772f5ee90f25f14ffb22bdff651f4cc65",
      "parents": [
        "63095f05372dd532e3d3c3b3841bf74fac7ad756"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sun Dec 21 22:19:26 2025 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sun Dec 21 22:19:26 2025 -0800"
      },
      "message": "[KYUUBI #7281] Support to enable asynchronous post event\n\n### Why are the changes needed?\n\nThe registerAsync is not called in the code, just in UT.\n\u003cimg width\u003d\"1234\" height\u003d\"563\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/de41964b-bc8c-4867-9f6a-99e8984add91\" /\u003e\n\nThis PR add an option to enable async event post for kyuubi server.\n### How was this patch tested?\n\nJust add an option, the function has been covered by https://github.com/apache/kyuubi/pull/1853.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7281 from turboFei/async_event.\n\nCloses #7281\n\n1e5da4c28 [Wang, Fei] Support to enable post event asynchronous\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "63095f05372dd532e3d3c3b3841bf74fac7ad756",
      "tree": "9bb7cec07c8f7a501f56685b389631b488ad0e52",
      "parents": [
        "6d844ea02ef810543dfaf169ac7a49a54c0a846b"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 18 13:27:35 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 18 13:27:35 2025 +0800"
      },
      "message": "[KYUUBI #7277] Add UUID v7 generator\n\n### Why are the changes needed?\n\nhttps://datatracker.ietf.org/doc/html/rfc9562#name-uuid-version-7\n\nhttps://uuidv7.org/\n\n\u003e The Key Benefits of UUIDv7\nUUIDv7 is rapidly gaining traction for various use cases across many industries. Here are some of the primary benefits:\n\u003e\n\u003e 1. Time-Ordered and Sortable: UUIDv7 encodes the time of creation as part of the identifier, making it naturally sortable. This is especially valuable for systems where data needs to be ordered by time without needing an additional timestamp field.\n\u003e ...\n\nI think it\u0027s very useful - e.g., use UUIDv7 as session ID, then we can infer the session creation time from the UUID itself, or use UUIDv7 as a staging dir name, then we can easily clean dangling staging folders (for example, created 3 months ago) with a prefix.\n\nImplementation is inspired by https://github.com/apache/iceberg/pull/14700\n\n### How was this patch tested?\n\nNew UTs are added.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7277 from pan3793/uuidv7.\n\nCloses #7277\n\n1dc180141 [Cheng Pan] style\n3c7d3c5e3 [Cheng Pan] Add UUID v7 generator\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "6d844ea02ef810543dfaf169ac7a49a54c0a846b",
      "tree": "117ee373fc963d79d71ba8603f20bddaddebb1cb",
      "parents": [
        "84be226df5d5f1d2e00a6384887ccbd49a4e2c89"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Thu Dec 18 11:04:51 2025 +0900"
      },
      "committer": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Thu Dec 18 11:04:51 2025 +0900"
      },
      "message": "Normalize local path in Kyuubi server\n\nAuthored-by: Hiroki Egawa \u003chiegawa@lycorp.co.jp\u003e\nSigned-off-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\n"
    },
    {
      "commit": "84be226df5d5f1d2e00a6384887ccbd49a4e2c89",
      "tree": "636932ca068359defd58c9924abe4569ed802ca4",
      "parents": [
        "8baaba56b2ecba6a8021cb3588a3c7589b6ee9e2"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 18 00:15:09 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Dec 18 00:15:09 2025 +0800"
      },
      "message": "[KYUUBI #7275] Kyuubi Spark extention supports Spark 4.1\n\n### Why are the changes needed?\n\nThis is almost a replica of `kyuubi-extension-spark-4-0`, with a few tweaks to pass compile.\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7275 from pan3793/spark-4.1-ext.\n\nCloses #7275\n\nd96ed68dc [Cheng Pan] nit\n60eef3ad5 [Cheng Pan] enable test\n7d347b734 [Cheng Pan] spark extension\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "8baaba56b2ecba6a8021cb3588a3c7589b6ee9e2",
      "tree": "c861fe56ef91f5f773aad60fa17f9bf0788ac863",
      "parents": [
        "f0e4c954e41d9081ceb999a2bdf4937d1b9cdded"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Dec 17 14:41:44 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Dec 17 14:41:44 2025 +0800"
      },
      "message": "[KYUUBI #7254] Initial support Spark 4.1\n\n### Why are the changes needed?\n\n- Engine - passes compile and all UTs except for one case.\n- Server - passes all UTs and Spark engine integration tests.\n- Lineage plugin - passes compile and all UTs\n- AuthZ plugin - passes compile\n- TPC-H/TPC-DS connectors - passes compile and all UTs\n- KSHC - passes compile\n- Spark extension - TBD\n\nSwitch to Python 3.11 for Spark 4 in GHA, due to the support of Python 3.9 is EOL and dropped by Spark 4.1\n\n### How was this patch tested?\n\nGHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7254 from pan3793/spark-4.1.\n\nCloses #7254\n\n716c3fb6f [Fei Wang] Update externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/operation/SparkArrowbasedOperationSuite.scala\n7d3854900 [Cheng Pan] update docs and dev scripts\nd0463f322 [Cheng Pan] fix build\n1d1ab46b1 [Cheng Pan] Spark 4.1.0\n1becdf886 [Cheng Pan] disable arrow-based query metrics for spark 4.1\n50d2b573b [Cheng Pan] enable spark lineage plugin test for spark 4.1\n5e9bacb07 [Cheng Pan] use python 3.11 for spark 4\nde40ae588 [Cheng Pan] relax error message match pattern\ne29deed73 [Cheng Pan] adapt to SPARK-54259\nd27a7735f [Cheng Pan] Adapt SPARK-52065\naf309ea1c [Cheng Pan] fix\n4273ec392 [Cheng Pan] adapt SPARK-53459\nef3a426f0 [Cheng Pan] release:17\ne901bd2ee [Cheng Pan] Test with Spark 4.1 preview4\n\nLead-authored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nCo-authored-by: Fei Wang \u003ccn.feiwang@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "f0e4c954e41d9081ceb999a2bdf4937d1b9cdded",
      "tree": "d1f5db62cd4e2cd9b9213b3bf8ee0d3720e09eda",
      "parents": [
        "18a55503e216d7a35e32b9ad844f453c8447179e"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Dec 16 21:36:49 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Dec 16 21:36:49 2025 +0800"
      },
      "message": "[KYUUBI #7274] Bump Scala 2.13.17\n\n### Why are the changes needed?\n\nAlign Scala version with Spark 4.1.\n\nExclude `SparkLocalClusterTest` due to Scala 2.13.17 changes `serialVersionUID` of `scala.collection.immutable.ArraySeq`. This should only be a test issue, I suppose we still preserve binary compatibility for the Spark engine jar - which means, the `kyuubi-spark-sql-engine_2.13-\u003cversion\u003e.jar` compile against Spark 3.5, still works well for Spark 4.0, and the upcoming Spark 4.1\n\n### How was this patch tested?\n\nGHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7274 from pan3793/scala-2.13.17.\n\nCloses #7274\n\n8cee0bd1f [Cheng Pan] disable SparkLocalClusterTest for spark 4.0\n10a1a812e [Cheng Pan] Bump Scala 2.13.17\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "18a55503e216d7a35e32b9ad844f453c8447179e",
      "tree": "64692c90bfa1252181cb9430997f3e2478291baf",
      "parents": [
        "39af9ca20589a79fac53d02471d8d09ed1b58a3e"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Dec 15 14:08:12 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Dec 15 14:08:12 2025 +0800"
      },
      "message": "[KYUUBI #7273] Bump Netty 4.2.7\n\n### Why are the changes needed?\n\nUpgrade Netty 4.2, which is a blocker for Spark 4.1 support.\n\nhttps://github.com/netty/netty/wiki/Netty-4.2-Migration-Guide\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7273 from pan3793/netty-4.2.7.\n\nCloses #7273\n\n043e60b6c [Cheng Pan] Bump Netty 4.2.7\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "39af9ca20589a79fac53d02471d8d09ed1b58a3e",
      "tree": "8fb54a2840a765a552febd9baf56945764fabb9b",
      "parents": [
        "c0f0fe09bad30e22dea72708afdfd3047197c6c3"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Dec 15 01:46:29 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Dec 15 01:46:29 2025 +0800"
      },
      "message": "[KYUUBI #7259] Bump Netty 4.1.128 gRPC 1.76.2 Protobuf 3.25.8 Guava 33.4.8-jre\n\n### Why are the changes needed?\n\nBump to the latest 4.1 version of Netty, prepare for upgrading Netty 4.2, which is a blocker for Spark 4.1 support.\n\nhttps://github.com/netty/netty/wiki/Netty-4.2-Migration-Guide\n\nAlso, upgrade gRPC Protobuf Guava to match the Netty version.\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7259 from pan3793/netty-4.1.128.\n\nCloses #7259\n\n929b18d0a [Cheng Pan] Bump Guava 33.4.8-jre Protobuf 3.25.8 gRPC 1.76.2\n8272bef82 [Cheng Pan] Bump Netty 4.1.128\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "c0f0fe09bad30e22dea72708afdfd3047197c6c3",
      "tree": "8480fbd71d816a8b5c5d11a73f8a87c8e8101323",
      "parents": [
        "2e79aa2c95dfeaf0e2cddaf7678fd934739f0679"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Dec 15 01:27:45 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Dec 15 01:27:45 2025 +0800"
      },
      "message": "[KYUUBI #7272] Improve `build/dependency.sh` script\n\n### Why are the changes needed?\n\nThis PR improves `build/dependency.sh` script inspired by Spark `dev/test-dependencies.sh`\n\nMain advantage - the updated script uses `mvn jar:jar jar:test-jar install:install clean -q` to perform a noop install, which is super faster than making a normal `mvn install` because it triggers the dep resolution without compiling the source code.\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7272 from pan3793/dep-pr.\n\nCloses #7272\n\n5678d4700 [Cheng Pan] Improve build/dependency.sh script\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "2e79aa2c95dfeaf0e2cddaf7678fd934739f0679",
      "tree": "02530adb57706f9c589785ec6688b9f7c253b680",
      "parents": [
        "2f702a3c7d2a7d8d1fb6f02187d3ac2526275ca1"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 23:09:49 2025 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 23:09:49 2025 -0800"
      },
      "message": "[KYUUBI #6884][FOLLOWUP] Support reassign batch with BatchRestApi\n\n### Why are the changes needed?\n\nSupport reassign batch with BatchRestApi.\n\nFollowup #7037\n\n### How was this patch tested?\n\nGA.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7263 from turboFei/api.\n\nCloses #6884\n\n98ce81fd3 [Wang, Fei] BatchRestApi\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "2f702a3c7d2a7d8d1fb6f02187d3ac2526275ca1",
      "tree": "37830e53b1376c58c606aff1a8e5d52fccf58acf",
      "parents": [
        "572cef805fb83c117570285a46040832bd85a4ea"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 23:08:56 2025 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 23:08:56 2025 -0800"
      },
      "message": "[KYUUBI #6884][FOLLOWUP] Fix internal kyuubi instance ping failure\n\n### Why are the changes needed?\n\nTo fix failure:\n```\n:2025-12-07 13:40:40.747 ERROR [KyuubiRestFrontendService-134] org.apache.kyuubi.server.api.v1.InternalRestClient: (Ping to internal Kyuubi instance:{}  failed,kyuubistaging-1.kyuubistaginghl.kyuubi-prod.svc.166.tess.io:10011,java.lang.IllegalArgumentException: requirement failed: The auth user shall be not null)\n```\n\nIn this PR, it will use the authUser and client ipAddress for internal ping.\n\n### How was this patch tested?\n\nIntegration testing.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7264 from turboFei/ping_able.\n\nCloses #6884\n\n198dc6140 [Wang, Fei] debug\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "572cef805fb83c117570285a46040832bd85a4ea",
      "tree": "b1f13ad9d9520b99f777f9eb0f771de0619f2f0a",
      "parents": [
        "05d063737e328990bdaad6aad1758cbe24e2e1c6"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 23:07:53 2025 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 23:07:53 2025 -0800"
      },
      "message": "[KYUUBI #7226] Support to wait the batch recovery appliction submission to throttle the load on the system\n\n### Why are the changes needed?\n\nSupport to wait the batch recovery appliction submission to throttle the load on the system.\n\nAdd a new config to control it\n\nWhether a metadata recovery task should wait for its corresponding engine submission to complete before finishing. All recovery tasks are submitted to a fixed thread pool controlled by kyuubi.metadata.recovery.threads. If true, a task blocks until the engine submission is done, helping throttle the load on the system if kyuubi.session.engine.startup.waitCompletion is false. If false, the task returns immediately after opening the session without waiting.\n\nClose #7226\n### How was this patch tested?\n\nGA.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7262 from turboFei/recover_concurrent.\n\nCloses #7226\n\nea6282d54 [Wang, Fei] config\n2b0403d3f [Wang, Fei] refine docs\nb5c51010f [Wang, Fei] refine\nf6b510c5e [Wang, Fei] 1.10.3\nb892c7159 [Wang, Fei] Support to wait the batch recovery appliction submission to throttle the load on the system\nc4740dc89 [Wang, Fei] conf\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "05d063737e328990bdaad6aad1758cbe24e2e1c6",
      "tree": "00dac0d69444cbcb8be43d4fc1a78524d768b0b6",
      "parents": [
        "0b1b2f20fa8a8618c0d35c12de5752d28215c762"
      ],
      "author": {
        "name": "Yaguang Jia",
        "email": "yaguangjia@tencent.com",
        "time": "Thu Dec 11 09:10:45 2025 +0800"
      },
      "committer": {
        "name": "wforget",
        "email": "643348094@qq.com",
        "time": "Thu Dec 11 09:10:45 2025 +0800"
      },
      "message": "[KYUUBI #7186] Introduce RuleFunctionAuthorization for persistent function calls authorization\n\n### Why are the changes needed?\n\nClose #7186\n\n### How was this patch tested?\n\nAdd new UTs and verified in a cluster with ranger hive spark service.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7187 from ygjia/hive-udf.\n\nCloses #7186\n\ncfeb2e6cc [Yaguang Jia] address review comments\n49777831f [Yaguang Jia] Merge remote-tracking branch \u0027apache/master\u0027 into hive-udf\n211da6da6 [Yaguang Jia] address review comments\n249c3218e [Yaguang Jia] change config to spark.kyuubi.authz.udf.enabled\ncbb0225d3 [Yaguang Jia] fix scalastyle check\na99e2d22e [Yaguang Jia] add spark.kyuubi.conf.authz.udf.enabled\n6afed7a21 [Yaguang Jia] update RuleFunctionAuthorization\n85d19d258 [Yaguang Jia] mv test to HiveCatalogRangerSparkExtensionSuite\n114aafe81 [Yaguang Jia] mv test to HiveCatalogRangerSparkExtensionSuite\n05c7de0f6 [Yaguang Jia] revert mock\n0096db0d7 [Yaguang Jia] test RuleFunctionAuthorization in RangerSparkExtensionSuite.\n60df21866 [Yaguang Jia] fix buildFunctions for command\n5b20926d0 [Yaguang Jia] add ut for RuleFunctionAuthorization\n38c2577e9 [Yaguang Jia] add built in and udf test\n939dd982c [Yaguang Jia] add RuleFunctionAuthorization to support hive udf Authorization\n\nAuthored-by: Yaguang Jia \u003cyaguangjia@tencent.com\u003e\nSigned-off-by: wforget \u003c643348094@qq.com\u003e\n"
    },
    {
      "commit": "0b1b2f20fa8a8618c0d35c12de5752d28215c762",
      "tree": "de6c05aa625c7bdc54e562a243387a4999f7a1c1",
      "parents": [
        "4b180d4930ff7233bfb9cf1d2b910c065415ff7e"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 09:57:53 2025 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Wed Dec 10 09:57:53 2025 -0800"
      },
      "message": "[KYUUBI #7266] Upgrade jersey version to 2.47\n\n### Why are the changes needed?\n\nUpgrade jersey version to 2.47 to fix CVE-2025-12383\n\n### How was this patch tested?\n\nGA.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7266 from turboFei/jersey.\n\nCloses #7266\n\naaffb2870 [Wang, Fei] Upgrade jersey version to 2.47 to fix CVE-2025-12383\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "4b180d4930ff7233bfb9cf1d2b910c065415ff7e",
      "tree": "4fd6272ae3d8dc73ff9caa89123649b39ab753ac",
      "parents": [
        "fba1f94f666e60adad056af3e8550216f6a02776"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Wed Dec 10 16:51:28 2025 +0900"
      },
      "committer": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Wed Dec 10 16:51:28 2025 +0900"
      },
      "message": "[KYUUBI #7265] Recommend to configure kyuubi.session.local.dir.allowlist for multi-tenant clusters\n\n### Why are the changes needed?\n\nAdd recommendation to protect credentials in Kyuubi server for multi-tenant use case.\n\nFixes #7265\n\n### How was this patch tested?\n\nNew test is not added because it\u0027s only documentation and logging change.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7269 from aajisaka/multi-tenant-doc.\n\nCloses #7265\n\n477ad752b [Akira Ajisaka] Fix scalastyle check\n5e947b941 [Akira Ajisaka] [KYUUBI #7265] Recommend to configure kyuubi.session.local.dir.allow.list for multi-tenant clusters.\n\nAuthored-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\nSigned-off-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\n"
    },
    {
      "commit": "fba1f94f666e60adad056af3e8550216f6a02776",
      "tree": "67d69273be8717e7c37747318db3f209fdf14293",
      "parents": [
        "85950e9b9c9d5e426adc13189e71057c42b1a9e2"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Nov 25 14:41:55 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Nov 25 14:41:55 2025 +0800"
      },
      "message": "[KYUUBI #7261] Bump extra-enforcer-rules 1.11.0\n\n### Why are the changes needed?\n\nTo suppress warnings like\n\n```\n[INFO] --- enforcer:3.5.0:enforce (enforce-bytecode-version)  kyuubi-spark-sql-engine_2.13 ---\n[WARNING] Unknown bytecodeVersion for net.bytebuddy:byte-buddy:jar:1.17.6:compile : META-INF/versions/24/net/bytebuddy/jar/asmjdkbridge/JdkClassWriter$1.class: got null class-file-version\n[WARNING] Unknown bytecodeVersion for net.bytebuddy:byte-buddy:jar:1.17.6:compile : META-INF/versions/24/net/bytebuddy/jar/asmjdkbridge/AsmWrappedAttribute.class: got null class-file-version\n[WARNING] Unknown bytecodeVersion for net.bytebuddy:byte-buddy:jar:1.17.6:compile : META-INF/versions/24/net/bytebuddy/jar/asmjdkbridge/AsmWrappedAttribute$AsmSourceIdAttribute.class: got null class-file-version\n[WARNING] Unknown bytecodeVersion for net.bytebuddy:byte-buddy:jar:1.17.6:compile : META-INF/versions/24/net/bytebuddy/jar/asmjdkbridge/JdkClassReader$TypeAnnotationVisitorSource.class: got null class-file-version\n[WARNING] Unknown bytecodeVersion for net.bytebuddy:byte-buddy:jar:1.17.6:compile : META-INF/versions/24/net/bytebuddy/jar/asmjdkbridge/AsmAttribute.class: got null class-file-version\n...\n```\n\n### How was this patch tested?\n\nPass GHA, and manually verified the warnings have gone.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7261 from pan3793/extra-enforcer-rules-1.11.\n\nCloses #7261\n\n267537a27 [Cheng Pan] Bump extra-enforcer-rules 1.11.0\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "85950e9b9c9d5e426adc13189e71057c42b1a9e2",
      "tree": "20a118d2bb0dfcaa68687f5feae0f4130c917aa1",
      "parents": [
        "926a8cbc99ac61300e72ed9eaceb1db7a9ab238d"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Nov 25 14:32:57 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Nov 25 14:32:57 2025 +0800"
      },
      "message": "[KYUUBI #7260] Suppress rat-plugin deprecate warnings\n\n### Why are the changes needed?\n\n```\n[INFO] --- apache-rat:0.16.1:check (default)  kyuubi-parent ---\n[WARNING]  Parameter \u0027licenseFamilies\u0027 is deprecated: No reason given\n```\n\n### How was this patch tested?\n\nPass GHA, and manually checked that the warnings have gone away.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7260 from pan3793/rat-warning.\n\nCloses #7260\n\n8453ddfca [Cheng Pan] Suppress rat-plugin deprecate warnings\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "926a8cbc99ac61300e72ed9eaceb1db7a9ab238d",
      "tree": "64d5aaa1e3d9633cc4d0689887afd3ee1648002f",
      "parents": [
        "8a67796984b54abaebe0f0cbeddb7c059f51e531"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Nov 25 10:10:58 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Nov 25 10:10:58 2025 +0800"
      },
      "message": "[KYUUBI #7257] Bump Jackson 2.20.1 and kubernetes-client 6.14.0\n\n### Why are the changes needed?\n\nJackson 2.20 was released on August 28, 2025.\n\nRelease Notes: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.20\nRelease Blog: https://cowtowncoder.medium.com/jackson-2-20-0-released-0cc58ed1ea9f\n\nJackson 3.0.0 has been released in October, 2.20 probably is the last feature version of 2.x serials?\n\nAlso, bump kubernetes-client 6.14.0 to match the Jackson version.\n\nhttps://github.com/fabric8io/kubernetes-client/releases/tag/v6.14.0\n\n### How was this patch tested?\n\nPass GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7257 from pan3793/jackson-2.20.\n\nCloses #7257\n\n8f12e1a73 [Cheng Pan] fix\n7e05509d1 [Cheng Pan] Bump Jackson 2.20.1 and kubernetes-client 6.14.0\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "8a67796984b54abaebe0f0cbeddb7c059f51e531",
      "tree": "ccf8718a05e5912b7103d944efcf869f58b401cb",
      "parents": [
        "f2539d2581db1b1a1337b6834a7fbd79da471129"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Nov 24 19:38:32 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Nov 24 19:38:32 2025 +0800"
      },
      "message": "[KYUUBI #7256] Enable authZ compile support for Spark 4.0 and refactor some test methods\n\n### Why are the changes needed?\n\nThis PR enables authZ compile support for Spark 4.0\n\n```\nbuild/mvn -Pspark-4.0 -Pscala-2.13 -pl extensions/spark/kyuubi-spark-authz -am install -DskipTests\n```\n\n```\n[ERROR] [Error] /Users/chengpan/Projects/apache-kyuubi/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/rowfilter/FilterDataSourceV2Strategy.scala:19: object Strategy is not a member of package org.apache.spark.sql\n[ERROR] [Error] /Users/chengpan/Projects/apache-kyuubi/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/rowfilter/FilterDataSourceV2Strategy.scala:23: not found: type Strategy\n[ERROR] [Error] /Users/chengpan/Projects/apache-kyuubi/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/ranger/RangerSparkExtension.scala:58: type mismatch;\n found   : org.apache.kyuubi.plugin.spark.authz.rule.rowfilter.FilterDataSourceV2Strategy.type\n required: v1.StrategyBuilder\n    (which expands to)  org.apache.spark.sql.SparkSession \u003d\u003e org.apache.spark.sql.execution.SparkStrategy\n[ERROR] three errors found\n```\n\nIn addition, it refactors two methods in the test helper class `SparkSessionProvider`\n\n1. Refactor `isCatalogSupportPurge` to an abstract method `supportPurge` because some UTs do not rely on the current catalog.\n2. Add a new helper method `def doAs[T](user: String)(f: \u003d\u003e T): T`, now the caller can use it\n   ```\n   doAs(\"someone\") {\n     ...\n   }\n   ```\n\n### How was this patch tested?\n\nPass GHA to ensure it breaks nothing, manually tested Spark 4.0 compile\n\n```\nbuild/mvn -Pspark-4.0 -Pscala-2.13 -pl extensions/spark/kyuubi-spark-authz -am install -DskipTests\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7256 from pan3793/authz-refactor.\n\nCloses #7256\n\nb84cec803 [Cheng Pan] add missing override\nede364f17 [Cheng Pan] Enable authZ compile support for Spark 4.0 and refactor some test methods\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "f2539d2581db1b1a1337b6834a7fbd79da471129",
      "tree": "1dace36abd52b2bc276e35e3f45564b5a7087e66",
      "parents": [
        "109815bcb38d30d3a58fdb2b5e3baf972c704c6d"
      ],
      "author": {
        "name": "ruanwenjun",
        "email": "wenjun@apache.org",
        "time": "Thu Nov 20 20:41:26 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Nov 20 20:41:26 2025 +0800"
      },
      "message": "[KYUUBI #7248] JDBC engine should cancel the statement when receive cancel operation\n\n### Why are the changes needed?\nclose #7248\n- Cancel the jdbc statement when receive a kyuubi cancel operation\n\n### How was this patch tested?\nTest by new ut case\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7249 from ruanwenjun/dev_wenjun_fix7248.\n\nCloses #7248\n\nfa847ecbc [Cheng Pan] Apply suggestion from @pan3793\n734e6c467 [ruanwenjun] polish code\n76112f313 [ruanwenjun] change starrocks image to 3.3.13\nf2f9eed3e [ruanwenjun] add status assertion in new ut case\n33e0f0dd2 [ruanwenjun] add assert in ut\nc22feb5da [ruanwenjun] move todo to ExecuteStatement\na132f36b8 [ruanwenjun] improve ut\nf97ceae4e [ruanwenjun] [KYUUBI #7248] Ensure jdbc engine statements are canceled when receive cancel operation\n\nLead-authored-by: ruanwenjun \u003cwenjun@apache.org\u003e\nCo-authored-by: Cheng Pan \u003cpan3793@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "109815bcb38d30d3a58fdb2b5e3baf972c704c6d",
      "tree": "b890e86379c013cbb5d5f142b9fc54af1f4d5447",
      "parents": [
        "5887e76c26f9ca9b96fd6eeda9cb534e044bdb11"
      ],
      "author": {
        "name": "Akira Ajisaka",
        "email": "aajisaka@apache.org",
        "time": "Thu Nov 20 13:47:52 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Thu Nov 20 13:47:52 2025 +0800"
      },
      "message": "[KYUUBI #7251] Use RustFS instead of MinIO in Playground\n\n### Why are the changes needed?\nPlayground fails to launch because Minio Docker image is no longer available.\n\nClose #7251\n\n### How was this patch tested?\nRan `docker-compose up -d` to launch Playground and ran the following commands in the readme to create test data:\n```\ndocker exec -it kyuubi /opt/kyuubi/bin/beeline -u \u0027jdbc:hive2://0.0.0.0:10009/\u0027 -f /opt/load_data/load-dataset-tpcds-tiny.sql\ndocker exec -it kyuubi /opt/kyuubi/bin/beeline -u \u0027jdbc:hive2://0.0.0.0:10009/\u0027 -f /opt/load_data/load-dataset-tpch-tiny.sql\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7252 from aajisaka/fix-playground.\n\nCloses #7251\n\n9dca056c1 [Akira Ajisaka] Add credentials info for RustFS Web UI\ne5f1899ec [Akira Ajisaka] [KYUUBI #7251] Use RustFS instead of MinIO in Playground\n\nAuthored-by: Akira Ajisaka \u003caajisaka@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "5887e76c26f9ca9b96fd6eeda9cb534e044bdb11",
      "tree": "ae36f4e20661c912d4fa24d909f2fec66788982c",
      "parents": [
        "e7f06a3fcb9db52e136a2928092697401ebaa695"
      ],
      "author": {
        "name": "ruanwenjun",
        "email": "wenjun@apache.org",
        "time": "Wed Nov 19 11:37:49 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Wed Nov 19 11:37:49 2025 +0800"
      },
      "message": "[KYUUBI #7250] Fix JDBCMetadataStore Scala 2.13 compile error\n\n### Why are the changes needed?\nFix CI failed https://github.com/apache/kyuubi/actions/runs/19451268258/job/55656320605?pr\u003d7249\n\n### How was this patch tested?\nTest by CI compiled\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7250 from ruanwenjun/dev_wenjun_fixCompile.\n\nCloses #7250\n\n695b152c2 [ruanwenjun] [Chore] Fix JDBCMetadataStore compile error\n\nLead-authored-by: ruanwenjun \u003cwenjun@apache.org\u003e\nCo-authored-by: ruanwenjun \u003czyb@wenjuns-MacBook-Pro-2.local\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "e7f06a3fcb9db52e136a2928092697401ebaa695",
      "tree": "435b842e3e17673d0b2848d1cdc966e28715773f",
      "parents": [
        "bebe10adf369a61b17f1f530126f8808062d2f7e"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sat Nov 08 11:27:39 2025 -0800"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sat Nov 08 11:27:39 2025 -0800"
      },
      "message": "[KYUUBI #7241] Transfer engine pool name to lower case\n\n### Why are the changes needed?\n\n1. engine pool name is used to build the subdomain.\n2. the subdomain is case-insensitive\n3. however, now, the engine pool name is case sensitive\n4. when we try to delete the engine with subdomain(enginePool-index), it failed to find the zookeeper path\n\nhttps://github.com/apache/kyuubi/blob/bebe10adf369a61b17f1f530126f8808062d2f7e/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala#L2363-L2369\n\nFYI:\nUnable to delete the engine zk node with engine pool mode.\n\u003cimg width\u003d\"1726\" height\u003d\"120\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/363574ed-9c79-435e-a46d-a564b296784b\" /\u003e\n\n### How was this patch tested?\n\nUT.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7241 from turboFei/engine_pool.\n\nCloses #7241\n\n7cbe255c8 [Wang, Fei] UT\nc245a4051 [Wang, Fei] Transfer engine pool name to lower case\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "bebe10adf369a61b17f1f530126f8808062d2f7e",
      "tree": "ec6160a7450747d373eb792814c2d86ce9b1ce0d",
      "parents": [
        "53074ec1ab0c88a2eba3af622ed382602a20ca40"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Fri Nov 07 23:38:53 2025 +0100"
      },
      "committer": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Fri Nov 07 23:38:53 2025 +0100"
      },
      "message": "[KYUUBI #7237] Replace recommonmark with myst\n\n### Why are the changes needed?\nThe PR replaces deprecated [recommonmark](https://github.com/readthedocs/recommonmark) (last release on December 17, 2020) with recommended [MyST](https://github.com/executablebooks/MyST-Parser) to generate documentation from markdown. Sphinx documentation also assumes that MyST is used.\n\n### How was this patch tested?\nBuild the docs with the following command, and verify that the pages generated from the markdown files look the same:\n```shell\nmake html\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7237 from dnskr/replace-recommonmark-with-myst.\n\nCloses #7237\n\ndd2641069 [dnskr] Replace recommonmark with myst\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: dnskr \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "53074ec1ab0c88a2eba3af622ed382602a20ca40",
      "tree": "b2049c89e5b0e3cc4b1cab3c61f6ccc39ed75c42",
      "parents": [
        "ba248b17cb1ffa5b1845a0ccb68592cba72269b8"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Mon Nov 03 22:41:22 2025 +0100"
      },
      "committer": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Mon Nov 03 22:41:22 2025 +0100"
      },
      "message": "[KYUUBI #7238] [DOC] Replace \u0027Getting Started with Hive JDBC\u0027 markdown with rst\n\n### Why are the changes needed?\nThis change fixes version value of JDBC driver by using `release` variable instead of hardcoded `1.7.0` value.\n\n### How was this patch tested?\nCheck the doc page looks the same except JDBC driver version value.\n\u003cimg width\u003d\"1289\" height\u003d\"891\" alt\u003d\"Screenshot 2025-11-02 at 18 53 27\" src\u003d\"https://github.com/user-attachments/assets/e16561db-a873-4808-b8ce-24e06ff439e8\" /\u003e\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7238 from dnskr/Replace-\u0027Getting-Started-with-Hive-JDBC\u0027-markdown-with-rst.\n\nCloses #7238\n\n1e19251b1 [dnskr] [DOC] Replace \u0027Getting Started with Hive JDBC\u0027 markdown with rst\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: dnskr \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "ba248b17cb1ffa5b1845a0ccb68592cba72269b8",
      "tree": "0811ea1ab52d51a0c503c301d793f20809a9e29e",
      "parents": [
        "07d1d5f24fd502482532db8a1fdd8fe550bb08df"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Mon Oct 27 13:48:37 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Oct 27 13:48:37 2025 +0800"
      },
      "message": "[KYUUBI #7224] [DOC] Fix \"duplicate label usage\" warnings\n\n### Why are the changes needed?\n\nThe main purpose of the PR is to fix the following `duplicate label usage` warnings:\n```shell\n./kyuubi/docs/tools/kyuubi-admin.rst:48: WARNING: duplicate label usage, other instance in ./kyuubi/docs/tools/index.rst\n./kyuubi/docs/tools/kyuubi-ctl.rst:22: WARNING: duplicate label usage, other instance in ./kyuubi/docs/tools/kyuubi-admin.rst\n```\nChanges:\n - The PR deletes all labels from `./kyuubi/docs/tools/index.rst` and `./kyuubi/docs/tools/kyuubi-admin.rst`, as they are not used (there are no references to them).\n - The PR also fixes the length of the punctuation used to highlight section titles.\n\n### How was this patch tested?\n\nChecked that there are no warnings anymore during the documentation build process and the pages look the same.\n```shell\nmake html\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7224 from dnskr/doc-fix-duplicate-label-usage.\n\nCloses #7224\n\n0ff49db6a [dnskr] [DOC] Fix \"duplicate label usage\" warnings\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "07d1d5f24fd502482532db8a1fdd8fe550bb08df",
      "tree": "67573dc9570f29f439a2d3c97632f2bca4afd1b9",
      "parents": [
        "e8bbf5204ad9c875ca863a30168b4604491ec182"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Sun Oct 26 10:23:03 2025 +0100"
      },
      "committer": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Sun Oct 26 10:23:03 2025 +0100"
      },
      "message": "[KYUUBI #7225] [CI] Skip Python Client unit tests when only documentation changes are made\n\n### Why are the changes needed?\nThe PR disables Python Client unit tests for documentation-only changes as not needed, similar to PR https://github.com/apache/kyuubi/pull/7223.\n\n### How was this patch tested?\nThe PR was not tested directly, but it is similar to already tested PR https://github.com/apache/kyuubi/pull/7223.\n\n### Was this patch authored or co-authored using generative AI tooling?\nNo\n\nCloses #7225 from dnskr/skip-python-client-unit-tests-for-docs.\n\nCloses #7225\n\n2184c03a2 [dnskr] [CI] Skip Python Client unit tests when only documentation changes are made\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: dnskr \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "e8bbf5204ad9c875ca863a30168b4604491ec182",
      "tree": "025f400b7f9ff016ad0dcaed78ccf893e6489baf",
      "parents": [
        "3b205a3924e0e3a75c425de1396089729cf22ee5"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Thu Oct 23 16:58:09 2025 -0700"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Thu Oct 23 16:58:09 2025 -0700"
      },
      "message": "[KYUUBI #7229] Fix countMetadata if the params is empty\n\n### Why are the changes needed?\n\nWithout this PR.\nIt will meet issue if the params is empty.\n```\njdbcMetadataStore.countMetadata(MetadataFilter())\n```\n\u003cimg width\u003d\"1443\" height\u003d\"742\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/e099c469-7468-4d6a-90e8-e20ba144316b\" /\u003e\n\n\u003cimg width\u003d\"877\" height\u003d\"160\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/1773d395-87f7-4108-ac6c-21c2ca04ca71\" /\u003e\n\n### How was this patch tested?\n\nUT.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7229 from turboFei/fix_typo.\n\nCloses #7229\n\nc1794feff [Wang, Fei] Fix countMetadata if the params is empty\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "3b205a3924e0e3a75c425de1396089729cf22ee5",
      "tree": "9ec508b8d3db79f7a03dfa37881ddc6b17376949",
      "parents": [
        "54212eff8b6cbb6654d572c910e1fc6209e6a8ad"
      ],
      "author": {
        "name": "Bowen Liang",
        "email": "liang.bowen.123@qq.com",
        "time": "Fri Oct 17 15:52:33 2025 +0800"
      },
      "committer": {
        "name": "bowenliang123",
        "email": "liang.bowen.123@qq.com",
        "time": "Fri Oct 17 15:52:33 2025 +0800"
      },
      "message": "[KYUUBI #7209] bump mysql image to v8 for authz plugin test suite on iceberg\n\n### Why are the changes needed?\n\n- bump mysql docker image from v5.7 to v8 in MysqlContainerEnv, with arm support allowing debugging on arm chips like Apple silicon chips\n- bump testcontainers-scala  to 0.43.0\n\n### How was this patch tested?\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nCloses #7209 from bowenliang123/authz-mysql-8.\n\nCloses #7209\n\ndd1ed630f [Bowen Liang] bump mysql:8 in MysqlContainerEnv\nd422da07c [Bowen Liang] bump testcontainers-scala to 0.43.0\n\nLead-authored-by: Bowen Liang \u003cliang.bowen.123@qq.com\u003e\nCo-authored-by: Bowen Liang \u003cliangbowen@gf.com.cn\u003e\nSigned-off-by: bowenliang123 \u003cliang.bowen.123@qq.com\u003e\n"
    },
    {
      "commit": "54212eff8b6cbb6654d572c910e1fc6209e6a8ad",
      "tree": "06270edaee89d6f57a7655d3a4aa18857786c29e",
      "parents": [
        "b7a6a5196c21cc5178f333c52e09119c2bdb07a4"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Wed Oct 15 23:25:02 2025 +0200"
      },
      "committer": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Wed Oct 15 23:25:02 2025 +0200"
      },
      "message": "[KYUUBI #7222] [DOC] Fix \"document isn\u0027t included in any toctree\" warnings\n\n### Why are the changes needed?\n\nThe PR fixes a few `document isn\u0027t included in any toctree` issues:\n\n* Page `JVM Quake Support` now included into `Extensions for Spark` menu:\n  ```shell\n  ./kyuubi/docs/extensions/engines/spark/jvm-quake.md: WARNING: document isn\u0027t included in any toctree\n  ```\n\n* Page `Z-order Benchmark` consolidated with `Z-Ordering Support` page:\n  ```shell\n  ./kyuubi/docs/extensions/engines/spark/z-order-benchmark.md: WARNING: document isn\u0027t included in any toctree\n  ```\n\n* File `requirements.txt` added to `exclude_patterns`:\n  ```shell\n  ./kyuubi/docs/requirements.txt: WARNING: document isn\u0027t included in any toctree\n  ```\n\n### How was this patch tested?\n\nChecked that there are no warnings mentioned above during the documentation build process.\n```shell\nmake html\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7222 from dnskr/doc-fix-document-isn\u0027t-included-in-any-toctree.\n\nCloses #7222\n\ncf7fb1f48 [dnskr] [DOC] Fix \"document isn\u0027t included in any toctree\" warnings\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: dnskr \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "b7a6a5196c21cc5178f333c52e09119c2bdb07a4",
      "tree": "83f741a702d861026870e4f5832b20d176910089",
      "parents": [
        "6fb4c8737a4b446be886759b50d60dceb362d01c"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Wed Oct 15 23:07:25 2025 +0200"
      },
      "committer": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Wed Oct 15 23:07:25 2025 +0200"
      },
      "message": "[KYUUBI #7221] [DOC] Fix nonexisting document \u0027client/advanced/features/engine_pool\u0027\n\n### Why are the changes needed?\n\nThe PR fixes `nonexisting document \u0027client/advanced/features/engine_pool\u0027` warning:\n```shell\n./kyuubi/docs/client/advanced/features/index.rst:19: WARNING: toctree contains reference to nonexisting document \u0027client/advanced/features/engine_pool\u0027 [toc.not_readable]\n```\nThe document was deleted in the PR https://github.com/apache/kyuubi/pull/7118.\n\n### How was this patch tested?\n\nChecked that there is no  warning anymoreduring the documentation build process.\n```shell\nmake html\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7221 from dnskr/doc-fix-nonexisting-document-engine_pool.\n\nCloses #7221\n\n806addc84 [dnskr] [DOC] Fix nonexisting document \u0027client/advanced/features/engine_pool\u0027\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: dnskr \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "6fb4c8737a4b446be886759b50d60dceb362d01c",
      "tree": "a02767212d1143464f78a1ca7d52d8833a48de21",
      "parents": [
        "a7ce23cce921cc56e5d9e887b213d0393a2594f2"
      ],
      "author": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Thu Oct 09 17:18:30 2025 +0200"
      },
      "committer": {
        "name": "dnskr",
        "email": "dnskrv88@gmail.com",
        "time": "Thu Oct 09 17:18:30 2025 +0200"
      },
      "message": "[KYUUBI #7223] [CI] Skip running tests for documentation only changes\n\n### Why are the changes needed?\n\nThe PR disables heavy CI tests for documentation-only changes as not needed to speed up PR creation and save resources.\n\n### How was this patch tested?\n\nThe PR was not tested and relies on the official documentation:\n - [If you define both branches/branches-ignore and paths/paths-ignore, the workflow will only run when both filters are satisfied.](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#onpushpull_requestpull_request_targetpathspaths-ignore:~:text\u003dthe%20path%20again.-,If%20you%20define%20both%20branches/branches%2Dignore%20and%20paths/paths%2Dignore%2C%20the%20workflow%20will%20only%20run%20when%20both%20filters%20are%20satisfied.,-The%20paths%20and)\n - [Example: Excluding paths](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#example-excluding-paths)\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7223 from dnskr/skip-ci-tests-for-docs.\n\nCloses #7223\n\n2d1f435ce [dnskr] [CI] Skip running tests for documentation only changes\n\nAuthored-by: dnskr \u003cdnskrv88@gmail.com\u003e\nSigned-off-by: dnskr \u003cdnskrv88@gmail.com\u003e\n"
    },
    {
      "commit": "a7ce23cce921cc56e5d9e887b213d0393a2594f2",
      "tree": "3d73bf0905a9c587d4a278f5a70696d3b35eb2be",
      "parents": [
        "44ce1a57571366aa85bde66684299faac4937f04"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Thu Oct 02 00:08:22 2025 -0700"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Thu Oct 02 00:08:22 2025 -0700"
      },
      "message": "[KYUUBI #7220] Proactive cleanup kubernetes terminated application info\n\n### Why are the changes needed?\n\nProactive cleanup kubernetes terminated application info instead of rely on the guava cache internal expiration.\n\n### How was this patch tested?\n\nGA.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7220 from turboFei/proactive_cleanupcache.\n\nCloses #7220\n\n127a907e0 [Wang, Fei] Proactive cleanup kubernetes terminated application info\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "44ce1a57571366aa85bde66684299faac4937f04",
      "tree": "f88d1ae242ddfc7025296a458d199cbdbe7ca5ff",
      "parents": [
        "e613d7f6e4e0b4143dde8bb6ae23d1252698e639"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Thu Oct 02 00:07:49 2025 -0700"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Thu Oct 02 00:07:49 2025 -0700"
      },
      "message": "[KYUUBI #7219] Fix endless swagger openapi.json security items\n\n### Why are the changes needed?\n\nFix endless security items increasing.\n\nDo not use addSecurityItem api.\n\u003cimg width\u003d\"643\" height\u003d\"368\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/97a4088b-40f8-4cd5-89f0-0e18a91c8b9c\" /\u003e\n\n### How was this patch tested?\n\nCode review.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7219 from turboFei/fix_api_spec.\n\nCloses #7219\n\nc10a102c7 [Wang, Fei] Fix security\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "e613d7f6e4e0b4143dde8bb6ae23d1252698e639",
      "tree": "16aa19a0848eaf997d50421fe3d76ea5fdef0c18",
      "parents": [
        "175b534eda2624fbbf206d7f3d22488be0d0c784"
      ],
      "author": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sun Sep 28 21:18:01 2025 -0700"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sun Sep 28 21:18:01 2025 -0700"
      },
      "message": "[KYUUBI #7217] Support customized session protocol version to support binary type\n\n### Why are the changes needed?\n\nFor RESTful api, the session protocol version is set to V1 before and not open to users.\nhttps://github.com/apache/kyuubi/blob/aadf86683554ba6932126c80c9e33bf84cea8dee/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/v1/SessionsResource.scala#L419\n\nAnd before V6, the result is RowBased, since V6, it is ColumnBased.\nhttps://github.com/apache/kyuubi/blob/aadf86683554ba6932126c80c9e33bf84cea8dee/kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/cli/RowSetFactory.java#L29-L33\n\nAnd with `HIVE_CLI_SERVICE_PROTOCOL_V1`, for `BINARY` type column, it is converted as STRING type for RESTful API.\n\nIn this PR, we make the session protocol open to users and support to transfer binary type values.\n\nWhy we need to support binary type? Because some bytes can not be converted to UTF-8 String.\n### How was this patch tested?\n\nUT.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7217 from turboFei/rest_binary.\n\nCloses #7217\n\nd747c51ef [Wang, Fei] Support customized session protocol version to support binary type\n\nAuthored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "175b534eda2624fbbf206d7f3d22488be0d0c784",
      "tree": "ea1ce3a48d3ed2b217527a51389b59c1e75f63d2",
      "parents": [
        "b5d7f5800d1baf9b7117edd224e97e5716235144"
      ],
      "author": {
        "name": "gabrywu",
        "email": "gabrywu@apache.org",
        "time": "Mon Sep 29 12:17:36 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Sep 29 12:17:36 2025 +0800"
      },
      "message": "[KYUUBI #7215] Make all BatchUtils variables to be final\n\nCloses #7215 from gabry-lab/batch-util-var.\n\nCloses #7215\n\n1408173cb [gabrywu] make all BatchUtils variables to be final\n\nAuthored-by: gabrywu \u003cgabrywu@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "b5d7f5800d1baf9b7117edd224e97e5716235144",
      "tree": "5a61e144f0d17794d20589e1bd9f1ea979ff7547",
      "parents": [
        "aadf86683554ba6932126c80c9e33bf84cea8dee"
      ],
      "author": {
        "name": "MElHoussein",
        "email": "MElHoussein@geico.com",
        "time": "Sun Sep 28 20:40:47 2025 -0700"
      },
      "committer": {
        "name": "Wang, Fei",
        "email": "fwang12@ebay.com",
        "time": "Sun Sep 28 20:40:47 2025 -0700"
      },
      "message": "[KYUUBI #7214] Fix kubernetes container state\n\n### Why are the changes needed?\n\nThis PR fixes #7195 where if `kyuubi.kubernetes.application.state.source` is `CONTAINER` and kubernetes fails to pull the image, or the image name is not valid, or any failure ocurs, kyuubi marks the application as pending, forever.\n\n### How was this patch tested?\n\n- Added unit tests in KubernetesApplicationOperationSuite:\nTo run the targeted suite:\n`./build/mvn -pl kyuubi-server -DskipITs -Dtest\u003dorg.apache.kyuubi.engine.KubernetesApplicationOperationSuite test`\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7214 from moelhoussein/fix-kubernetes-container-state.\n\nCloses #7214\n\n4f836678e [Wang, Fei] Revert \"reformatted\"\ne869a468b [MElHoussein] reformatted\n8ede9aac3 [Wang, Fei] code style\nd3b9cd2c0 [MElHoussein] revert unrelated test/url overload changes; keep only container waiting-state logic change\n7d346fc9e [MElHoussein] engine(k8s): treat only specific waiting reasons as PENDING; others FAILED; handle empty reason as PENDING; unify constant as PENDING_WAITING_REASONS; add buildSparkAppUrl overload; restore POD IP URL test; add tests for failure waiting reasons; revert .idea/vcs.xml\nca94d645a [MElHoussein] Fixing container state\n\nLead-authored-by: MElHoussein \u003cMElHoussein@geico.com\u003e\nCo-authored-by: Wang, Fei \u003cfwang12@ebay.com\u003e\nSigned-off-by: Wang, Fei \u003cfwang12@ebay.com\u003e\n"
    },
    {
      "commit": "aadf86683554ba6932126c80c9e33bf84cea8dee",
      "tree": "dd8ec4ce22aee655c889bad1dd7f90c833a2bef8",
      "parents": [
        "b992623fca50d7248d3a321d04aa4f1e0a8b5c4b"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Sep 23 10:38:53 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Tue Sep 23 10:38:53 2025 +0800"
      },
      "message": "[KYUUBI #7213] Enable test of Spark lineage plugin for Spark 4.0\n\n### Why are the changes needed?\n\nExpand test coverage for Spark 4.0\n\n### How was this patch tested?\n\nPass GHA, also verified locally\n\n```\n$ build/mvn -pl :kyuubi-spark-lineage_2.13 -Pscala-2.13 -Pspark-4.0 -am clean install -DskipTests\n...\n$ build/mvn -pl :kyuubi-spark-lineage_2.13 -Pscala-2.13 -Pspark-4.0 test\n...\nRun completed in 25 seconds, 133 milliseconds.\nTotal number of tests run: 75\nSuites: completed 5, aborted 0\nTests: succeeded 75, failed 0, canceled 0, ignored 0, pending 0\nAll tests passed.\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time:  34.320 s\n[INFO] Finished at: 2025-09-22T13:47:18+08:00\n[INFO] ------------------------------------------------------------------------\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7213 from pan3793/lineage-4.0.\n\nCloses #7213\n\n60a714302 [Cheng Pan] Enable test of Spark lineage plugin for Spark 4.0\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "b992623fca50d7248d3a321d04aa4f1e0a8b5c4b",
      "tree": "807ecfbfc53c7e83edacc19e6d1058e81eae3c01",
      "parents": [
        "0c56e6563296f3d8c4e00c736f6e914904b1ddf1"
      ],
      "author": {
        "name": "Pat Buxton",
        "email": "patrick.buxton@tartansolutions.com",
        "time": "Mon Sep 22 16:39:09 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Sep 22 16:47:34 2025 +0800"
      },
      "message": "[KYUUBI #7190] Fix Presto SQLAlchemy dialect did not implement get_view_names\n\nPresto SQLAlchemy dialect did not implement the `get_view_names` method and resulted in an exception when trying to inspect the schema. This was discovered in Superset repo whilst trying to update the pandas package which now makes a call to `get_view_names`.\n\nVery basic Python tests have been added here, but all the SQLAlchemy dialects in this repo would benefit from running the full SQLAlchemy dialect test suite instead of these bespoke tests.\n\nCloses #7190 from rad-pat/fix-presto-dialect.\n\nCloses #7190\n\nc2d06f7e0 [Cheng Pan] Update python/pyhive/sqlalchemy_presto.py\n27396977e [Cheng Pan] Update python/pyhive/sqlalchemy_presto.py\n1c7b62850 [Cheng Pan] Update python/pyhive/sqlalchemy_presto.py\n2e7040a14 [Cheng Pan] Update python/pyhive/sqlalchemy_presto.py\n89d3f55fe [Cheng Pan] Update python/pyhive/__init__.py\nb8deadcdb [Pat Buxton] Bump python version to 0.7.1\nab829ee04 [Pat Buxton] Fix - Presto SQLAlchemy dialect did not implement get_view_names\n\nLead-authored-by: Pat Buxton \u003cpatrick.buxton@tartansolutions.com\u003e\nCo-authored-by: Cheng Pan \u003cpan3793@gmail.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "0c56e6563296f3d8c4e00c736f6e914904b1ddf1",
      "tree": "b3f7d4d2d870de5a384908343d9f00b0af86daea",
      "parents": [
        "28bba27df8811d5be1187bc2f262d30f4737d0fe"
      ],
      "author": {
        "name": "zhaohehuhu",
        "email": "luoyedeyi459@163.com",
        "time": "Mon Sep 22 16:37:39 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Sep 22 16:37:39 2025 +0800"
      },
      "message": "[KYUUBI #7171] Fix empty list engine result when etcd is used as the service registry\n\n### Why are the changes needed?\n\nIn etcd, keys are stored in a flat namespace where / is just part of the key name. For example, /kyuubi_version_USER_SPARK_SQL/test/default is treated as a complete single key.\n\nTo retrieve all entries under a similar path, a prefix query (--prefix) is required.\n\nIn ZooKeeper, data is organized in a hierarchical tree structure where / represents parent-child relationships.\n\n### How was this patch tested?\n\nadded a UT to verify code.\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo\n\nCloses #7171 from zhaohehuhu/dev-0813.\n\nCloses #7171\n\n48de708c7 [zhaohehuhu] fix\n8f83a4623 [zhaohehuhu] refactor\n2d9b322b6 [zhaohehuhu] refactor\n85207c4cb [zhaohehuhu] refactor\n3961489dc [zhaohehuhu] reformat\n15cc07ba1 [zhaohehuhu] Fix empty list engine result when etcd is used as the service registry\n\nLead-authored-by: zhaohehuhu \u003cluoyedeyi459@163.com\u003e\nCo-authored-by: zhaohehuhu \u003cluoyedeyi@163.com\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    },
    {
      "commit": "28bba27df8811d5be1187bc2f262d30f4737d0fe",
      "tree": "70e17902b4be97b375e26638d0aedd5107f1edc4",
      "parents": [
        "d5468d0bf50e651fca814830d34212818e6195df"
      ],
      "author": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Sep 22 15:15:09 2025 +0800"
      },
      "committer": {
        "name": "Cheng Pan",
        "email": "chengpan@apache.org",
        "time": "Mon Sep 22 15:15:09 2025 +0800"
      },
      "message": "[KYUUBI #7205] Use Apache closer.lua syntax for kyuubi-download to obtain engine archives\n\n### Why are the changes needed?\n\nSpeed up download Spark, Flink, and Hive tarballs, for the latest versions.\n\nhttps://infra.apache.org/release-download-pages.html#download-scripts\n\n### How was this patch tested?\n\nObserve GHA.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #7205 from pan3793/closer-lua.\n\nCloses #7205\n\n10ffa3441 [Cheng Pan] Use Apache closer.lua syntax for kyuubi-download to obtain engine archives\n\nAuthored-by: Cheng Pan \u003cchengpan@apache.org\u003e\nSigned-off-by: Cheng Pan \u003cchengpan@apache.org\u003e\n"
    }
  ],
  "next": "d5468d0bf50e651fca814830d34212818e6195df"
}
