)]}'
{
  "log": [
    {
      "commit": "de7f610abc4fe7bb74c3ffae5b5369158f4b5eba",
      "tree": "47e6445059444b1193e79defcf25b394f046e290",
      "parents": [
        "764e225292e07a8de11ed924dbdde4c9221b5ff8"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Mon Apr 06 12:17:17 2026 -0700"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Apr 09 19:43:57 2026 +0000"
      },
      "message": "IMPALA-10160: Add test for kernel_stack_watchdog\n\nIMPALA-13844 registered the Kudu stack trace signal handler, which also\nfixed IMPALA-10160 where slow RPCs would trigger the KernelStackWatchdog\nto print a stack trace, but no stack trace could be generated because\nthe signal handler was not installed. Adds a test to avoid regressing.\n\nChange-Id: Iccee582e9a3ea355280bc5ab94462eb76c1cb97d\nReviewed-on: http://gerrit.cloudera.org:8080/24172\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "764e225292e07a8de11ed924dbdde4c9221b5ff8",
      "tree": "8125be00b2f39eff526489a2f838860fd1cb27c7",
      "parents": [
        "cb4fc4e03233a7ff268e8fa8f8891e07c9643213"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Wed Apr 08 15:12:56 2026 +0200"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Apr 09 00:09:36 2026 +0000"
      },
      "message": "IMPALA-14881: Fix instance id in scanner threads\n\nSince IMPALA-6416 the instance id of new threads is inherited\nfrom parent thread instead of setting explicitly. This is not\ncorrect in case of scanner threads (mt_dop\u003d0) when\nHdfsScanNode::ThreadTokenAvailableCb is called through\nThreadResourcePool\u0027s callback where the thread can come from\nan unrelated query.\n\nNote that this issue only affects diagnostics.\n\nTesting:\n- tested manually by running parallel scan heavy queries and adding\n  logging for fragment id in scanner thread - before the fix these\n  log lines could contain two different instance ids\n\nChange-Id: I2ccfb94353843eaa83cf7371788d0fc151fd3e50\nReviewed-on: http://gerrit.cloudera.org:8080/24174\nReviewed-by: Zoltan Borok-Nagy \u003cboroknagyz@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "cb4fc4e03233a7ff268e8fa8f8891e07c9643213",
      "tree": "fb66d2ccfbce742fd7dd81bbaacb4b04612bed71",
      "parents": [
        "402e07c64620d142833fd5d0588010fc5d257620"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Apr 01 15:52:14 2026 -0700"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Apr 06 22:37:25 2026 +0000"
      },
      "message": "IMPALA-14855: Make number of query map shards configurable\n\nAllow configuring the number of query map shards used for tracking\nqueries with `--num_query_map_shards`. Retains the default of 4.\n\nRemoves unused and buggy ScopedShardedMapPBRef.\n\nChange-Id: Icacb7fc541171546925798c2c652d60052bb774b\nReviewed-on: http://gerrit.cloudera.org:8080/24161\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "402e07c64620d142833fd5d0588010fc5d257620",
      "tree": "f16966eecd1eed35dfabdb2bb73ed1d08fd86f7b",
      "parents": [
        "b650fda439c578d4067bfbc5694c348cb8a8c4e6"
      ],
      "author": {
        "name": "stiga-huang",
        "email": "huangquanlong@gmail.com",
        "time": "Mon Apr 06 00:07:35 2026 +0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Mon Apr 06 21:03:33 2026 +0000"
      },
      "message": "IMPALA-14876: Use char* for thread name in impala::Thread::SuperviseThread\n\nimpala::Thread::SuperviseThread() runs most of the backend threads. Its\nfirst parameter is the thread name in std::string type. Backtraces in\npstack/gdb usually omit its value by just showing \"name\u003d...\".\n\nThe thread name is important to find the thread of a given fragment\ninstance, e.g.,\n  \"exec-finstance (finst:594ed4f65014cbd3:4bae840b00000001)\",\n  \"query-state-594ed4f65014cbd3:4bae840b00000000\",\n  \"scanner-thread (finst:594ed4f65014cbd3:4bae840b00000001, plan-node-id:0, thread-idx:2)\".\n\nThis patch improves this by changing the parameter type of \u0027name\u0027 to\nconst char* so the string can be actually printed. It\u0027s unexpected /\nunsafe for SuperviseThread() to keep refering to parameters passed by\nreference or pointer to it. So a thread local string is used to copy the\nthread name and \u0027name\u0027 pointer is updated to point to it. See JIRA\ncomments for some examples.\n\nNote that I have to add __attribute__((optimize(\"O0\"))) to the method to\navoid \u0027name\u0027 being printed as \"\u003coptimized out\u003e\". This is a GCC\nattribute. For clang, we use [[clang::optnone]].\n\nTests\n - Manually tested pstacks on Rocky 9.7 when running a slow query:\n   select count(*) from functional.alltypes where sleep(100) \u003c id;\n\nChange-Id: I7fa831d4efd7d8665f9c69fcea960e8e1c47aa2b\nReviewed-on: http://gerrit.cloudera.org:8080/24171\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nReviewed-by: Jason Fehr \u003cjfehr@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "b650fda439c578d4067bfbc5694c348cb8a8c4e6",
      "tree": "21690b17578e1e6617c26edaf39cd3d7765500f9",
      "parents": [
        "81c82c063e73b966b92b103287346f91b6c98b03"
      ],
      "author": {
        "name": "Fang-Yu Rao",
        "email": "fangyu.rao@cloudera.com",
        "time": "Wed Apr 01 22:43:06 2026 -0700"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Sat Apr 04 03:12:05 2026 +0000"
      },
      "message": "IMPALA-14875: Make a Preconditions check case-insensitive in authorize()\n\nIn IMPALA-14507, we slightly revised a Preconditions check that requires\neach column-level privilege request has at least one respective\ntable-level privilege request. However, we found that this introduced a\nregression due to which the check would fail in the local catalog mode\nif the name of the target table in the CREATE TABLE AS SELECT statement\ncontains uppercase letters. For instance, a query like the following\nwould fail in the local catalog mode.\n\n create table alltypes_A as select int_col from functional.alltypes;\n\nOne root cause of this was that during the registration of the\ncolumn-level INSERT privilege in InsertStmt#analyze(),\ntable_.getTableName().getTbl() would still contain uppercase letters in\nthe local catalog mode. As a result, during the Preconditions check in\nBaseAuthorizationChecker#authorize(), the key of the same table in the\nmap from table name to the associated table-level privilege requests\ndid not match that in the map from table name to the associated\ncolumn-level privilege requests, causing the check to fail. In our\nexample, the key of the target table in the former map would end with\n\"alltypes_a\", whereas that of the latter map ended with \"alltypes_A\".\n\nTo fix the issue, this patch lowercases the table name when constructing\nthe 2 maps above.\n\nOn a related note, the issue only affected the CTAS statement but not\nthe INSERT statement. This is because during the analysis of the CTAS\nstatement in the local catalog mode, we create a temporary target table\n\u0027table_\u0027 such that table_.getTableName().getTbl() could still contain\nuppercase letters and then call InsertStmt#analyze() with \u0027table_\u0027 being\nthe target table. For the INSERT statement, the name of the target table\nis already lowercased for both catalog modes.\n\nTesting:\n - Added test cases to verify that a CTAS statement could pass the\n   Preconditions check even though the name of target table has\n   capital letters.\n\nChange-Id: Idfae24a7de8da683bc0bf28a947188ab96481301\nReviewed-on: http://gerrit.cloudera.org:8080/24165\nReviewed-by: Yida Wu \u003cwydbaggio000@gmail.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "81c82c063e73b966b92b103287346f91b6c98b03",
      "tree": "e3e51b7880866f274ec589740d515d60783e8ebc",
      "parents": [
        "a01d053d5e80329ab511334473060d73176b9475"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Sun Feb 01 06:56:12 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Fri Apr 03 16:49:17 2026 +0000"
      },
      "message": "IMPALA-14716: Calcite Planner: Make condition estimates more similar to original planner\n\nThe first pass of condition estimates were derived from a different database.\nThis commit makes the condition estimates a little bit more similar to what\nis being done with the original Impala planner. Using calculations similar to\nthe current Impala planner is better for the first pass so we have slightly\nmore of an \"apples to apples\" comparison of the Calcite planner versus the\noriginal planner.  These calculations should be re-examined later, especially\nwhen other features such as generating histogram statistics are implemented.\n\nThe default for unknown estimates is now taken from Expr.DEFAULT_SELECTIVITY (.1)\nThis gets applied to many different expressions, including things like \u003e\u003d, \u003c\u003d,\netc...\n\nThe disjunct condition was kept fairly straightforward and match the logic in\nCompoundPredicate.computeSelectivity()\n\nHowever, upon debugging, to obtain closer estimates to the original planner,\nthe conjunction condition uses code found in PlanNode.computeCombinedSelectivity().\n\nIMPALA-14867 has been created for \"between\" selectivity which has not yet\nbeen implemented.\n\nAn issue with distinct row counts on filters is also fixed with this commit.\nThe distinct row count on a filter only changes if the filter condition\ncontains an input reference that matches the column with which we are trying\nto find distinct rows. IMPALA-14640 is also fixed by this commit, which now\nhandles the case where there are no statistics provided.\n\nTesting: Some TestCalciteStats changed due to this commit as well as some\ntpcds query plans.\n\nChange-Id: I3b9a25259916504296dbd9a9cb9466be8fac8718\nReviewed-on: http://gerrit.cloudera.org:8080/23930\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "a01d053d5e80329ab511334473060d73176b9475",
      "tree": "2ca1b7d695c31b7fd5ebc30d9fe1fdb614d2a5bb",
      "parents": [
        "ca5c8e03383ef5c210a5aefeb9284d3f1b2b382f"
      ],
      "author": {
        "name": "stiga-huang",
        "email": "huangquanlong@gmail.com",
        "time": "Thu Apr 02 12:30:01 2026 +0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Apr 02 17:59:19 2026 +0000"
      },
      "message": "IMPALA-14874: Add more TCMalloc metrics\n\nThis patch exposes more numeric properties from TCMalloc in the /metrics\npage. The following metrics are added.\n - tcmalloc.current-total-thread-cache-bytes:\n   Number of bytes used across all thread caches.\n - tcmalloc.central-cache-free-bytes:\n   Number of free bytes in the central cache that have been assigned to\n   size classes.\n - tcmalloc.transfer-cache-free-bytes:\n   Number of free bytes that are waiting to be transferred between the\n   central cache and a thread cache.\n - tcmalloc.thread-cache-free-bytes:\n   Number of free bytes in thread caches.\n\nTests\n - Added BE test in metrics-test.\n - Manually verified the metrics after running some queries.\n\nGenerated-by: composer-2\nGenerated-by: claude-4.5-sonnet\nChange-Id: Iec8eb33415baea77451f97df3545e386a4b8c894\nReviewed-on: http://gerrit.cloudera.org:8080/24164\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nReviewed-by: Jason Fehr \u003cjfehr@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "ca5c8e03383ef5c210a5aefeb9284d3f1b2b382f",
      "tree": "d8a0d600c826b888e18d55de793785fa2f6eb35f",
      "parents": [
        "612a4b63fc091faa143cb5f90ad459b983bb7a86"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Tue Mar 31 05:05:30 2026 -0700"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Wed Apr 01 14:00:44 2026 +0000"
      },
      "message": "IMPALA-14864: Fix failure of Ozone and S3 builds\n\nHDFS has been replaced by $FILESYSTEM_NAME in order for Ozone\nand S3 builds to work for tests in calcite.test\n\nChange-Id: I0e2d2b495cc052b6f7acbbc58453f93c920c2cb0\nReviewed-on: http://gerrit.cloudera.org:8080/24156\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "612a4b63fc091faa143cb5f90ad459b983bb7a86",
      "tree": "87eb205d95667f53ede63065dd0261410784889f",
      "parents": [
        "59504bd7ca7845bf88ea03a671840dee62baf981"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Fri Sep 12 17:18:32 2025 -0700"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Tue Mar 31 21:12:57 2026 +0000"
      },
      "message": "IMPALA-14436: Calcite planner: Fix min/max runtime filters\n\nThis patch fixes an issue where min/max runtime filters were not getting\ncreated for nested loop joins. The conjuncts need to be placed in\nthe right variables when initializing the NestedLoopJoinNode.\n\nFor inner joins, all the conjuncts need to be in the filterConjuncts\nin order to be processed for the min/max runtime filter.\n\nThis patch is needed to allow overlap_min_max_filters.test to succeed\nfor the Calcite planner.\n\nAn extra minor fix has been thrown into the patch: When the conjunct\nis \"IS NOT DISCTINCT FROM\", this should be treated as an equi-join\nconjunct.\n\nChange-Id: I4e5f9be67a775a771c0868ac4407410385e8a755\nReviewed-on: http://gerrit.cloudera.org:8080/23912\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "59504bd7ca7845bf88ea03a671840dee62baf981",
      "tree": "4d0614a633144cc99db2e37e89c831e71050c5b9",
      "parents": [
        "bacd1a561c89465a15d78c9d220e758443e53790"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Thu Mar 26 08:08:48 2026 +0100"
      },
      "committer": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Mon Mar 30 17:20:16 2026 +0000"
      },
      "message": "IMPALA-14859: Fix crashes in parquet-column-chunk-reader.cc\n\nIf running out of memory when trying to uncompress dictionary page\nbuffer during parquet read, there was a crash, because there was an\nassumption that dict_page_pool_ failed to allocate it, but\ndict_page_pool_ is not initialized in this case, so there is a nullptr\ndereference.\nThe error was fixed by only referencing dict_page_pool_ in the path\nwhere it is valid, and reverting the other path to reference parent\u0027s\ndictionary_pool_, which always exists.\n\nThe error was introduced in IMPALA-14794\nwith commit 49f0ab1d09541f960cee12e9a5e6aa38ec21565a\n\nChange-Id: I7e6b4e17c627baf97dee04cdfb9c63cdc0dad3b5\nReviewed-on: http://gerrit.cloudera.org:8080/24140\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\n"
    },
    {
      "commit": "bacd1a561c89465a15d78c9d220e758443e53790",
      "tree": "15ed7056b53a5752fb243eec9068a06b55c921a4",
      "parents": [
        "957c398ad08930878b830a1eb1c1e6138a2a6929"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Thu Feb 26 14:25:46 2026 -0800"
      },
      "committer": {
        "name": "Quanlong Huang",
        "email": "huangquanlong@gmail.com",
        "time": "Sat Mar 28 03:44:15 2026 +0000"
      },
      "message": "IMPALA-14820: Calcite Planner: Memory allocations are too high\n\nThe following queries are showing memory allocations that are too\nhigh:\n\nIn bloom_filters.test:\n\nwith l as (select * from tpch.lineitem UNION ALL select * from tpch.lineitem)\n  select STRAIGHT_JOIN count(*) from (select * from tpch.lineitem a LIMIT 1) a\n    join (select * from l LIMIT 125000) b on a.l_orderkey \u003d -b.l_orderkey\n\nIn admission-max-min-mem-limits.test:\n\nselect * from functional_parquet.alltypes limit 1;\n\nThe issue in the first query is that the stats need to be recomputed after\nthe limit is set. Setting the limit propagates into its children nodes, so\nthe stats also need to be recomputed when the limit is set.\n\nThe issue in the second query is that the top level needs to know when there\nis only one row output, and the case with a \"limit 1\" clause was missing from\nthe check. Note: Calcite uses the Sort RelNode for \"order by\", \"limit\" and\n\"offset\".\n\nThe bloom_filters.test is still incorrect, but the memory allocation is much\nlower after this commit. IMPALA-14811 has been created for this issue.\n\nChange-Id: I9e84061b65f115ea65a9d2c2d40173843040ca0c\nReviewed-on: http://gerrit.cloudera.org:8080/24079\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nReviewed-by: Quanlong Huang \u003chuangquanlong@gmail.com\u003e\n"
    },
    {
      "commit": "957c398ad08930878b830a1eb1c1e6138a2a6929",
      "tree": "4790e1826604ba511e18cdf5e25501bc8939bc3c",
      "parents": [
        "94436d4e2198720619b90719c3326f6b37fe30f7"
      ],
      "author": {
        "name": "stiga-huang",
        "email": "huangquanlong@gmail.com",
        "time": "Wed Mar 25 08:36:57 2026 +0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Fri Mar 27 15:45:41 2026 +0000"
      },
      "message": "IMPALA-12715: deflake test_allow_metadata_update_local_catalog\n\nThe test expects DESCRIBE on an unloaded table can load the table meta\nin coordinator side. However, this can\u0027t be guaranteed in the local\ncatalog mode since catalog updates(invalidations) from statestore could\ninvalidate the cache (IMPALA-14856).\n\nThe test is flaky since DESCRIBE uses the table meta twice, one in\nanalyze phase (StmtMetadataLoader) and the other in execution\n(Frontend.doDescribeTable()). If the statestore update arrives between\nthem, the second usage can load the table meta again so the cache item\nexists. However, if the statestore update arrives after the second\nusage, the cache item is removed so the test fails.\n\nThis patch deflakes the test by using REFRESH on the unloaded table to\ntrigger metadata loading in catalogd side. Run it with sync_ddl\u003dtrue to\nmake sure coordinator processes the statestore update. Then run a\nDESCRIBE to make sure the table meta is loaded in coordinator side.\n\nTests:\n - ran the test locally 200 times.\n - ran test_ranger.py\n\nChange-Id: I538c30bf4d1439108bd1cd1cb64208281974c1f6\nReviewed-on: http://gerrit.cloudera.org:8080/24135\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "94436d4e2198720619b90719c3326f6b37fe30f7",
      "tree": "ac6f15fb1bd176bfdf83293c3551ba1552828cc1",
      "parents": [
        "b8dbc492a231fc0c995170e12ccd3a4bf4a93b24"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Mon Sep 01 13:50:45 2025 -0700"
      },
      "committer": {
        "name": "Quanlong Huang",
        "email": "huangquanlong@gmail.com",
        "time": "Fri Mar 27 08:44:06 2026 +0000"
      },
      "message": "IMPALA-14412: Calcite Planner: Need to handle exponent notation correctly\n\nCalcite treats expressions like \"1e32\" as a double. This commit ensures that\nthe exponent expressions are parsed as decimal types.\n\ntest can be found in decimal-exprs.test\n\nselect avg(c) from\n(select cast(1e32 as decimal(38,0)) - cast(1 as decimal(38,0)) as c) t;\n\nThis change is broken before the Calcite 1.41 upgrade, but can only be fixed\nafter the 1.41 upgrade has been committed.\n\nChange-Id: Idea6d622e4f2720d323192f953867c4b82442627\nReviewed-on: http://gerrit.cloudera.org:8080/24078\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Quanlong Huang \u003chuangquanlong@gmail.com\u003e\n"
    },
    {
      "commit": "b8dbc492a231fc0c995170e12ccd3a4bf4a93b24",
      "tree": "e08d0bfda82fe8f2019b8b2f8ae0abd9b2d4bd08",
      "parents": [
        "772ebd2273a5cae89df2099b51d7e56ed464c31d"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Sat Aug 30 10:35:05 2025 -0700"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Fri Mar 27 01:50:54 2026 +0000"
      },
      "message": "IMPALA-14432: Upgrade Calcite version to v1.41\n\nThe following changes were needed to upgrade Calcite to v1.41:\n\n- pom.xml file change\n\n- Changed ImpalaConformance to derive from SqlAbstractConformance\n  which will automatically derive defaults for any new methods\n  in the class\n\n- Handled a Calcite fix for coercing types across Union inputs.\n  Calcite can add a cast to a char literal to make it a different\n  size char literal, whereas Impala needs these literals to be\n  of type string.\n\n- moved flatten code to only happen once and only happen within filter\n  creation (which is where the exception was thrown that it needed a\n  flattend RexNode).\n\n- handled a problem where operator lists were greater than one and\n  the opname was not simple. This isn\u0027t used by Impala, so it is\n  basically ignored.\n\n- added new default shuttle methods.\n\n- removed a char/string conversion hack that was no longer needed.\n\n- fixed a compatibility problem to ensure nullability for RelDataTypes\n  are equivalent.\n\n- fixed a regression for the \u0027like\u0027 operator in 1.41. The Calcite jira\n  associated with this is CALCITE-7287 which has been fixed in 1.42. The\n  code needed to work around this regression is in RexCallConverter and\n  can be removed when Calcite 1.42 is released.\n\n- The NumericLiteral toString() method returns \"toPlainString()\" now, which\n  seems to make sense anyway. The reason this change was needed for Calcite\n  was due to CALCITE-2067. The Literal within Calcite is still the same value\n  when created from a double, but the BigDecimal toString returns it in\n  exponent notation. This change only applies to values between 1.0 x 10^-8\n  and 1.0 x 10^8.\n\n- Some of the tpcds queries have an added cast (e.g. tpcds-q1, there is a\n  cast around the right side of the \"\u003c\" operator to DECIMAL(38, 2). This was\n  due to a fix in 1.38, CALCITE-6617. With that fix, the left and right sides\n  of the \"\u003c\" operator now have an equivalent precision and scale.\n\nChange-Id: I0fde6381c04958d69f1bee13864c11c7cd385d29\nReviewed-on: http://gerrit.cloudera.org:8080/24043\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "772ebd2273a5cae89df2099b51d7e56ed464c31d",
      "tree": "e640d743fe07636b7d5f49e11a591582c4b7387e",
      "parents": [
        "096707022d4afdc9da80a459993492a8deeb0ff3"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Wed Mar 25 16:00:18 2026 +0530"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Mar 26 21:59:39 2026 +0000"
      },
      "message": "IMPALA-13122: [addendum 2] Skip disk ID validation in test_file_metadata_stats for Ozone\n\nOzone storage, similar to erasure coding, may not provide disk IDs.\nUpdate the test to skip the host:disk pair stats check when running\non Ozone clusters by checking IS_OZONE in addition to the existing\nerasure coding check.\n\nChange-Id: I978c542cb9467658601306b87624def0bd256182\nReviewed-on: http://gerrit.cloudera.org:8080/24142\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "096707022d4afdc9da80a459993492a8deeb0ff3",
      "tree": "c4cf83987873dcce1568166137dbec5241dd1e96",
      "parents": [
        "65db4a4558cbf4ea40765bda6902471263df3468"
      ],
      "author": {
        "name": "Yida Wu",
        "email": "wydbaggio000@gmail.com",
        "time": "Wed Mar 04 08:44:50 2026 +0000"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Mar 26 18:21:12 2026 +0000"
      },
      "message": "IMPALA-14807: Fix squeasel MD5 issue in OpenSSL 3.0\n\nOpenSSL 3.0 deprecates low-level hashing APIs such as MD5_Init() and\nSHA1_Init(). Building in FIPS-compliant environments would fail.\n\nThis change replaces both MD5 and SHA1 implementations in squeasel.c\nwith the EVP digest interface using EVP APIs. This ensures the\ncompatibility with OpenSSL 3.0 to support FIPS 140-3.\n\nAlso, because the new EVP_MD_CTX_new() and EVP_MD_CTX_free() were\nintroduced in OpenSSL 1.1.0, this patch adds macros to map these\ncalls to old EVP_MD_CTX_create() and EVP_MD_CTX_destroy() on older\nOpenSSL versions.\n\nTests:\nPassed exhaustive build.\nTests the old interface also working in RHEL 7 with OpenSSL 1.0.2.\n\nChange-Id: I806394633eaa73d973c27988fd303004487ddb4a\nReviewed-on: http://gerrit.cloudera.org:8080/24110\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "65db4a4558cbf4ea40765bda6902471263df3468",
      "tree": "2ae8e989f9048bb08dff021799743abbca54af0d",
      "parents": [
        "a44a07d7345ecd69175fac250d710189fb491b3d"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Fri Mar 06 09:26:56 2026 +0100"
      },
      "committer": {
        "name": "Noemi Pap-Takacs",
        "email": "npaptakacs@cloudera.com",
        "time": "Thu Mar 26 15:24:52 2026 +0000"
      },
      "message": "IMPALA-14592: Enable OPTIMIZE for Iceberg V3 tables\n\nRow Lineage data is mandatory for Iceberg V3 tables, therefore\nwe disabled all write operations that should but cannot write\nthe Row Lineage fields \u0027row-id\u0027 and \u0027last-updated-sequence-number\u0027.\n\nThe OPTIMIZE TABLE statement must preserve the original Row Lineage\nvalues assigned to the rows, therefore it must persist them in\nthe compacted data files. This patch extends the OptimizeStmt class\nto generate the proper expressions needed for Row Lineage.\n\nTesting\n * e2e tests added\n\nChange-Id: I1c3cc4b9aaa46e494e1aa4583c1a6aafecad48de\nReviewed-on: http://gerrit.cloudera.org:8080/24093\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Noemi Pap-Takacs \u003cnpaptakacs@cloudera.com\u003e\n"
    },
    {
      "commit": "a44a07d7345ecd69175fac250d710189fb491b3d",
      "tree": "e695bc400a639e3e0724e23048cfbeb142c6d878",
      "parents": [
        "9ed45a7b8e066ec853d4188f204ff9674efe737a"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Mon Feb 16 11:11:26 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Mar 25 15:50:07 2026 +0000"
      },
      "message": "IMPALA-14641: Add detailed operation page for Catalogd operations\n\nEnhanced the /operations page in Catalogd by replacing the inline\n\"details\" column with a \"View Details\" link that opens a dedicated\npage showing comprehensive operation information including:\n- Execution timeline with event timestamps and delta times\n- Request and response byte sizes\n- All existing operation metadata\n\nTesting:\n- test_catalog_operation_detail_endpoint: Validates detail page fields\n- test_catalog_operation_detail_invalid_query_id: Tests error handling\n- test_catalog_operation_detail_in_flight: Tests real-time timeline\n\nChange-Id: Ib80ce3b5873672065b04b00a21d3419a1db0969c\nReviewed-on: http://gerrit.cloudera.org:8080/23811\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "9ed45a7b8e066ec853d4188f204ff9674efe737a",
      "tree": "4c5e413e61e50fd3b41962f07b4658328214ab19",
      "parents": [
        "adcff60d2d4ff5ec2556bf90a088804407247ed8"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Fri Aug 29 17:20:33 2025 -0700"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Tue Mar 24 22:14:03 2026 +0000"
      },
      "message": "IMPALA-13574: Calcite Planner: Enable straight join hint\n\nEnable the straight join feature within Calcite.\n\nIf the straight join keyword is found, it will avoid doing join\noptimization on any joins within that query and all of its\nsubqueries.\n\nTesting for this commit will be done in the Impala test\nframework once it is enabled.\n\nChange-Id: I7246f59f9077717e18f6a9d7155939f016c448a9\nReviewed-on: http://gerrit.cloudera.org:8080/23784\nReviewed-by: Jason Fehr \u003cjfehr@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Steve Carlin \u003cscarlin@cloudera.com\u003e\n"
    },
    {
      "commit": "adcff60d2d4ff5ec2556bf90a088804407247ed8",
      "tree": "d4cb8e53769eb416caf40010595f313488873cab",
      "parents": [
        "46b55b30d993e7c056140bc07c17b2203a963382"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Fri Mar 13 09:25:01 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Mar 24 20:46:42 2026 +0000"
      },
      "message": "IMPALA-14700: Add read support for Parquet LZ4_RAW compression\n\nThis change requires a Parquet Version higher than the current\none (1.12.3), because of the LZ4_RAW Thrift enum value.\nFor that reason, APACHE_PARQUET_VERSION is increased to 1.15.2 in this\npatch, and is used instead of CDP_PARQUET_VERSION, until\nCDP_PARQUET_VERSION gets to a high enough version.\n\nParquet deprecated LZ4 compression, and added a new one, LZ4_RAW.\nThis patch adds read support for LZ4_RAW. It uses Lz4Compressor\n(Corresponding to THdfsCompression::LZ4).\nThe write path hasn\u0027t changed and continues to use LZ4_BLOCKED.\n\nTesting:\n-Added a small test file using lz4_raw compression, from the\nparquet-testing repository.\n-Added a test case to test_scanners.py to check we can read the file.\n\nChange-Id: I22ee4e5bf9abec37be941c1dca8019a563343d34\nReviewed-on: http://gerrit.cloudera.org:8080/24059\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "46b55b30d993e7c056140bc07c17b2203a963382",
      "tree": "e2bb441d0e5aa26ab26f7a7766d306d7270e769c",
      "parents": [
        "0ef10d61ddc0352331cc58d519f51d645d6109b6"
      ],
      "author": {
        "name": "Peter Rozsa",
        "email": "prozsa@cloudera.com",
        "time": "Thu Feb 19 14:18:25 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Mar 24 13:39:34 2026 +0000"
      },
      "message": "IMPALA-14755:(part 1) Implement Puffin Blob reader and File writer\n\nThis is the first part of a multi-part implementation adding support for\nIceberg deletion vectors stored in Puffin files. This commit introduces\nthe core infrastructure for reading and writing Puffin format files\ncontaining deletion vector blobs.\n\nThis commit adds:\n- Generic BlobReader template base class for reading blob data from HDFS\n  with specialized DeletionVectorBlobReader for Puffin deletion vectors\n- PuffinWriter that writes Puffin files with deletion vector blobs,\n  supporting merging of existing and new deletion vectors\n- Puffin data structures (BlobMetadata, BlobData, File) and serialization\n- Integration with table sink pipeline via new PUFFIN THdfsFileFormat\n- Extended OutputPartition with PuffinWriteResult for tracking DV metadata\n- CRC32 checksums for blob integrity and RoaringBitmap64::Or() for DV merging\n- Updated Thrift/FlatBuffer schemas for deletion vector metadata\n\nTesting:\n - as this patch is a the first part of a multi-part implementation,\n   the functionality is validated only in part 2. For reader/writer\n   sanity checks, manual validation performed with Spark 3.5.5 with\n   Iceberg 1.10.1 installed.\n\nChange-Id: I068a071f9db907064ccec8568db5234863eb4587\nReviewed-on: http://gerrit.cloudera.org:8080/24071\nReviewed-by: Zoltan Borok-Nagy \u003cboroknagyz@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "0ef10d61ddc0352331cc58d519f51d645d6109b6",
      "tree": "81143f6ca9d54d1646f4b490e7cb0ccbd6c8f9e7",
      "parents": [
        "a04b8184009e619dba7022abddd2e0fc5f569ab8"
      ],
      "author": {
        "name": "Fang-Yu Rao",
        "email": "fangyu.rao@cloudera.com",
        "time": "Mon Mar 02 15:35:30 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Mar 24 10:18:22 2026 +0000"
      },
      "message": "IMPALA-14116: Skip NULL in an IN-list against a column of an ORC table\n\nThis patch fixes a bug introduced in IMPALA-6505 that was later\nmanifested by IMPALA-10873.\n\nSpecifically, IMPALA-6505 allowed us to push min/max predicates against\ncolumns of an ORC table to the scan node. Given a supported column type,\nto prune out rows that do not satisfy a predicate, Impala has to provide\nthe corresponding function in the ORC library with an instance of the\nliteral, and the type of the predicate. The type of the literal has to\nmatch the type of the predicate. Otherwise, the ORC library would throw\nan exception before scanning the ORC table.\n\nHowever, during the execution of an HdfsOrcScanner, when there was a\nnull literal in a predicate, Impala would provide a literal whose type\ndid not match the type of the predicate for the date, string, and\ndecimal columns. This is because we provided the constructor of\norc::Literal with a pointer to orc::PredicateDataType instead of an\norc::PredicateDataType when instantiating an orc::Literal of these data\ntypes. Due to this, we actually created a Boolean orc::Literal that did\nnot match the respective predicate type (i.e., date, string, or decimal\n).\n\nThe aforementioned issue above was dormant because with IMPALA-6505, we\nonly pushed down binary predicates to the scan nodes of ORC tables, and\nImpala\u0027s front-end did not push down the null literal in a binary\npredicate in such a case. The issue was later manifested by\nIMPALA-10873 in that we started pushing IN-list predicates to the ORC\nscanner, and the null literal in the IN-list predicates was not filtered\nout by the front-end in IMPALA-10873.\n\nTo fix this issue, the patch makes the front-end not push down the null\nliteral in the IN-list predicates against columns of ORC tables. This\npatch also corrects how we instantiate an orc::Literal in\nHdfsOrcScanner.\n\nTesting:\n - Added an end-to-end test to verify Impala could correctly return the\n   result when there is NULL in an IN-list predicate against date,\n   string, and decimal columns of an ORC table.\n\nChange-Id: Id62a631e5aa97132afbe0b184d427ad6bc1a4ad0\nReviewed-on: http://gerrit.cloudera.org:8080/24062\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "a04b8184009e619dba7022abddd2e0fc5f569ab8",
      "tree": "c59b96396b132c5a2ca46fa7d093ab46c196cfd6",
      "parents": [
        "20220fb9232b94d228383fe693a383d2c71a4733"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Tue Mar 03 17:25:48 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Mar 24 04:44:41 2026 +0000"
      },
      "message": "IMPALA-14803: Speed up Iceberg table minimal topic updates\n\nBefore this patch only HdfsTable was optimized for minimal topic\nupdates and IcebergTable created Thrift objects that included\nall file descriptors. Most of the info in the Thrift object\nis not used later in minimal topic mode (see\nCatalogServiceCatalog#getMinimalObjectForV2). The patch\nchanges all table types other than HdfsTable to create\nminimal Thrift representation.\n\nThe minimal topic update Thrift generation for an 1M file Iceberg\ntable decreased from around 0.5s to \u003c1ms. I don\u0027t expect\nnoticable change for other table types as only HdfsTable and\nIcebergTable have file descriptor lists.\n\nChange-Id: If037a855dc5d2c4292347b34ebe0221477eae2fe\nReviewed-on: http://gerrit.cloudera.org:8080/24064\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "20220fb9232b94d228383fe693a383d2c71a4733",
      "tree": "f491dcae8533eda0893de453c76225db84482692",
      "parents": [
        "04b7a15cbd2ef4411d829682d5e9e722c477b242"
      ],
      "author": {
        "name": "Mihaly Szjatinya",
        "email": "mszjat@pm.me",
        "time": "Thu Mar 12 13:33:44 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Mar 23 13:20:44 2026 +0000"
      },
      "message": "IMPALA-14583: Support partial RPC dispatch for Iceberg tables\n\nThis patch extends IMPALA-11402 to support partial RPC dispatch for\nIceberg tables in local catalog mode. IMPALA-11402 added support for\nHDFS partitioned tables where catalogd can truncate the response of\ngetPartialCatalogObject at partition boundaries when the file count\nexceeds catalog_partial_fetch_max_files.\n\nFor Iceberg tables, the file list is not organized by partitions but\nstored as a flat list of data and delete files. This patch implements\noffset-based pagination to allow catalogd to truncate the response at\nany point in the file list, not just at partition boundaries.\n\nImplementation details:\n- Added iceberg_file_offset field to TTableInfoSelector thrift struct\n- IcebergContentFileStore.toThriftPartial() supports pagination with\n  offset and limit parameters\n- IcebergContentFileStore uses a reverse lookup table\n  (icebergFileOffsetToContentFile_) for efficient offset-based access to\n  files\n- IcebergTable.getPartialInfo() enforces the file limit configured by\n  catalog_partial_fetch_max_files (reusing the flag from IMPALA-11402)\n- CatalogdMetaProvider.loadIcebergTableWithRetry() implements the retry\n  loop on the coordinator side, sending follow-up requests with\n  incremented offsets until all files are fetched\n- Coordinator detects catalog version changes between requests and\n  throws InconsistentMetadataFetchException for query replanning\n\nKey differences from IMPALA-11402:\n- Offset-based pagination instead of partition-based (can split\n  anywhere)\n- Single flat file list instead of per-partition file lists\n- Works with both data files and delete files (Iceberg v2)\n\nTests:\n- Added two custom-cluster tests in TestAllowIncompleteData:\n  * test_incomplete_iceberg_file_list: 150 data files with limit\u003d100\n  * test_iceberg_with_delete_files: 60+ data+delete files with limit\u003d50\n- Both tests verify partial fetch across multiple requests and proper\n  log messages for truncation warnings and request counts\n\nChange-Id: I7f2c058b7cc8efc15bac9fe0e91baadbb7b92cbb\nReviewed-on: http://gerrit.cloudera.org:8080/24041\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "04b7a15cbd2ef4411d829682d5e9e722c477b242",
      "tree": "fd1e0032c0fa37e387b600b744fc04f6d8a7fd6b",
      "parents": [
        "4624406c819f866462103948f5525f260b6342f1"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Oct 29 11:28:43 2025 -0700"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Sat Mar 21 06:22:12 2026 +0000"
      },
      "message": "IMPALA-14842: Guard doAs and impala.doas.user\n\nPrevent setting both doAs and impala.doas.user. They\u0027re often set by\ndifferent actors and we have no use case for setting both. Prevents\nmisuse where override behavior is unexpected.\n\nTesting: adds test setting both to LdapHS2Test#testHS2Impersonation\n\nChange-Id: If783e48d5782e1c68e2b3fdd9e2aaabb45ddd6ff\nReviewed-on: http://gerrit.cloudera.org:8080/24111\nReviewed-by: Fang-Yu Rao \u003cfangyu.rao@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "4624406c819f866462103948f5525f260b6342f1",
      "tree": "cc210b51a2a7faa5b61a9c9ebfc906dfdd71161c",
      "parents": [
        "17b8e5a933c073505356ffc4f843f488ad06a9f9"
      ],
      "author": {
        "name": "Surya Hebbar",
        "email": "shebbar@cloudera.com",
        "time": "Wed Feb 18 19:20:40 2026 +0530"
      },
      "committer": {
        "name": "Noemi Pap-Takacs",
        "email": "npaptakacs@cloudera.com",
        "time": "Sat Mar 21 05:54:34 2026 +0000"
      },
      "message": "IMPALA-14706: Use InMemoryMetricsReporter from the Iceberg library\n\nThis change uses the InMemoryMetricsReporter class that is available in\nthe Iceberg library from release 1.4.0, instead of the user declared\nInMemoryMetrcsReporter class.\n\nWe are dropping the private static InMemoryMetricsReporter class from\nIcebergScanPlanner and will use the Iceberg\u0027s builtin class instead.\n\nIn addition, the scanMetricsResult() method can be dropped and the\nrelevant method scanMetrics() can be used directly.\n\nTesting:\n  - Ran tests related to iceberg locally and examined\n\nChange-Id: I2a5acb54ad6d4b62ff6da26f250e83068a33d316\nReviewed-on: http://gerrit.cloudera.org:8080/23994\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Noemi Pap-Takacs \u003cnpaptakacs@cloudera.com\u003e\n"
    },
    {
      "commit": "17b8e5a933c073505356ffc4f843f488ad06a9f9",
      "tree": "919aa198ca36ca1305370933230658cf0d81143c",
      "parents": [
        "49f0ab1d09541f960cee12e9a5e6aa38ec21565a"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Fri Dec 20 15:07:45 2024 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Sat Mar 21 02:03:46 2026 +0000"
      },
      "message": "IMPALA-13630: Avoid holding global lock when closing KrpcDataStreamRecvr\n\nKrpcDataStreamRecvr::CancelStream() may take some time as it:\n- may need to wait for SenderQueue\u0027s lock\n- needs to respond all deferred RPCs\n\nWhile responding RPCs is asynchronous, it still involves serialization\nof the response and a potential system call to schedule the response to\nthe KRPC reactor thread.\n\nThe change is safe as all KrpcDataStreamRecvr::SenderQueue functions\ncheck cancallation and return fast if it is already cancelled. Calling\nCancelStream() twice (once in DeregisterRecvr(), once in Cancel()) is\nalso harmless.\n\nChange-Id: Ie110722f144400132de1e23813e260dab1de77e7\nReviewed-on: http://gerrit.cloudera.org:8080/22251\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "49f0ab1d09541f960cee12e9a5e6aa38ec21565a",
      "tree": "2dbd37bde20c47bef23459d977774899ab98233d",
      "parents": [
        "0e0e56e7915dc6dd1908d82a4cc8904e1990d7e9"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Thu Mar 05 12:47:04 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Fri Mar 20 17:47:55 2026 +0000"
      },
      "message": "IMPALA-14794: Implement small string optimization in Parquet scanner\n\nWhen decoding a string in a parquet file, it is now always smallified\nif possible.\nWith plain encoding, if a column\u0027s data page only contains smallified\nstrings, the data page\u0027s memory is no longer attached to the tuple,\nsince no string points into it.\nWith dictionary encoding, string column readers always allocate a copy\nof the dictionary page so strings can point into it. If all strings are\nsmallified, this copy is freed after decoding all data, because no\nstrings point into it.\n\nMeasurements:\nMeasured time of a join query where lots of small strings are sent from\nthe reader:\n  select l1.* from tpch_parquet.lineitem l1\n    join tpch_parquet.lineitem l2 on l1.l_shipmode \u003d l2.l_shipmode\n    limit 1;\n\nBefore:\n  KrpcDataStreamSender: SerializeBatchTime: 84.385ms\n  HDFS_SCAN_NODE: MaterializeTupleTime: 8.183ms\nAfter:\n  KrpcDataStreamSender: SerializeBatchTime: 67.598ms\n  HDFS_SCAN_NODE: MaterializeTupleTime: 8.632ms\n\nSame measurement with a table with a higher scale factor:\n  select l1.* from tpch30_parquet_snap.lineitem l1\n    join tpch30_parquet_snap.lineitem l2 on l1.l_shipmode \u003d l2.l_shipmode\n    limit 1;\n\nBefore:\n  KrpcDataStreamSender: SerializeBatchTime: 2s359ms\n  HDFS_SCAN_NODE: MaterializeTupleTime: 239.267ms\nAfter:\n  KrpcDataStreamSender: SerializeBatchTime: 1s702ms\n  HDFS_SCAN_NODE: MaterializeTupleTime: 243.606ms\n\nThis is ~27% gain in SerializeBatchTime.\n\nTesting:\n-Added a test to parquet-plain-test.cc to test that small strings are\nsmallified upon decoding\n\nChange-Id: I16c550d35cd6d3ec259b899b325611294137ccef\nReviewed-on: http://gerrit.cloudera.org:8080/24063\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "0e0e56e7915dc6dd1908d82a4cc8904e1990d7e9",
      "tree": "ec138c142fb1980a54e0ba6f9efb238c308595be",
      "parents": [
        "ab22511520f122db617bd08685d6fa11c4b36668"
      ],
      "author": {
        "name": "Pranav Lodha",
        "email": "pranav.lodha@cloudera.com",
        "time": "Fri Mar 13 17:34:21 2026 +0530"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Fri Mar 20 00:28:10 2026 +0000"
      },
      "message": "IMPALA-14835: Upgrade aircompressor to 2.0.3\n\nThis patch upgrades aircompressor to 2.0.3\nsimilar to other components to tackle CVE-2025-67721.\n\nChange-Id: I70aa726a4bc472ac49b70755519b519e5d317b1b\nReviewed-on: http://gerrit.cloudera.org:8080/24100\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "ab22511520f122db617bd08685d6fa11c4b36668",
      "tree": "8224687373e2f3dec5b825ea4d9ba987b500cf59",
      "parents": [
        "a5256e8418fcac2850be63ee3f88af06a46ec2c8"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Thu Mar 19 13:42:39 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Mar 19 18:47:55 2026 +0000"
      },
      "message": "IMPALA-12137: Fix skipping parquet data copy for dict pages\n\nThis commit fixes skipping the copying of data pages read from parquet\nfiles when it has dictionary encoding.\nThe previous commit used a value from a parameter that was an output\nparameter.\n\nSkips some memory allocation when reading parquet files in a very\nspecific case: for uncompressed data pages of var len strings, having\ndictionary encoding. In this case, there is no need to allocate a copy\nof the data buffer for strings to point into, because they will point\ninto the dictionary.\n\nMeasurements:\nMeasured peak memory with the following query:\n  select count(distinct city) from functional_parquet.airports_parquet;\nPeak Memory of SCAN HDFS dropped from 425.75KB to 399.79KB.\n\nChange-Id: I3c6dfaeb5d2b7addbcd8ad663271131ec8608003\nReviewed-on: http://gerrit.cloudera.org:8080/24117\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "a5256e8418fcac2850be63ee3f88af06a46ec2c8",
      "tree": "419ff58d9a0d0ebd05fc8cd71cf3509ae10f2947",
      "parents": [
        "79a12a7afefdfa59e4fb2570827243abe5070e82"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Fri Mar 13 17:27:01 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Mar 19 13:52:05 2026 +0000"
      },
      "message": "IMPALA-14836: Fix cloning Iceberg V3 tables\n\nBefore this patch, cloning (CREATE TABLE LIKE) Iceberg V3 tables did\nnot work properly:\n* it didn\u0027t preserve the format-version\n* hidden row lineage columns were added as regular columns\n\nThis patch fixes the above issues in CatalogOpExecutor.createTableLike()\n\nTesting\n* e2e tests added\n\nChange-Id: Icd55f3e6e3659004f637ceb875c240ae315fb7cb\nGenerated-by: Claude Sonnet 4.6\nReviewed-on: http://gerrit.cloudera.org:8080/24101\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "79a12a7afefdfa59e4fb2570827243abe5070e82",
      "tree": "3d6f809db5411ae4c4bd4a442aab29634bfda4bc",
      "parents": [
        "b59be457eb22c5be22eaa6c687f1fe2c8ee4aff0"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Mon Mar 09 12:58:07 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Mar 18 18:08:27 2026 +0000"
      },
      "message": "IMPALA-12137: Do not copy parquet data for dict encoded pages\n\nFor dict encoded pages, strings will point to the dictionary, and not\nthe data page, so there is no need to make a copy of the page data in\nthis case.\n\nChange-Id: I3debd1d8e6b8825723b0d3f4aa82190b2cac1e0e\nReviewed-on: http://gerrit.cloudera.org:8080/24080\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "b59be457eb22c5be22eaa6c687f1fe2c8ee4aff0",
      "tree": "6bc07cde7cb2162e131326fca953f6cf5b8bacbf",
      "parents": [
        "0d90b82a425019057595d14fba81d695bf3da7aa"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Mon Dec 22 14:37:35 2025 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Mar 18 17:34:59 2026 +0000"
      },
      "message": "IMPALA-14639: Calcite planner should not allow date cast to int\n\nThe following query was passing before this commit (but now\nfails correctly):\n\nselect cast(date \u00272000-12-21\u0027 as int);\n\nTesting: Added test to calcite.test, also, tests exist in\n         test_date_queries.TestDateQueriesAllFormat.test_queries\n\nChange-Id: Icad76e6c1db489ecdfa620109baa47232331a42d\nReviewed-on: http://gerrit.cloudera.org:8080/24048\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nReviewed-by: Aman Sinha \u003camsinha@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "0d90b82a425019057595d14fba81d695bf3da7aa",
      "tree": "b6f23639025831ce9612b75eef94404bcf442a5a",
      "parents": [
        "787b63a4b88b91bf441200e336ca0bac873541b9"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Fri Mar 13 07:55:41 2026 -0700"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Wed Mar 18 13:06:51 2026 +0000"
      },
      "message": "IMPALA-14482: Calcite planner: order by \"random()\" fixed\n\nThe SortRemoveConstantKeysRule in Calcite was removing functions\nthat did not have any column expressions in it.\n\nThis commit ensure that the isDeterministic method for the operator\nreturns the correct value.\n\nThe test for this can be found in:\ntest_sort.py::TestRandomSort::test_order_by_random\n\nChange-Id: I6ebf3aa11030d98b447d08d1364f5f65eb2ca661\nReviewed-on: http://gerrit.cloudera.org:8080/24074\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Steve Carlin \u003cscarlin@cloudera.com\u003e\n"
    },
    {
      "commit": "787b63a4b88b91bf441200e336ca0bac873541b9",
      "tree": "d35169368e1717d91677cda88801813c54f78413",
      "parents": [
        "ef2d50e68987ccbf713122b8f301709a874c5121"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Sun Mar 08 07:48:32 2026 -0700"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Mar 12 22:22:56 2026 +0000"
      },
      "message": "IMPALA-14819: Calcite planner: Implement sqrt function in convertlet\n\nWhen a user uses sqrt as a function in their SQL, Calcite converts this\nto the \"power()\" function. While this is basically harmless, it did affect\nan e2e test, and it seems a bit more natural to keep things using the\nImpala function.\n\nChange-Id: I5b94421f568dd8d3f01738388277aed35c8993cb\nReviewed-on: http://gerrit.cloudera.org:8080/24076\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "ef2d50e68987ccbf713122b8f301709a874c5121",
      "tree": "6c20761220c9d1be05d86e798ee44a8f6f7f5e85",
      "parents": [
        "e2aeb0a6bda7012f8aba083f74c61cbaaa16d635"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Wed Feb 18 18:39:20 2026 +0100"
      },
      "committer": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Wed Mar 11 15:19:00 2026 +0000"
      },
      "message": "IMPALA-14592: Read Row Lineage of Iceberg tables\n\nIceberg V3 added mandatory row lineage tracking for Iceberg tables.\nThis means each field has a row-id and a last-updated-sequence-number\nassociated with it. These are either stored in the data files, or can\nbe calculated from file metadata the following way:\n\n* row-id: _row_id field of the record. If missing or NULL, then it\n  is first-row-id of DataFile plus FILE__POSITION\n* last-updated-sequence-number: _last_updated_sequence_number of the\n  record. If missing or NULL, then it is the data-sequence-number of\n  the DataFile.\n\nTo support Row Lineage in Impala, we introduce the concept of Hidden\nColumns. Hidden Columns are columns of a table that can be stored in\nthe data files along with the data, but they don\u0027t participate in\n\u0027select *\u0027 expansion and they are non-modifiable. Some DBs refer to such\ncolumns as \"system columns\". They are different from Virtual Columns\nas Virtual Columns are not stored in the data files.\n\nWe introduce the following Hidden Columns:\n* _file_row_id: BIGINT field with field id 2147483540.\n* _file_last_updated_sequence_number: BIGINT field with field id\n  2147483539\n\nWe also introduce the following Virtual Column:\n* ICEBERG__FIRST__ROW__ID: returns the first-row-id of the DataFile.\n  This is stored in the metadata, once for each data file, it is not\n  present in the data files.\n\nNow we can calculate Iceberg V3 row-id and last-updated-sequence-number\nthe following way:\n\n* row-id:\n  COALESCE(_file_row_id,\n           ICEBERG__FIRST__ROW__ID + FILE__POSITION)\n* last-updated-sequence-number:\n  COALESCE(_file_last_updated_sequence_number,\n           ICEBERG__DATA__SEQUENCE__NUMBER)\n\nLater we might add syntactic sugars for the above, for now this patch\nset only makes it possible to calculate the values via the above\nexpressions.\n\nTesting\n * e2e tests added with Iceberg V3 tables written by Spark\n\nChange-Id: I71b1076b25c9e7a0a6c9428b24abc986f5382c71\nReviewed-on: http://gerrit.cloudera.org:8080/24042\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "e2aeb0a6bda7012f8aba083f74c61cbaaa16d635",
      "tree": "5bfad69654c8f6c79a73abebe08af25587e71cda",
      "parents": [
        "9f78f4533d66fc7b04d6588aeed88ee06a5a2076"
      ],
      "author": {
        "name": "Venu Reddy",
        "email": "k.venureddy2103@gmail.com",
        "time": "Tue Dec 16 03:26:10 2025 +0530"
      },
      "committer": {
        "name": "Quanlong Huang",
        "email": "huangquanlong@gmail.com",
        "time": "Wed Mar 11 13:13:04 2026 +0000"
      },
      "message": "IMPALA-14535: Improve wait for HMS events sync with hierarchical event processing\n\nWith hierarchical event processing, MetastoreEventsProcessor\u0027s\nlastSyncedEventId_ represents the last event dispatched to the\nEventExecutorService. Events are queued to appropriate\nDbEventExecutors and/or TableEventExecutor for processing.\nAnd events are removed from these queues only after they\nare processed by the respective executor threads.\n\nWhen a wait for HMS events sync request is issued, the\nfollowing sequence is executed:\n1. The current notification event id is fetched from HMS.\n2. MetastoreEventsProcessor is ensured to fetch and dispatch\n   all events up to and including this notification event id\n   to the EventExecutorService.\n3. The list of databases and tables requiring synchronization\n   is extracted from the request.\n4. To determine whether synchronization for a required\n   database and or table is complete, relevant DbEventExecutor\n   and TableEventExecutor instances are checked directly.\n   Synchronization is considered complete only when the\n   event-processing progress of the required DbProcessor and\n   TableProcessor instances has surpassed the captured\n   notification event id.\n\nThis approach guarantees that all HMS events that existed at\nthe time of sync request have been fully processed for the\nrequested databases and tables.\n\nTesting:\n    - Added an FE test and ran the existing tests.\n\nChange-Id: I55cea4cb8e04860202e56e1b1bf2596613b4946c\nReviewed-on: http://gerrit.cloudera.org:8080/23789\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Quanlong Huang \u003chuangquanlong@gmail.com\u003e\n"
    },
    {
      "commit": "9f78f4533d66fc7b04d6588aeed88ee06a5a2076",
      "tree": "3ea69dd086a2327131663d9b033332828262a1fb",
      "parents": [
        "c601f44281805e421d2ce401729a703e5b16345b"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Tue Mar 10 18:55:41 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Mar 11 11:44:55 2026 +0000"
      },
      "message": "IMPALA-14826: exclude file descriptors from Iceberg tables on webui/json\n\nIMPALA-12840 implemented this for HDFS tables, but Iceberg tables still\nincluded files (not sure if this was always the case or there was some\nchanged that triggered this).\n\nNote that toHumanReadableThrift() is used only when showing an object\nas JSON on the webui - the default is Thrift printed as JSON and\nit still contains file descriptors.\n\nChange-Id: Ia696b872a189aabefcc25607ad514aea948dcf9e\nReviewed-on: http://gerrit.cloudera.org:8080/24087\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "c601f44281805e421d2ce401729a703e5b16345b",
      "tree": "7d99960a551423ea1e5dd48048b354180d3d00f0",
      "parents": [
        "be4778aba166d24112354c8540993861a4a7e06c"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Thu Feb 26 09:28:06 2026 -0800"
      },
      "committer": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Mon Mar 09 16:19:32 2026 +0000"
      },
      "message": "IMPALA-14737 Part2: Add relaxed predicate pushdown for LIKE patterns with suffix\n\nPart 1 (committed as 540a3784e) added basic LIKE predicate pushdown\nto Iceberg for simple prefix patterns (\u0027abc%\u0027), exact matches (\u0027exact\u0027),\nand escaped wildcards (\u0027asd\\%\u0027). Patterns with literal content after\nwildcards (e.g., \u0027prefix%suffix\u0027, \u0027d%d\u0027) were rejected and not pushed\ndown at all.\n\nThis Part 2 patch enhances the implementation with \"relaxed predicate\npushdown\" for patterns with suffix. Instead of rejecting these patterns\ncompletely, we now:\n\n1. Push down a relaxed prefix predicate to Iceberg (e.g., startsWith(\n   \u0027prefix\u0027)) for partition/file pruning\n2. Retain the full LIKE predicate (e.g., LIKE \u0027prefix%suffix\u0027) in the\n   scan node for Impala to evaluate on the surviving rows\n\nAdditionally, this patch adds support for simple LIKE patterns in DROP\nPARTITION and SHOW FILES operations. Previously, any LIKE predicate would\nfail in these operations. Now:\n- Simple prefix patterns (e.g., \u0027s LIKE d%\u0027) work correctly\n- Patterns with suffix are rejected with clear error messages to prevent\n  unintended data loss (e.g., DROP PARTITION with \u0027d%d\u0027 would incorrectly\n  drop all partitions starting with \u0027d\u0027)\n\nThis provides significant performance benefits by leveraging Iceberg\u0027s\nmetadata filtering while maintaining query correctness.\n\nExample behavior for `SELECT ... WHERE s LIKE \u0027d%d\u0027`:\n- Before: Pattern rejected, all 3/3 partitions scanned, no pruning\n  benefit\n- After: startsWith(\u0027d\u0027) pushed to Iceberg -\u003e 1/3 partitions, full LIKE\n  \u0027d%d\u0027 evaluated by Impala on surviving rows -\u003e correct results\n\nTesting:\n- Updated iceberg-like-pushdown.test with relaxed predicate tests\n- Updated DROP PARTITION tests to include relaxed predicate tests\n- Updated SHOW FILES tests to include relaxed predicate tests\n\nChange-Id: I97c11362f098507fa440eafde3c35bbc6d7092b3\nReviewed-on: http://gerrit.cloudera.org:8080/24045\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Zoltan Borok-Nagy \u003cboroknagyz@cloudera.com\u003e\n"
    },
    {
      "commit": "be4778aba166d24112354c8540993861a4a7e06c",
      "tree": "194605aef24a7e1b87deb67da6c06fb81f061812",
      "parents": [
        "caeacdf331136b25669e08a7b1cc8ce9e4c1122d"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Fri Mar 06 17:49:36 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Mar 09 14:12:56 2026 +0000"
      },
      "message": "IMPALA-14810: Add Iceberg commit to catalog timeline\n\nThis can take significant time and before the patch\nit was added to the duration of \"Got Metastore client\".\n\nChange-Id: I9a9a3110d63224ee6fb94ff1d2b966578de04864\nReviewed-on: http://gerrit.cloudera.org:8080/24073\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "caeacdf331136b25669e08a7b1cc8ce9e4c1122d",
      "tree": "2251eb5033c7598284ed3c0a006fba4fa6745b69",
      "parents": [
        "24611f7dba77723a805518a09ca6e334c4794796"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Fri Feb 27 18:12:17 2026 +0100"
      },
      "committer": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Fri Mar 06 14:00:17 2026 +0000"
      },
      "message": "IMPALA-14792: Try avoiding hadoop.fs.Path when loading Iceberg tables\n\nQuick and dirty solution to speed up IcebergFileMetadataLoader.\nIts correctness is based on the assumption that Iceberg file\nlocations must be normalized.\n\nNoticed in flamegraphs that org.apache.hadoop.fs.Path constructor\nis one of the main CPU consumers during Iceberg table loading,\nespecially incremental reloads when most file descriptors are reused.\nhadoop.fs.Path was used to relativize locations compared to base\ntable location and to get the \"path\" part of the URI. These can\nbe done with simple String operations if we can assume that the\nURIs are normalized.\n\nResults on 1M file 25K partition Iceberg table:\nFull load:                  13s-\u003e10s\nIncremental load (0 files): 9s-\u003e3.5s\n\nhadoop.fs.Path constructor still uses significant CPU time after\nthe change, but mainly in functions that run in parallel, so\nits effect is not longer that visible in total execution time.\n\nSee Jira for before/after flamegraphs.\n\nChange-Id: Idce89117195e0fa64fdd6a6c576bce09ec2e75ea\nReviewed-on: http://gerrit.cloudera.org:8080/24052\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\n"
    },
    {
      "commit": "24611f7dba77723a805518a09ca6e334c4794796",
      "tree": "8ed842ddbbb65162fb0af7ed4dd476d8803d1318",
      "parents": [
        "4a675b72949c859967cc9389bef55402d16c3efa"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Mar 03 10:48:35 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Thu Mar 05 20:11:33 2026 +0000"
      },
      "message": "IMPALA-14776 (part 3): Fix misc resource leaks\n\nThis fixes a variety of misc resource leaks and other warnings.\nThis is purely about reducing the noise, so these are not\nfixing issues that would impact build stability.\n\nThere are a few different categories:\n1. Leaked open files\n - There are a couple locations that open /dev/null manually\n   to use with subprocess. This switches them to subprocess.DEVNULL\n - Otherwise, use a context manager\n2. Leaked thread pools - Manually call terminate at the end\n3. Leaked processes - Add a wait() call after killing them\n4. Warnings about deprecated pyparsing APIs - switched to the\n   new API in db_connection.py\n5. Warnings about invalid escapes - used raw strings for regex\n6. Warnings from pytest failing to collect tests from\n   TestLastDdlTimeUpdate\u0027s TestHelper\n - Renamed TestHelper to Helper so pytest doesn\u0027t try to find\n   tests in it\n7. A few minor socket leaks\n\nTesting:\n - Ran a core job\n\nChange-Id: Iee2c7733f477eadac7cde020b9aa47077985eb0d\nReviewed-on: http://gerrit.cloudera.org:8080/24066\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "4a675b72949c859967cc9389bef55402d16c3efa",
      "tree": "e9235ab6a92226bd1e18d2f27528ecc5df242ba0",
      "parents": [
        "52f3943049884412b1f1fb0376dd29f5a861400b"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Wed Mar 04 11:22:26 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Mar 05 20:09:17 2026 +0000"
      },
      "message": "IMPALA-13122 addendum: Fix host statistics logging for erasure coded files\n\nWhen erasure coding is enabled, disk IDs are unavailable for\nEC blocks. The previous implementation only tracked hosts via host:disk\npairs, requiring valid disk IDs. This caused host statistics to be missing\nfrom logs in EC environments.\n\nFixed by tracking host indices separately from host:disk pairs:\n- Added uniqueHostIndices set to FileMetadataStats\n- Track all host indices regardless of disk ID availability\n- Host:disk pairs still tracked only when disk IDs are valid (\u003e\u003d 0)\n- Updated getNumUniqueHosts() to use uniqueHostIndices directly\n\nWith this fix:\n- Traditional replication: Both hosts and host:disk pairs are logged\n- Erasure coding: Hosts are logged, host:disk pairs may be 0 or omitted\n\nTesting:\n- All tests pass with and without erasure coding\n\nChange-Id: Ie6f5b70fa9c46dd3f34287f030553360da6b20c6\nReviewed-on: http://gerrit.cloudera.org:8080/24068\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "52f3943049884412b1f1fb0376dd29f5a861400b",
      "tree": "5b02bfd160d0f4f6b1127abed9337b5c3a5ff8b5",
      "parents": [
        "ffec3e622d33a5b64732e2e4de25377ac40e01ad"
      ],
      "author": {
        "name": "Fang-Yu Rao",
        "email": "fangyu.rao@cloudera.com",
        "time": "Fri Feb 20 11:09:51 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Mar 05 17:18:25 2026 +0000"
      },
      "message": "IMPALA-14768: Add the operation type to the lineage graph\n\nThis patch makes Impala produce the operation type of the completed\nquery in the corresponding lineage event so that it would be easier for\ndata lineage tools like Apache Atlas to derive the operation type of a\ngiven query. Note that currently Apache Atlas determines the operation\ntype of a given Impala query by matching the field of \u0027queryText\u0027 in the\nlineage event against predefined regular expressions. Refer to\nhttps://github.com/apache/atlas/blob/2957ff2/addons/impala-bridge/src/main/java/org/apache/atlas/impala/hook/ImpalaOperationParser.java#L49-L77\nfor more details.\n\nHowever, such an approach is not robust. Recall that the string in\n\u0027queryText\u0027 is produced by Impala server replacing each newline in the\noriginal query string with a space, which is followed by redaction.\nThus, \u0027queryText\u0027 may not be a valid SQL statement afterward.\n\n  string stmt \u003d\n    replace_all_copy(query_ctx-\u003eclient_request.stmt, \"\\n\", \" \");\n  Redact(\u0026stmt);\n  // \u0027redacted_stmt\u0027 will be the string Impala uses to populate\n  // \u0027queryText\u0027 of the lineage event.\n  query_ctx-\u003eclient_request.__set_redacted_stmt((const string) stmt);\n\nFor instance, when the original query\nstring contains a one-line SQL comment, it could be difficult for one to\ndecide where that one-line SQL comment ends if every newline in the\noriginal query string is already replaced with a space.\n\nTherefore, after this patch, it would be much easier for data lineage\ntools to determine the operation type since it will be directly provided\nin the lineage log.\n\nOn the other hand, apart from the field of \u0027operationType_\u0027, this\npatch also makes PlannerTest#testLineage() check the field of\n\u0027queryStr_\u0027 of ColumnLineageGraph when testLineage() compares the\nactual lineage graph with the expected one in lineage.test run in the\nfrontend test.\n\nTesting:\n - Added a new test case to lineage.test run in end-to-end test to show\n   that Impala could produce a lineage event for INSERT OVERWRITE.\n - Updated lineage.test run in end-to-end and frontend tests to make\n   sure each lineage event comes with its respective operation type.\n\nChange-Id: Icb94120a9bb1b994d4e681ea98521035bcc6510e\nReviewed-on: http://gerrit.cloudera.org:8080/24018\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "ffec3e622d33a5b64732e2e4de25377ac40e01ad",
      "tree": "d30eb5d99346eeb929a2e15423d24f5328483eef",
      "parents": [
        "7d71ec141f85746de50685d77e05314553b235a2"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Mar 03 17:25:40 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Mar 04 18:09:30 2026 +0000"
      },
      "message": "IMPALA-14776 (part 1 followup): Fix TestParquetMaxPageHeader\n\nPart 1 of IMPALA-14776 added a call to super.teardown_method() for\nTestParquetMaxPageHeader. However, it got the order wrong. The\nsuper().teardown_method() needs to come after TestParquetMaxPageHeader\u0027s\nown teardown steps, as those steps need the built-in clients.\nThis moves the super().teardown_method() call to be after those\nsteps.\n\nTesting:\n - Ran TestParquetMaxPageHeader\n\nChange-Id: If66b82d7386cdf748674a5a146d6b2b31471331d\nReviewed-on: http://gerrit.cloudera.org:8080/24065\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "7d71ec141f85746de50685d77e05314553b235a2",
      "tree": "69bf715d49f1e02b811ab2351190e05662f37157",
      "parents": [
        "a99ccdacea7860af4dececc7d1f7560a15ccaf9e"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Wed Feb 11 14:41:41 2026 +0100"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Mar 04 18:04:13 2026 +0000"
      },
      "message": "IMPALA-14575: Add constant handling for Hive GenericUDFs\n\nBased on PoC by Csaba Ringhofer.\n\nIf an argument is constant, it is now only evaluated and copied\nto the input buffer once, in HiveUdfCall::OpenEvaluator.\nThis means, we save the re-evaluation and re-copying of the value\nfor each evaluation.\nThe \"isConstant\" flags for arguments are also sent to the frontend,\nwhere ConstantObjectInspectors will be created for them, so any\nconstant optimization in the UDF on Hive\u0027s side will be enabled.\n\nMoved input handling for Hive UDF calls to a separate class\nHiveUdfInputHandler.\n\nBenchmark:\n\nChecked with the following:\n    set num_nodes\u003d1; set mt_dop\u003d1;\n    select count(*) from tpch.lineitem where st_intersects(\n        st_point(l_partkey, l_suppkey),\n        st_geomfromtext(\n            \"polygon ((0 0, 0 500000, 500000 500000, 500000 0, 0 0))\"\n        )\n    );\n\nBefore change: 3.15s (MaterializeTupleTime: 2s601ms)\nAfter change: 1.54s (MaterializeTupleTime: 879.397ms)\n\nIn some cases with geospatial, even bigger performance gain:\n   select count(*) from tpch.lineitem where st_intersects(\n       st_point(l_partkey, l_suppkey),\n       st_buffer(st_geomfromtext(\"point (250000 250000)\"), 250000)\n   );\n\nBefore change: MaterializeTupleTime: 19s266ms\nAfter change: MaterializeTupleTime: 1s587ms\n\nNote that st_intersects is optimized on the Hive side when one argument\nis a constant, contributing to most of the gain in performance.\nThe skipping of re-evaluation and copying is relatively insignificant,\ncomparing only that doesn\u0027t yield any measurable difference.\n\nTesting:\n-added a test UDF GenericAlltypeArgConstCheckUdf that prints\n    const information about arguments\n-added const arg check cases to generic-java-udf.test\n-added legacy udf call tests for several types to java-udf.test\n    to make sure it still works for all types\n\nChange-Id: I4a6ca8c0bab499dffed88bb9786753da559af4c5\nReviewed-on: http://gerrit.cloudera.org:8080/23963\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nTested-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "a99ccdacea7860af4dececc7d1f7560a15ccaf9e",
      "tree": "efd243ca2809705a4c04b14eb56a1a89da607b14",
      "parents": [
        "31769a7fb50ae1d6b6d69d366a776df441e00e3a"
      ],
      "author": {
        "name": "Yida Wu",
        "email": "yida.wu@cloudera.com",
        "time": "Tue Feb 03 01:08:04 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Mar 04 06:51:47 2026 +0000"
      },
      "message": "IMPALA-14230: Add catch-up mode for event processing\n\nWhen HMS events fall far behind (e.g. during HA failover), event\nhandling can become a serious bottleneck especially in the single\nthreaded legacy mode, heavy operations such as table reload could\ntake minutes that blocks the whole event processing.\n\nThis patch introduces a configurable catch-up mode. If event lag\nexceeds the new added flag hms_event_catchup_threshold_s\n(default 1800s), the event processor switches to a faster way by\ninvalidating the table instead of performing every event to avoid\nunnecessary heavy table reload to speed up the event processing.\n\nCatch-up mode is applied only to table events that may trigger heavy\noperations, like reloading tables or operations that may involve\nsevere and slow lock contention. Lightweight events such as\ncreate/drop table and database events are excluded since they are\nalready fast.\n\nTesting:\nAdded test_catchup_mode_* tests in TestEventProcessingCatchupMode.\nPassed exhaustive tests.\n\nChange-Id: Ib906c06346d5d3159999eeac632e1318bc060065\nReviewed-on: http://gerrit.cloudera.org:8080/23942\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "31769a7fb50ae1d6b6d69d366a776df441e00e3a",
      "tree": "82b46e4fbb63919d513d598cb7af1b641c331528",
      "parents": [
        "3e495c44112bd0c01acd0bdf744c4cbdcd394e4e"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Mon Jan 26 11:04:23 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Mar 03 17:49:48 2026 +0000"
      },
      "message": "IMPALA-13122: Add detailed file metadata statistics to table loading logs\n\nThis patch enhances table loading logs to include comprehensive file\nmetadata statistics, making it easier to identify small files issues\nand diagnose slow storage performance.\n\nThe following statistics are now logged when loading file metadata:\n- Number of files and blocks\n- File sizes (min/avg/max)\n- Total file size\n- Modification times (min/max)\n- Access times (min/max)\n- Number of host:disk pairs (HDFS/Ozone only)\n\nExample log output:\n  Loaded file and block metadata for functional.alltypes partitions:\n  year\u003d2009/month\u003d1, year\u003d2009/month\u003d10, year\u003d2009/month\u003d11, and 21\n  others. Time taken: 13.474ms. Files: 24, Blocks: 24, Total size:\n  478.45KB, File sizes (min/avg/max): 18.12KB/19.93KB/20.36KB,\n  Modification times (min/max): 2026-02-17 01:28:17/2026-02-17 01:28:21,\n  Access times (min/max): 2026-02-24 00:58:39/2026-02-24 00:58:39,\n  Hosts: 3, Host:Disk pairs: 3\n\nTesting:\n- Added Junit tests to verify statistics collection accuracy\n- Added new python end-to-end tests covering various cases\n\nChange-Id: I6f4592f173c047e5064058402f83be6d1f5c9a79\nReviewed-on: http://gerrit.cloudera.org:8080/23906\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "3e495c44112bd0c01acd0bdf744c4cbdcd394e4e",
      "tree": "f73f6d5a92a0fa1463c052275bdc6501e42b33d2",
      "parents": [
        "79e2ab998c9c12259f5b671050e7dd610c0f9e16"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Wed Feb 25 21:29:06 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Tue Mar 03 13:56:49 2026 +0000"
      },
      "message": "IMPALA-14776 (part 1): Auto-close manually created impala clients\n\nThere are several APIs in ImpalaTestSuite that tests can use to\ncreate a new client:\n - create_impala_client()\n - create_impala_client_from_vector()\n - create_client_for_nth_impalad()\nIf the tests don\u0027t close the client properly, pytest will report\na leak of a socket. It seems possible that this type of leak can\nalso result in leaving an unclosed session on the impalad. This can\ntrigger TestValidateMetrics.test_metrics_are_zero(), which has\nbeen an issue since switching to pytest 6.2.5.\n\nThis modifies those APIs to register the clients in a list and\nclose them during test method teardown. That should prevent\nresource leaks (sockets, sessions) associated with these clients.\nThe clients may have been cleaned up by other means (with-as or\ntry-finally or a manual close), so it is heavily relying on\nclose() being idempotent.\n\nThe list is maintained at the instance level, and it is set in\nsetup_method() and freed in teardown_method(). This means that\ntest classes need to call ImpalaTestSuite::setup_method() and\nteardown_method(). This modifies several test classes to call\nthese methods appropriately.\n\nThis also means that the APIs are no longer class methods, so callers\nneed to call them on their instance rather than on the class\nitself. This required changing a handful of locations.\n\nImpalaTestSuite\u0027s built-in clients use an internal API so that\nthey can be reused across test methods. They instead are scoped\nat the class level.\n\nTesting:\n - Ran an exhaustive job\n\nChange-Id: Ib550527838a81cd2aaf69bb715080f6ac6da3786\nReviewed-on: http://gerrit.cloudera.org:8080/24026\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\n"
    },
    {
      "commit": "79e2ab998c9c12259f5b671050e7dd610c0f9e16",
      "tree": "a05d401c9a6aaf292aba55714a3d485f6a7aaee7",
      "parents": [
        "6a70307092b51447ce13ae6546e6f2a978066997"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Wed Feb 25 21:29:06 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Mar 03 07:15:02 2026 +0000"
      },
      "message": "IMPALA-14776 (part 2): Fix miscellaneous socket leaks\n\nThere are various sockets leaks that are not associated\nwith Impala clients:\n - Users of urlopen don\u0027t auto-close the socket\n - Direct use of sockets don\u0027t clean up the socket\n - Various tests that spin up test servers (e.g. statestore tests)\n   don\u0027t close clients or server sockets.\nThis fixes those various locations either with manual clean up\nor with-as constructs. For urlopen, this simplifies the import to\nalways use the Python 3 package location, dropping support for\nPython 2.\n\nTesting:\n - Ran tests locally and verified that they stopped leaking\n   sockets\n\nChange-Id: I8fd54fad18d6dbfb0f24ebd910f45cfed76c340a\nReviewed-on: http://gerrit.cloudera.org:8080/24061\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nReviewed-by: Yida Wu \u003cwydbaggio000@gmail.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "6a70307092b51447ce13ae6546e6f2a978066997",
      "tree": "7117528fe19fa03445cfd34a091b4a83a87b3e02",
      "parents": [
        "90389331a09f3d27dffa1566506b56bb930afa71"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Tue Feb 24 17:40:28 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Mar 02 21:15:57 2026 +0000"
      },
      "message": "IMPALA-12621: Prevent Thread interrupt flag poisoning of JVM threads\n\nJVM threads are being reused across JNI invocations. This means\nif the interrupt flag is being set for a thread when the JNI call\nreturns, the next JNI call might get the interrupt (if it checks for\nit).\n\nIt can be reproduced manually by adding\nThread.currentThread().interrupt() calls at the end of our methods\n(e.g. JniFrontend.convertTable(), JniCatalog.updateCatalog()).\n\nDoing so we can trigger errors we can see in IMPALA-12621, IMPALA-10633,\nIMPALA-10924, IMPALA-10540, IMPALA-12261. All these issues have\na stack trace similar to the following:\n\nW20260221 07:53:31.855443 1324125 DataStreamer.java:832] DataStreamer Exception\nJava exception follows:\njava.nio.channels.ClosedByInterruptException\n        at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)\n        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:477)\n        at org.apache.hadoop.net.SocketOutputStream$Writer.performIO(SocketOutputStream.java:63)\n        at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:141)\n        at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:159)\n        at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:117)\n        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)\n        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)\n        at java.io.DataOutputStream.flush(DataOutputStream.java:123)\n        at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:781)\nI20260221 07:53:31.863165 1312138 jni-util.cc:321] fa4015e85de1494e:e1586d1500000000] org.apache.iceberg.exceptions.RuntimeIOException: Failed to write json to file: hdfs://localhost:20500/test-warehouse/lineitem_sixblocks_iceberg/metadata/00000-93a5f622-d41e-4ccb-87a4-eb26d9bd7a5c.metadata.json\n        at org.apache.iceberg.TableMetadataParser.internalWrite(TableMetadataParser.java:133)\n        at org.apache.iceberg.TableMetadataParser.overwrite(TableMetadataParser.java:115)\n        at org.apache.iceberg.BaseMetastoreTableOperations.writeNewMetadata(BaseMetastoreTableOperations.java:170)\n        at org.apache.iceberg.BaseMetastoreTableOperations.writeNewMetadataIfRequired(BaseMetastoreTableOperations.java:160)\n        at org.apache.iceberg.hive.HiveTableOperations.doCommit(HiveTableOperations.java:173)\n        at org.apache.iceberg.BaseMetastoreTableOperations.commit(BaseMetastoreTableOperations.java:135)\n        at org.apache.iceberg.BaseMetastoreCatalog$BaseMetastoreCatalogTableBuilder.create(BaseMetastoreCatalog.java:201)\n        at org.apache.iceberg.catalog.Catalog.createTable(Catalog.java:75)\n        at org.apache.impala.catalog.iceberg.IcebergHiveCatalog.createTable(IcebergHiveCatalog.java:74)\n        at org.apache.impala.util.MigrateTableUtil.migrateToIcebergTable(MigrateTableUtil.java:99)\n        at org.apache.impala.service.Frontend.convertTable(Frontend.java:1004)\n        at org.apache.impala.service.JniFrontend.convertTable(JniFrontend.java:243)\n\nI.e., something interrupted the thread when it tried to create a new\nJSON file for an Iceberg table. Looking at the HDFS logs, the file\nwas created successfully:\n\norg.apache.hadoop.hdfs.StateChange: DIR* completeFile: ...metadata.json\n\nThere is also no thread interruption logic in the code path of\nJniFrontend.convertTable() that could explain the interruption.\n\nSo probably the best explanation to the above is:\n* JNI thread gets interrupted in a way its interrupt flag remains set\n* New JNI call on thread runs Iceberg code that checks interruption\n* Above exception being thrown\n\nTesting:\n* tested manually by adding Thread.currentThread().interrupt() calls\n  at the end of JniCatalog/JniFronted methods.\n\nGenerated-by: Gemini Pro\nGenerated-by: Claude Sonnet 4.5\n\nChange-Id: Iaec6860433431064737e994999dd57a63f223a20\nReviewed-on: http://gerrit.cloudera.org:8080/24029\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "90389331a09f3d27dffa1566506b56bb930afa71",
      "tree": "c4728489da401b9c134a84e9e6d792af0ffc02ab",
      "parents": [
        "6cec0bfe179162a0943108cc624ac74ce4b5fbaa"
      ],
      "author": {
        "name": "Surya Hebbar",
        "email": "shebbar@cloudera.com",
        "time": "Mon Mar 02 02:01:04 2026 +0530"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Mar 02 17:09:35 2026 +0000"
      },
      "message": "IMPALA-14793: Replace row regex with aggregation tests\n\nIn the end-to-end python tests, there are many \u0027row_regex\u0027 searches\nthat can instead be treated as \u0027aggregation()\u0027 tests.\n\nRewriting these tests as aggregations can make the syntax easier,\nwhile providing compatibility for both the traditional profile\nand the new aggregated profile.\n\nIn many cases this results in better efficiency as the regex pattern to\nsearch for is less complex than the original.\n\nThis is a split change associated with IMPALA-9846, in order to enable\nthe aggegated profile.\n\nThis reduces the number of lines from the large change IMPALA-9846\nby a little, in order to aid the reviewer.\n\nChange-Id: Ied342a3b89eb922137f0c1a7d3b2978b813de381\nReviewed-on: http://gerrit.cloudera.org:8080/24058\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "6cec0bfe179162a0943108cc624ac74ce4b5fbaa",
      "tree": "d88c93fd4749ec0f12831afed92680a44dab98ca",
      "parents": [
        "a51b8a2fb17def86a9c2e09869d20fbcd941e260"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Fri Feb 27 15:29:24 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Mar 02 14:51:29 2026 +0000"
      },
      "message": "IMPALA-14791: Fix crash in PlanToJson when sink was not executed\n\nimpala-http-handler.cc::SinkToJsonHelper had the assumption that we\nalways have a TPlanNodeExecSummary for the sink, but it is not true.\nIn some cases we don\u0027t have plan node exec summaries, e.g.:\n* CTAS query failed to create the target table, so execution did not\n  start\n* Admission control rejected query execution\n\nThis patch set fixes SinkToJsonHelper to work well in case of missing\nsummaries.\n\nTesting:\n * e2e added with failing CTAS\n * custom tests added with failing CTAS and INSERT due to admission\n   control\n\nChange-Id: I4fe6ed48d365a34380991f544e1ff628e95fa89e\nReviewed-on: http://gerrit.cloudera.org:8080/24050\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "a51b8a2fb17def86a9c2e09869d20fbcd941e260",
      "tree": "76b8cb2fa52ef48fc0ca69e2f0c0daa54e3c1c49",
      "parents": [
        "f11790549ac64a0e83f2508ee1c560a2946dc7d9"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Wed Feb 25 21:19:54 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Fri Feb 27 18:56:32 2026 +0000"
      },
      "message": "IMPALA-14739: Harden CatalogdMetaProvider.Weigher for edge cases\n\nHandle two cases safer:\n1. \u003e 2GB cache entries\nThese were truncated before the patch to 2GB to fit to int32, and this\nunderreporting meant that the cache could grow beyond its supposed\nlimit. This is improved by using byte_size / 16 as weight, allowing\nsizes up to 32GB, which seems unrealistically large to me.\n\n2. eviction of currently loaded entries\nThe \"piggy-backing\" mechanism uses CompletableFuture as values while\nloading objects. Evicting this before loading finishes leads to not\nwriting back the loaded object to cache as it is assumed that it was\ninvalidated. The patch protects against weight based eviction by\nweighing these entries as 0, which leads the weight based eviction to\nignore them. This is the recommended way to \"lock\" entries in weight\nbounded guava / caffeine caches.\n\nTime based evection can still remove entries while loading\n(1 hour by default). Both time and weight based eviction should be\nrare - one needs \u003e1hour loading time, the other needs many new entries\nadded while loading to push out the entry from LRU cache.\n\nChange-Id: Id525b9b0578fb7f9cb3e0f8f4fa32f6fdae313b9\nReviewed-on: http://gerrit.cloudera.org:8080/24037\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "f11790549ac64a0e83f2508ee1c560a2946dc7d9",
      "tree": "5297c790d40233848cc3e6cc197776de2415e19f",
      "parents": [
        "d410fc253db1a6773bf7682d26803f0894c5d717"
      ],
      "author": {
        "name": "Daniel Vanko",
        "email": "dvanko@cloudera.com",
        "time": "Mon Feb 23 11:44:56 2026 +0100"
      },
      "committer": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Fri Feb 27 11:43:34 2026 +0000"
      },
      "message": "IMPALA-13321: [DOCS] Add documentation about CONVERT TO ICEBERG statement\n\nThis patch adds documentation about ALTER TABLE ... CONVERT TO ICEBERG\nstatement, implemented in IMPALA-11013 and the addition of\n\u0027format-version\u0027 specification by IMPALA-12330.\n\nChange-Id: I4688c0e93ecda43c2e43d36cd9e7d006e4fd5528\nReviewed-on: http://gerrit.cloudera.org:8080/24021\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Noemi Pap-Takacs \u003cnpaptakacs@cloudera.com\u003e\nReviewed-by: Zoltan Borok-Nagy \u003cboroknagyz@cloudera.com\u003e\n"
    },
    {
      "commit": "d410fc253db1a6773bf7682d26803f0894c5d717",
      "tree": "82539becf5190a0ee9731ffff47e51f4e1e86b31",
      "parents": [
        "e36d717eb6165f42fafc8407a291e00bb0ee1169"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Feb 26 09:09:02 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Fri Feb 27 04:55:28 2026 +0000"
      },
      "message": "IMPALA-14788: Prevent Thread interrupt after completion\n\nWhen cancelling a thread, uses computeIfPresent to prevent interrupting\nthe thread after the thread has finished all its work, which would leave\nthe thread in an interrupted state if it\u0027s re-used later. Ensures the\nThread\u0027s interrupted status is cleared after cancellable work is done.\n\nMoves logging after that work to avoid logging while holding a lock.\n\nChange-Id: I54af34d253511f18f59b5cd43f1cf57a26a772eb\nReviewed-on: http://gerrit.cloudera.org:8080/24044\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "e36d717eb6165f42fafc8407a291e00bb0ee1169",
      "tree": "6180f7d34a3a911c9198b6bdb3fb38de0e1d882b",
      "parents": [
        "0adb0775368dca39aa253c0e11583df315354e15"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Mon Feb 23 13:04:25 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 26 19:47:14 2026 +0000"
      },
      "message": "IMPALA-14691: Only log modified query options\n\nInstead of always logging every query option as a key value pair,\nonly log the ones differing from their default values as defined\nin TQueryOptions.\n\nMost of the time, most, if not all, query options are not overridden,\nand use the default value. Logging only the modified values gives a\nshorter and more understandable information, as the full list is very\nlong.\n\nA function to extract the necessary list of modified values already\nexists (DebugQueryOptions), and is used e.g. in query profile.\n\nAn example to the per query log, with one option changed:\n  TClientRequest.queryOptions: ABORT_ON_ERROR\u003d1\n\nThe list of changed query options will be listed independently of\nwhere the set happens. For example, both values set with\n--default_query_options startup param, and values changed with SET\ninside impala shell will be listed if different from default value\nin TQueryOptions.\n\nChange-Id: Ibcd9eb80afaa3171f5436cabb4703bbae4581396\nReviewed-on: http://gerrit.cloudera.org:8080/24022\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "0adb0775368dca39aa253c0e11583df315354e15",
      "tree": "d8f7833e33f9d0f214057e3b8ec66e42ae90af01",
      "parents": [
        "02d2e168cca7f321bc01d23dcf5a78f3c0891563"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 19:01:51 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Feb 26 16:14:13 2026 +0000"
      },
      "message": "IMPALA-14784: Upgrade to python-xdist\u003d\u003d3.5.0 and use --dist\u003dworksteal\n\nOn exhaustive jobs, the end-to-end parallel tests show enormous\nskew. The last 1-2% of tests takes hours, and logs indicate that\nthe last 1257 tests execute on a single worker.\n\npytest-xdist introduced a \u0027worksteal\u0027 algorithm in 3.2.0 that\ncan rebalance the work. Exhaustive end-to-end parallel tests\ntake about 5:20, while the same tests run in about 2:40 with\nthe worksteal policy. The improvement on core exhaustive\ntests is much smaller, because it doesn\u0027t suffer the same\nlevel of skew.\n\npytest-xdist changed the way they assign tests to workers,\nand it exposed an issue with TestAcid::test_lock_timings().\nThe test sets the query option lock_max_wait_time_s on the\nsession, but it never unsets it. When multiple copies of\nthe test run on a single worker, the test case for a timeout\nof 300 seconds with lock_max_wait_time_s unset is actually\nusing a value of lock_max_wait_time_s\u003d5. This reworks the\ntest to set lock_max_wait_time_s via execute_query()\u0027s\nquery_options argument rather than on the session itself.\n\nTesting:\n - Ran end-to-end exhaustive tests\n - Ran a core job\n - Verified that TestAcid::test_lock_timings() can run multiple\n   times with a single worker without failing\n\nChange-Id: I6916bbef94b380a516356763dfabb3777c682637\nReviewed-on: http://gerrit.cloudera.org:8080/24035\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "02d2e168cca7f321bc01d23dcf5a78f3c0891563",
      "tree": "da1b8c25a10ae6c57e516bccc1c17e987fa7b5e4",
      "parents": [
        "cab3e30ecb3fadbdfe822d7542631e4adb7cd430"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Sun Feb 08 07:29:22 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Feb 26 03:14:49 2026 +0000"
      },
      "message": "IMPALA-14525 addendum: For simplify, nulls should only be treated as false for filters\n\nThe previous fix for IMPALA-14525 simplifies expressions. Calcite has a\nparameter for the simplify method which allows \"unknown\" expressions to\nbe treated as \"unknown\" or \"false\". For filters, we do want to treat Unknowns\nas False since a filter can only be true or false. However for expressions\nin other parts of the code like select (e.g. select 1 in (NULL) ), the null\nneeds to be treated as \"unknown\" so that the simplify method can return null\nfor this expression.\n\nChange-Id: I673162f253f983e0c95d01b1f8d2731881f9ad7b\nReviewed-on: http://gerrit.cloudera.org:8080/23951\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "cab3e30ecb3fadbdfe822d7542631e4adb7cd430",
      "tree": "02510b803fa02cfb67bf6b03f70aef48036c6c4f",
      "parents": [
        "41d7a2b449218209b8e7a58649f589fd2252113f"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Wed Feb 25 10:24:38 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Feb 26 00:54:24 2026 +0000"
      },
      "message": "IMPALA-14785: Reduce size of JUnitXML by skipping logs for passing tests\n\nCurrently, the JUnitXML contains the logs even for passing tests.\nThe pytest \"junit_log_passing_tests \u003d False\" option can turn that\noff so that JUnitXML only includes logs for skipped/xfailed/failed\ntests. This sets that option to reduce the size of the JUnitXML.\n\nTesting:\n - Ran some end to end tests locally and verified that the passing\n   tests didn\u0027t have logs and failed/etc tests had logs\n\nChange-Id: I225a3cab98f37cd87f23492c825ac2ebad53825c\nReviewed-on: http://gerrit.cloudera.org:8080/24036\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "41d7a2b449218209b8e7a58649f589fd2252113f",
      "tree": "023fe3434408443b9e308d7e7efdcf4c3c9c1c90",
      "parents": [
        "efd8988acf66b930343f4e61e304a2a930fbca3e"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Wed Jan 28 17:04:31 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 26 00:33:33 2026 +0000"
      },
      "message": "IMPALA-14746: Calcite planner: Allow overrides in test framework\n\nThis commit will allow overrides in the test framework for Calcite\nwhere the result set is different from the original planner.\n\nThe overrides will be used if the USE_CALCITE_PLANNER environment\nvariable is set.\n\nThe allowable overridden sections are: RESULTS, CATCH, RUNTIME_PROFILE.\n\nThe sections will be overridden if the environment variable is set\nand if the section has a CALCITE_PLANNER_ prefix\n(e.g. CALCITE_PLANNER_RESULTS)\n\nA sample is given in the subquery.test file.\n\nChange-Id: Id7e22c63b27232bffc442a75952b9942067f0e85\nReviewed-on: http://gerrit.cloudera.org:8080/23907\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "efd8988acf66b930343f4e61e304a2a930fbca3e",
      "tree": "416d98e8a2b7ddccf34736235eee02af6bdb1515",
      "parents": [
        "a190eb0a5ed38b17f186a417cc22264161137d73"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Wed Feb 25 13:19:29 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 25 23:26:14 2026 +0000"
      },
      "message": "IMPALA-14781: Use real host name in URL in dual stack webui\n\nBefore this patch :::25000 was used incorrectly instead of\nhostname:25000. While listening to :: is needed for dual stack,\nthis url is only reachable on localhost. Note that ::: is also\nincorrect because ipv6 addresses in URLs should be bracketed: [::]:\n\nChange-Id: I655cb0240008d60066f81a93a0ece3c0c75d00cb\nReviewed-on: http://gerrit.cloudera.org:8080/24032\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "a190eb0a5ed38b17f186a417cc22264161137d73",
      "tree": "6ca810c43971b7ac6dba24b39c08d506c5039a61",
      "parents": [
        "2e00e6c839fcf2d2cd814eac4192480d9fa3d265"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Tue Feb 24 21:33:23 2026 -0800"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Wed Feb 25 21:10:46 2026 +0000"
      },
      "message": "IMPALA-14429: (addendum) Only int types need extra conversion.\n\nA regression was caused with the IMPALA-14429 commit when a decimal\nwas being compared with integers in an IN clause. Calcite only\nmisclassifies integer types, so only those should be changed in\nthe ImpalaRexBuilder when creating literals.\n\nChange-Id: Ic41e0141737c771b6d5ea48aa99144a919427207\nReviewed-on: http://gerrit.cloudera.org:8080/24031\nReviewed-by: Aman Sinha \u003camsinha@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "2e00e6c839fcf2d2cd814eac4192480d9fa3d265",
      "tree": "2de34cb00e657235a87a3bc5ab5dc24c6540e3ee",
      "parents": [
        "28062ed3b26e96a86d523dece3d5993b2949f83b"
      ],
      "author": {
        "name": "Yida Wu",
        "email": "yida.wu@cloudera.com",
        "time": "Thu Feb 19 08:27:16 2026 -0800"
      },
      "committer": {
        "name": "Yida Wu",
        "email": "wydbaggio000@gmail.com",
        "time": "Wed Feb 25 16:17:26 2026 +0000"
      },
      "message": "IMPALA-14771: Fix DCHECK hit due to dangling reference in admission queue\n\nThis patch fixes two related issues. First, tests using\nadmission_control_rpc_compress_threshold_bytes were not applying the\nflag correctly at cluster startup, so the compressed path was never\nexercised. This is fixed by adding a helper in the tests to properly\ninject the flag into impalad arguments.\n\nSecond, once compression was correctly enabled, during the tests, a\nDCHECK was triggered in DequeueLoop when evaluating queued queries\nwith compressed execution requests. This happened because\nSubmitForAdmission() calls ClearDecompressedCache() to free the\ndecompressed TQueryExecRequest while the query is queued, but\nthe group states (ScheduleState objects) still held references to\nthat freed request. When TryDequeue() later evaluated the query,\nit accessed these dangling references and hit the DCHECK.\n\nThe fix clears group states immediately after clearing the\ndecompression cache and updates the schedule recompute logic so\ngroup states are rebuilt when the query is dequeued.\n\nTests:\nPassed test_admission_controller.py exhaustive tests.\n\nChange-Id: I969e4f32b6838d305c317d0a75f17211f75eed57\nReviewed-on: http://gerrit.cloudera.org:8080/24024\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "28062ed3b26e96a86d523dece3d5993b2949f83b",
      "tree": "fb86b081567d35589061ff969dc8e6b9d08035b1",
      "parents": [
        "554cc2bbccd932ea057440c9c0762b3522993d0c"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Thu Feb 12 21:15:44 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 25 14:14:32 2026 +0000"
      },
      "message": "IMPALA-14738: Add basic testing for Iceberg V3 tables\n\nWith the Iceberg 1.10 upgrade now Impala is able to create Iceberg V3\ntables. Impala has still limited functionalities on such tables, so\nthis patch adds basic testing against V3 tables.\n\nThis patch also adds Iceberg V3 tables with deletion vectors and\ndefault values (written by Spark), these tables can be easily\nloaded for testing.\n\nTables with V3 data types (VARIANT, UNKNOWN, GEOMETRY, GEOGRAPHY), and\nmulti-argument partition transforms are still not supported by the\nlatest Iceberg/Spark, so these will come later.\n\nTesting\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n* Iceberg V3 tables can be created\n* INSERT works\n* ALTER TABLE statements work\n* Time-travel queries work\n\nNegative tests\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n* Impala raises errors for the following operations:\n - DELETE\n - UPDATE\n - MERGE\n - OPTIMIZE\n* Impala raises error when a table contains\n - Deletion Vectors\n - Columns with default values\n\nChange-Id: Ic1b90f1af539731d4653e83b848d55517a3acb58\nReviewed-on: http://gerrit.cloudera.org:8080/23982\nReviewed-by: Peter Rozsa \u003cprozsa@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "554cc2bbccd932ea057440c9c0762b3522993d0c",
      "tree": "2e2d16060b55fcd45ef5065deb3f0148cf2cd080",
      "parents": [
        "1b388918d514183a41bcc4e2a154551a19beeb42"
      ],
      "author": {
        "name": "Marton Greber",
        "email": "greber.mx@gmail.com",
        "time": "Tue Feb 24 18:29:03 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 25 13:18:40 2026 +0000"
      },
      "message": "IMPALA-14777: Sync dynamic_annotations from Kudu\n\nbe/src/gutil/dynamic_annotations.h was missing Kudu commit a964b0e36\n(\"gutil: properly hook up ANNOTATE_HAPPENS_BEFORE/AFTER\", Feb 2018),\nwhich fixed ANNOTATE_HAPPENS_BEFORE and ANNOTATE_HAPPENS_AFTER to use\nthe proper AnnotateHappensBefore/AnnotateHappensAfter TSAN runtime\nfunctions instead of the condvar-based equivalents.\n\nAlso adds the corresponding AnnotateHappensBefore/AnnotateHappensAfter\nstub implementations to dynamic_annotations.c, which were missing the\nnon-TSAN fallback definitions needed when\nDYNAMIC_ANNOTATIONS_EXTERNAL_IMPL\u003d0.\n\nTesting: data-stream-test was reporting a TSAN data race on\nSignalData::stack in debug-util.cc due to the annotations being\neffectively no-ops. Running the test under TSAN with this patch applied\nshows the race no longer appears.\n\nChange-Id: I70eda4515cb5e9aed835c371ed3b473e6a9c3ea6\nReviewed-on: http://gerrit.cloudera.org:8080/24030\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "1b388918d514183a41bcc4e2a154551a19beeb42",
      "tree": "5d9ad14cf50da431ef1a42fcb04c424a386b4124",
      "parents": [
        "862c19045533e4858ef93792551c72d1c44995f8"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Tue Feb 17 23:41:12 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 25 12:40:02 2026 +0000"
      },
      "message": "IMPALA-14750: Reduce leaked socket warnings in pytest - part 1\n\nFixes some of the common causes of warnings like\nResourceWarning: unclosed \u003csocket.socket fd\u003d40, family\u003dAddressFamily.AF_INET, type\u003dSocketKind.SOCK_STREAM, proto\u003d0, laddr\u003d(\u0027127.0.0.1\u0027, 45860), raddr\u003d(\u0027127.0.0.1\u0027, 21050)\u003e\n\nThe fix is not perfect, e.g. it doesn\u0027t close the socket\nif there is a test failure in some cases. The goal is to quickly\nreduce the noise in tests, as this is a possible cause\nbehind some issues (e.g. running out of memory when publishing\nresults).\n\nChange-Id: I95a3d0fbb4053bf5ab3e83175b38481bb15bf379\nReviewed-on: http://gerrit.cloudera.org:8080/23992\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "862c19045533e4858ef93792551c72d1c44995f8",
      "tree": "ed3f16b3778ea6f1aab04c96ba90ae3c4a39af28",
      "parents": [
        "540a3784e0e3cad1a962c368ddbcb14b05de6832"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Tue Feb 24 17:16:05 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 25 08:38:36 2026 +0000"
      },
      "message": "IMPALA-8794: Reenable piggy-back tests in CatalogdMetaProviderTest\n\nThese were disabled on Hive\u003e2 due to flakiness a long time ago.\nReenabling them - if there is still flakiness, it should be\ninvestigated.\n\nTesting:\n- looped the tests many times\n\nChange-Id: Ia2663fe505604035585b684f10fe089e71a6916b\nReviewed-on: http://gerrit.cloudera.org:8080/24028\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "540a3784e0e3cad1a962c368ddbcb14b05de6832",
      "tree": "2ec384b4a3c5b348df448f4d9b07ee7277eb7499",
      "parents": [
        "4e2189391c6cefa118d9f7b915eabd19f4a38189"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Wed Feb 18 02:46:00 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Feb 24 22:04:04 2026 +0000"
      },
      "message": "IMPALA-14737 Part1: Push down LIKE predicates to Iceberg\n\nThis patch adds support for pushing down LIKE predicates to Iceberg using\nstartsWith() and equal() expressions. When a LIKE predicate has a pattern\nstarting with non-wildcard characters, Impala analyzes the pattern and\npushes it down to Iceberg for efficient file-level filtering.\n\nSupported patterns:\n- \u0027abc%\u0027 -\u003e pushes down startsWith(\u0027abc\u0027)\n- \u0027pre_fix%\u0027 -\u003e pushes down startsWith(\u0027pre\u0027) (underscore is wildcard)\n- \u0027a_b%\u0027 -\u003e pushes down startsWith(\u0027a\u0027)\n- \u0027exact\u0027 -\u003e pushes down equal(\u0027exact\u0027) (no wildcards)\n- \u0027asd\\%\u0027 -\u003e pushes down equal(\u0027asd%\u0027) (escaped wildcard treated as literal)\n\nUnsupported patterns (not pushed down):\n- \u0027%suffix\u0027 - starts with wildcard\n- \u0027_prefix%\u0027 - starts with wildcard\n- \u0027prefix%suffix\u0027 - has literal content after wildcard\n\nBenefits:\n- File-level filtering using Iceberg metadata\n- Partition pruning when LIKE is on partition columns\n- Works with UTF-8 strings\n\nTesting:\n- Added iceberg-like-pushdown.test with comprehensive test coverage\n- Tests include prefix patterns, underscore wildcards, exact matches,\n  partition pruning comparison, UTF-8 strings and cases where the pattern\n  cannot be pushed down\n\nChange-Id: I548834126540bcc8d22efc872c2571293b8b7ec4\nReviewed-on: http://gerrit.cloudera.org:8080/24001\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "4e2189391c6cefa118d9f7b915eabd19f4a38189",
      "tree": "2105c873cee7727a11a61aece8fa1c7051149ab5",
      "parents": [
        "b8b377d78e580dbec2e6c332a0d0fd05ea21ba05"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Thu Feb 12 14:39:01 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14770: Upgrade impala-python3 to 3.11.14\n\nThis upgrades the impala-python3 virtualenv to use Python 3.11.14.\nUpgrading to Python 3.11 allows us to use the most recent version\nof most packages. Python 3.11 delivered performance improvements\nover previous versions. It seems to reduce the runtime of precommit\nby about 15-20 minutes (~4:40 -\u003e ~4:25).\n\nThis fixes code using removed library functions:\n - XML\u0027s getiterator() was removed and code needs to use iter()\n - thread\u0027s isAlive() was removed and code needs to use is_alive()\nThis fixes some pieces of code to avoid warnings:\n - The \"pipes\" package is deprecated, so this changes code using\n   pipes.quote() to use shlex.quote() instead.\n - This changes some regex patterns to use raw strings to avoid\n   warnings about invalid escape sequences.\n\nThis upgrades a variety of packages (some of them required, many of them\noptional):\n1. Upgrades setuptools to a version from about a month ago\n2. Upgrades requests to the latest version\n - Addresses some warnings that show for pytest\n - Requests got stricter about certificates and server-cert.pem\n   is no longer considered valid.\n - This regenerates the server-key.pem/server-key-password.pem/server-cert.pem\n   to add a subject alternative name of localhost.\n3. Upgrades python-magic to the latest and fixes dump_breakpad_symbols.py\n4. Upgrades psutil to the latest and fixes tests/common/impala_cluster.py to\n   handle the changes in how it represents zombie processes\n5. Upgrades several other Python packages to more recent versions without\n   needing code changes (allpairspy, flake8, hdfs, kazoo, prometheus-client,\n   six, sasl, avro, distro, pytz, Cython). Removes unused pg8000 package.\n\nThere were issues upgrading some other packages, so this does not\nupgrade them:\n - Newer versions of sqlparse have a regression in split.split()\n   that makes it inoperable for us.\n - Newer versions of pexpect would require adjustment in the\n   interactive shell tests.\n - New versions of pytest are not difficult but require additional changes\n   that would be better suited to a separate commit\n\nTesting:\n - Ran precommit\n - Ran exhaustive release jobs\n\nChange-Id: I9383ebfb310a4ee30134e02b195c332ffbb6a7ec\nReviewed-on: http://gerrit.cloudera.org:8080/23976\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "b8b377d78e580dbec2e6c332a0d0fd05ea21ba05",
      "tree": "32b28925c9b4d56cb2061dcb05ece04fba3cebe3",
      "parents": [
        "bcc9c1526daab9caa00397bde574b37d453a5b32"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Wed Feb 11 22:51:51 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14508/IMPALA-14513/IMPALA-14717: Bump toolchain to pick up new CMake / OpenLDAP / Curl\n\nThis uses a new toolchain to fix a few different JIRAs:\n1.  This bumps the version of CMake to 3.31.11\n   - CMake changed its policy around PackageName_ROOT variables to\n     allow the all-caps (PACKAGENAME_ROOT) and we adopt the new policy.\n   - CMake deprecated its current FindBoost module, and this switches to\n     this BoostConfig.cmake file. This removes a bunch of legacy options\n     around this.\n2. This bumps the version of OpenLDAP to 2.5.20 (which required OpenSSL 1.1.1)\n3. This bumps the verison of Curl to 8.17.0 (which requires fixing the\n   error message in one test)\n4. This changes the CMake code to require OpenSSL 1.1.1.\n\nTesting:\n - Ran core job\n\nChange-Id: Icc3a6d965a04a761cd443e27214dec811ec9863f\nReviewed-on: http://gerrit.cloudera.org:8080/23968\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "bcc9c1526daab9caa00397bde574b37d453a5b32",
      "tree": "49f8791257351e4d339e050502057c00a416f47c",
      "parents": [
        "aa27f16d00bc5644427b8e1deeed205b9244d068"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Fri Feb 20 13:30:07 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14765: Drop bootstrapping code for platforms removed in Impala 5\n\nThis modifies bin/bootstrap_system.sh to drop support for\nRedhat 7 and Ubuntu 16/18. This also removes some ARM\nspecializations that no longer make sense. In particular,\nARM currently installs extra packages that would be useful\nfor building the native toolchain, but that is no longer\nnecessary. It also has some custom code for handling psql\noutput that should be present for both ARM and x86_64.\n\nTesting:\n - Ran a core job\n\nChange-Id: Ib7a00793ac4bebc04382bc6980f38a234a1438db\nReviewed-on: http://gerrit.cloudera.org:8080/24014\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "aa27f16d00bc5644427b8e1deeed205b9244d068",
      "tree": "069b532d32be37425cfabee32e8e909e258e46c9",
      "parents": [
        "69dc0588f76245ce9503e15c72219a0a646156fd"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Wed Feb 18 17:06:50 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14620 (part 2): Fix code to use \u0027python3\u0027 rather than \u0027python\u0027\n\nThis changes bootstrap to stop installing Python 2. It\nalso stops setting \u0027python\u0027 to refer to \u0027python3\u0027. It\nadjusts scripts to point to python3 rather than python.\nFor certain unused scripts (e.g. for the Docker-based\ntests), it leaves them using python with the understanding\nthat they can be updated when revived (and may need other\nchanges to adjust to Python 3).\n\nTesting:\n - Ran core jobs on Ubuntu 20 and Redhat 8 / 9\n\nChange-Id: Ibe36d2b2a1464a5abb4fd1599e57cae2db45fbda\nReviewed-on: http://gerrit.cloudera.org:8080/23999\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "69dc0588f76245ce9503e15c72219a0a646156fd",
      "tree": "e1136c2c27aff8c79311479824992da91fde3d3c",
      "parents": [
        "9c734dd5f27c35113ad7c38806e6d1dfd83b2249"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Sat Feb 07 12:54:28 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14620 (part 1): Remove the Python 2 impala-python virtualenv\n\nPrevious changes stopped building the Python 2 impala-python\nvirtualenv, but the code is still around. Since Python 2 is\ndead, this removes that support and simplifies the code:\n1. It removes the impala-python Python 2 virtualenv. This\n   removes py2-requirements.txt and folds py3-requirements.txt\n   back into requirements.txt. This also removes various\n   helper scripts for the Python 2 virtualenv.\n2. This removes pylint and the check-pylint-py3k.sh script.\n   Pylint is currently only used for the py3k check. This\n   keeps isort separately.\n3. It drops the Python 2 virtualenv package and support.\n4. This drops IMPALA_USE_PYTHON3_TESTS and adjusts run-tests.py\n   to use impala-python3 directly.\n5. This drops the code for producing the Python 2 virtualenv\n   for the shell (and associated packaging code). This also\n   removes the test code for handling the Python 2 shell.\n   This does not drop Python 2 support from impala-shell,\n   so it is still possible to pip install it for Python 2.\n6. This drops some code for detecting whether Python supports\n   SSL, which was used for old versions of Python 2.\n\nTesting:\n - Ran a core job\n\nChange-Id: If28a8a0466614fc1d022e27c742dc3880509947a\nReviewed-on: http://gerrit.cloudera.org:8080/23967\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "9c734dd5f27c35113ad7c38806e6d1dfd83b2249",
      "tree": "6e0c1c3fdd7a5e5f76bf44c2d464b9b2730d120a",
      "parents": [
        "adcd14503effd391fb6cc6356fd3a88829a934c4"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 17 14:09:23 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14764 (part 2): Fix LLVM\u0027s run-clang-tidy.py stderr handling\n\nFor some reason, LLVM\u0027s run-clang-tidy.py captures the stderr\nfrom Clang Tidy and outputs it to stdout. The important output\nabout issues goes to stdout. The output to stderr is mostly garbage\nlike \"70 warnings generated\". To avoid that pollution, this modifies\nthe script to send the stderr output to stderr (which we only output\nif there is an actual error running clang-tidy itself).\n\nTesting:\n - Ran bin/run_clang_tidy.sh on Ubuntu 20 / 22\n\nChange-Id: I6ae90fb12dc222f8fb38b8e563617216ce806f0f\nReviewed-on: http://gerrit.cloudera.org:8080/23991\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "adcd14503effd391fb6cc6356fd3a88829a934c4",
      "tree": "5ad09cf8966f3a86b428e43bc6b6a02a43bc4311",
      "parents": [
        "bf7c2088dd5495a763ff9a381970f99e6101cd4b"
      ],
      "author": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 17 13:52:01 2026 -0800"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 24 18:15:23 2026 +0000"
      },
      "message": "IMPALA-14764 (part 1): Vendor LLVM\u0027s run-clang-tidy.py\n\nThis pulls in LLVM\u0027s latest run-clang-tidy.py from commit hash\nb0ce26c320 and switches our runner script to use it. LLVM\u0027s\nrun-clang-tidy.py has verbose progress output by default. This\npasses in the -hide-progress flag to turn it off. LLVM uses\nApache 2.0 with an exception. This adds information about that\nexception to LICENSE.txt.\n\nTesting:\n - Ran bin/run_clang_tidy.sh on Ubuntu 20 / 22\n\nChange-Id: Ia409d0bcdaefc93b81d1f3df278b2e4258122f9c\nReviewed-on: http://gerrit.cloudera.org:8080/23990\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "bf7c2088dd5495a763ff9a381970f99e6101cd4b",
      "tree": "a9a487618ce3efb7abaccb0635dcaca13c6cfe7a",
      "parents": [
        "0f53e31363dddad918c5f5cf103697b4624d9ede"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Tue Feb 17 18:24:59 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Feb 24 15:07:43 2026 +0000"
      },
      "message": "IMPALA-11986: (part 1) Optimize partition key scans for Iceberg tables\n\nThis patch optimizes queries that only scan IDENTITY-partitioned\ncolumns. The optimization only applies, if:\n* All materialized aggregate expressions have distinct semantics\n  (e.g. MIN, MAX, NDV). In other words, this optimization will work\n  for COUNT(DISTINCT c) but not COUNT(c).\n* All materialized columns are IDENTITY-partitioned in all partition\n  specs (this can be relaxed later)\n\nIf the above conditions are met, then each data file (without deletes)\nonly produce a single record. The rest of the table (data files with\ndeletes and delete files) are scanned normally.\n\nTesting:\n* added e2e tests\n\nChange-Id: I32f78ee60ac4a410e91cf0e858199dd39d2e9afe\nReviewed-on: http://gerrit.cloudera.org:8080/23985\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "0f53e31363dddad918c5f5cf103697b4624d9ede",
      "tree": "9591f58f3d7911191ff32d959383f5dfde8fc81b",
      "parents": [
        "1fe5fd746c8d148bf54b0069a76889260bb543a6"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Wed Oct 22 17:37:31 2025 -0700"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Mon Feb 23 22:47:36 2026 +0000"
      },
      "message": "IMPALA-14429: Calcite planner: change mechanism for parsing tinyint, smallint\n\nCalcite and Impala have an inconsistency with datatypes for small integers.\nCalcite will treat all integers that fit within an integer as an integer.\nImpala treats integers more granularly, that is, \u00271\u0027 will be a tinyint and\n\u00271872\u0027 will be a smallint. CALCITE-7120 has been filed within Calcite so\nthat eventually Calcite will be compatible with Impala.\n\nFor Calcite v1.37, the coercenodes module handles the inconsistency. This is\ndone after the RelNodes are created.\n\nIn Calcite 1.41, some code was added at the AST level that broke Impala\nsince it is too late to manipulate the fields after RelNode creation.\n\nA new mechanism to handle the inconsistency has been added with this commit.\n\nThe internal Validator for Calcite calls \u0027deriveType\u0027 which derives the proper\ntype and this method has been overriden.\n\nAt RexBuilder time (where the RexNodes for the RelNodes are created), the\nmakeLiteral method is overridden so that the proper type is created.\nImpalaRexBuilder derives from RexBuilder and provides this method.\n\nA \"postAnalysis_\" variable within the ImpalaRexBuilder ensures that the\nmakeLiteral logic only gets applied at analysis time. At optimization time,\nthe Impala code knows the explicit type of the literal that is being\ncreated, so the RelDataType of the parameter passed in is used.\n\nTesting is already in place for this as we have tests for dealing with\ndifferent size constants. This commit is proactive to the upgrade to\n1.41\n\nChange-Id: I67b6f7711093a4b8488beee0893aea3c72239eb0\nReviewed-on: http://gerrit.cloudera.org:8080/23724\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "1fe5fd746c8d148bf54b0069a76889260bb543a6",
      "tree": "efeab6a6ace6a1c3a89776ffabc91ae05f6415a7",
      "parents": [
        "a3a725d8c6365537d6605dd94f52fa92e1e51c2a"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Wed Feb 18 17:00:29 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Mon Feb 23 18:39:42 2026 +0000"
      },
      "message": "IMPALA-14754: Allow GCM encryption without PCLMULQDQ\n\nAllows using aes_128_gcm/aes_256_gcm even when PCLMULQDQ\nis missing. While this may be suboptimal, openssl should\nbe still able to execute it.\n\nThe usage of EncryptionKey::GetSupportedDefaultMode() is not\nchanged, so it will still not return GCM without PCLMULQDQ.\nThis is used for spill encryption and when aes_encrypt/aes_decrypt\nhas no \u0027mode\u0027 specified.\n\nTesting:\n- ran tests on ARM host\n\nChange-Id: Ib6353fb9a686046274f1cbde79ecda7aa46adf0b\nReviewed-on: http://gerrit.cloudera.org:8080/23997\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "a3a725d8c6365537d6605dd94f52fa92e1e51c2a",
      "tree": "c4336b55efe0b980eee121e1130e38043d704087",
      "parents": [
        "e69012e835feb861ad6bda4b93da26829c3d2787"
      ],
      "author": {
        "name": "Noemi Pap-Takacs",
        "email": "npaptakacs@cloudera.com",
        "time": "Fri Feb 20 13:45:43 2026 +0100"
      },
      "committer": {
        "name": "Noemi Pap-Takacs",
        "email": "npaptakacs@cloudera.com",
        "time": "Mon Feb 23 13:44:57 2026 +0000"
      },
      "message": "IMPALA-14718: Fix flaky test test_confirm_individual_refresh\n\nThe flakiness was introduced by \u0027test_table_repair\u0027: it executed a\nglobal INVALIDATE METADATA that affected other tests running in\nparallel.\n\n\u0027test_confirm_individual_refresh\u0027 failed because it was running\nin parallel with \u0027test_iceberg.py::test_table_repair\u0027, which ran\nan INVALIDATE METADATA exactly before a SELECT query of\n\u0027test_confirm_individual_refresh\u0027, which was checking that data in\nits table is not reloaded. Due to the global invalidate, the data\nwas reloaded anyway.\n\nFix: instead of global INVALIDATE METADATA, \u0027test_table_repair\u0027\n     only invalidates its own table now.\n\nChange-Id: If798856ae9aa0c1cc429d49f0efd17acd7fa4333\nReviewed-on: http://gerrit.cloudera.org:8080/24011\nReviewed-by: Balazs Hevele \u003cbhevele@cloudera.com\u003e\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nTested-by: Noemi Pap-Takacs \u003cnpaptakacs@cloudera.com\u003e\n"
    },
    {
      "commit": "e69012e835feb861ad6bda4b93da26829c3d2787",
      "tree": "c072b541900326d68767da84279e6821df306d73",
      "parents": [
        "bd214f0cf7ede1a140b8685df4122d3f677804b4"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Thu Feb 05 14:55:30 2026 +0100"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Mon Feb 23 04:14:13 2026 +0000"
      },
      "message": "IMPALA-12374: Optimize trailing/leading % in LIKE\n\nWhen converting LIKE containing a trailing %, leading %, or both,\nto a regular expression, use partial match (with anchors as necessary)\nin re2 with \u0027.*\u0027 trimmed, instead of a full match with trailing or\nleading \u0027.*\u0027.\n\nNote that this optimization only concerns more complex patterns,\ne.g. \u0027%a%b%\u0027.\nPatterns where the trimmed pattern is a fixed string already use more\noptimized checks, like a string search, e.g. \u0027%abc%\u0027.\n\nThis optimization can make LIKE matching faster, especially if the\ntrimmed % covers a long part of the string matched.\nThe performance gain is highest with both leading and trailing %,\nand the lowest with only a trailing %.\n\nIn expr-benchmark.cc, a new function BenchmarkLikeRegexp was added to\ncompare LIKE and regexp_like especially in the relevant cases.\nIn these tests, a string of 100 characters are used to match the\ntrailing/leading % wildcard.\n\nBefore the change, the performance of the test cases are:\n\n                 Function  iters/ms   10%ile   50%ile   90%ile\n--------------------------------------------------------------\n\n                    like               10.7     10.8     10.9\n                   regex               10.7     10.8     10.9\n            leading like               18.8       19     19.1\n           leading regex               68.4     69.4     69.9\n           trailing like               16.2     16.3     16.6\n          trailing regex               18.6     18.9     19.1\n   trailing leading like               9.56      9.6     9.77\n  trailing leading regex               63.5     64.3     65.1\n\nAfter the change, the performance of LIKE and regexp_like is about the\nsame in the relevant cases:\n\n                 Function  iters/ms   10%ile   50%ile   90%ile\n--------------------------------------------------------------\n                    like               10.7     10.8     10.9\n                   regex               10.7     10.8     10.9\n            leading like               67.9     68.7     69.3\n           leading regex               67.4     68.3     69.1\n           trailing like               18.5     18.9       19\n          trailing regex               18.7     18.9     19.1\n   trailing leading like               63.1     63.9     64.6\n  trailing leading regex               63.5     63.9     64.8\n\nTesting:\n-added new tests to LikePredicate in expr-test.cc to cover relevant\ncases\n-added like-predicate-test.cc which checks that optimizations are\napplied when possible\n\nChange-Id: I37b472e056f791035d25633f17ad8a6e841cdd18\nReviewed-on: http://gerrit.cloudera.org:8080/23932\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "bd214f0cf7ede1a140b8685df4122d3f677804b4",
      "tree": "57924558c9bf41940fc4698f392d8431e656b3a5",
      "parents": [
        "0b9efd7906d24be3e0344e81af6009b40bd3b83b"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Thu Feb 19 18:04:30 2026 -0800"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Sat Feb 21 13:01:49 2026 +0000"
      },
      "message": "IMPALA-14758: Calcite planner: Return value with \"in\" and case statement crashes server.\n\nThe following query was crashing the server with the Calcite planner:\n\nSELECT a.id, a.int_col, a.string_col FROM alltypessmall a\nWHERE 1 NOT IN\n    (SELECT CASE WHEN id \u003d 1 then null ELSE id END FROM alltypestiny)\n\nThe AnalyzedInPredicate was setting the savedFunction before the case\nstatement was analyzed. At this point, the case statement had an invalid\ntype for its return type.  The getFunction() for the in clause was\nbeing set to null which caused bad things to happen on the server.\n\nThe fn_ variable is now set at analyze time when the case statement\nis assured to have a return type.\n\nChange-Id: I397b8e3438d8f5d59725bed6fc166f842596818f\nReviewed-on: http://gerrit.cloudera.org:8080/24006\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "0b9efd7906d24be3e0344e81af6009b40bd3b83b",
      "tree": "1592b4c5e5f3559372900b3bea88990e8af59e0a",
      "parents": [
        "a2ea1be22fdf79ce58bd1bf19ecd18918d828ce9"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Thu Feb 19 21:01:10 2026 -0800"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Fri Feb 20 13:02:47 2026 +0000"
      },
      "message": "IMPALA-14761: Fixed error in calcite report generator\n\nA recent test framework change caused failure in the calcite\nreport generator that is fixed with this patch.\n\nChange-Id: I7be033d30f88e40f86e77b4861ca7000f9b4c138\nReviewed-on: http://gerrit.cloudera.org:8080/24007\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\nTested-by: Steve Carlin \u003cscarlin@cloudera.com\u003e\n"
    },
    {
      "commit": "a2ea1be22fdf79ce58bd1bf19ecd18918d828ce9",
      "tree": "e5307a011e42ef12b6e990f5324ceaee790b9446",
      "parents": [
        "c088e7204ab95bc7d60cfb135f230008be5e4d30"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Fri Aug 29 09:34:45 2025 -0700"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 19 04:07:03 2026 +0000"
      },
      "message": "IMPALA-14409: Calcite planner: support statement_expression_limit\n\nAdded a counter in the place where the Calcite planner handles\nexpressions.  A RexNode in Calcite is similar to an Expr object\nin Impala.\n\nThe test for this exists in\ntest_exprs.py::TestExprLimits::test_max_statement_size and will be\nrun once all jenkins tests are run through Calcite.\n\nChange-Id: I9210a9a86eb98b5923295b846cb29f10acf459ce\nReviewed-on: http://gerrit.cloudera.org:8080/23765\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "c088e7204ab95bc7d60cfb135f230008be5e4d30",
      "tree": "854325a75c74b266905a2fe8d5c1dc9062b2dc33",
      "parents": [
        "c1a70701e55c068a7262815b064c4fe8206966bc"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Fri Aug 29 09:27:02 2025 -0700"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 19 00:32:11 2026 +0000"
      },
      "message": "IMPALA-14422: Calcite planner: Crash on Union above Values RelNode\n\nIn version 1.37, for the query:\n\nselect 1 union all select count(*) ...\n\nCalcite was creating the following RelNode structure:\n\nLogicalUnion\n  LogicalValues (1)\n  LogicalAggregate\n    ...\n\nCalcite changed the behavior in 1.40 to ensure that all datatypes are matching.\nNow it produces:\n\nLogicalUnion\n  LogicalProject(CAST 1 as SMALLINT)\n   LogicalValues\n  LogicalProject(CAST 5000 as SMALLINT)\n    LogicalAggregate\n\nThe introduction of the Project between Values exposed a bug in the\nImpalaValuesRel class. The Values node was not looking at its parent\ntype in the situation where the parent was a Project and the tuple size\nwas 1.\n\nThe code in this commit also handles projects which ignore the values\nunderneath. When the \"trivial\" query is found, it creates the Plan Node\nat the Project level rather than the Values level.\n\nOne other small change is thrown into this commit. The memory allocation\nin the tuple descriptor was including a byte for nulls even when the\ncolumn was non-null. This has been fixed.\n\nThe testing for this is already included in calcite.test. This will fail\non a simple \"select length(\u0027hello\u0027)\" query, but only after upgrading to\nat least Calcite 1.40.  So this commit is necessary before upgrading,\nbut no additional test is needed.\n\nChange-Id: I1edf2f0bdb9271b5b8c9716ca7d8c8f858cc108c\nReviewed-on: http://gerrit.cloudera.org:8080/23731\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "c1a70701e55c068a7262815b064c4fe8206966bc",
      "tree": "1fff269269851237042d2ff8511d3b160cc9532d",
      "parents": [
        "090875b02605810358b842d9cc6936026e868736"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Tue Feb 17 13:04:49 2026 -0800"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Feb 18 18:41:24 2026 +0000"
      },
      "message": "IMPALA-14749: Fix warning with Python 3.12\n\nUpdates Thrift to the latest release - allowing us to drop several\ncustom fixes - and removing the warning printed when impala-shell starts\nup saying \"using legacy validation callback\".\n\nChange-Id: Ib1dbbe1b12dc954725bafa55ec5c4b790db9c1b7\nReviewed-on: http://gerrit.cloudera.org:8080/23987\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nReviewed-by: Joe McDonnell \u003cjoemcdonnell@cloudera.com\u003e\n"
    },
    {
      "commit": "090875b02605810358b842d9cc6936026e868736",
      "tree": "9d454f82f6f67eb675f161bea3f7a443fb1d0b96",
      "parents": [
        "33a2f4fd341197f516d645dcc352b60efc3b9a4b"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Mon Jan 12 07:50:39 2026 -0800"
      },
      "committer": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Wed Feb 18 04:25:47 2026 +0000"
      },
      "message": "IMPALA-14102: [part 3] Modified LoptOptimizeJoinRule with Impala changes\n\nThe first cut of LoptOptimizeJoinRule class was imported from\nCalcite 1.37. This had not been used yet but served as a base for\nfuture Impala changes on this class.\n\nThis commit provides the changes that are needed for the rule to\nallow Impala specific join optimization code. The rule name has\nbeen changed to ImpalaLoptOptimizeJoinRule to underscore that\nthis is Impala specific code.\n\nThere are some basic name changes of variables, methods,\nconfigurations that were changed. There are two main changes\nwith this commit.\n\n1) The swapInputs() method compares cost models to decide if\n   the build side should be swapped with the probe side. The\n   Calcite version only looks at top level row counts, but this\n   produced some less optimal plans.\n2) The CumulativeCost handler is overridden to factor in that\n   scan costs need to rely on only the columns fetched from the\n   scan, not all of the columns.\n\nTesting: Tpcds queries have been changed. Some JUnit tests have been\nadded as well.\n\nChange-Id: I168ae903934c5c74520a22605e73f71dc0a9d549\nReviewed-on: http://gerrit.cloudera.org:8080/23924\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Steve Carlin \u003cscarlin@cloudera.com\u003e\n"
    },
    {
      "commit": "33a2f4fd341197f516d645dcc352b60efc3b9a4b",
      "tree": "1e9808c40717a861863d86b82a680dc6e70c7d66",
      "parents": [
        "c475f343fb82d9f1d69b384539b3933742e35e4d"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Tue Feb 17 13:29:28 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 18 02:45:52 2026 +0000"
      },
      "message": "IMPALA-14751: Set hns.enabled\u003dfalse for Azure\n\nExplicitly sets fs.azure.account.hns.enabled to prevent newer versions\nof Hadoop trying to query hierarchical namespace support dynamically and\nfailing. Defaults to false.\n\nChange-Id: I3c5936c860913b2eead758ebb4cb1f84d0ce9905\nReviewed-on: http://gerrit.cloudera.org:8080/23988\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "c475f343fb82d9f1d69b384539b3933742e35e4d",
      "tree": "da7cab862392462dcd9c50a9a419e6ff8e70a9bc",
      "parents": [
        "f9f0ab80730532654141057c00d5e6de8ac79760"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Thu Feb 12 21:16:54 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 18 00:14:26 2026 +0000"
      },
      "message": "IMPALA-14744: Add dependency-reduced-pom.xml files to .gitignore\n\ndependency-reduced-pom.xml files are automatically generated by the\nMaven Shade Plugin. We can add these files to .gitignore\n\nChange-Id: I76c5b2d7cafe22d206784531a7aea6d0538fa625\nReviewed-on: http://gerrit.cloudera.org:8080/23970\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "f9f0ab80730532654141057c00d5e6de8ac79760",
      "tree": "d1c03832026cb6c24e257daba903098d982b8ee8",
      "parents": [
        "1dd2e8595c2ddb4e41e9bd6af3a2bb68142752ee"
      ],
      "author": {
        "name": "Peter Rozsa",
        "email": "prozsa@cloudera.com",
        "time": "Thu Feb 12 17:55:06 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Tue Feb 17 19:29:48 2026 +0000"
      },
      "message": "IMPALA-14747: Set authzChecker in getOrCreateCatalog\n\nThis change adds an additional check to getOrCreateCatalog in LocalImpl\nthat makes sure that the authzChecker is set for the primary\nMetaProvider even if there are multiple MetaProviders defined.\n\nTests:\n - manually validated that authzChecker is correctly set if\n   MultiMetaProvider is used\n\nChange-Id: I9ba1983e46a974c6b2951335615f641fcf428dc3\nReviewed-on: http://gerrit.cloudera.org:8080/23983\nReviewed-by: Zoltan Borok-Nagy \u003cboroknagyz@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "1dd2e8595c2ddb4e41e9bd6af3a2bb68142752ee",
      "tree": "471b6e55a415b3320e22117956973944f62c0093",
      "parents": [
        "1a814f5f01f1f401517f252aeefe906a2ef1c87a"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Tue Sep 23 09:22:37 2025 -0700"
      },
      "committer": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Tue Feb 17 18:56:20 2026 +0000"
      },
      "message": "IMPALA-14488: Calcite planner: Support fallback to Original planner\n\nIntroduced the query options PLANNER and FALLBACK_PLANNER which are\nof type TPlannerType\n\nThe 3 options for TPlannerType are:\n\nORIGINAL (default) : Use the Original planner for queries.\nCALCITE            : Use the Calcite planner for queries.\nNONE               : Convenient option for setting the FALLBACK_PLANNER.\n                     This should never be used for the PLANNER option.\n\nThe Calcite planner currently does not support DDL and other various\nqueries (e.g. complex types). If a known unsupported query is detected,\nthe original planner will be used regardless of what is chosen for\nFALLBACK_PLANNER.\n\nThe fallback planner will allow for easier transition for users who\nwant to use the new Calcite planner without having to worry about\nbackward compatibility issues that the compiler doesn\u0027t support.\nOne example that is currently not supported (in runtime_planners.test)\nis the \"ignore nulls\" phrase which needs to be inside the parens for\nImpala, but outside the parens for the Calcite parser.\n\nAt the time of this commit, there are also various compiler exceptions\nthrown for Calcite which are not yet supported. The PLANNER\u003dCALCITE\nand FALLBACK_PLANNER\u003dORIGINAL options are set if the\n--use_calcite_planner\u003dtrue server option is specified.  This will allow\neasier transitioning to the Calcite planner because the user will be\nassured that even if there is a compilation failure in Calcite,\ntheir existing query will still run with the original planner.\n\nChange-Id: Id1fdc5ef92fff84e89af0e19c4246cc15e2ea823\nReviewed-on: http://gerrit.cloudera.org:8080/23900\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\n"
    },
    {
      "commit": "1a814f5f01f1f401517f252aeefe906a2ef1c87a",
      "tree": "29ed7c5be54fa62a54b60d3124d43c89fa07366b",
      "parents": [
        "c3166ae53617036a5f990e36d5b234e2959c0e82"
      ],
      "author": {
        "name": "Arnab Karmakar",
        "email": "arnabk1108@gmail.com",
        "time": "Tue Dec 16 13:07:55 2025 +0530"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 12 22:45:59 2026 +0000"
      },
      "message": "IMPALA-14555: Add Iceberg support for SHOW PARTITIONS WHERE\n\nThis patch adds WHERE clause support for SHOW PARTITIONS on Iceberg tables,\nextending the functionality previously added for HDFS tables in IMPALA-14065.\n\nIceberg uses manifest-based file/partition filtering instead of filesystem\ntraversal. This initial implementation supports simple predicates\n(comparisons, IN, BETWEEN, IS NULL, AND/OR) but not functions, subqueries, or\nanalytics.\n\nFor complex queries with functions, use Iceberg metadata tables.\nThe following is not supported in SHOW PARTITIONS:\n  SHOW PARTITIONS functional_parquet.iceberg_partitioned\n  WHERE upper(action) \u003d \u0027CLICK\u0027;\n\nUse the metadata table instead:\n  SELECT `partition`\n  FROM functional_parquet.iceberg_partitioned.`partitions`\n  WHERE upper(`partition`.action) \u003d \u0027CLICK\u0027;\n\nThis change also adds DROP PARTITION coverage for BETWEEN predicates on\nIceberg partition columns in iceberg-drop-partition.test.\n\nTesting:\n- Unit tests in AnalyzeDDLTest for valid predicates and error cases\n- Positive test cases for simple predicates, BETWEEN, IN, IS NULL, AND, OR,\n  NOT, and boolean literals\n- Negative test cases that reject unsupported functions with clear errors\n- DROP PARTITION tests with BETWEEN predicates in\n  testdata/workloads/functional-query/queries/QueryTest/iceberg-drop-partition.test\n\nTODO:\nIMPALA-14675: Support complex predicates (SQL functions, non-deterministic\nfunctions, aggregates, analytics, subqueries) in SHOW PARTITIONS WHERE for\nIceberg tables by evaluating them per-partition using\nFeSupport.EvalPredicateBatch(), similar to HDFS tables.\n\nGenerated-by: Cursor AI (claude-4.5-sonnet)\nChange-Id: I4c0ee4d171ae939770725d89dc504e13f82a7688\nReviewed-on: http://gerrit.cloudera.org:8080/23800\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "c3166ae53617036a5f990e36d5b234e2959c0e82",
      "tree": "90151af6452630d4aaf0b70360e105393004c2ed",
      "parents": [
        "f0ac9a4b7d3b7c1eb9e9b5cc36aae80031ce9340"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Thu Feb 12 09:30:04 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 12 22:27:14 2026 +0000"
      },
      "message": "IMPALA-14742: Guard against junit 5\n\nNewer versions of yarn bring in junit 5 without junit-vintage-engine.\nExclude it and guard against accidentally including junit 5 until we\u0027re\nready to support it.\n\nChange-Id: Ibe14569beb6d3dc00609b87dd899b35729f95625\nReviewed-on: http://gerrit.cloudera.org:8080/23969\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "f0ac9a4b7d3b7c1eb9e9b5cc36aae80031ce9340",
      "tree": "3553fe71e7dd95de33ba6acd0991a90bbaebd537",
      "parents": [
        "26e3529c95dd63e50e9f59a9871084dccb28d868"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Mon Jan 26 14:50:14 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 12 17:26:04 2026 +0000"
      },
      "message": "IMPALA-12844: Support setting DBPROPERTIES\n\nAdded support for ALTER DATABASE \u003cdb\u003e SET DBPROPERTIES(...)\nAdded support for [WITH DBPROPERTIES(...)] for CREATE DATABASE queries\n\nDatabase properties can now be set by Impala through these queries\neither at database creation or for already existing databases.\n\nTesting:\n- Added frontend tests for parsing/analyzing/authorizing relevant queries\n- Added E2E tests to verify that altering properties does take effect\n\nChange-Id: I628c7bed4f0c39aed7f5f4ffea52421caf501933\nReviewed-on: http://gerrit.cloudera.org:8080/23905\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "26e3529c95dd63e50e9f59a9871084dccb28d868",
      "tree": "4c791c0bc71e1e2d67f4b06dfed554105b11e140",
      "parents": [
        "6b4c895f9aa1d3989c343f05270bc6a60815bc45"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Tue Feb 10 20:58:25 2026 +0100"
      },
      "committer": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Thu Feb 12 09:58:58 2026 +0000"
      },
      "message": "IMPALA-14734: Optimize sorting file descriptors during planning\n\nIcebergScanNode sorts the file descriptors by path (IMPALA-12765).\nThis can dominate planning time if there are many files.\n\nThis change makes this faster by avoiding extracting Java\nStrings from flatbuffer, which involves utf8 decoding. Also\nchanges a few similar functions to avoid duplicate decoding.\n\nFor a table with ~1 million files:\nexplain select * from bigice limit 1;\nbefore: ~12s\nafter: ~6.5s\n\nChange-Id: Icb914eb4de7bdadeb876f7dd101e8737b9527b6f\nReviewed-on: http://gerrit.cloudera.org:8080/23958\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nTested-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\n"
    },
    {
      "commit": "6b4c895f9aa1d3989c343f05270bc6a60815bc45",
      "tree": "883e88a47747c98ed969999be78bbe83cf5cfe7f",
      "parents": [
        "ffcb9a9ec74b9797e2e1b231f3aa1ca074da35a4"
      ],
      "author": {
        "name": "Steve Carlin",
        "email": "scarlin@cloudera.com",
        "time": "Tue Feb 03 09:55:11 2026 -0800"
      },
      "committer": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Thu Feb 12 09:10:40 2026 +0000"
      },
      "message": "IMPALA-14719: Fixed race condition for Calcite property\n\nIMPALA-14710 was filed for a flaky test involving the\ncalcite.default.charset property. Setting this property\nbefore the jar file is loaded fixes this issue.\n\nThis commit also fixes two other issues:\n\n- IMPALA-14384: Class.forName() is only called once now. The compiler\n  factory is stored in a singleton.\n\n- The Calcite planner is now part of the build and should be in the\n  target directory. If the user explicitly sets the calcite planner\n  option and the calcite jar file not found, an error is thrown rather\n  than falling back.\n\nChange-Id: I80a0207150cf521c297b12a24075ae5f29c5c5ff\nReviewed-on: http://gerrit.cloudera.org:8080/23935\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "ffcb9a9ec74b9797e2e1b231f3aa1ca074da35a4",
      "tree": "92e14cd1050e6d728b71520d8def4835f0159d69",
      "parents": [
        "6302cdadde0a6627761f267bb060f7947a20334a"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Wed Feb 11 19:36:30 2026 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Thu Feb 12 03:01:21 2026 +0000"
      },
      "message": "IMPALA-14739: Log if local catalog cache entry size is truncated\n\nThe weigh() function cannot return more than 2GB. Such huge objects\nshould be very rare, but if it happens, the cache will underestimate\nits size. Add a warning in this case.\n\nChange-Id: I30554e55e0d487be38e10ddadb7fe53410f61201\nReviewed-on: http://gerrit.cloudera.org:8080/23964\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "6302cdadde0a6627761f267bb060f7947a20334a",
      "tree": "e67c457c6353215c7e98dff46d699fede31774d8",
      "parents": [
        "720b94ad992d6bbde0d3c3ec69bd52e6b2d0e63c"
      ],
      "author": {
        "name": "Zoltan Borok-Nagy",
        "email": "boroknagyz@cloudera.com",
        "time": "Tue Nov 18 15:08:32 2025 +0100"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 11 17:23:21 2026 +0000"
      },
      "message": "IMPALA-14665: Upgrade Iceberg to 1.10.1\n\nThis patch upgrades Iceberg to 1.10.1. It also temporarily disables\nCDP_ICEBERG_VERSION until it is also upgraded to 1.10.1.\n\nIceberg 1.10 depends on newer Avro and Parquet versions than what\nImpala depends. To overcome this (without upgrading other Impala\ndependencies and disable their CDP versions), we introduce a new\nartifact: impala-iceberg-runtime. It shades the dependencies of the\nIceberg libary.\n\nTest changes:\n* Schema of a few metadata tables have changed, new fields added\n* Before 1.10, a DELETE operation was stored as \"overwrite\" in Iceberg\n  snapshot metadata. Now it is correctly stored as \"delete\".\n* API changes in IcebergRestCatalogTest\n* Snappy compression for Parquet is always set by Impala if not\n  specified otherwise\n\nGenerated-by: Gemini Pro\n\nChange-Id: I7e6f8e7e8e9e85faa992d7cc0165c92687d13bc0\nReviewed-on: http://gerrit.cloudera.org:8080/23945\nReviewed-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "720b94ad992d6bbde0d3c3ec69bd52e6b2d0e63c",
      "tree": "213793abe2a3bdd252f56e3c5f0f30ae36cc4215",
      "parents": [
        "3be15fd3598071eaeddd9b4d29e0883b95fdd14a"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Mon Feb 09 15:13:07 2026 -0800"
      },
      "committer": {
        "name": "Impala Public Jenkins",
        "email": "impala-public-jenkins@cloudera.com",
        "time": "Wed Feb 11 13:58:29 2026 +0000"
      },
      "message": "IMPALA-13419: Improve test_http_socket_timeout\n\nUses a debug action in ExecuteStatement to add a sleep so we can test a\nlonger http_socket_timeout_s setting, which makes the test more\nconsistent. Fixes test failures with ASAN builds.\n\nThe change in testing means the failure no longer happens during \u0027SET\nALL\u0027 - which was too quick to be reliable - where impala-shell would\nthen CloseSession after failure. It now happens during executing the\nquery, which can result in leaving a query behind after the connection\nis closed. Moves the test to custom cluster testing because there\u0027s no\nway to reliably ensure the session is closed after disconnect;\nidle_session_timeout should in theory work, but impala-shell has no way\nto set it and detecting closed connections takes too long.\n\nFixes a DCHECK failure exposed by this test where registration fails\nbecause the session has been closed and therefore the query driver was\nnot finalized:\n\n  760958 impala-server.cc:1522] ...] RegisterQuery(): session has been closed, ignoring query.\n  760958 query-driver.cc:46] Check failed: finalized_.Load() Finalize() must have been called\n\nTesting: ran test_http_socket_timeout a bunch of times with ASAN.\n\nChange-Id: Idf31bb1752586ebc296e5e8d62c035bac7371dfb\nReviewed-on: http://gerrit.cloudera.org:8080/23955\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    },
    {
      "commit": "3be15fd3598071eaeddd9b4d29e0883b95fdd14a",
      "tree": "4fa0b80dbbfe41a2ba4e35161942f96133a608ae",
      "parents": [
        "a073dd22b3e4da451efbf6cf27d38d743d5df1d3"
      ],
      "author": {
        "name": "Balazs Hevele",
        "email": "bhevele@cloudera.com",
        "time": "Mon Feb 09 12:48:03 2026 +0100"
      },
      "committer": {
        "name": "Joe McDonnell",
        "email": "joemcdonnell@cloudera.com",
        "time": "Tue Feb 10 17:41:27 2026 +0000"
      },
      "message": "IMPALA-14731: Fix LIKE starting with % ending with escaped %\n\nThe escape before the % at the end was not parsed properly as an\nescape wildcard.\n\nAs an example, \"%abc\\%\" matched for anything containing \"abc\\\"\n(containing the backslash character), instead of any any string with\nthe suffix \"abc%\".\n\nThe fix is basically the same as the one for IMPALA-10849 but for the\ncase when the pattern starts with %.\n\nNew test cases were added to exprs.test.\n\nChange-Id: I6eebfaeffdb59d5d2c1cfbd331fa98d0391325e7\nReviewed-on: http://gerrit.cloudera.org:8080/23953\nReviewed-by: Csaba Ringhofer \u003ccsringhofer@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n"
    }
  ],
  "next": "a073dd22b3e4da451efbf6cf27d38d743d5df1d3"
}
