)]}'
{
  "log": [
    {
      "commit": "83a36ba09be41ce447773feb231716b2b4e71198",
      "tree": "5dabc4093d2a48f002b3e1d3d0465a2cb0e70fce",
      "parents": [
        "7b1650e31ca1770d2d3e049f32f9044687012595"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Wed Oct 07 11:33:35 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Tue Oct 20 19:10:23 2026 +0800"
      },
      "message": "[CALCITE-4592] RelToSqlConverter#visit(Join e) does not populate correlation context\n"
    },
    {
      "commit": "7b1650e31ca1770d2d3e049f32f9044687012595",
      "tree": "10692d8a798d7f72bedd9d0f2349a04170bedc69",
      "parents": [
        "8c3770b22dfeab8f3a22e0352ba030fd3eb78382"
      ],
      "author": {
        "name": "Lantao Jin",
        "email": "jinlantao@gmail.com",
        "time": "Fri Oct 16 06:33:21 2026 +0000"
      },
      "committer": {
        "name": "Jensen",
        "email": "czjourney@163.com",
        "time": "Mon Oct 19 15:08:33 2026 +0800"
      },
      "message": "[CALCITE-7862] ARG_MIN and ARG_MAX should support ARRAY, MAP and ROW keys\n"
    },
    {
      "commit": "8c3770b22dfeab8f3a22e0352ba030fd3eb78382",
      "tree": "7ca081ec442ff98537b73bb6795839e467b9f5af",
      "parents": [
        "4681d4d16af74e9da5f2b5105e9e07b1836ff000"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sun Oct 18 00:17:38 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sun Oct 18 08:43:41 2026 -0700"
      },
      "message": "[CALCITE-7866] CASTS from string values accept Java idioms which are not legal in SQL\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "4681d4d16af74e9da5f2b5105e9e07b1836ff000",
      "tree": "5ce643589f163c85fa6c7435dd07a6b2e3b58363",
      "parents": [
        "2350b9016dfc16e0737b64ec5fe59b35da9e4fc8"
      ],
      "author": {
        "name": "Letian Jiang",
        "email": "letian.jiang@outlook.com",
        "time": "Sat Oct 17 17:41:46 2026 +0800"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sun Oct 18 00:38:47 2026 -0700"
      },
      "message": "[CALCITE-7864] RANGE window frames should handle NULL ORDER BY keys\n\nHandle nullable ORDER BY keys in offset RANGE boundaries and add 28 regression cases. Verify expected results against PostgreSQL 14.24.\n"
    },
    {
      "commit": "2350b9016dfc16e0737b64ec5fe59b35da9e4fc8",
      "tree": "18d2285bb812e0f9200d00e9ed44163d804d143e",
      "parents": [
        "d54d50cebbc3e0f554647483a0312ba13c32e9e4"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sat Oct 17 17:33:53 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sat Oct 17 23:55:50 2026 -0700"
      },
      "message": "[CALCITE-7865] CASTS from string trim in inconsistent ways\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "d54d50cebbc3e0f554647483a0312ba13c32e9e4",
      "tree": "1f634dc5812f2aae445ecd340f4ab938ddcd6dce",
      "parents": [
        "bbe763444a9cbd4b4cedac116ee89196e5bec93c"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Sun Oct 11 11:54:57 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sun Oct 18 11:48:57 2026 +0800"
      },
      "message": "[CALCITE-7341] RelFieldTrimmer should trim Scalar sub-query\n"
    },
    {
      "commit": "bbe763444a9cbd4b4cedac116ee89196e5bec93c",
      "tree": "56c3e7c92918f77395b60b8cd77d96d26e05e63f",
      "parents": [
        "402d3db81846ec80d12c8c9f869009b859c360ec"
      ],
      "author": {
        "name": "Rodrigo Setti",
        "email": "rodrigosetti@gmail.com",
        "time": "Fri Oct 09 13:15:56 2026 -0500"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sat Oct 17 17:34:29 2026 -0700"
      },
      "message": "[CALCITE-7846] Set operations on one-column table functions can throw or return incorrect rows\n"
    },
    {
      "commit": "402d3db81846ec80d12c8c9f869009b859c360ec",
      "tree": "81f2beaee0f1e594d267472247ba390243a7e6f2",
      "parents": [
        "b6f362cab9e5264a32a13eed535f69bf2436f96c"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Wed Oct 07 12:21:52 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sat Oct 17 13:59:34 2026 +0800"
      },
      "message": "[CALCITE-5696] Support trailing comma in SELECT list for Babel parser (like BigQuery)\n"
    },
    {
      "commit": "b6f362cab9e5264a32a13eed535f69bf2436f96c",
      "tree": "159deeaddcc7b632e866353e484f6e29ce75892d",
      "parents": [
        "24f0278e969d1fca465d1a3cbed87ef09f9522fb"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Fri Oct 16 14:36:19 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Fri Oct 16 15:05:43 2026 +0100"
      },
      "message": "Site: Update Gemfile.lock\n"
    },
    {
      "commit": "24f0278e969d1fca465d1a3cbed87ef09f9522fb",
      "tree": "4114c4e1273d5306c9809ff95372d4d800b6845f",
      "parents": [
        "7178b54f6d321eb59801ff3a88aa50af74678e06"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 24 11:50:26 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Oct 15 16:24:55 2026 -0700"
      },
      "message": "[CALCITE-7821] Correlated query crashes SqlToRelConverter\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "7178b54f6d321eb59801ff3a88aa50af74678e06",
      "tree": "9c0e2851d5d3b94065e64b6e96ef6e2416f31156",
      "parents": [
        "334fc71ad5db52f11af4d1d68cf9ad40ee415cc2"
      ],
      "author": {
        "name": "Kirill Tkalenko",
        "email": "tkalkirill@yandex.ru",
        "time": "Fri Oct 09 12:43:38 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Oct 15 11:47:52 2026 -0700"
      },
      "message": "[CALCITE-7842] Multiset operators return incorrect results for ROW elements\n"
    },
    {
      "commit": "334fc71ad5db52f11af4d1d68cf9ad40ee415cc2",
      "tree": "6e5e9df6366c46265c42c942d66c275735d1c760",
      "parents": [
        "4e9750ad7bb30670143e1fef8cb626da8979ca70"
      ],
      "author": {
        "name": "Lantao Jin",
        "email": "jinlantao@gmail.com",
        "time": "Thu Oct 15 06:49:38 2026 +0000"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Oct 15 11:31:39 2026 -0700"
      },
      "message": "[CALCITE-7858] ARG_MIN, ARG_MAX, MIN_BY and MAX_BY should reject a non-comparable key\n"
    },
    {
      "commit": "4e9750ad7bb30670143e1fef8cb626da8979ca70",
      "tree": "a5bd6ef538654ca90a23539f79b0e2b4f6c82a37",
      "parents": [
        "3a933a066d7c5fcbaf671a9c790c442a739eb7a6"
      ],
      "author": {
        "name": "Iurii Gerzhedovich",
        "email": "jury.gerzhedowich@gmail.com",
        "time": "Wed Oct 14 14:20:18 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Oct 15 09:30:13 2026 -0700"
      },
      "message": "[CALCITE-7856] MERGE with a correlated sub-query in UPDATE SET resolves a target column to the same-named source column\n"
    },
    {
      "commit": "3a933a066d7c5fcbaf671a9c790c442a739eb7a6",
      "tree": "92020787480a8e497ea66625c834cb948ad5712c",
      "parents": [
        "6602a58e7cb94ab686d9fc287602852e00d4fa95"
      ],
      "author": {
        "name": "kasakrisz",
        "email": "kasakrisz2@gmail.com",
        "time": "Thu Oct 08 13:43:05 2026 +0200"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Oct 15 15:48:35 2026 +0100"
      },
      "message": "[CALCITE-7851] AggregateJoinTransposeRule references wrong column when an aggregate argument is a group key of a unique join input\n"
    },
    {
      "commit": "6602a58e7cb94ab686d9fc287602852e00d4fa95",
      "tree": "c63576080a65dfcc884c65e7756323a05ebf54b5",
      "parents": [
        "8f27e24a02e7b76fc40b6cfd9b1d2cc96bc8b1b6"
      ],
      "author": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Sun Oct 11 23:40:28 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Oct 14 12:50:31 2026 -0500"
      },
      "message": "[CALCITE-7847] Implicit coercion casts MULTISET operands of a comparison to ARRAY, and loses the nullability of ROW operands\n\nAbstractTypeCoercion#commonTypeForBinaryComparison built the common\ntype of two MULTISET operands with createArrayType. A comparison of\nMULTISET values whose element types have different type names therefore\ncast both operands to ARRAY: SqlToRelConverter translated\n\n  multiset[deptno] \u003d multiset[cast(deptno as decimal(5, 2))]\n\ninto a comparison of two CASTs to DECIMAL(12, 2) NOT NULL ARRAY NOT NULL.\n\nThe ROW branch of the same method returned a NOT NULL struct even when\none operand was nullable; the other branches return a nullable type in\nthat case. The validator and SqlToRelConverter apply each operand\u0027s\nown nullability to the cast target, so this shows only to callers that\nuse the result directly, such as a custom TypeCoercion.\n\nBuild a MULTISET for MULTISET operands, and make the ROW result\nnullable when either operand is nullable.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "8f27e24a02e7b76fc40b6cfd9b1d2cc96bc8b1b6",
      "tree": "5a945860b5790a6f496415751f760cff983dca2e",
      "parents": [
        "843f4684059f3878995cfb3b7705841c95d971b9"
      ],
      "author": {
        "name": "Vladislav Pyatkov",
        "email": "vldpyatkov@gmail.com",
        "time": "Fri Oct 09 16:10:14 2026 +0300"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Mon Oct 12 11:02:32 2026 +0100"
      },
      "message": "[CALCITE-7814] Support the SQL-standard CYCLE clause in recursive CTEs\n"
    },
    {
      "commit": "843f4684059f3878995cfb3b7705841c95d971b9",
      "tree": "a893b0a64292baa6437e92c5184251a9d40e2061",
      "parents": [
        "b5778545628b7e0809a67b1d82a3458a1e447d96"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Wed Oct 07 23:28:50 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sat Oct 10 14:43:04 2026 +0800"
      },
      "message": "[CALCITE-7733] Validate identifiers and escape LOAD path when generating Pig Latin scripts\n"
    },
    {
      "commit": "b5778545628b7e0809a67b1d82a3458a1e447d96",
      "tree": "fced794cfadeb9bf0918c04a23a83c83244bbfa9",
      "parents": [
        "2e5c1585c4fd4ad5279b8a11b7ea62100fbbbcbe"
      ],
      "author": {
        "name": "Dongsheng He",
        "email": "grephale@gmail.com",
        "time": "Wed Sep 30 21:10:57 2026 +0800"
      },
      "committer": {
        "name": "zzwqqq",
        "email": "32770945+zzwqqq@users.noreply.github.com",
        "time": "Sat Oct 10 11:53:29 2026 +0800"
      },
      "message": "[CALCITE-7833] MULTI_JOIN_OPTIMIZE_BUSHY may turn an outer join into an inner join\n"
    },
    {
      "commit": "2e5c1585c4fd4ad5279b8a11b7ea62100fbbbcbe",
      "tree": "a21d9f6857a137204d4c7303489b45e2404f9f86",
      "parents": [
        "c425a5fa096c723a8c669df1c7cf2d92aa6bfd61"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Thu Oct 08 22:25:42 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Fri Oct 09 22:03:27 2026 +0800"
      },
      "message": "[CALCITE-5907] RexSimplify replaces a comparison with a BOOLEAN literal by a non-BOOLEAN operand\n"
    },
    {
      "commit": "c425a5fa096c723a8c669df1c7cf2d92aa6bfd61",
      "tree": "e15f161089038fc3a3829d67bb0c127a9c469712",
      "parents": [
        "6484bed4572adbc219b171a9efbbd08a1b662f3a"
      ],
      "author": {
        "name": "Alessandro Solimando",
        "email": "asolimando@apache.org",
        "time": "Thu Oct 08 16:52:09 2026 +0200"
      },
      "committer": {
        "name": "Alessandro Solimando",
        "email": "alessandro.solimando@gmail.com",
        "time": "Fri Oct 09 09:35:05 2026 +0200"
      },
      "message": "[CALCITE-7843] RelMdExpressionLineage should support Window\n"
    },
    {
      "commit": "6484bed4572adbc219b171a9efbbd08a1b662f3a",
      "tree": "4da6f3eb6254486d0f96478f897c52f92c272d86",
      "parents": [
        "fb3a83da8289d4f488cb2dafb1a33ee7079801a6"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Sat Sep 19 00:49:02 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Thu Oct 08 21:06:15 2026 +0800"
      },
      "message": "[CALCITE-4597] Allow RelNodes to have an empty row type (zero fields)\n"
    },
    {
      "commit": "fb3a83da8289d4f488cb2dafb1a33ee7079801a6",
      "tree": "9da2185530050f0b342b3240a79eb4dfde80befe",
      "parents": [
        "25d62c555af1814d0789f85ff5fc6b4489d52781"
      ],
      "author": {
        "name": "Kirill Tkalenko",
        "email": "tkalkirill@yandex.ru",
        "time": "Thu Oct 08 07:29:19 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Oct 07 21:56:26 2026 -0700"
      },
      "message": "[CALCITE-7836] Array functions return incorrect results for ROW elements\n"
    },
    {
      "commit": "25d62c555af1814d0789f85ff5fc6b4489d52781",
      "tree": "ab30d989bc533528b1d74016b147a4c90f493ced",
      "parents": [
        "80d2f9c0c185a9bef0825f102fb42a47e85b1657"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat Aug 29 22:50:57 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed Oct 07 08:36:21 2026 +0200"
      },
      "message": "[CALCITE-7753] `CorrelateProjectExtractor` corrupts plans with nested Correlates that reuse the same correlation id\n"
    },
    {
      "commit": "80d2f9c0c185a9bef0825f102fb42a47e85b1657",
      "tree": "70eee186850c6de22188c75d7aabb5964b1918e3",
      "parents": [
        "b37906810abf1206755242d420ccc6bfa0d3dee8"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Tue Sep 29 13:06:26 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Wed Oct 07 08:30:22 2026 +0200"
      },
      "message": "[CALCITE-7830] UPDATE fails with IndexOutOfBoundsException when a SET value\u0027s type doesn\u0027t match the column\n"
    },
    {
      "commit": "b37906810abf1206755242d420ccc6bfa0d3dee8",
      "tree": "a804887b6bffa1631fe3845d3c77b54597fcb65e",
      "parents": [
        "e9185e93a05a146321eb5a49492fa80ee157aff6"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Wed Oct 07 10:48:23 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Wed Oct 07 12:09:51 2026 +0800"
      },
      "message": "[CALCITE-6068] Whitespaces are removed from filter values\n"
    },
    {
      "commit": "e9185e93a05a146321eb5a49492fa80ee157aff6",
      "tree": "1b9a25703eca6f47bb6a454a2250178e357c48ee",
      "parents": [
        "6400e14a2daa14259675c6446d3837472d353ce9"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Oct 05 14:43:54 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Oct 06 14:49:05 2026 -0700"
      },
      "message": "[CALCITE-7839] CAST(CAST(0 AS TINYINT) AS BOOLEAN) should not evaluate to TRUE\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "6400e14a2daa14259675c6446d3837472d353ce9",
      "tree": "631b9eac99d38024644fa76931ff771097dfe608",
      "parents": [
        "7cd4022a1162448bfbca14e8da7e8451a5aac4a2"
      ],
      "author": {
        "name": "Sean Broeder",
        "email": "sean@dremio.com",
        "time": "Mon Oct 05 13:27:04 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Oct 06 09:05:37 2026 -0700"
      },
      "message": "[CALCITE-7838] HsqldbSqlDialect incorrectly claims to support nested aggregations\n\nHsqldbSqlDialect incorrectly used the default true behavior for\nsupportsNestedAggregations(), so an aggregate over an expression\nof another aggregate was pushed down, which HSQLDB itself rejects.\nOverride supportsNestedAggregations() to return false so that the\nconverter generates a sub-SELECT, similar to how MySQL and\nPostgreSQL are already handled.\n"
    },
    {
      "commit": "7cd4022a1162448bfbca14e8da7e8451a5aac4a2",
      "tree": "ac39a22a8bd30ed6bc171083953865ed3b48e1d3",
      "parents": [
        "23f01e27c75911a0972125deaf02721a8b202267"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Oct 05 17:51:50 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Oct 06 09:00:12 2026 -0700"
      },
      "message": "[CALCITE-7840] REAL literals should be represented with reduced precision\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "23f01e27c75911a0972125deaf02721a8b202267",
      "tree": "d32aadb1f74826b9b47bb2a669c9966b9bf31a65",
      "parents": [
        "0f8414c0bfda63930254103ee700b76bf200724a"
      ],
      "author": {
        "name": "Kirill Tkalenko",
        "email": "tkalkirill@yandex.ru",
        "time": "Mon Oct 05 22:33:11 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Oct 05 15:41:20 2026 -0700"
      },
      "message": "[CALCITE-7837] ARRAY_MIN, ARRAY_MAX and SORT_ARRAY throw ClassCastException for ROW elements\n"
    },
    {
      "commit": "0f8414c0bfda63930254103ee700b76bf200724a",
      "tree": "87a1b3447748477c85cf76a8a59f825362d37fe6",
      "parents": [
        "be78e311dc7194099f26f723fc5347d2e247d3b9"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sun Oct 04 18:26:28 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Oct 05 10:11:10 2026 -0700"
      },
      "message": "[CALCITE-7834] Type inferred for LAG/LEAD is not always nullable\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "be78e311dc7194099f26f723fc5347d2e247d3b9",
      "tree": "e282110353aaf31f63293848b120c5e5e4532e31",
      "parents": [
        "fe1c46d2beff6e1edcc050ffbb03df1724adbaf3"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sun Oct 04 20:36:20 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Oct 05 08:27:40 2026 -0700"
      },
      "message": "[CALCITE-7835] Optimize away LEAD/LAG with a value of 0\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "fe1c46d2beff6e1edcc050ffbb03df1724adbaf3",
      "tree": "0701f12094106b0cfa90730a7f753b144991229d",
      "parents": [
        "8dcfd128025ebb47ae3a2a7dad6ee6af29e30bf0"
      ],
      "author": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Fri Sep 25 11:14:07 2026 +0300"
      },
      "committer": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Sat Oct 03 15:58:31 2026 +0500"
      },
      "message": "[CALCITE-4553] Document the JDK that compiles Calcite\n\nThe build compiles with the jdkBuildVersion toolchain (JDK 25 by default)\nand --release 8, but howto.md listed only the JDKs that run Gradle, and\ndevelop/index.md still asked for JDK 8u220 because of javac 8 bugs with\ntype annotations. Neither page said that Gradle on Java 8 cannot download\nthe build JDK, and the Error Prone and Checker Framework commands failed\non JDK 25 as written.\n\nAdd a howto.md section on the build JDK with the error Gradle prints\nwhen it is missing, point the build prerequisites and the release steps\nto it, and pass -PjdkBuildVersion\u003d11 in the Error Prone and Checker\nFramework commands. Drop the JDK 8u202 and CALCITE-6616 notes: both\nwere about javac 8 or 21 compiling the code.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "8dcfd128025ebb47ae3a2a7dad6ee6af29e30bf0",
      "tree": "ed97651bf7e243e13712248637f81ad4d2c1ecf0",
      "parents": [
        "76af08e3bb2ee0e2c599130df778908b59f57da6"
      ],
      "author": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Mon Sep 21 19:43:38 2026 +0300"
      },
      "committer": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Sat Oct 03 15:58:31 2026 +0500"
      },
      "message": "[CALCITE-4553] Use Gradle toolchain to compile Calcite with JDK 25 and --release 8\n\nPreviously javac came from the JDK that ran Gradle, so the compiler version\nvaried with each CI job and each developer\u0027s JAVA_HOME, and only\nsourceCompatibility/targetCompatibility 1.8 kept the bytecode at Java 8\nwithout checking the JDK 8 API. Older javac versions also have known bugs\nwith type annotations, which Calcite uses for nullability.\n\nJavaCompile tasks now take their compiler from a toolchain,\njdkBuildVersion (default 25), and pass --release 8, which also rejects\ncalls to APIs newer than Java 8. Tests, javadoc, and JavaExec tasks still\nrun on the JDK that runs Gradle.\n\nThe foojay resolver downloads the toolchain when no matching JDK is\ninstalled. It stays at 0.10.0 because 1.0.0 requires Gradle to run on\nJava 17, and CI still runs Gradle on Java 8 and 11. When Gradle runs on\nJava 8, the download fails anyway: api.foojay.io answers the Java 8\nUser-Agent with \"error code: 1010\", so the build JDK must be installed.\n\nCI installs JDK 25 next to the JDK each job tests with, and sets\norg.gradle.java.installations.auto-download\u003dfalse, so a build fails\ninstead of silently compiling with a JDK that foojay downloaded.\nThe ErrorProne and Checker Framework jobs pass -PjdkBuildVersion\u003d11:\nErrorProne 2.5.1 fails on JDK 25 with\n\"IllegalAccessError: class com.google.errorprone.JavacErrorDescriptionListener\n... cannot access class com.sun.tools.javac.tree.JCTree$JCCompilationUnit\".\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "76af08e3bb2ee0e2c599130df778908b59f57da6",
      "tree": "11776b67705f60b62dea3c10bef6330a10ce3cbb",
      "parents": [
        "2d28ce3244dd9799909c44b1fa8a2fb4e4eda673"
      ],
      "author": {
        "name": "1fanwang",
        "email": "1fannnw@gmail.com",
        "time": "Thu Oct 01 20:26:15 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Oct 01 20:51:47 2026 -0700"
      },
      "message": "[CALCITE-5121] Rethrow RuntimeException as SQLException in Driver#onConnectionInit\n\nSigned-off-by: 1fanwang \u003c1fannnw@gmail.com\u003e\n"
    },
    {
      "commit": "2d28ce3244dd9799909c44b1fa8a2fb4e4eda673",
      "tree": "5aa99e87350d457f59f64c27551e16ac39980441",
      "parents": [
        "7478530c55e4c112f5639a12c12cc551c449baea"
      ],
      "author": {
        "name": "Dongsheng He",
        "email": "grephale@gmail.com",
        "time": "Mon Sep 28 13:56:51 2026 +0800"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Sep 30 23:20:03 2026 -0700"
      },
      "message": "[CALCITE-7825] RelMdTableReferences does not account for tables in RexSubQuery expressions or Correlate\n"
    },
    {
      "commit": "7478530c55e4c112f5639a12c12cc551c449baea",
      "tree": "f44d5f3beaf3adeb9a2017b0b4b6645a59ba56ae",
      "parents": [
        "961310e814d8f1b80c4366d46b67929e01fe9428"
      ],
      "author": {
        "name": "Guanyu Chen",
        "email": "chenguanyu9745@outlook.com",
        "time": "Wed Sep 23 20:33:48 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Sep 30 20:24:35 2026 -0700"
      },
      "message": "[CALCITE-7763] \"TABLE t ORDER BY c\" and \"(SELECT ... LIMIT n) ORDER BY c\" fail with UnsupportedOperationException\n"
    },
    {
      "commit": "961310e814d8f1b80c4366d46b67929e01fe9428",
      "tree": "efeea4ba81a16605ac15d33a8a1f0c4580ead61b",
      "parents": [
        "4e9460600c0437478878bbd71875f517c9e576fc"
      ],
      "author": {
        "name": "Michael Braun",
        "email": "michaelbraun@netflix.com",
        "time": "Tue Sep 29 18:00:42 2026 +0000"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 29 13:30:23 2026 -0700"
      },
      "message": "[CALCITE-7794] Reduce the work HepPlanner does per rule application attempt\n\nRule application attempts greatly outnumber matches, so applyRule now tests\nthe rule\u0027s operand before doing any other work. An attempt that cannot match\nskips the ConverterRule and CommonRelSubExprRule checks and the bindings and\nnode-children allocations. The CommonRelSubExprRule parent-vertex to RelNode\nconversion moves after the operand test, so a non-matching rel no longer pays\nfor it.\n\nThe graph-membership check moves to the two callers, which try every rule\nagainst the same vertex and so need it only once. applyRules returns early\nwhen there is no rule at all.\n\nmatchOperands is split so that applyRule, which has already tested the\noperand, calls matchOperandsForMatchedRel instead of testing it twice. Both\nmethods now have javadoc. Loops over inputs and parents use indexed access,\nsince getInputs() on a SingleRel allocates a new list on each call.\n\nAdds HepQueryVarietyBenchmark, which plans a range of query shapes through\nrules that fire, over varying numbers of rule collections and rules per\ncollection, so planning changes can be measured against realistic queries.\nIt includes COMMON_SUBEXPR (the CommonRelSubExprRule parent lookup) and\nUNION_PRUNE_EMPTY (the UNORDERED child-policy search).\n\nCo-Authored-By: Claude Sonnet 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "4e9460600c0437478878bbd71875f517c9e576fc",
      "tree": "faf3a9251f1f73867ebe6a5b4662f8053e148aca",
      "parents": [
        "36c4df140a7bcd30e67c8569b73f467e72a75381"
      ],
      "author": {
        "name": "Julian Hyde",
        "email": "jhyde@apache.org",
        "time": "Sat Sep 26 13:09:54 2026 -0700"
      },
      "committer": {
        "name": "Julian Hyde",
        "email": "jhyde@apache.org",
        "time": "Sun Sep 27 10:20:21 2026 -0700"
      },
      "message": "[CALCITE-7826] IS NOT DISTINCT FROM gives wrong result in Enumerable convention when applied to DECIMAL values of different scales\n\nIn the Enumerable convention, IS NOT DISTINCT FROM and IS DISTINCT\nFROM are implemented by RexImpTable.DistinctFromImplementor, which\ncompares non-null operands using Objects.equals and does not harmonize\nthe operand types. BigDecimal.equals is sensitive to scale, so 1.10\n(DECIMAL(3, 2)) and 1.1 (DECIMAL(2, 1)) are distinct.\n\nThe problem can only be reproduced by creating a RexCall by hand. If a\nquery is parsed from SQL,\nStandardConvertletTable.convertIsDistinctFrom expands IS NOT DISTINCT\nFROM into IS NULL and \u0027\u003d\u0027 on operands that have been cast to a common\ntype. RelBuilder.isNotDistinctFrom uses the same expansion.\n\nTo fix the problem, DistinctFromImplementor now compares BigDecimal\nvalues using SqlFunctions.eq(BigDecimal, BigDecimal).\n\nAdd BuiltInMethod.EQ_DECIMAL constant to reference the SqlFunctions.eq\nmethod.\n\nClose apache/calcite#5296\n"
    },
    {
      "commit": "36c4df140a7bcd30e67c8569b73f467e72a75381",
      "tree": "e380f605c655dd7249caf7f1d140255cf0e5bc48",
      "parents": [
        "da19a169b46590363f96a2b4c64353108d58048c"
      ],
      "author": {
        "name": "Dongsheng He",
        "email": "hds@dipeak.com",
        "time": "Thu Sep 24 14:47:35 2026 +0800"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sat Sep 26 23:08:44 2026 -0700"
      },
      "message": "[CALCITE-7819] RelMdTableReferences returns null for TableFunctionScan with relational inputs\n"
    },
    {
      "commit": "da19a169b46590363f96a2b4c64353108d58048c",
      "tree": "141a7372dfc4346ee6006a609e9bb03532ab21ac",
      "parents": [
        "8668ee1d4eacbd8e53d6fec83879abe649a00db8"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 24 15:07:00 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Fri Sep 25 09:13:51 2026 -0700"
      },
      "message": "[CALCITE-7769] Re-enable Calcite tests disabled to merge Avatica [CALCITE-7494\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "8668ee1d4eacbd8e53d6fec83879abe649a00db8",
      "tree": "df92bab08a9a7846b30d6d2291881311042a8ff7",
      "parents": [
        "26e16dcc856976078dcaaf4cb0e47093a87696bd"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Sat Aug 22 22:51:02 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Fri Sep 25 21:49:52 2026 +0800"
      },
      "message": "[CALCITE-6537] Add syntax to allow non-aggregated rows to be used in GROUPING SETS\n"
    },
    {
      "commit": "26e16dcc856976078dcaaf4cb0e47093a87696bd",
      "tree": "ccef127ebeacc7b072f5b6530e5adc6610ea9fa6",
      "parents": [
        "76c2f5fe0416db42673be0df75b6df4d56cd291c"
      ],
      "author": {
        "name": "Akash Kumar",
        "email": "116457960+akashchamp@users.noreply.github.com",
        "time": "Thu Sep 24 21:56:57 2026 +0530"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 24 21:46:07 2026 -0700"
      },
      "message": "[CALCITE-7776] UNNEST WITH ORDINALITY over a column of type ANY has no ORDINALITY column\n\nUNNEST of a column declared ANY (as in schema-less systems) ignored\nWITH ORDINALITY: the ANY branches of SqlUnnestOperator#inferReturnType\nand Uncollect#deriveRowType returned their single-column row type\nbefore reaching the block that appends the ORDINALITY column, so the\nrow type had only one field regardless of WITH ORDINALITY. Aliasing\nboth columns (e.g. \"UNNEST(t.tags) WITH ORDINALITY AS T(x, o)\") then\nfailed validation with \"List of column aliases must have same degree\nas table\".\n\nAppend the ORDINALITY column in the ANY branch of both methods before\nreturning, mirroring the existing ARRAY/MULTISET/MAP branches.\n\nGenerated-by: Claude Sonnet 5 (claude-sonnet-5)\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "76c2f5fe0416db42673be0df75b6df4d56cd291c",
      "tree": "602241194ad7cc928873a7d793dc4d58f5996662",
      "parents": [
        "afdea2ec790d507fb26c824ac2e3505dcae0ca80"
      ],
      "author": {
        "name": "huzhe",
        "email": "iluffzhe@163.com",
        "time": "Sat Dec 18 13:00:08 2021 +0800"
      },
      "committer": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Thu Sep 24 22:16:17 2026 +0300"
      },
      "message": "[CALCITE-4949] Evaluate if using org.codelibs is appropriate for an Elasticsearch painless dependency\n"
    },
    {
      "commit": "afdea2ec790d507fb26c824ac2e3505dcae0ca80",
      "tree": "e65bb13eeb77300a83ebaed3e5fc181229336df8",
      "parents": [
        "03be7710ca4824c5051f0e9fff22ce80475b4c9a"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Wed Sep 23 15:54:31 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 24 07:44:58 2026 +0100"
      },
      "message": "[CALCITE-739] Extend RexUtil.pullFactors to recognize additional common factors (follow-up)\n"
    },
    {
      "commit": "03be7710ca4824c5051f0e9fff22ce80475b4c9a",
      "tree": "bfd2101be9bd1865ee73a27986745b4b24b5e6dc",
      "parents": [
        "1f335c2d07f5257eb99569af3ef527ad22c1bbdf"
      ],
      "author": {
        "name": "Jasmin Trada",
        "email": "jasmin.trada@dremio.com",
        "time": "Tue Sep 22 10:48:44 2026 -0700"
      },
      "committer": {
        "name": "Julian Hyde",
        "email": "jhyde@apache.org",
        "time": "Wed Sep 23 15:16:32 2026 -0700"
      },
      "message": "[CALCITE-7811] RexImplicationChecker incorrectly proves NOT(x \u003d a) implies (x \u003d a OR x \u003d b)\n\nInputUsageFinder had no case for NOT in its visitCall switch, so it fell\nthrough to the default case and recursed into the un-negated operand,\nrecording NOT(x \u003d \u0027a\u0027) as a plain x \u003d \u0027a\u0027 usage. NOT is now rewritten to\nits equivalent positive comparison via RexUtil.negate before recording;\nanything else NOT might wrap is left unrecorded so checkSupport declines\nrather than guesses.\n"
    },
    {
      "commit": "1f335c2d07f5257eb99569af3ef527ad22c1bbdf",
      "tree": "3a0db475aef80f202655ef55c5b21a38d9e402f1",
      "parents": [
        "ffcae4bf2c58ccca7df318c652a985ad50ba646d"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Sep 22 08:31:30 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Sep 22 16:08:30 2026 +0100"
      },
      "message": "[CALCITE-7804] Upgrade Calcite to Avatica 1.29.0\n"
    },
    {
      "commit": "ffcae4bf2c58ccca7df318c652a985ad50ba646d",
      "tree": "b1aa01449860398a47a79ce4c42258afc1bc6516",
      "parents": [
        "34db6c8cd895998f38175efc3e3306311fc7d061"
      ],
      "author": {
        "name": "Guanyu Chen",
        "email": "chenguanyu9745@outlook.com",
        "time": "Sun Sep 20 21:14:49 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 21 11:28:09 2026 -0700"
      },
      "message": "[CALCITE-7756] Invalid unparse for VARCHAR without precision in MssqlSqlDialect\n"
    },
    {
      "commit": "34db6c8cd895998f38175efc3e3306311fc7d061",
      "tree": "78cb8f6cfad3a9fcf2a5af7679b5dca74edc4c6c",
      "parents": [
        "c19d8882aaf64210c6cdf1f647cc1913358263f6"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Sep 15 12:12:30 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Mon Sep 21 09:04:14 2026 +0100"
      },
      "message": "[CALCITE-7781] Improve identifier and literal handling in SQL dialects and adapters\n"
    },
    {
      "commit": "c19d8882aaf64210c6cdf1f647cc1913358263f6",
      "tree": "6d4f0852eb4631930e9fdfe61aae43b9fd6b1103",
      "parents": [
        "7ed906ad8f06fffc79db650d28440f6d13682145"
      ],
      "author": {
        "name": "Francis Chuang",
        "email": "francischuang@apache.org",
        "time": "Mon Sep 21 16:39:41 2026 +1000"
      },
      "committer": {
        "name": "Francis Chuang",
        "email": "francischuang@apache.org",
        "time": "Mon Sep 21 16:39:41 2026 +1000"
      },
      "message": "[CALCITE-7802] Upgrade Gradle wrapper validation action\n"
    },
    {
      "commit": "7ed906ad8f06fffc79db650d28440f6d13682145",
      "tree": "4d549f011367a6f535ef7db2d01a4858008813aa",
      "parents": [
        "4062e2b1c05088488dc98c749a1ae4951f14f355"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Tue Sep 08 20:50:16 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sat Sep 19 09:06:27 2026 +0800"
      },
      "message": "Test case for [CALCITE-5796] DELETE statement is not effective\n"
    },
    {
      "commit": "4062e2b1c05088488dc98c749a1ae4951f14f355",
      "tree": "f79f852bd3564da9f309c21198a1779c3699e3a2",
      "parents": [
        "51e6cb170bbcf7c6d2dd3a33999ba19d0749acfe"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 17 14:43:50 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Fri Sep 18 10:02:56 2026 -0700"
      },
      "message": "[CALCITE-7793] RelMdDistinctRowCount passes an Aggregate predicate to the Aggregate\u0027s input without translating column references\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "51e6cb170bbcf7c6d2dd3a33999ba19d0749acfe",
      "tree": "c11da03bfe81712523db3bf098477a7e3425f7fd",
      "parents": [
        "1544c1b1b0b6039f7720695338981460779191c6"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Sat Sep 05 23:21:12 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Fri Sep 18 23:23:36 2026 +0800"
      },
      "message": "[CALCITE-739] Extend RexUtil.pullFactors to recognize additional common factors\n"
    },
    {
      "commit": "1544c1b1b0b6039f7720695338981460779191c6",
      "tree": "7ae7cfa4d2d80706396d48adb2baec613eef7a1f",
      "parents": [
        "fa53b71f84d60e29b750043d12c79dbfc4eefbdd"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 17 15:52:35 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Fri Sep 18 11:05:06 2026 +0100"
      },
      "message": "[CALCITE-7790] XmlFunctions: XMLTRANSFORM should parse its XML argument through the shared DocumentBuilder and set explicit JAXP external-access attributes on the TransformerFactory\n"
    },
    {
      "commit": "fa53b71f84d60e29b750043d12c79dbfc4eefbdd",
      "tree": "8d53afbc59722b1c43995c02384c64605c732e2a",
      "parents": [
        "2b794ff5a9e4874905a91d475a2136ce5107aeb0"
      ],
      "author": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Fri Sep 18 10:34:06 2026 +0200"
      },
      "committer": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Fri Sep 18 10:34:06 2026 +0200"
      },
      "message": "Site: Update Stamatis Zampetakis homepage\n\nhttp://people.apache.org/ is no longer available\n"
    },
    {
      "commit": "2b794ff5a9e4874905a91d475a2136ce5107aeb0",
      "tree": "ae2d444b28fdb8a0715e27c8dcae1f47fe8e4767",
      "parents": [
        "9634752f1aa66e5e0e131c4908d3f440c90e054c"
      ],
      "author": {
        "name": "npaincomplet",
        "email": "etienne.pelissier@telecom-paris.fr",
        "time": "Wed Sep 16 14:59:58 2026 +0200"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 17 10:26:51 2026 -0700"
      },
      "message": "[CALCITE-7687] Aggregate selectivity estimation uses incorrect column references\n"
    },
    {
      "commit": "9634752f1aa66e5e0e131c4908d3f440c90e054c",
      "tree": "89e202454d9b9a07e9714b1a3ac64d9b20205829",
      "parents": [
        "72bcdf26658bf92e84d962fdd830cfca6f2f51e8"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Wed Sep 16 12:20:31 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 17 15:56:58 2026 +0100"
      },
      "message": "[CALCITE-7787] Make Geode pdxSerializablePackagePath schema operand opt-in via system property\n"
    },
    {
      "commit": "72bcdf26658bf92e84d962fdd830cfca6f2f51e8",
      "tree": "0879b23565f2ffece4c127a04818276aa4b983e4",
      "parents": [
        "38413ece67fcedcd8c8dc5e6af7bce1efaae1ffc"
      ],
      "author": {
        "name": "Clay Johnson",
        "email": "cjohnson@gradle.com",
        "time": "Wed Sep 16 11:19:28 2026 -0500"
      },
      "committer": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Thu Sep 17 14:12:00 2026 +0200"
      },
      "message": "[CALCITE-7788] Upgrade Develocity Gradle plugin from 3.18.2 to 4.5.1 and Common Custom User Data plugin from 2.0.2 to 2.8.0\n"
    },
    {
      "commit": "38413ece67fcedcd8c8dc5e6af7bce1efaae1ffc",
      "tree": "78232d917b17a34af6437ddc2430d9a4d0103684",
      "parents": [
        "a7c34578272f35284229f1481a512482073bd2f9"
      ],
      "author": {
        "name": "Michael Braun",
        "email": "michaelbraun@netflix.com",
        "time": "Wed Sep 16 14:07:28 2026 +0000"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Sep 16 13:39:05 2026 -0700"
      },
      "message": "[CALCITE-7783] Speed up deepEquals and deepHashCode for LogicalUnion, LogicalIntersect and LogicalMinus\n\nAbstractRelNode\u0027s default deepEquals()/deepHashCode() builds a\nRelDigestWriter and a PairList and re-runs explainTerms() on both sides\nfor every comparison.\n\nLogicalJoin, LogicalFilter and LogicalProject already avoid this: their\nabstract core classes expose protected deepEquals0()/deepHashCode0()\nhelpers that compare fields directly, and the final Logical* subclasses\noverride deepEquals()/deepHashCode() to call them, per AbstractRelNode\u0027s\nown javadoc recommendation. LogicalUnion, LogicalIntersect and\nLogicalMinus never received the same treatment, despite being equally\neligible: all three are final, and SetOp\u0027s explainTerms() output\n(inputs, \"all\") is already their complete identity.\n\nThis adds deepEquals0()/deepHashCode0() helpers to SetOp, mirroring\nJoin\u0027s, and overrides deepEquals()/deepHashCode() on LogicalUnion,\nLogicalIntersect and LogicalMinus only -- other subclasses\n(EnumerableUnion, JdbcUnion, BindableUnion, etc.) are non-final and keep\nthe safe digest-based default.\n\ndeepEquals0() also drops the trailing getRowType() comparison: a SetOp\u0027s\nrow type is derived solely from its inputs\u0027 row types, so equal inputs\nalready imply equal row types, and there is no need to compare them\nhere.\n\nSetOpDigestBenchmark isolates HepPlanner\u0027s digest-based dedup for\nUNION/INTERSECT/MINUS trees, separate from rule matching or plan\nconstruction. nodeCount spans 2-10,000 to match realistic plan sizes\n(production plans run to tens or a couple hundred nodes, not thousands),\nduplicatePercent covers 0/50/100, and branches combine via a balanced\npairwise reduction so duplicates produce SetOp-level deepEquals hits\nrather than only leaf-level ones. LargePlanBenchmark also gets an\nINTERSECT variant alongside its existing UNION one.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "a7c34578272f35284229f1481a512482073bd2f9",
      "tree": "9c64e33be3359c17e0537d93521fe6aededaec62",
      "parents": [
        "152a4208c54ecbcea74b9555644f804f764912eb"
      ],
      "author": {
        "name": "Jerome Haltom",
        "email": "jhaltom@alethic.solutions",
        "time": "Mon Sep 07 19:26:51 2026 -0500"
      },
      "committer": {
        "name": "Jensen",
        "email": "czjourney@163.com",
        "time": "Wed Sep 16 19:46:22 2026 +0800"
      },
      "message": "[CALCITE-7768] SqlDialect has no way to unparse a UUID literal\n"
    },
    {
      "commit": "152a4208c54ecbcea74b9555644f804f764912eb",
      "tree": "23cdb99cea7c8d219abf355d1c18d20641df76a8",
      "parents": [
        "55d2e3b72f6ec828d27f0c4f5792948d924be501"
      ],
      "author": {
        "name": "zzwqqq",
        "email": "wqqqzz@163.com",
        "time": "Sun Aug 30 14:49:00 2026 +0800"
      },
      "committer": {
        "name": "zzwqqq",
        "email": "32770945+zzwqqq@users.noreply.github.com",
        "time": "Wed Sep 16 19:38:08 2026 +0800"
      },
      "message": "[CALCITE-7755] Support IEJoin for inequality joins\n"
    },
    {
      "commit": "55d2e3b72f6ec828d27f0c4f5792948d924be501",
      "tree": "059800f84157b5fc4e5aeca2a119dae0f1874e35",
      "parents": [
        "0b4704befe9ce5cec4d5daa1212d12cf9453e56e"
      ],
      "author": {
        "name": "Jerome Haltom",
        "email": "jhaltom@alethic.solutions",
        "time": "Sat Sep 12 09:13:45 2026 -0500"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 15 21:37:08 2026 -0700"
      },
      "message": "[CALCITE-7774] JDBC adapter generates a GROUP BY with a constant key, which SQL Server rejects\n"
    },
    {
      "commit": "0b4704befe9ce5cec4d5daa1212d12cf9453e56e",
      "tree": "ea5d854be615bcc9efc4bf717bad33d92f624113",
      "parents": [
        "34dde490366b99f0cd34ddb464068b81e70a0b0b"
      ],
      "author": {
        "name": "Jerome Haltom",
        "email": "jhaltom@alethic.solutions",
        "time": "Sat Sep 12 10:10:13 2026 -0500"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 15 21:34:13 2026 -0700"
      },
      "message": "[CALCITE-7777] JDBC adapter generates || for concatenation, which SQL Server rejects\n"
    },
    {
      "commit": "34dde490366b99f0cd34ddb464068b81e70a0b0b",
      "tree": "2423857adc13fccc030cd9d4c6e00fdb7f3d6526",
      "parents": [
        "f840e7ab3f8121e71035a7a1ed3fc1372f0139d5"
      ],
      "author": {
        "name": "Frank Chen",
        "email": "frank.chen021@outlook.com",
        "time": "Mon Sep 14 23:48:37 2026 +0800"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 15 21:32:37 2026 -0700"
      },
      "message": "[CALCITE-7782] Large string ARRAY validation is quadratic: 81 GB allocated at 100,000 elements and no result after 20 minutes at 1,000,000\n"
    },
    {
      "commit": "f840e7ab3f8121e71035a7a1ed3fc1372f0139d5",
      "tree": "9c8a59682338bd169a42377e96961c515717a831",
      "parents": [
        "30d86a075f24fa165bc46e19280ce62824e4eea1"
      ],
      "author": {
        "name": "npaincomplet",
        "email": "etienne.pelissier@telecom-paris.fr",
        "time": "Sun Sep 13 22:38:48 2026 +0200"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 15 20:15:23 2026 -0700"
      },
      "message": "[CALCITE-7779] Optimization rule FilterAggregateTransposeRule rewrites queries to semantically non-equivalent ones\n"
    },
    {
      "commit": "30d86a075f24fa165bc46e19280ce62824e4eea1",
      "tree": "34b9e3087a8dbb5baa33073e71bc4f9429c9fd73",
      "parents": [
        "795361702d573a31efffd6edbf23d23b5bb70de2"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 14 16:52:00 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 15 09:23:43 2026 -0700"
      },
      "message": "[CALCITE-7784] Parse fails for ROW(CASE ...)\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "795361702d573a31efffd6edbf23d23b5bb70de2",
      "tree": "91bdcc751920dbf73a2174f2f83ed225bcb2429a",
      "parents": [
        "3ab351f622682f068c3878e4db90292bcee4b2e2"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Fri Sep 11 16:34:07 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Sep 15 08:35:44 2026 +0100"
      },
      "message": "[CALCITE-7772] ModelHandler.addFunctions should defer UDF class initialization until after shape validation\n"
    },
    {
      "commit": "3ab351f622682f068c3878e4db90292bcee4b2e2",
      "tree": "9d4ed40c6a290f9cb10817fa25b0a46f88a8069b",
      "parents": [
        "c71aa7e398337ec6dd6adc83a6ec317e9fbe3eb4"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Fri Sep 11 17:25:01 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Sep 15 08:34:02 2026 +0100"
      },
      "message": "[CALCITE-7773] Kafka adapter should validate class-naming keys in the \"consumer.params\" operand\n"
    },
    {
      "commit": "c71aa7e398337ec6dd6adc83a6ec317e9fbe3eb4",
      "tree": "ea1fb02d321db52e96f07da8b976c57b613481a6",
      "parents": [
        "b8cb1054fbba2b165b30b07ee1597015d9eff8fe"
      ],
      "author": {
        "name": "Francis Chuang",
        "email": "francischuang@apache.org",
        "time": "Tue Sep 15 15:49:11 2026 +1000"
      },
      "committer": {
        "name": "Francis Chuang",
        "email": "francischuang@apache.org",
        "time": "Tue Sep 15 15:49:11 2026 +1000"
      },
      "message": "[CALCITE-7786] Use Jekyll docker images for site generation\n"
    },
    {
      "commit": "b8cb1054fbba2b165b30b07ee1597015d9eff8fe",
      "tree": "4a6b9d8ec101abe659f7752cb4f10e9846d4a5b3",
      "parents": [
        "7359405d8794f5198cc4188c13aaea0f3dd13402"
      ],
      "author": {
        "name": "Michael Braun",
        "email": "michaelbraun@netflix.com",
        "time": "Mon Sep 14 23:36:35 2026 -0400"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 14 21:14:57 2026 -0700"
      },
      "message": "[CALCITE-7780] Avoid redundant map lookups\n\nSeveral places look up the same map key two or three times in a row,\nwhere one call to an existing Map method does the same job. For example,\nHepPlanner#updateVertex removes a digest only if it still maps to the\nvertex being updated, which is Map#remove(key, value).\n\nThe same shape occurs in a handful of other classes, and is replaced\nwith the corresponding single-lookup idiom: a get plus null check for\ncontainsKey followed by get; putIfAbsent or computeIfAbsent for\ncontainsKey followed by put; iteration over entrySet, with\nMap.Entry#setValue for in-place updates, for iterating keySet and\ncalling get per key.\n\nSome sites are on per-row paths (AggregateNode#send, UncollectNode and\nthe expression caches in RexToLixTranslator); the rest is planner and\nvalidator code. No lambda introduced captures enclosing state, so the\ncomputeIfAbsent call sites allocate nothing.\n\nAll values involved are non-null, so replacing containsKey with a null\ncheck on get preserves behaviour. There is no functional change.\n\nMongoFilter and QueryBuilders were reverted from this change: in\nMongoFilter the map is declared Map\u003cString, @Nullable Object\u003e, and in\nQueryBuilders the map is supplied by the caller, so in neither case is a\nnon-null value guaranteed by the type. Treating \"absent\" and \"mapped to\nnull\" alike is safe for the keys these two sites use, but it rests on an\ninvariant rather than on the declaration, so leave both as they were.\n\nStrong#createPolicyMap is reverted for a different reason: the map is an\nEnumMap, which does not override putIfAbsent, so the default Map\nimplementation still performs a get followed by a put. No lookup is\nsaved.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "7359405d8794f5198cc4188c13aaea0f3dd13402",
      "tree": "c62387a6c3d8c7f1fc960d07a84545fe24bd092b",
      "parents": [
        "631b0b284eaf6e6fb16f535842ecf19c65a9a70f"
      ],
      "author": {
        "name": "Dwrite",
        "email": "dwrite1108@gmail.com",
        "time": "Sun Aug 30 16:56:21 2026 +0800"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 14 17:42:59 2026 -0700"
      },
      "message": "[CALCITE-7749] CONCAT (and other STRING_SAME_SAME-typed operators) gives misleading error message for mixed CHARACTER/BINARY arguments\n"
    },
    {
      "commit": "631b0b284eaf6e6fb16f535842ecf19c65a9a70f",
      "tree": "f6a81c9d7ab017699b014f2d1e80af5ff49527e5",
      "parents": [
        "3b0444d98ab2708a4de503f63ea70006b7efeb58"
      ],
      "author": {
        "name": "Goncalo Santos",
        "email": "goncalo.santos@dremio.com",
        "time": "Wed Aug 19 15:34:28 2026 +0100"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 14 15:34:47 2026 -0700"
      },
      "message": "[CALCITE-7716] BETWEEN/range predicates on UUID literals give wrong results because RexSimplify orders bounds using java.util.UUID#compareTo (signed comparison)\n"
    },
    {
      "commit": "3b0444d98ab2708a4de503f63ea70006b7efeb58",
      "tree": "2aa3a8f758f85616108cf6f0ddb28843def0229c",
      "parents": [
        "3ed656c7c257e397980b511c573a69c5d7fdc082"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Tue Sep 08 22:02:54 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sat Sep 12 21:07:01 2026 +0800"
      },
      "message": "[CALCITE-4596] RelFieldTrimmer#trimFields fails if values row type is empty record\n"
    },
    {
      "commit": "3ed656c7c257e397980b511c573a69c5d7fdc082",
      "tree": "fdbd1596dd287e940e5f64d0c9e9f82a8fca9d7b",
      "parents": [
        "bca2eef42ab0208b87fcfe8e9164402c9f5e1770"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Thu Aug 13 23:04:34 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sat Sep 12 09:09:47 2026 +0800"
      },
      "message": "Add test case for [CALCITE-6578] RelToSql throws exception when unparse TIMESTAMPDIFF function\n"
    },
    {
      "commit": "bca2eef42ab0208b87fcfe8e9164402c9f5e1770",
      "tree": "67a595c80ebb2a7abb5906dc4524aadff0a331d7",
      "parents": [
        "720456ce322c81caeeb6595071aebc5a885dc6ce"
      ],
      "author": {
        "name": "Matthew Bayer",
        "email": "matthewbayer@palantir.com",
        "time": "Thu Jul 30 13:00:50 2026 -0400"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Fri Sep 11 09:30:52 2026 -0700"
      },
      "message": "[CALCITE-7681] SqlDatetimeSubtractionOperator drops parentheses around compound interval expressions\n"
    },
    {
      "commit": "720456ce322c81caeeb6595071aebc5a885dc6ce",
      "tree": "abf2e19f90f92da8dcd09d32fc31cfab79c95274",
      "parents": [
        "1a0b436c50acf0924b6d700711b020e35f9874fc"
      ],
      "author": {
        "name": "Sean Broeder",
        "email": "sean@dremio.com",
        "time": "Thu Aug 27 17:10:19 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Fri Sep 11 09:27:29 2026 -0700"
      },
      "message": "[CALCITE-7747] RexSimplify.simplifySearch does not simplify SEARCH(literal, Sarg) when pointCount \u003e\u003d 2\n\nRexSimplify.simplifySearch only evaluated a SEARCH(subject, Sarg) call\nagainst its Sarg when sarg.isPoints() \u0026\u0026 sarg.pointCount \u003c\u003d 1, with no\ncheck for whether the subject itself is a constant. A single-point\nSarg with any subject folded correctly, and a multi-point Sarg with a\ncolumn-reference subject simplified correctly elsewhere, but a literal\nsubject compared against a multi-point Sarg (for example,\nSEARCH(5, Sarg[1, 2])) fell through every branch unevaluated instead\nof folding to a boolean constant.\n\nThis can occur whenever a rule substitutes a literal for a column\nreference in a SEARCH condition, such as when\nFilterSetOpTransposeRule pushes a filter through a branch of a Union\nthat projects a constant.\n\nFix simplifySearch so that when the search subject is itself a\nRexLiteral, the call is expanded via the existing RexUtil.expandSearch\nand the result is simplified recursively, regardless of point count.\nThis matches the treatment already given to a single-point Sarg, but\nadds the recursive simplify() call needed to fold the expanded\ncomparison tree down to a constant.\n"
    },
    {
      "commit": "1a0b436c50acf0924b6d700711b020e35f9874fc",
      "tree": "189ed90ecc87204777a85124d2e2a0be5daff0c7",
      "parents": [
        "1df1872c88885753ca6091e8055bc18cb12310ea"
      ],
      "author": {
        "name": "Darpan",
        "email": "darpan@e6x.io",
        "time": "Tue Sep 08 13:05:13 2026 +0530"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 10 22:17:17 2026 -0700"
      },
      "message": "[CALCITE-7762] DateRangeRules may produce incorrect ranges, hang, or excessively expand sub-day predicates\n"
    },
    {
      "commit": "1df1872c88885753ca6091e8055bc18cb12310ea",
      "tree": "9723c6a7aebbbbf45761979bc72cf6958d0be139",
      "parents": [
        "e1040a73dbb5187327e004440b094014ab31af50"
      ],
      "author": {
        "name": "Ilia Korol",
        "email": "llivezking@gmail.com",
        "time": "Mon Sep 07 17:54:53 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Sep 10 11:57:04 2026 -0700"
      },
      "message": "[CALCITE-7766] Type-mismatch on nullability in JoinPushTransitivePredicatesRule for RIGHT join\n"
    },
    {
      "commit": "e1040a73dbb5187327e004440b094014ab31af50",
      "tree": "96e281477bcc821859e463a0a849d4490dbf356d",
      "parents": [
        "ccbbc889c98fca0a767012904a775f9f2061a491"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Sep 01 12:06:29 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 10 17:15:48 2026 +0100"
      },
      "message": "[CALCITE-7760] Harden Spark engine activation: require opt-in via system property\n"
    },
    {
      "commit": "ccbbc889c98fca0a767012904a775f9f2061a491",
      "tree": "451fd306f562ef04635d153607d55141f310ebba",
      "parents": [
        "a55a520fb48ca5fee817febbf5c0704cfa61aa0d"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 10 11:31:31 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 10 16:30:44 2026 +0100"
      },
      "message": "[CALCITE-7771] Website CI build fails due to expired Debian Bullseye\n"
    },
    {
      "commit": "a55a520fb48ca5fee817febbf5c0704cfa61aa0d",
      "tree": "6c97915b271936d6a97f6ef6e8f62955d25b7d39",
      "parents": [
        "116a746c426971d6a62b18b069169ff294de7f9d"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Thu Sep 03 22:54:49 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Thu Sep 10 19:52:02 2026 +0800"
      },
      "message": "[CALCITE-4922] Unqualified common column in ORDER BY fails for JOINs with USING and for NATURAL JOINs\n"
    },
    {
      "commit": "116a746c426971d6a62b18b069169ff294de7f9d",
      "tree": "2e95f65b1a64f0be471a126271cb68b08711ac53",
      "parents": [
        "a998e2743b80e6c502af1142326c4add10b4507e"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Mon Aug 31 16:58:04 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Sep 10 11:43:25 2026 +0100"
      },
      "message": "[CALCITE-7758] RexSimplify does not absorb redundant IS NOT NULL on non-input-ref sub-expressions in AND simplification\n"
    },
    {
      "commit": "a998e2743b80e6c502af1142326c4add10b4507e",
      "tree": "745a939edab7f280d0d07d116f28ce8791afe25a",
      "parents": [
        "194ce5451393d5226112c8597e5e60fd70b64a9f"
      ],
      "author": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Tue Aug 18 19:11:19 2026 +0300"
      },
      "committer": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Wed Sep 09 09:49:28 2026 +0200"
      },
      "message": "[CALCITE-7770] Improve checks on KafkaTableFactory operands\n"
    },
    {
      "commit": "194ce5451393d5226112c8597e5e60fd70b64a9f",
      "tree": "98ec44cd1133c5bb3c813c2aeddcdc28fbd9a48f",
      "parents": [
        "0e456518c73bb2eab48237c9bc40a7b51d9bcad5"
      ],
      "author": {
        "name": "Diveyam Mishra",
        "email": "mishradiveyam@gmail.com",
        "time": "Tue Sep 08 02:29:19 2026 +0530"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 08 15:34:37 2026 -0700"
      },
      "message": "[CALCITE-7767] Re-enable disabled tests in RelMetadataTest with updated selectivity expectations\n"
    },
    {
      "commit": "0e456518c73bb2eab48237c9bc40a7b51d9bcad5",
      "tree": "214ca69d88d9d674ac63a17ffb7189450a6ffd01",
      "parents": [
        "4d89fcb23ab54c5dc42213faa78687e2e34de491"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Sat Sep 05 20:15:47 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Tue Sep 08 20:08:49 2026 +0800"
      },
      "message": "[CALCITE-7084] JOINs with USING would fail when validator identifier expansion is disabled\n"
    },
    {
      "commit": "4d89fcb23ab54c5dc42213faa78687e2e34de491",
      "tree": "16d29d55157bfb0575a323747d35ceb263e652f4",
      "parents": [
        "70066d7b29a88fb46238c28e366e19dedc37e404"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 08 00:31:26 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 08 00:31:44 2026 -0700"
      },
      "message": "Temporarily disable some tests to enable Avatica to merge [CALCITE-7494]\n"
    },
    {
      "commit": "70066d7b29a88fb46238c28e366e19dedc37e404",
      "tree": "bc58cec3b99e8129e96d141dd2fcf35ae5be85ab",
      "parents": [
        "b81f46f4ca42a904cfdeef265012f45fa18f6cc3"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 07 11:18:02 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Tue Sep 08 00:02:10 2026 -0700"
      },
      "message": "Temporarily disable some tests to enable Avatica to merge [CALCITE-7494]\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "b81f46f4ca42a904cfdeef265012f45fa18f6cc3",
      "tree": "d03a49658640a8a15ce483b161f5915887439eba",
      "parents": [
        "ec283fb583ec08b3ceb984bdbf359589ec9384bb"
      ],
      "author": {
        "name": "Kirill Tkalenko",
        "email": "tkalkirill@yandex.ru",
        "time": "Mon Sep 07 07:05:09 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Sep 07 11:45:46 2026 -0700"
      },
      "message": "[CALCITE-7761] Preserve OFFSET and FETCH when rewriting outer ORDER BY\n"
    },
    {
      "commit": "ec283fb583ec08b3ceb984bdbf359589ec9384bb",
      "tree": "f53a093cf64adb7f20465de3e061db0a5db41fb0",
      "parents": [
        "ef00dee7f460f75b90d0e6a46123d97342348f41"
      ],
      "author": {
        "name": "Diveyam Mishra",
        "email": "mishradiveyam@gmail.com",
        "time": "Sat Sep 05 16:30:37 2026 +0530"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Sat Sep 05 10:17:31 2026 -0700"
      },
      "message": "[CALCITE-7765] Re-enable and update disabled tests in JdbcTest and RelMetadataTest\n"
    },
    {
      "commit": "ef00dee7f460f75b90d0e6a46123d97342348f41",
      "tree": "4b50227b67e6f9d8faf0009d23dbd149c758e955",
      "parents": [
        "ec34f39dad1533526fdb6cfb6edef6fd5a318fac"
      ],
      "author": {
        "name": "Aleksandr Efimov",
        "email": "horsodilo@gmail.com",
        "time": "Wed Sep 02 21:10:40 2026 +0300"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Sep 02 13:53:01 2026 -0700"
      },
      "message": "[CALCITE-4543] Interval literal loses a fractional second when it has scale greater than 3\n"
    },
    {
      "commit": "ec34f39dad1533526fdb6cfb6edef6fd5a318fac",
      "tree": "24288353bc4ea25b597ea9600791745597f58d36",
      "parents": [
        "aaf565457f85c6221bf6c4a925320f0339792e1b"
      ],
      "author": {
        "name": "Jeremy Schoemaker",
        "email": "jeremy@shoemoney.com",
        "time": "Tue Aug 25 19:06:11 2026 -0500"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Wed Sep 02 18:07:03 2026 +0100"
      },
      "message": "[CALCITE-7750] Bound plain-notation expansion of DECIMAL literals in Primitive.checkOverflow\n\nPrimitive.checkOverflow calls BigDecimal.toPlainString on a value with\nscale \u003c 0 without bounding the plain-notation expansion, the same\npattern bounded elsewhere in CALCITE-7731. A large negative scale can\nforce toPlainString to materialize gigabytes and OOM.\n\nGate the toPlainString call with isBoundedDecimal, mirroring\nSqlUtil.isBoundedDecimal in core but inlined in linq4j to avoid a\ncircular linq4j -\u003e core dependency. The bound reads\ncalcite.parser.maxDecimalLiteralPlainDigits (default 10000) and checks\nprecision + abs(scale) \u003c\u003d limit, throwing IllegalArgumentException\nbefore allocation if exceeded.\n\nAdd PrimitiveTest coverage for the in-bounds paths and for a\npathological scale that must be rejected.\n"
    },
    {
      "commit": "aaf565457f85c6221bf6c4a925320f0339792e1b",
      "tree": "1457d8034878d8458145ed2e6cf74f974d476470",
      "parents": [
        "1f94e23fa6c06268855056a22380575bfa55d262"
      ],
      "author": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Tue Sep 01 09:52:38 2026 +0200"
      },
      "committer": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Wed Sep 02 08:43:28 2026 +0200"
      },
      "message": "[CALCITE-7759] Upgrade actions: checkout to v7, setup-java to v6, stale to v11\n"
    },
    {
      "commit": "1f94e23fa6c06268855056a22380575bfa55d262",
      "tree": "5cb4ae5c0a61e437913d9e2f2cb255f715babe61",
      "parents": [
        "cc1dcc48925699d729e8e77d08526bc3c618f704"
      ],
      "author": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Sat Aug 29 15:12:33 2026 +0200"
      },
      "committer": {
        "name": "Stamatis Zampetakis",
        "email": "zabetak@gmail.com",
        "time": "Tue Sep 01 09:31:30 2026 +0200"
      },
      "message": "[CALCITE-7751] Skipped CI jobs when adding labels\n"
    },
    {
      "commit": "cc1dcc48925699d729e8e77d08526bc3c618f704",
      "tree": "dc5a6ee35248ebd42ffd656b429c995de4a42906",
      "parents": [
        "4f899823ede7ffd2dabcc5834cff2acb0a68af54"
      ],
      "author": {
        "name": "xuzifu666",
        "email": "1206332514@qq.com",
        "time": "Sun Jul 26 11:28:16 2026 +0800"
      },
      "committer": {
        "name": "xuzifu666",
        "email": "xuzifu666@gmail.com",
        "time": "Sun Aug 30 17:36:00 2026 +0800"
      },
      "message": "[CALCITE-7665] Convert multi-value NOT IN to AND of NOT_EQUALS in SqlToRelConverter\n"
    },
    {
      "commit": "4f899823ede7ffd2dabcc5834cff2acb0a68af54",
      "tree": "89e88ac3112c4d4eb93e241cdba261d5664504b7",
      "parents": [
        "c1fe98ad16e9d360a938ef229f5e264fea229159"
      ],
      "author": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sun Aug 23 10:39:52 2026 +0200"
      },
      "committer": {
        "name": "Sergey Nuyanzin",
        "email": "snuyanzin@gmail.com",
        "time": "Sat Aug 29 08:13:24 2026 +0200"
      },
      "message": "[CALCITE-7734] `MATCH_RECOGNIZE` with an unqualified column in `MEASURES`/`DEFINE` produces an unusable plan\n"
    },
    {
      "commit": "c1fe98ad16e9d360a938ef229f5e264fea229159",
      "tree": "05aa70ddbbb301e65976b0c571111024e6777030",
      "parents": [
        "2a9ce6c38270b654b3e32380a64576e29189cfc2"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Mon Aug 17 16:32:43 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Fri Aug 28 11:47:29 2026 -0700"
      },
      "message": "[CALCITE-7269] SqlValidator throws exception if lambda parameter is struct\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    },
    {
      "commit": "2a9ce6c38270b654b3e32380a64576e29189cfc2",
      "tree": "94974bb30878549de326a1214be5c66e294a9861",
      "parents": [
        "5e694d25463965bdce9a2ec4bcc813dec81d5984"
      ],
      "author": {
        "name": "1fanwang",
        "email": "1fannnw@gmail.com",
        "time": "Wed Aug 26 01:03:37 2026 -0400"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Aug 27 12:58:09 2026 -0700"
      },
      "message": "[CALCITE-6089] EnumerableSortedAggregate fails with ClassCastException: class X cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList\n\nSigned-off-by: 1fanwang \u003c1fannnw@gmail.com\u003e\n"
    },
    {
      "commit": "5e694d25463965bdce9a2ec4bcc813dec81d5984",
      "tree": "9cbed7594f8e708523fe2c8b587671189c472897",
      "parents": [
        "95101d8255cad4a0e92f25ec00797bb16338cfb3"
      ],
      "author": {
        "name": "1fanwang",
        "email": "1fannnw@gmail.com",
        "time": "Wed Aug 26 01:03:00 2026 -0400"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Thu Aug 27 09:11:00 2026 -0700"
      },
      "message": "[CALCITE-6792] RelJsonReader failed to read RelJsonWriter output if \u0027NaN\u0027 or \u0027Infinity\u0027 approximate numerics are present\n\nSigned-off-by: 1fanwang \u003c1fannnw@gmail.com\u003e\n"
    },
    {
      "commit": "95101d8255cad4a0e92f25ec00797bb16338cfb3",
      "tree": "175b4363c807d5744bbbe8e1e88d1762f8a9e0ae",
      "parents": [
        "56471514aad24f98de054fc0e2fd1f7475f239eb"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Mon Aug 17 15:21:37 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Aug 27 10:13:54 2026 +0100"
      },
      "message": "[CALCITE-7722] RexSimplify IS [NOT] NULL on a safe operator with Strong policy ANY and unsafe operands can be further simplified\n"
    },
    {
      "commit": "56471514aad24f98de054fc0e2fd1f7475f239eb",
      "tree": "588ce172a102669bd94bc5c9c0b603a6447281e5",
      "parents": [
        "a3c2b9f39cb83193c0c91287491995c8ee237935"
      ],
      "author": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Tue Aug 25 12:24:32 2026 +0100"
      },
      "committer": {
        "name": "Ruben Quesada Lopez",
        "email": "rubenql@gmail.com",
        "time": "Thu Aug 27 08:57:01 2026 +0100"
      },
      "message": "[CALCITE-7740] Harden ModelHandler against content-dependent errors\n"
    },
    {
      "commit": "a3c2b9f39cb83193c0c91287491995c8ee237935",
      "tree": "f45c657d154c205c64604599bd1e4c6a0495c2d4",
      "parents": [
        "a05b05e7e9be77c7ed8c2e869975718a0b43765c"
      ],
      "author": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Aug 26 16:30:17 2026 -0700"
      },
      "committer": {
        "name": "Mihai Budiu",
        "email": "mbudiu@feldera.com",
        "time": "Wed Aug 26 17:27:44 2026 -0700"
      },
      "message": "[CALCITE-7743] Postfix: errorprone correction\n\nSigned-off-by: Mihai Budiu \u003cmbudiu@feldera.com\u003e\n"
    }
  ],
  "next": "a05b05e7e9be77c7ed8c2e869975718a0b43765c"
}
