)]}'
{
  "log": [
    {
      "commit": "6bddeb67e992f0c73da27e864bc986955719d7bb",
      "tree": "3c67d6462c297e91bc85ab834a4b4b5c3396b9e2",
      "parents": [
        "e8ce017bc5c543119d5b74663ab996699adff805"
      ],
      "author": {
        "name": "mwish",
        "email": "maplewish117@gmail.com",
        "time": "Thu Nov 05 00:26:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 17:26:02 2026 +0100"
      },
      "message": "GH-55313: [C++][Parquet] SIMD: optimize parquet GreaterThan on Neon (#55323)\n\n### Rationale for this change\n\nScalar code cannot be well compiled to vectorized code because selection_mask in `GreaterThanBitmapImpl`.\n\nDetails see: https://godbolt.org/z/EvcMhWGhY\n\nThe bottleneck on MacOS is bounded on instruction number, and xsimd optimize this on ARM\n\n### What changes are included in this PR?\n\nVectorized GreaterThanBitmapSimd\n\n### Are these changes tested?\n\nCovered by existing.\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n\n* GitHub Issue: #55313\n\nAuthored-by: mwish \u003cmaplewish117@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "e8ce017bc5c543119d5b74663ab996699adff805",
      "tree": "62b1dbcc6e2c07273f3b0c03f541c164211d5ab0",
      "parents": [
        "005f786c83888b8a9e9ff8544039069c7ec6914d"
      ],
      "author": {
        "name": "Mrigank Bhatnagar",
        "email": "47363219+Awesome06@users.noreply.github.com",
        "time": "Wed Nov 04 20:54:47 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 16:24:47 2026 +0100"
      },
      "message": "GH-54668: [C++][Compute] Implement equality comparison between Utf8View and other string types (#55171)\n\n### Rationale for this change\n\nComparing `Utf8` or `LargeUtf8` with `Utf8View` (and `Binary` / `LargeBinary` with `BinaryView`) currently fails with:\n```text\nArrowNotImplementedError: Function \u0027equal\u0027 has no kernel matching input types (string, string_view)\n```\n\nThis PR registers direct comparison kernels between offset-based string/binary types and their view equivalents so mixed comparisons execute zero-copy without requiring explicit casting.\n\n### What changes are included in this PR?\n\n1. `cpp/src/arrow/compute/kernels/scalar_compare.cc`:\n   - Registered bidirectional mixed kernels for `(utf8, utf8_view)`, `(large_utf8, utf8_view)`, `(binary, binary_view)`, and `(large_binary, binary_view)` via `applicator::ScalarBinary`.\n   - Updated `MakeFlippedCompare` to flip argument signatures for asymmetric kernels (`in_types[0] !\u003d in_types[1]`) so flipped functions (`less`, `less_equal`) dispatch correctly, while preserving existing signatures and match constraints on symmetric kernels.\n   - Added a `DispatchExactImpl` check in `DispatchBest` after dictionary decoding so dictionary-encoded inputs match exact mixed kernels directly.\n2. `cpp/src/arrow/compute/kernels/scalar_compare_test.cc`:\n   - Parameterized existing `TestBinaryViewCompareKernel.ArrayArray` and `ArrayScalar` fixtures with the mixed type pairs across all comparison functions.\n   - Added `CheckDispatchBest` coverage for mixed pairs, along with slice and dictionary test cases.\n\n### Are these changes tested?\n\nYes, covered by C++ unit tests in `cpp/src/arrow/compute/kernels/scalar_compare_test.cc`.\n\n### Are there any user-facing changes?\n\nYes. Users can now directly compare `Utf8View` and `BinaryView` columns/scalars against `Utf8`, `LargeUtf8`, `Binary`, and `LargeBinary` across all comparison functions (`equal`, `not_equal`, `less`, `less_equal`, `greater`, `greater_equal`).\n\n### Was AI used for this PR?\n\nAI was used to assist with kernel registration and testing under human direction.\n\n**PR code and description written by:**\n- [X] Human\n- [X] AI\n\n**Reviewed before submission by:**\n- [X] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54668\n\nAuthored-by: Mrigank Bhatnagar \u003cbhatnagar.mrigank2006@Gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "005f786c83888b8a9e9ff8544039069c7ec6914d",
      "tree": "4344439f1fcd43319e9efbb4c182941fa8a9749c",
      "parents": [
        "ceaed680cda79270212599d2b1bca47021566f9c"
      ],
      "author": {
        "name": "Rossi Sun",
        "email": "zanmato1984@gmail.com",
        "time": "Wed Nov 04 07:13:49 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 16:13:49 2026 +0100"
      },
      "message": "GH-54885: [C++][Compute] Use 64-bit offsets for basic row encoding (#55170)\n\n### Rationale for this change\n\nBasic hash joins can crash when encoded build-side keys or payloads exceed 2 GiB because their cumulative byte offsets overflow int32_t.\n\n### What changes are included in this PR?\n\nUse 64-bit byte offsets and length calculations in RowEncoder, shared KeyEncoder counters, and basic Grouper. Row/group IDs and per-column encoded length formats are unchanged.\n\n### Are these changes tested?\n\nAdded large-memory regressions for length calculation, appends, fixed-width decoding, grouping, and hash-join keys/payloads, plus tests for sliced inputs and encoder reuse.\n\n### Are there any user-facing changes?\n\nBasic hash joins can handle more than 2 GiB of encoded large_string/large_binary build-side keys or payloads.\n\nOffsets grow from 4 to 8 bytes. Extra element storage is 4 × (N + 1) bytes per RowEncoder storing N rows: approximately 3.8 MiB per million rows, separately for key and payload encoders. Basic Grouper also uses four additional bytes per unique-key offset and temporary batch offset. These figures exclude spare capacity and allocator overhead; total join memory does not double.\n\nNo public API or row/group-count limit changes.\n\n**This PR contains a \"Critical Fix\".** It prevents a crash on valid input.\n\n### Was AI used for this PR?\n\nThe author conducted a thorough review with AI assistance.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54885\n\nAuthored-by: Rossi Sun \u003czanmato1984@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "ceaed680cda79270212599d2b1bca47021566f9c",
      "tree": "718b829b1b88415d60b3f3381af05305189dea51",
      "parents": [
        "690ed5665832e10358618614e506c590f2a61bf9"
      ],
      "author": {
        "name": "Rossi Sun",
        "email": "zanmato1984@gmail.com",
        "time": "Wed Nov 04 06:08:57 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 15:08:57 2026 +0100"
      },
      "message": "GH-54920: [C++][Compute] Support unsigned indices in inverse_permutation and scatter (#55169)\n\n### Rationale for this change\n\n`inverse_permutation` and `scatter` currently accept only signed integer indices, requiring unnecessary casts for unsigned arrays. This PR adds unsigned support while reducing generated code size.\n\n### What changes are included in this PR?\n\n- Accept signed and unsigned integer indices in both functions.\n- Allow unsigned inverse-permutation output types, with the default still following the input type.\n- Share input handling by bit width and validity generation by output width, while retaining specialized output writes.\n- Reduce the swizzle object\u0027s code section from 432,480 to 193,520 bytes (about 55.3% smaller, Apple Clang/O2).\n- Preserve signed-index checks and uint64 bounds diagnostics, and update the C++ and Python-facing documentation.\n\n### Are these changes tested?\n\nAdded unit tests for unsigned types, index bounds, sliced/chunked inputs, and validity bitmap boundaries.\n\n### Are there any user-facing changes?\n\nUnsigned integer indices are now accepted. For example, inverse permutation of uint8 `[2, null, 0, 1]` returns uint8 `[2, 3, 0, null]`.\n\nNo breaking API changes.\n\n### Was AI used for this PR?\n\nThe changes were thoroughly reviewed by a human with AI assistance.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54920\n\nAuthored-by: Rossi Sun \u003czanmato1984@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "690ed5665832e10358618614e506c590f2a61bf9",
      "tree": "9afbdbf4f7cc8eca5ffa9f0bef7d0693107db8c4",
      "parents": [
        "e778b2a6117aaac2e88acec682326b5b4f91a096"
      ],
      "author": {
        "name": "tadeja",
        "email": "tadeja@users.noreply.github.com",
        "time": "Wed Nov 04 12:40:13 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 20:40:13 2026 +0900"
      },
      "message": "GH-55366: [Dev][Release] Fix USE_CONDA\u003d1 verification for GLib and Ruby on macOS and update docs (#55367)\n\n### Rationale for this change\nSee #55366\n### What changes are included in this PR?\n- GLib/Ruby tests with `ruby -rbundler/setup` instead of `bundle exec ruby`\n- Update docs page `release_verification.rst` (remove Java, node, maven)\n\n### Are these changes tested?\nYes, locally on macOS 26.6 and Ubuntu 24.04.\n`TEST_DEFAULT\u003d0 TEST_SOURCE\u003d1 (USE_CONDA\u003d1) dev/release/verify-release-candidate.sh 26.0.1`\n\n### Are there any user-facing changes?\nNo.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [X] Human\n- [X] AI for hints only\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [ ] AI\n- [ ] Not reviewed\n* GitHub Issue: #55366\n\nLead-authored-by: Tadeja Kadunc \u003ctadeja.kadunc@gmail.com\u003e\nCo-authored-by: tadeja \u003ctadeja@users.noreply.github.com\u003e\nCo-authored-by: Sutou Kouhei \u003ckou@cozmixng.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "e778b2a6117aaac2e88acec682326b5b4f91a096",
      "tree": "931dad36c87cf2642315ec048b5c77824269bd46",
      "parents": [
        "aeb957a872127be2d53688386a0d9a8d095290fe"
      ],
      "author": {
        "name": "Gnananjali",
        "email": "136087716+Gnananjali@users.noreply.github.com",
        "time": "Wed Nov 04 16:55:55 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 12:25:55 2026 +0100"
      },
      "message": "GH-48182: [Python] Add regression test for RecordBatch.from_struct_array with list offsets (#49162)\n\nAdds a regression test to ensure RecordBatch.from_struct_array correctly handles sliced StructArray with offsets.\n\nThis test verifies that only the sliced rows are included when converting a StructArray to RecordBatch.\n\nThis addresses GH-48182.\n\n* GitHub Issue: #48182\n\nAuthored-by: Gnananjali \u003cgnananjalikavali123@gmail.com\u003e\nSigned-off-by: AlenkaF \u003cfrim.alenka@gmail.com\u003e"
    },
    {
      "commit": "aeb957a872127be2d53688386a0d9a8d095290fe",
      "tree": "c0ad3656d875af7dbe40c18c09544dac124427df",
      "parents": [
        "2df2dd834ed0980b95d383f66be8e57882a1b68b"
      ],
      "author": {
        "name": "Alina (Xi) Li",
        "email": "96995091+alinaliBQ@users.noreply.github.com",
        "time": "Wed Nov 04 04:15:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 12:15:22 2026 +0100"
      },
      "message": "GH-51391: [MATLAB][CI] Replace `actions/cache` with `apache/infrastructure-actions/stash` in Matlab workflow (#55296)\n\n### Rationale for this change\nGH-51391\n\n### What changes are included in this PR?\n* add `apache/infrastructure-actions/stash/restore` after `ccache-info` step\n* add `apache/infrastructure-actions/stash/save` after `build` step and before `test` step\n\n### Are these changes tested?\nyes, in CI. Tested in fork too.\n\n### Are there any user-facing changes?\nn/a\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\nCode by AI. PR description by human.\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51391\n\nAuthored-by: Alina (Xi) Li \u003calinalixili@gmail.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "2df2dd834ed0980b95d383f66be8e57882a1b68b",
      "tree": "3af2cec7a6e3849b5753b06e12bc71a6c42fb0c4",
      "parents": [
        "001fc61d5d99cad52078fa7eb8fa271e5f637a6a"
      ],
      "author": {
        "name": "Omkar Kabde",
        "email": "omkarkabde@gmail.com",
        "time": "Wed Nov 04 14:35:44 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 22:05:44 2026 +1300"
      },
      "message": "GH-55385: [C++][Parquet] Remove unused `last_value_in_previous_page_` from `DeltaByteArrayDecoderImpl` (#55386)\n\n### Rationale for this change\n`DeltaByteArrayDecoderImpl` keeps a `last_value_in_previous_page_` member that is written when a page is fully consumed, but it is never read. It was meant to work around PARQUET-246 (files written with a bug where the previous value is carried across pages), but that workaround was never implemented, so the member is dead state. \n\nFixes #55385\n\n### What changes are included in this PR?\nRemoves `last_value_in_previous_page_`, its initializer, the assignment after a page is consumed, and the TODO in `SetData` that referred to it. `last_value_` is still cleared at the start of each page, so decoding is unchanged.\n\n### Are these changes tested?\nYes, by the existing delta byte array decoder tests. No new tests are needed since there is no behaviour change.\n\n### Are there any user-facing changes?\nNo.\n\n### Was AI used for this PR?\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n- [x] Human\n\n* GitHub Issue: #55385\n\nAuthored-by: Omkar Kabde \u003comkarkabde@gmail.com\u003e\nSigned-off-by: Adam Reeve \u003cadreeve@gmail.com\u003e"
    },
    {
      "commit": "001fc61d5d99cad52078fa7eb8fa271e5f637a6a",
      "tree": "ac69cabac0b47d5fde64c93e847310dae99c5617",
      "parents": [
        "7177f9de162d5b3da675b310f92a3d2335fdd312"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Nov 04 14:02:53 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 14:02:53 2026 +0900"
      },
      "message": "MINOR: [CI] Bump the apache-infrastructure-actions-stash group with 2 updates (#55379)\n\nBumps the apache-infrastructure-actions-stash group with 2 updates: [apache/infrastructure-actions/stash/restore](https://github.com/apache/infrastructure-actions) and [apache/infrastructure-actions/stash/save](https://github.com/apache/infrastructure-actions).\n\nUpdates `apache/infrastructure-actions/stash/restore` from d3a005f07dd94a34d11361b0287b0c1fdc6d55f5 to b41ca1cbe4d8a214dea50788a0e037184a69ad3f\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b41ca1cbe4d8a214dea50788a0e037184a69ad3f\"\u003e\u003ccode\u003eb41ca1c\u003c/code\u003e\u003c/a\u003e Remove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/4dc92d65d72fbee925aa3ae40734c7f10ba9c9ef\"\u003e\u003ccode\u003e4dc92d6\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/2a2744ec2cac713ab991cba2954cb560a2bc840c\"\u003e\u003ccode\u003e2a2744e\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump carabiner-dev/actions/install/download-and-veri...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/341adfc483206ac6e09032905a1bed3739721050\"\u003e\u003ccode\u003e341adfc\u003c/code\u003e\u003c/a\u003e verify-action-build: recognize multi-org ampel verification (\u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/4ccfda68277807a101b4283dbc49c8d1cdedd952\"\u003e\u003ccode\u003e4ccfda6\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b0c6c1f428d77ca46acd152b585485d44d666bf4\"\u003e\u003ccode\u003eb0c6c1f\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump carabiner-dev/actions/install/ampel (\u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/60df90a9ecb7e3eaf2ac2f2f20056996a8c094eb\"\u003e\u003ccode\u003e60df90a\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/7c937077434a29a85d9812ea4ad60ae53234d92a\"\u003e\u003ccode\u003e7c93707\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump commit-check/commit-check-action (\u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/9dd5da00f2e7c41cf245fa927ec033ddb07d1323\"\u003e\u003ccode\u003e9dd5da0\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/01454b122b56904fc62a4cd63fb0760a29b705ac\"\u003e\u003ccode\u003e01454b1\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump carabiner-dev/actions/install/ampel-bootstrap (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/infrastructure-actions/compare/d3a005f07dd94a34d11361b0287b0c1fdc6d55f5...b41ca1cbe4d8a214dea50788a0e037184a69ad3f\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache/infrastructure-actions/stash/save` from d3a005f07dd94a34d11361b0287b0c1fdc6d55f5 to b41ca1cbe4d8a214dea50788a0e037184a69ad3f\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b41ca1cbe4d8a214dea50788a0e037184a69ad3f\"\u003e\u003ccode\u003eb41ca1c\u003c/code\u003e\u003c/a\u003e Remove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/4dc92d65d72fbee925aa3ae40734c7f10ba9c9ef\"\u003e\u003ccode\u003e4dc92d6\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/2a2744ec2cac713ab991cba2954cb560a2bc840c\"\u003e\u003ccode\u003e2a2744e\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump carabiner-dev/actions/install/download-and-veri...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/341adfc483206ac6e09032905a1bed3739721050\"\u003e\u003ccode\u003e341adfc\u003c/code\u003e\u003c/a\u003e verify-action-build: recognize multi-org ampel verification (\u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/4ccfda68277807a101b4283dbc49c8d1cdedd952\"\u003e\u003ccode\u003e4ccfda6\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b0c6c1f428d77ca46acd152b585485d44d666bf4\"\u003e\u003ccode\u003eb0c6c1f\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump carabiner-dev/actions/install/ampel (\u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/60df90a9ecb7e3eaf2ac2f2f20056996a8c094eb\"\u003e\u003ccode\u003e60df90a\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/7c937077434a29a85d9812ea4ad60ae53234d92a\"\u003e\u003ccode\u003e7c93707\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump commit-check/commit-check-action (\u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/9dd5da00f2e7c41cf245fa927ec033ddb07d1323\"\u003e\u003ccode\u003e9dd5da0\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/01454b122b56904fc62a4cd63fb0760a29b705ac\"\u003e\u003ccode\u003e01454b1\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump carabiner-dev/actions/install/ampel-bootstrap (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/infrastructure-actions/compare/d3a005f07dd94a34d11361b0287b0c1fdc6d55f5...b41ca1cbe4d8a214dea50788a0e037184a69ad3f\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@ dependabot rebase` will rebase this PR\n- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@ dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@ dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@ dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@ dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@ dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@ dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nAuthored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "7177f9de162d5b3da675b310f92a3d2335fdd312",
      "tree": "cbc057e7c27c6167a4907bbbecd02bfe900fe436",
      "parents": [
        "de3bdd9c0cbd8f091c6045ffd86a669ff2cdbfb4"
      ],
      "author": {
        "name": "Marcin Krystianc",
        "email": "marcin.krystianc@gmail.com",
        "time": "Wed Nov 04 00:46:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 12:46:29 2026 +1300"
      },
      "message": "GH-50822 [C++][Parquet] Make DELTA_BYTE_ARRAY value reconstruction storage-agnostic (#50823)\n\n### Rationale for this change\nFollow-up to #50335. \n\n\u003e `DeltaByteArrayFLBADecoder::Decode(uint8_t*, int)` decodes into a\ntemporary `std::vector\u003cByteArray\u003e` and then copies the bytes into the caller\u0027s buffer,\nbecause `DeltaByteArrayDecoderImpl::GetInternal` only supports `ByteArray` output. The\nvector is a per-call allocation, and the pointer it holds for every value is discarded\nimmediately after the copy.\n\n### What changes are included in this PR?\nAdds two output policy structs, `ByteArrayOutput` and `DenseOutput` for DeltaByteArrayFLBADecoder:\n  - `ByteArrayOutput` reproduces the previous behavior: it decodes values into a `ByteArray*` buffer\n  - `DenseOutput` writes each reconstructed fixed-length value directly into a caller-provided `uint8_t*` buffer\n  \nAdds benchmarks to test the `DeltaByteArrayFLBADecoder` performance.\n\n- Before the change\n```\nRunning /workspace/arrow/cpp/build/release/parquet-encoding-benchmark\nRun on (20 X 2112 MHz CPU s)\nCPU Caches:\n  L1 Data 48 KiB (x10)\n  L1 Instruction 32 KiB (x10)\n  L2 Unified 1280 KiB (x10)\n  L3 Unified 25600 KiB (x1)\nLoad Average: 2.22, 3.84, 3.64\n---------------------------------------------------------------------------------------------------------------------------------------\nBenchmark                                                                             Time             CPU   Iterations UserCounters...\n---------------------------------------------------------------------------------------------------------------------------------------\nBM_DeltaDecodingFLBA/type-length:2/batch-size:512/prefixed-percent:10              3217 ns         3215 ns       221856 bytes_per_second\u003d303.706Mi/s compression_ratio\u003d0.760208 items_per_second\u003d159.229M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:512/prefixed-percent:90              3923 ns         3921 ns       185631 bytes_per_second\u003d249.056Mi/s compression_ratio\u003d1.38753 items_per_second\u003d130.577M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:512/prefixed-percent:99              3929 ns         3927 ns       182369 bytes_per_second\u003d248.649Mi/s compression_ratio\u003d1.79649 items_per_second\u003d130.363M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:2048/prefixed-percent:10            11335 ns        11329 ns        62995 bytes_per_second\u003d344.803Mi/s compression_ratio\u003d0.76148 items_per_second\u003d180.776M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:2048/prefixed-percent:90            15514 ns        15506 ns        43892 bytes_per_second\u003d251.918Mi/s compression_ratio\u003d1.40466 items_per_second\u003d132.078M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:2048/prefixed-percent:99            16525 ns        16517 ns        42482 bytes_per_second\u003d236.502Mi/s compression_ratio\u003d1.7747 items_per_second\u003d123.995M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:512/prefixed-percent:10             2796 ns         2794 ns       249283 bytes_per_second\u003d2.73034Gi/s compression_ratio\u003d0.966836 items_per_second\u003d183.23M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:512/prefixed-percent:90             4512 ns         4510 ns       151783 bytes_per_second\u003d1.69171Gi/s compression_ratio\u003d1.70489 items_per_second\u003d113.529M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:512/prefixed-percent:99             4729 ns         4727 ns       139167 bytes_per_second\u003d1.61411Gi/s compression_ratio\u003d1.78203 items_per_second\u003d108.321M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:2048/prefixed-percent:10           11151 ns        11144 ns        62274 bytes_per_second\u003d2.73856Gi/s compression_ratio\u003d0.966836 items_per_second\u003d183.781M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:2048/prefixed-percent:90           17927 ns        17918 ns        39408 bytes_per_second\u003d1.70318Gi/s compression_ratio\u003d1.6732 items_per_second\u003d114.298M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:2048/prefixed-percent:99           19689 ns        19678 ns        34933 bytes_per_second\u003d1.55083Gi/s compression_ratio\u003d1.79168 items_per_second\u003d104.075M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:512/prefixed-percent:10         3309 ns         3308 ns       211062 bytes_per_second\u003d295.22Mi/s compression_ratio\u003d0.760208 items_per_second\u003d154.78M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:512/prefixed-percent:90         4273 ns         4271 ns       162512 bytes_per_second\u003d228.642Mi/s compression_ratio\u003d1.38753 items_per_second\u003d119.874M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:512/prefixed-percent:99         4404 ns         4402 ns       157929 bytes_per_second\u003d221.87Mi/s compression_ratio\u003d1.79649 items_per_second\u003d116.324M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:2048/prefixed-percent:10       12811 ns        12804 ns        54299 bytes_per_second\u003d305.071Mi/s compression_ratio\u003d0.76148 items_per_second\u003d159.945M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:2048/prefixed-percent:90       17186 ns        17178 ns        39521 bytes_per_second\u003d227.399Mi/s compression_ratio\u003d1.40466 items_per_second\u003d119.223M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:2048/prefixed-percent:99       18260 ns        18250 ns        38287 bytes_per_second\u003d214.042Mi/s compression_ratio\u003d1.7747 items_per_second\u003d112.219M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:512/prefixed-percent:10        3218 ns         3217 ns       214108 bytes_per_second\u003d2.37183Gi/s compression_ratio\u003d0.966836 items_per_second\u003d159.171M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:512/prefixed-percent:90        4807 ns         4805 ns       126853 bytes_per_second\u003d1.58781Gi/s compression_ratio\u003d1.70489 items_per_second\u003d106.556M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:512/prefixed-percent:99        4941 ns         4939 ns       137130 bytes_per_second\u003d1.54488Gi/s compression_ratio\u003d1.78203 items_per_second\u003d103.675M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:2048/prefixed-percent:10      12255 ns        12249 ns        55533 bytes_per_second\u003d2.4915Gi/s compression_ratio\u003d0.966836 items_per_second\u003d167.202M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:2048/prefixed-percent:90      19460 ns        19338 ns        35959 bytes_per_second\u003d1.57813Gi/s compression_ratio\u003d1.6732 items_per_second\u003d105.906M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:2048/prefixed-percent:99      21114 ns        21103 ns        32878 bytes_per_second\u003d1.4461Gi/s compression_ratio\u003d1.79168 items_per_second\u003d97.0458M/s\n```\n\n- After the change\n```\nRunning /workspace/arrow/cpp/build/release/parquet-encoding-benchmark\nRun on (20 X 2112 MHz CPU s)\nCPU Caches:\n  L1 Data 48 KiB (x10)\n  L1 Instruction 32 KiB (x10)\n  L2 Unified 1280 KiB (x10)\n  L3 Unified 25600 KiB (x1)\nLoad Average: 1.24, 6.66, 4.25\n---------------------------------------------------------------------------------------------------------------------------------------\nBenchmark                                                                             Time             CPU   Iterations UserCounters...\n---------------------------------------------------------------------------------------------------------------------------------------\nBM_DeltaDecodingFLBA/type-length:2/batch-size:512/prefixed-percent:10              3419 ns         3418 ns       188811 bytes_per_second\u003d285.752Mi/s compression_ratio\u003d0.760208 items_per_second\u003d149.816M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:512/prefixed-percent:90              3843 ns         3841 ns       174937 bytes_per_second\u003d254.249Mi/s compression_ratio\u003d1.38753 items_per_second\u003d133.3M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:512/prefixed-percent:99              3730 ns         3728 ns       186091 bytes_per_second\u003d261.966Mi/s compression_ratio\u003d1.79649 items_per_second\u003d137.345M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:2048/prefixed-percent:10            13447 ns        13439 ns        51135 bytes_per_second\u003d290.661Mi/s compression_ratio\u003d0.76148 items_per_second\u003d152.39M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:2048/prefixed-percent:90            17300 ns        17292 ns        39339 bytes_per_second\u003d225.901Mi/s compression_ratio\u003d1.40466 items_per_second\u003d118.437M/s\nBM_DeltaDecodingFLBA/type-length:2/batch-size:2048/prefixed-percent:99            16789 ns        16781 ns        40393 bytes_per_second\u003d232.784Mi/s compression_ratio\u003d1.7747 items_per_second\u003d122.046M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:512/prefixed-percent:10             3138 ns         3137 ns       226716 bytes_per_second\u003d2.43218Gi/s compression_ratio\u003d0.966836 items_per_second\u003d163.221M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:512/prefixed-percent:90             3569 ns         3568 ns       192341 bytes_per_second\u003d2.13857Gi/s compression_ratio\u003d1.70489 items_per_second\u003d143.517M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:512/prefixed-percent:99             3437 ns         3435 ns       198130 bytes_per_second\u003d2.22082Gi/s compression_ratio\u003d1.78203 items_per_second\u003d149.036M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:2048/prefixed-percent:10           12079 ns        12072 ns        56551 bytes_per_second\u003d2.52788Gi/s compression_ratio\u003d0.966836 items_per_second\u003d169.643M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:2048/prefixed-percent:90           14949 ns        14941 ns        43250 bytes_per_second\u003d2.04249Gi/s compression_ratio\u003d1.6732 items_per_second\u003d137.069M/s\nBM_DeltaDecodingFLBA/type-length:16/batch-size:2048/prefixed-percent:99           15358 ns        15350 ns        45877 bytes_per_second\u003d1.98814Gi/s compression_ratio\u003d1.79168 items_per_second\u003d133.422M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:512/prefixed-percent:10         3262 ns         3261 ns       212131 bytes_per_second\u003d299.505Mi/s compression_ratio\u003d0.760208 items_per_second\u003d157.027M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:512/prefixed-percent:90         3518 ns         3516 ns       196251 bytes_per_second\u003d277.715Mi/s compression_ratio\u003d1.38753 items_per_second\u003d145.603M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:512/prefixed-percent:99         3536 ns         3534 ns       199117 bytes_per_second\u003d276.305Mi/s compression_ratio\u003d1.79649 items_per_second\u003d144.863M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:2048/prefixed-percent:10       12662 ns        12656 ns        55254 bytes_per_second\u003d308.658Mi/s compression_ratio\u003d0.76148 items_per_second\u003d161.826M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:2048/prefixed-percent:90       16081 ns        16073 ns        40982 bytes_per_second\u003d243.035Mi/s compression_ratio\u003d1.40466 items_per_second\u003d127.421M/s\nBM_DeltaDecodingDenseFLBA/type-length:2/batch-size:2048/prefixed-percent:99       16415 ns        16407 ns        42847 bytes_per_second\u003d238.086Mi/s compression_ratio\u003d1.7747 items_per_second\u003d124.825M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:512/prefixed-percent:10        2969 ns         2968 ns       238205 bytes_per_second\u003d2.57067Gi/s compression_ratio\u003d0.966836 items_per_second\u003d172.515M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:512/prefixed-percent:90        3462 ns         3460 ns       203926 bytes_per_second\u003d2.20507Gi/s compression_ratio\u003d1.70489 items_per_second\u003d147.98M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:512/prefixed-percent:99        3392 ns         3390 ns       200885 bytes_per_second\u003d2.25044Gi/s compression_ratio\u003d1.78203 items_per_second\u003d151.025M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:2048/prefixed-percent:10      11560 ns        11554 ns        60264 bytes_per_second\u003d2.64135Gi/s compression_ratio\u003d0.966836 items_per_second\u003d177.258M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:2048/prefixed-percent:90      14602 ns        14512 ns        49410 bytes_per_second\u003d2.10297Gi/s compression_ratio\u003d1.6732 items_per_second\u003d141.128M/s\nBM_DeltaDecodingDenseFLBA/type-length:16/batch-size:2048/prefixed-percent:99      14782 ns        14775 ns        47312 bytes_per_second\u003d2.06547Gi/s compression_ratio\u003d1.79168 items_per_second\u003d138.612M/s\n```\n \n### Are these changes tested?\nYes\n### Are there any user-facing changes?\nNo\n\n* GitHub Issue: #50822\n\nAuthored-by: Marcin Krystianc \u003cmarcin.krystianc@gmail.com\u003e\nSigned-off-by: Adam Reeve \u003cadreeve@gmail.com\u003e"
    },
    {
      "commit": "de3bdd9c0cbd8f091c6045ffd86a669ff2cdbfb4",
      "tree": "2a3e27b72ee665379d547a5730c7e66ae534670d",
      "parents": [
        "0ab78e2df489055b71a7d26a666a52823f87f01c"
      ],
      "author": {
        "name": "Adam Reeve",
        "email": "adreeve@gmail.com",
        "time": "Wed Nov 04 10:28:19 2026 +1300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 06:28:19 2026 +0900"
      },
      "message": "GH-55362: [C++] Fix jemalloc ReleaseUnused implementation (#55363)\n\n### Rationale for this change\n\nMakes ReleaseUnused no longer an unintentional no-op with Jemalloc.\n\n### What changes are included in this PR?\n\nCorrectly builds the `mallctl` argument when calling `JemallocAllocator::ReleaseUnused`, and adds a debug-check of the error code.\n\n### Are these changes tested?\n\nYes. I tested that without the fix, the `DCHECK_EQ` raised an error for `Jemalloc/TestMemoryPool/0.ReleaseUnused`:\n```\nCheck failed: (err) \u003d\u003d (0) Failed to purge jemalloc arenas: No such file or directory\n```\n\nWith the fix, the tests pass.\n\nI also ran an extra test that dirty pages were now released successfully and reduced to 0, when before they weren\u0027t. But I\u0027m not sure this is worth committing as it could be affected by changes to jemalloc internals.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55362\n\nAuthored-by: Adam Reeve \u003cadreeve@gmail.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "0ab78e2df489055b71a7d26a666a52823f87f01c",
      "tree": "54cfc88293b8549a7025e90cad48e86d4d41182b",
      "parents": [
        "907f6c1a3c3863f5c6c9b9d6f64a2945e40ebd9c"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Tue Nov 03 16:57:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 16:57:44 2026 +0000"
      },
      "message": "GH-55377: [R][CI] Windows Rtools40 jobs fail since 2026-10-30: setup-r hard-codes a cran.rstudio.com URL for Rtools40 that now 404s (#55378)\n\n### Rationale for this change\n\nNightly builds failing due to a change in RTools URL and problem with job\n\n### What changes are included in this PR?\n\nDon\u0027t pass in rtools version, as this can be inferred anyway\n\n### Are these changes tested?\n\nNo\n\n### Are there any user-facing changes?\n\nNo\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55377\n\nAuthored-by: Nic Crane \u003cthisisnic@gmail.com\u003e\nSigned-off-by: Nic Crane \u003cthisisnic@gmail.com\u003e"
    },
    {
      "commit": "907f6c1a3c3863f5c6c9b9d6f64a2945e40ebd9c",
      "tree": "0cc151f5b5f6baa674fb9b6edeff4106291ba240",
      "parents": [
        "67625df7d555a508396b0a2637508a0e9a6a27a4"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Tue Nov 03 15:54:51 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 15:54:51 2026 +0000"
      },
      "message": "GH-55332: [CI][R] Remove clang-22 install from test-r-linux-as-cran (#55336)\n\n### Rationale for this change\n\nWorkaround to install clang-22 no longer relevant, breaks CI\n\n### What changes are included in this PR?\n\nRemove it\n\n### Are these changes tested?\n\nWill run CI\n\n### Are there any user-facing changes?\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55332\n\nLead-authored-by: Nic Crane \u003cthisisnic@gmail.com\u003e\nCo-authored-by: Jonathan Keane \u003cjkeane@gmail.com\u003e\nSigned-off-by: Nic Crane \u003cthisisnic@gmail.com\u003e"
    },
    {
      "commit": "67625df7d555a508396b0a2637508a0e9a6a27a4",
      "tree": "c7cdfda41ea1951f3cf40adb7fde470a3e27d3f8",
      "parents": [
        "aa1fceb42e99925be33eeeeee4a3d2ff4d5bc9df"
      ],
      "author": {
        "name": "tadeja",
        "email": "tadeja@users.noreply.github.com",
        "time": "Tue Nov 03 12:50:08 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 03 12:50:08 2026 +0100"
      },
      "message": "GH-55374: [CI][Packaging] Fix homebrew-cpp nightly by syncing formulae to homebrew-core (#55375)\n\n### Rationale for this change\nFix #55374, homebrew-cpp nightly job failing with \u0027apache-arrow contains conflicting version recursive dependencies: openssl@ 4, openssl@ 3\u0027\nFormula last synced in #45460 Feb 2025 to this version of https://github.com/Homebrew/homebrew-core/blob/1cbc034a0ac723b88cc097b20a8d055871acf58f/Formula/a/apache-arrow.rb\n\n### What changes are included in this PR?\nSync both `dev/tasks/homebrew-formulae/apache-arrow.rb` and `dev/tasks/homebrew-formulae/apache-arrow-glib.rb`\nto current homebrew-core formulae [apache-arrow.rb](https://github.com/Homebrew/homebrew-core/blob/21ae7db95e31f05d0bde4acd9d48ce3d23c72988/Formula/a/apache-arrow.rb) and [apache-arrow-glib.rb](https://github.com/Homebrew/homebrew-core/blob/4b1bf942c798d35b6307d4f1c5c805902bd4ea9e/Formula/a/apache-arrow-glib.rb)\n\n### Are these changes tested?\nYes\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55374\n\nAuthored-by: Tadeja Kadunc \u003ctadeja.kadunc@gmail.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "aa1fceb42e99925be33eeeeee4a3d2ff4d5bc9df",
      "tree": "6dbae4e32b5bc9e85f0339526ab6513b3ca8818e",
      "parents": [
        "d0251311fcf9ecc131ecb8a4d136d901b662c059"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcd@apache.org",
        "time": "Tue Nov 03 12:05:03 2026 +0100"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcd@apache.org",
        "time": "Tue Nov 03 12:05:03 2026 +0100"
      },
      "message": "MINOR: [Release] Update .deb/.rpm changelogs for 26.0.1\n"
    },
    {
      "commit": "d0251311fcf9ecc131ecb8a4d136d901b662c059",
      "tree": "13746232cfa2ce693df7b4ce6c7461ec32780991",
      "parents": [
        "8ce88f4449efae295f6efe36af60277b3bf045fb"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcd@apache.org",
        "time": "Tue Nov 03 12:05:01 2026 +0100"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcd@apache.org",
        "time": "Tue Nov 03 12:05:01 2026 +0100"
      },
      "message": "MINOR: [Release] Update versions for 27.0.0-SNAPSHOT\n"
    },
    {
      "commit": "8ce88f4449efae295f6efe36af60277b3bf045fb",
      "tree": "f879c5875a776f6cf8d5ffd07fb81381143189a6",
      "parents": [
        "aae29bf6d4e85bafa7b9bd2bc45d8ab0b0b48373"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcd@apache.org",
        "time": "Tue Nov 03 12:04:58 2026 +0100"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcd@apache.org",
        "time": "Tue Nov 03 12:04:58 2026 +0100"
      },
      "message": "MINOR: [Release] Update CHANGELOG.md for 26.0.1\n"
    },
    {
      "commit": "aae29bf6d4e85bafa7b9bd2bc45d8ab0b0b48373",
      "tree": "1657ba5be21fd5e88e9a9647e129bee7cdd13bdc",
      "parents": [
        "95237d96b26283e7e45e8cd887fcc40adbe94ab9"
      ],
      "author": {
        "name": "Mashrafee Aryan",
        "email": "121733421+MashrafeeAryan@users.noreply.github.com",
        "time": "Mon Nov 02 08:40:40 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 15:40:40 2026 +0100"
      },
      "message": "GH-47752: [C++][Python][Parquet] Add minimum compression savings for V2 pages (#52580)\n\nFixes #47752.\n\n### Rationale for this change\n\nParquet\u0027s V2 pages currently keep compression whenever the compressed values are smaller than the original values. Even if it saves very little space, it still does it. For instance, it can compress 100 KB to 99 KB and save it. Even though that\u0027s 1% storage efficient, it might not be worth the decompression overhead while reading the file.\n\n### What changes are included in this PR?\n\nIn the PR, I added an optional `min_compression_savings` setting between `0.0` and `1.0`. It gives users an option to select the minimum threshold to compress V2 page data values. For instance, if the original file is `100 KB` and the user has `min_compression_savings\u003d 0.1`, it means the compressed file needs to save at least 10% space. As a result, unless the file is `\u003c\u003d 90 KB`, it won\u0027t get saved.\n\nI keep the current behavior when the user does not set `min_space_savings`.\n\nAdded C++ and Python implementation.\n\n### Are these changes tested?\n\n- C++ implementation has been tested with unit tests.\n- PyArrow implementation has been tested with unti tests.\n\n### Are there any user-facing changes?\n\nC++ and Python users can set `min_compression_savings` when writing V2 pages. For example, `0.1` requires at least 10% space savings before keeping compression.\n\n### Was AI used for this PR?\n\nChatGPT helped to set up the build for PyArrow. \n\nCodex helped find a bug in dataset_writing which ignored min_space_savings.\n\n**PR code and description written by:**\n\n- [x] Human (I wrote it. Used ChatGPT to fix my grammar.)\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human \n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #47752\n\nLead-authored-by: Mashrfee Aryan \u003caryanmashrafee07@gmail.com\u003e\nCo-authored-by: Mashrafee Aryan \u003c121733421+MashrafeeAryan@users.noreply.github.com\u003e\nCo-authored-by: Antoine Pitrou \u003cpitrou@free.fr\u003e\nSigned-off-by: Rok Mihevc \u003crok@mihevc.org\u003e"
    },
    {
      "commit": "95237d96b26283e7e45e8cd887fcc40adbe94ab9",
      "tree": "9ab8833ac20854594468c90c2423c5edf70759bf",
      "parents": [
        "bf0c7f06cc453196e99bffa2fccce2c24aae78bc"
      ],
      "author": {
        "name": "Antoine Pitrou",
        "email": "antoine@python.org",
        "time": "Mon Nov 02 14:22:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 14:22:29 2026 +0100"
      },
      "message": "GH-55312: [C++][Compute] More flexible kernel exec generation (#55291)\n\n### Rationale for this change\n\nOur kernel generation utilities in `arrow/compute/kernels/codegen_internal.h` are a hodge-podge of hand-written switch statements with inconsistent template parameter signatures and semantics.\n\nThis PR makes those more flexible, more consistent and more reusable.\n\n### What changes are included in this PR?\n\n* Rewrite kernel generation utilities to make them more generic, allowing to pass compile-time arrays of type ids\n* Add compile-time constant arrays of type ids (`kAllTypeIds`, `kIntegerTypeIds`...)\n* Add missing `TypeIdTraits` specializations\n* Add missing `type_id` static member definitions on `RunEndEncodedType` and `ExtensionType`\n* Reduce code duplication in numeric cast kernel generation\n\n### Are these changes tested?\n\nYes, by existing tests and new unit tests around type id traits.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55312\n\nAuthored-by: Antoine Pitrou \u003cantoine@python.org\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "bf0c7f06cc453196e99bffa2fccce2c24aae78bc",
      "tree": "cc672d81f9f3100c86ad70d5a6d47f82a327b130",
      "parents": [
        "656065b2c9d4b060edef56773d9d20f1d5a6e1ad"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Mon Nov 02 12:29:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 20:29:29 2026 +0900"
      },
      "message": "GH-55364: [CI][Release] Stop hardcoding PyArrow site-packages installation path on Windows verification (#55365)\n\n### Rationale for this change\n\nThe Windows verification path failed on Windows wheels because it could not find pyarrow on the specified path for 3.15.\n\n### What changes are included in this PR?\n\nStop hardcoding the path where pyarrow is expected to be.\n\n### Are these changes tested?\n\nYes on the following fork CI job:\nhttps://github.com/raulcd/arrow/actions/runs/41418142567/job/125187057359\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55364\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "656065b2c9d4b060edef56773d9d20f1d5a6e1ad",
      "tree": "dd629c7248787ab55effc0cc6693fbd9fa4c3a59",
      "parents": [
        "00c32a69cb0dbe7a45a8c764638611b7bb021410"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Mon Nov 02 18:00:01 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 18:00:01 2026 +0900"
      },
      "message": "GH-55279: [C++] Fix build errors with ARROW_BUILD_{SHARED,STATIC,TESTS}\u003dON on Windows (#55294)\n\n### Rationale for this change\n\nWe can\u0027t build Arrow C++ with `ARROW_BUILD_SHARED\u003dON`, `ARROW_BUILD_STATIC\u003dON` and `ARROW_BUILD_TESTS\u003dON` on Windows. Tests are linked with shared libraries by default (`ARROW_TEST_LINKAGE\u003dshared`) but some targets use `ARROW_BUILD_STATIC` to choose static libraries/definitions:\n\n* `arrow_compute_testing` is an object library and it sets `ARROW_STATIC`/`ARROW_COMPUTE_STATIC` as public compile definitions with `ARROW_BUILD_STATIC`. So tests that use `arrow_compute_testing` are compiled with `ARROW_STATIC`/`ARROW_COMPUTE_STATIC` even when they are linked with shared libraries.\n* `arrow-compute-grouper-benchmark` links `arrow_compute_static` with `ARROW_BUILD_STATIC`. So it\u0027s linked with both of `arrow_static` and `arrow_shared`.\n\n`parquet_static` can\u0027t be built with Parquet encryption on Windows too. It doesn\u0027t link OpenSSL. We don\u0027t use a shared object library for shared and static libraries on Windows. So `parquet_static` can\u0027t find OpenSSL headers. `parquet/arrow/reader.cc` uses OpenTelemetry headers via `arrow/util/tracing_internal.h` but `parquet_static` doesn\u0027t link OpenTelemetry.\n\nOur CI doesn\u0027t detect them because we don\u0027t have any Windows job that uses `ARROW_BUILD_SHARED\u003dON` and `ARROW_BUILD_STATIC\u003dON`.\n\nThere are similar problems that aren\u0027t detected by our CI:\n\n* Parquet benchmarks use `parquet_shared` with static test libraries when `ARROW_BUILD_SHARED\u003dON`, `ARROW_BUILD_STATIC\u003dON` and `ARROW_TEST_LINKAGE\u003dstatic`. So they\u0027re linked with both of `arrow_static` and `arrow_shared`.\n* `parquet_testing` is an object library that doesn\u0027t have `ARROW_STATIC`/`PARQUET_STATIC`. So `parquet/test_util.cc` is compiled without them even when tests are linked with static libraries on Windows.\n\n### What changes are included in this PR?\n\n* Use `ARROW_BUILD_STATIC\u003dON` in the Windows CI job to detect this case.\n* Link OpenSSL to `parquet_static` when Parquet encryption is enabled.\n* Link OpenTelemetry to `parquet_static` when OpenTelemetry is enabled.\n* Use static libraries instead of object libraries for `arrow_compute_core_testing`, `arrow_compute_kernels_testing`, `arrow_acero_testing`, `arrow_dataset_testing` and `parquet_testing`. They link libraries for `ARROW_TEST_LINKAGE` as `PUBLIC`. So they\u0027re compiled with the same compile definitions (e.g. `ARROW_STATIC` on Windows) as tests. We don\u0027t need to set `ARROW_STATIC`/`ARROW_COMPUTE_STATIC` manually. Their sources are compiled only once.\n* Split `arrow_compute_testing` to `arrow_compute_core_testing` (helpers) and `arrow_compute_testing_main` (`main()` in `test_env.cc`).\n  * `arrow_compute_testing_main` is an interface library. If we use a static library for it, `main()` in `GTest::gmock_main` may be used instead of `main()` in `test_env.cc`. Interface library sources are compiled as sources of each test executable, so `main()` in `test_env.cc` is always used.\n  * `arrow_compute_testing_main` doesn\u0027t link any Arrow library. So it can be used by tests that use different linkage from `ARROW_TEST_LINKAGE` such as Flight SQL tests (`ARROW_FLIGHT_TEST_LINKAGE`).\n  * `arrow_compute_testing_main` must not be linked as `PUBLIC` from static testing libraries. If it\u0027s linked as `PUBLIC`, `test_env.cc` is also compiled into these static libraries. So tests link it explicitly.\n* Use testing libraries instead of `ARROW_ACERO_TEST_LINK_LIBS`, `ARROW_DATASET_TEST_LINK_LIBS` and `PARQUET_TEST_LINK_LIBS` in tests and benchmarks. Testing libraries already link libraries for `ARROW_TEST_LINKAGE`.\n* Use `ARROW_TEST_LINKAGE` instead of `ARROW_BUILD_STATIC` to choose a compute library for `arrow-compute-grouper-benchmark`.\n* Use `ARROW_TEST_LINKAGE` instead of `ARROW_BUILD_SHARED` to choose a Parquet library for Parquet benchmarks.\n\nNote that the ORC adapter test still uses `ARROW_BUILD_STATIC` to choose libraries. It uses liborc directly and links `orc::orc`. If it\u0027s linked with `arrow_shared`, ORC\u0027s protobuf messages are registered twice (by `libarrow` and the test). We\u0027ll work on it separately if we need it.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55279\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "00c32a69cb0dbe7a45a8c764638611b7bb021410",
      "tree": "73bdbc1d2d31b22fe93e8ed0079c4a4041125d98",
      "parents": [
        "c3f75b2da1acf00b90bee892b052785ff1f8a111"
      ],
      "author": {
        "name": "Jonas Dedden",
        "email": "mail@jonas-dedden.de",
        "time": "Mon Nov 02 09:01:45 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 00:01:45 2026 -0800"
      },
      "message": "GH-33295: [C++][Python] Add list_contains compute function (#51611)\n\n### Rationale for this change\n\nThere is no direct way to check whether each list in a list array contains a value. This PR closes https://github.com/apache/arrow/issues/33295.\n\n### What changes are included in this PR?\n\nA binary scalar function `list_contains(lists, value)` returning a boolean per list, for list, large list, list view, large list view and fixed-size list inputs.\n\n`value` can be a scalar, or an array of the same length, in which case each list is searched for the value at the same index.\n\n- **List array:** each list is searched for its value directly, without materializing comparison bitmaps or repeated values. Short lists (fewer than 32 values on average) are compared in full without data-dependent branches; longer lists stop after the first 16-value chunk holding a match. With null child values, long lists are first searched without validity checks, and only lists found are searched again with them.\n- **Scalar list with an array of values:** the values are looked up with `is_in` instead of broadcasting the list.\n- **Comparison semantics follow `equal`:** values and list values are cast to the types `equal` would compare them as (so implicit casts apply, e.g. an int8 list and an int64 value), and `equal`\u0027s type errors are raised. float16 is compared as float32 and binary views as large binary.\n\nSemantics:\n- Null lists give null.\n- Null list values don\u0027t match a non-null value.\n- A null value matches lists that hold a null, as in Polars. Its type must still be comparable with the list value type, like a non-null value.\n- A NaN value (including float16) matches NaN list values, as in `is_in` and Polars (`equal` says NaN !\u003d NaN).\n- -0.0 matches 0.0, as with `equal`.\n\n### Are these changes tested?\n\nYes, in `scalar_nested_test.cc` and `test_compute.py`. Cases include sliced, chunked and out-of-order list-view inputs, arrays of values and scalar lists with arrays of values for 12 value types, short and long lists, null values whose slots hold the searched value, null and NaN values (including float16), -0.0, implicit casts, and type and time zone errors (also for null values).\n\n### Are there any user-facing changes?\n\nYes, a new compute function, `pyarrow.compute.list_contains` in Python.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [ ] AI\n- [ ] Not reviewed\n* GitHub Issue: #33295\n\nAuthored-by: Jonas Dedden \u003cmail@jonas-dedden.de\u003e\nSigned-off-by: Rossi Sun \u003czanmato1984@gmail.com\u003e"
    },
    {
      "commit": "c3f75b2da1acf00b90bee892b052785ff1f8a111",
      "tree": "6bab797292c704b8569e68e95bf5e9345f179cdd",
      "parents": [
        "1d3cf6f18205870b88b2beecabc92a6567dfefb0"
      ],
      "author": {
        "name": "Zehua Zou",
        "email": "zehuazou2000@gmail.com",
        "time": "Mon Nov 02 11:05:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 02 11:05:53 2026 +0800"
      },
      "message": "GH-55305: [C++][Parquet] Avoid unnecessary copies when building data pages (#55306)\n\n### Rationale for this change\n\nAvoid two unnecessary buffer copies.\n\n### What changes are included in this PR?\n\n1. `BuildDataPageV1` uses the `values` buffer directly when there are no definition or repetition levels.\n2. `BuildDataPageV2` removes the unnecessarily copy of `combined` when buffering dictionary-encoded pages.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55305\n\nAuthored-by: Zehua Zou \u003czehuazou2000@gmail.com\u003e\nSigned-off-by: Zehua Zou \u003czehuazou2000@gmail.com\u003e"
    },
    {
      "commit": "1d3cf6f18205870b88b2beecabc92a6567dfefb0",
      "tree": "2eefbdb47e8752cbdc35199bf2d323e75f00162f",
      "parents": [
        "1d4baa3f3f809f5d827a958b41c54b2cc596f48f"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Sun Nov 01 23:06:50 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 01 23:06:50 2026 +0900"
      },
      "message": "GH-44349: [GLib] Keep GBytes alive in GBytes based buffers (#55333)\n\n### Rationale for this change\n\nIf a `GArrowBuffer` is freed but the underlying `arrow::Buffer` is still alive, the `arrow::Buffer` still refers invalidated data.\n\n### What changes are included in this PR?\n\nCreate our `arrow::Buffer` subclass that refers `GBytes` and use it.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #44349\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "1d4baa3f3f809f5d827a958b41c54b2cc596f48f",
      "tree": "2a40e2f9efbb1c7227512483796d8af37be21644",
      "parents": [
        "d9a0ab4b088b9e41f584eec653dd4f95de4a9ca0"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Sun Nov 01 22:50:50 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 01 22:50:50 2026 +0900"
      },
      "message": "GH-55328: [Ruby] Mark all sources of `Arrow::RecordBatchReader` (#55329)\n\n### Rationale for this change\n\n`record_batch_reader_mark()` uses a wrong loop variable.\n\n### What changes are included in this PR?\n\nFix the wrong loop variable.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55328\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "d9a0ab4b088b9e41f584eec653dd4f95de4a9ca0",
      "tree": "51e9af4f1f99b8425437d8d82d15e0eaee7cd7a2",
      "parents": [
        "b4a98b731d837df35b9499d96f650574290ea518"
      ],
      "author": {
        "name": "tadeja",
        "email": "tadeja@users.noreply.github.com",
        "time": "Sat Oct 31 21:36:34 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 21:36:34 2026 +0100"
      },
      "message": "MINOR: [C++] Fix C++ Format (#55353)\n\n### Rationale for this change\nLint C++ format fail on main\n\n### What changes are included in this PR?\nMinor lint C++ format fix\n\n### Are these changes tested?\nyes\n### Are there any user-facing changes?\nno\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [X] Human\n\n**Reviewed before submission by:**\n\n- [X] Human\n\nAuthored-by: Tadeja Kadunc \u003ctadeja.kadunc@gmail.com\u003e\nSigned-off-by: Rok Mihevc \u003crok@mihevc.org\u003e"
    },
    {
      "commit": "b4a98b731d837df35b9499d96f650574290ea518",
      "tree": "1b9147dae2505ef8b0c7ee4ad0616ba1831c186e",
      "parents": [
        "340bf45cfb03aded670f6d2d79f0a0ef38809c3b"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Sat Oct 31 13:57:31 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 08:57:31 2026 -0500"
      },
      "message": "GH-55335: [CI][R] Run R nightly binary upload later (#55337)\n\n### Rationale for this change\n\nJob failing for a while as job it\u0027s dependent on keeps running later\n\n### What changes are included in this PR?\n\nShift it back 4 hours\n\n### Are these changes tested?\n\nNo\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation\nguidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code),\nplease disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55335"
    },
    {
      "commit": "340bf45cfb03aded670f6d2d79f0a0ef38809c3b",
      "tree": "f894a8d8ec4b9e94ce379cc4d5ed773df58d8a8c",
      "parents": [
        "a95f92ded72494d743eb342da011b81617783b26"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Sat Oct 31 11:47:23 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 31 11:47:23 2026 +0000"
      },
      "message": "GH-53945: [C++] std::bit_width in ALP compression fails to compile with CRAN\u0027s macOS 11.3 SDK (#53946)\n\n### Rationale for this change\n\nCI failures for CRAN macOS\n\n### What changes are included in this PR?\n\nUse helper function which works on CRAN macOS in new code + refactor existing stuff\n\n### Are these changes tested?\n\nYup\n\n### Are there any user-facing changes?\n\nNope\n\n### Was AI used for this PR?\n\nI generated the code with Claude Fable 5.1 and did adversarial reviews with Opus 5.5 and also asked some questions about why we were moving things into different files and if we had too many tests, resulting in trimming them down. \n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #53945\n\nAuthored-by: Nic Crane \u003cthisisnic@gmail.com\u003e\nSigned-off-by: Nic Crane \u003cthisisnic@gmail.com\u003e"
    },
    {
      "commit": "a95f92ded72494d743eb342da011b81617783b26",
      "tree": "5af2e5f6a44db1bb4d7387d32dc1e7f15cb1ce7f",
      "parents": [
        "5585e501e2593b1c12ca688a7fdb160df0f07161"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Sat Oct 31 03:39:46 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 19:39:46 2026 +0100"
      },
      "message": "MINOR: [C++] Remove undefined variable reference in substrait test link libraries (#55330)\n\n### Rationale for this change\n\n`ARROW_SUBSTRAIT_LINK_lIBS` is a typo (`l` is lower).\n\n### What changes are included in this PR?\n\nRemove the typo-ed variable.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "5585e501e2593b1c12ca688a7fdb160df0f07161",
      "tree": "0d1d1f5de77dce54b7c62b78e46056ee8d15d966",
      "parents": [
        "3f1fd722818375c9287f505803d15c101529ea02"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Fri Oct 30 11:53:13 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 11:53:13 2026 +0000"
      },
      "message": "MINOR: [R] Update backwards compatibility matrix for 26.0.0 release (#55331)\n\n### Rationale for this change\n\nStandard release task.\n\n### What changes are included in this PR?\n\nAdd the previous CRAN version (25.0.1) to the backwards compatibility matrix.\n\n### Are these changes tested?\n\nNope.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\nAuthored-by: Nic Crane \u003cthisisnic@gmail.com\u003e\nSigned-off-by: Nic Crane \u003cthisisnic@gmail.com\u003e"
    },
    {
      "commit": "3f1fd722818375c9287f505803d15c101529ea02",
      "tree": "501def000f9d3369958c6c849536c62cba5797e6",
      "parents": [
        "6289ae0eb1af908a343ab4d4fa589d620ba27c42"
      ],
      "author": {
        "name": "Juan Miguel Carceller",
        "email": "22276694+jmcarcell@users.noreply.github.com",
        "time": "Fri Oct 30 08:44:09 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 16:44:09 2026 +0900"
      },
      "message": "GH-47576: [C++][Acero] Fix C++23 build (#50975)\n\n### Rationale for this change\n\nIn `C++23`, `Clang` diagnoses the conversion from `AsofJoinNode*` to `ExecNode*`\nwhile instantiating `std::make_unique\u003cBackpressureController\u003e`. At the current\ndefinition site, `AsofJoinNode` is still incomplete, causing the `Acero` build to\nfail.\n\n### What changes are included in this PR?\n\nDeclare `InputState::Make` in `InputState` and define it after `AsofJoinNode` is\ncomplete. This makes the derived-to-base conversion valid without changing runtime\nbehavior.\n\nAI assistance: Codex drafted and evaluated this source-ordering change. The\nautomated checks below were run before opening the PR.\n\n### Are these changes tested?\n\n- `cmake --build cpp/build-clang22-cxx23-release --target arrow_acero_static --parallel 2`\n  (`Clang 22.1.8`, `Release`, `C++23`)\n- `ctest -j 16 --output-on-failure` in\n  `cpp/build-clang22-cxx23-release-tests/src/arrow/acero`: 14/14 tests passed\n- `clang-format --dry-run --Werror cpp/src/arrow/acero/asof_join_node.cc`\n- `git diff --check`\n\n\u003cdetails\u003e\n\u003csummary\u003eOriginal `Clang 22` `C++23` diagnostic\u003c/summary\u003e\n\n~~~text\nIn file included from /arrow/src/arrow/acero/asof_join_node.cc:18:\nIn file included from /arrow/src/arrow/acero/asof_join_node.h:20:\nIn file included from /arrow/src/arrow/acero/options.h:21:\nIn file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/memory:80:\n/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/bits/unique_ptr.h:1105:34: error: no matching constructor for initialization of \u0027arrow::acero::BackpressureController\u0027\n 1105 |     { return unique_ptr\u003c_Tp\u003e(new _Tp(std::forward\u003c_Args\u003e(__args)...)); }\n      |                                  ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/arrow/src/arrow/acero/asof_join_node.cc:515:14: note: in instantiation of function template specialization \u0027std::make_unique\u003carrow::acero::BackpressureController, arrow::acero::ExecNode *\u0026, arrow::acero::AsofJoinNode *\u0026, std::atomic\u003cint\u003e \u0026\u003e\u0027 requested here\n  515 |         std::make_unique\u003cBackpressureController\u003e(\n      |              ^\n/arrow/src/arrow/acero/asof_join_node.cc:464:3: note: candidate constructor not viable: cannot convert argument of incomplete type \u0027arrow::acero::AsofJoinNode *\u0027 to \u0027ExecNode *\u0027 for 2nd argument\n  464 |   BackpressureController(ExecNode* node, ExecNode* output,\n      |   ^                                      ~~~~~~~~~~~~~~~~\n/arrow/src/arrow/acero/asof_join_node.cc:462:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided\n  462 | class BackpressureController : public BackpressureControl {\n      |       ^~~~~~~~~~~~~~~~~~~~~~\n/arrow/src/arrow/acero/asof_join_node.cc:462:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 3 were provided\n  462 | class BackpressureController : public BackpressureControl {\n      |       ^~~~~~~~~~~~~~~~~~~~~~\n/arrow/src/arrow/acero/asof_join_node.cc:794:17: warning: private field \u0027node_\u0027 is not used [-Wunused-private-field]\n  794 |   AsofJoinNode* node_;\n      |                 ^\n/arrow/src/arrow/acero/asof_join_node.cc:796:10: warning: private field \u0027index_\u0027 is not used [-Wunused-private-field]\n  796 |   size_t index_;\n      |          ^\n2 warnings and 1 error generated.\n~~~\n\n\u003c/details\u003e\n\n### Are there any user-facing changes?\n\nNo public API changes. This restores the ability to compile the `Acero` component\nwith the affected `Clang 22`/`C++23` configuration.\n\n* GitHub Issue: #47576\n\nAuthored-by: Juan Miguel Carceller \u003cjmcarcell@users.noreply.github.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "6289ae0eb1af908a343ab4d4fa589d620ba27c42",
      "tree": "078ebca993642bb8f5c8c273fd4415128d989435",
      "parents": [
        "9b9fad6810850c3b884e14617356500143ef4aeb"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Fri Oct 30 00:14:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 08:14:02 2026 +0100"
      },
      "message": "GH-55316: [CI][FlightRPC][ODBC] Apply ports.patch in Windows build (#55317)\n\n### Rationale for this change\n\nThe ODBC Windows build uses a composite action that bootstraps vcpkg in a way that doesn\u0027t pick up ports.patch (or the pinned vcpkg version). This set up a scenario where https://github.com/apache/arrow/pull/55167 broke the build and the ODBC upload step failed during the 26.0.0.1 release process.\n\nAs an aside, this didn\u0027t get caught by CI because the ODBC Windows job only runs on a daily schedule or at release time and https://github.com/apache/arrow/pull/55167 hadn\u0027t been on `main` for long enough. This is something to keep an eye out and possibly improve in the future.\n\n### What changes are included in this PR?\n\nReplace the way the job bootstraps vcpkg so it uses the normal `ci/scripts/install.sh` and directly overlays the port patches.\n\n### Are these changes tested?\n\nYes, in CI. \n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [X] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55316\n\nAuthored-by: Bryce Mecum \u003cpetridish@gmail.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "9b9fad6810850c3b884e14617356500143ef4aeb",
      "tree": "6b3072345db0e8f27d376f2be9612ead83664c90",
      "parents": [
        "a99464f9c625c3f85cade9d7d50eb25297ca1f8d"
      ],
      "author": {
        "name": "Alina (Xi) Li",
        "email": "96995091+alinaliBQ@users.noreply.github.com",
        "time": "Thu Oct 29 22:00:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 14:00:12 2026 +0900"
      },
      "message": "MINOR: [C++][FlightRPC][CI][ODBC] Increase nuget timeout for vcpkg upload (#55320)\n\n### Rationale for this change\n- Increase timeout from 10 mins to 30 mins to upload, as gRPC packages can take long time to upload.\n\n### What changes are included in this PR?\nChange `nugettimeout` from 600 to 1800.\n\n### Are these changes tested?\nYes, on fork.\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\nAuthored-by: Alina (Xi) Li \u003c96995091+alinaliBQ@users.noreply.github.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "a99464f9c625c3f85cade9d7d50eb25297ca1f8d",
      "tree": "fa95764b97b31ee5cdb5bb5ad9a070775d4541f4",
      "parents": [
        "d24791f9df58e4a38e65b27442c1c05d55c71fa6"
      ],
      "author": {
        "name": "Robert DeRienzo",
        "email": "rlderienzo@gmail.com",
        "time": "Thu Oct 29 08:24:17 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 13:24:17 2026 +0100"
      },
      "message": "GH-33823: [C++][IPC] Improve error messages when opening files that are the wrong format (#49771)\n\n### Rationale for this change\nThe original error messages did not provide instruction to users on how to best correct their usage when opening an Arrow IPC file with the wrong reader.\n\n### What changes are included in this PR?\nImproved error messages when an IPC file is opened with the stream reader and vice versa, guiding users to the correct reader.\n\n   - Moved the file-magic check out of DecodeMessage and into an OnMetadata() override on InputStreamMessageReader. It only checks the first message, so later messages in a valid stream are not flagged. \n   - Check before metadata read to avoid the 1.3GB read issue\n\n### Are these changes tested?\nYes. New tests were added to read_write_test.cc:\n\n    OpenFileFormatSuggestsFileReader\n    CorruptDataDoesNotSuggestFileReader\n    FileMagicAfterFirstMessageDoesNotSuggestFileReader\n    OpenStreamFormatSuggestsStreamReader\n\nExisting Tests executed and passing.\n\n### Are there any user-facing changes?\nYes, error messages when using the wrong IPC reader have been updated.\n\n* GitHub Issue: #33823\n\nLead-authored-by: Robert DeRienzo \u003crlderienzo@gmail.com\u003e\nCo-authored-by: RobertLD \u003crlderienzo@gmail.com\u003e\nCo-authored-by: Robert DeRienzo \u003crderienzo@voloridge.com\u003e\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "d24791f9df58e4a38e65b27442c1c05d55c71fa6",
      "tree": "ac4942929792b7796382519abf7190d06e6e4261",
      "parents": [
        "52a3042249d258ffb53bd9a741d3a019e804a878"
      ],
      "author": {
        "name": "Antoine Pitrou",
        "email": "antoine@python.org",
        "time": "Thu Oct 29 11:18:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 11:18:29 2026 +0100"
      },
      "message": "GH-54936: [C++] Ensure reading an invalid map array from IPC doesn\u0027t crash (#54939)\n\n### Rationale for this change\n\nWhen loading a MapArray from IPC, we call [`MapArray::ValidateChildData`](https://github.com/apache/arrow/blob/b9479757dd5c1914c2b007f11f6679c4fc080c05/cpp/src/arrow/ipc/reader.cc#L456-L459) to avoid a later crash in `MapArray::SetData`.\n\nUnfortunately `MapArray::ValidateChildData` calls `GetNullCount()` which is unsafe if the advertised length is too large for the actual validity buffer size.\n\nFound by OSS-Fuzz in https://issues.oss-fuzz.com/issues/556994537\n\n### What changes are included in this PR?\n\nCheck that the `null_count` of the relevant fields is equal to zero, so that `GetNullCount` does not actually try to read buffer memory.\n\n### Are these changes tested?\n\nYes, by additional fuzz regression test.\n\n### Are there any user-facing changes?\n\nJust a bugfix.\n\n**This PR contains a \"Critical Fix\".** An invalid IPC file would lead to reading memory out of bounds for the purpose of counting validity bits. It is not obvious how this could be exploited by an attacker except for causing a denial of service.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54936\n\nAuthored-by: Antoine Pitrou \u003cantoine@python.org\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "52a3042249d258ffb53bd9a741d3a019e804a878",
      "tree": "da02b5aebadde2d476a4e2ec7c948ea272e93f4c",
      "parents": [
        "222220a13059fada718fcde8ebc25120696d68de"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Thu Oct 29 10:24:51 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 10:24:51 2026 +0100"
      },
      "message": "GH-55300: [CI][Packaging][Python] Update pinned 3.14 patch version to match the one available to download for free-threading wheels tests (#55301)\n\n### Rationale for this change\n\nWhen we updated to build with 3.15.0 we updated the build_date to install Python from the astral builds. This broke 3.14 because the version on the used URL is 3.14.8 instead of 3.14.7.\n\n### What changes are included in this PR?\n\nUpdate all references to 3.14.7 to 3.14.8.\n\n### Are these changes tested?\n\nYes via archery\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55300\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "222220a13059fada718fcde8ebc25120696d68de",
      "tree": "b0350557c6a9dc07f84267ff950b7b174302b387",
      "parents": [
        "9630caa1971cf290e11f25b754a7b10abb2b02d2"
      ],
      "author": {
        "name": "Krisztián Szűcs",
        "email": "szucs.krisztian@gmail.com",
        "time": "Thu Oct 29 09:38:45 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:38:45 2026 +0100"
      },
      "message": "GH-51684: [C++][Parquet][FOLLOWUP] Speed up content-defined chunking with a local gear hash (#51692)\n\n### Rationale for this change\n\n#51685 keeps one content-defined chunker per column for the whole file,\nso the file writer now creates the chunkers together. The chunker\u0027s hash\nloop stores its rolling hash state to memory for every hashed byte,\nbecause the values it reads through byte pointers may alias that state.\nThat slows down the chunking, and with the chunkers next to each other,\nthe threads writing neighbouring columns also contend for their cache\nlines.\n\nThis PR is stacked on #51685, only the last commit is new.\n\n### What changes are included in this PR?\n\n- The rolling hash and its chunking state move into a `GearHash` value.\n`GetChunks()` rolls a local copy of it and stores it back once, so the\ncompiler keeps the state in registers.\n- `BM_WriteContentDefinedChunking` benchmarks writing 16 int32 columns\nof 1M rows with content-defined chunking, with and without threads.\n\n### Are these changes tested?\n\nThe existing CDC tests cover the chunking, the chunk boundaries don\u0027t\nchange. Medians of `BM_WriteContentDefinedChunking` on an Apple M4 Max:\n\n| | main | #51685 | this PR |\n|---|---|---|---|\n| single-threaded | 49.6 ms | 49.6 ms | 36.9 ms |\n| multi-threaded | 10.5 ms | 15.4 ms | 9.1 ms |\n\n### Are there any user-facing changes?\n\nNo, writing with content-defined chunking gets faster.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation\nguidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code),\nplease disclose below whether and how AI was used in this PR.\n\nClaude Code wrote the code, tests and description under human direction.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51684"
    },
    {
      "commit": "9630caa1971cf290e11f25b754a7b10abb2b02d2",
      "tree": "b0f086c80e85ae638cac5ecf73d0ec1239fb0d7c",
      "parents": [
        "36cd76f62d68d16a39bc74e2b2baed547b1aef98"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Thu Oct 29 03:31:04 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 11:31:04 2026 +0900"
      },
      "message": "GH-53995: [C++] Fix building Arrow via FetchContent with older versions of CMake (#54573)\n\n### Rationale for this change\n\nFor older versions of CMake the variable `arrow_SOURCE_DIR` is overriden by FetchContent\u0027s one because `project(arrow)` sets it as a cache variable while FetchContent sets a normal variable with precedence. Arrow can\u0027t find `thirdparty/versions.txt` because it is pointing to the tarball root instead of the cpp subfolder. See policy https://cmake.org/cmake/help/latest/policy/CMP0180.html\nThis has been tested and found at Iceberg-cpp here:\n- https://github.com/apache/iceberg-cpp/pull/1029\n\n### What changes are included in this PR?\n\nUse `ARROW_SOURCE_DIR` instead of `arrow_SOURCE_DIR` so FetchContent\u0027s `arrow_SOURCE_DIR` does not have precedence.\n\n### Are these changes tested?\n\nYes locally on the iceberg PR on Ubuntu 24.04.\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\nI did use AI to initially find the root cause.\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #53995\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "36cd76f62d68d16a39bc74e2b2baed547b1aef98",
      "tree": "602de1a95752a33a741c13b4f9b8d55110c0d32c",
      "parents": [
        "16ebf1a40ecd9739988275049e126ab4d1f5f028"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Wed Oct 28 19:02:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 11:02:33 2026 +0900"
      },
      "message": "GH-55165: [C++][Packaging][R] Use Brotli 1.2.1 for bundled, vcpkg and R Windows builds (#55167)\n\n### Rationale for this change\n\nThere is a security problem in bundled Brotli (1.0.9), pinned vcpkg Brotli (1.2.0) and rtools\u0027 Brotli (1.0.9).\n\nWe should update them.\n\n### What changes are included in this PR?\n\n* Bump the bundled Brotli to 1.2.1 from 1.0.9.\n* Bump vcpkg to 2026.10.24 (`61d7eaeb09`) from 2026.05.27 (`9b965a1168`).\n* Use the bundled Brotli instead of the rtools one for R Windows binaries.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55165\n\nLead-authored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nCo-authored-by: Curt Hagenlocher \u003ccurt@hagenlocher.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "16ebf1a40ecd9739988275049e126ab4d1f5f028",
      "tree": "37a4c658d28c78f80bd170f688f594c7ab6e4897",
      "parents": [
        "b8079cd294ad60bdb81da8a0989e8fd27918c517"
      ],
      "author": {
        "name": "autoCAT",
        "email": "erindotsing@gmail.com",
        "time": "Wed Oct 28 13:44:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:44:20 2026 +1300"
      },
      "message": "GH-51669: [C++][Parquet] Preserve cipher in plaintext footer metadata (#54884)\n\n### Rationale for this change\n\nCloses #51669. CTR files with plaintext footers incorrectly declare GCM, causing encrypted-column reads to fail.\n\n### What changes are included in this PR?\n\n* Serialize the configured file encryption algorithm directly.\n* Select AES-GCM explicitly for plaintext footer signing and verification.\n* Add generated GCM/CTR, footer and AAD cases, including an on-disk GCM tag check independent of reader selection.\n\nOriginal report by [dotnwat](https://github.com/dotnwat) in #51669. The follow-up incorporates [pitrou\u0027s review](https://github.com/apache/arrow/pull/54884#issuecomment-6342493385) and [adamreeve\u0027s clarification](https://github.com/apache/arrow/pull/54884#issuecomment-6352237621).\n\n### Are these changes tested?\n\n* Encryption: 45 passed; metadata: 50 passed; writer: 296 passed, with 2 existing disabled tests.\n* Released parquet-java 1.18.1 interoperability: 64 read outcomes and 8 raw metadata inspections matched their controls.\n* clang-format 18 and `git diff --check` pass.\n\n### Are there any user-facing changes?\n\nNew CTR/plaintext-footer files declare the correct algorithm. No public API changes.\n\n**This PR contains a \"Critical Fix\"**: it corrects invalid encryption algorithm metadata emitted by the writer.\n\n### Was AI used for this PR?\n\nAI was used to generate the implementation, regression tests, and PR description.\n\n**PR code and description written by:**\n\n* [ ] Human\n* [x] AI\n\n**Reviewed before submission by:**\n\n* [x] Human\n* [x] AI\n* [ ] Not reviewed\n\n* GitHub Issue: #51669\n\nAuthored-by: Yanzhi Xin \u003cerindotsing@gmail.com\u003e\nSigned-off-by: Adam Reeve \u003cadreeve@gmail.com\u003e"
    },
    {
      "commit": "b8079cd294ad60bdb81da8a0989e8fd27918c517",
      "tree": "197d0449221a5916d350cd951a88419654dee902",
      "parents": [
        "d4ab42ba54c205b521dd66de21a8de4b56c8752c"
      ],
      "author": {
        "name": "Omkar Kabde",
        "email": "omkarkabde@gmail.com",
        "time": "Wed Oct 28 20:27:19 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 15:57:19 2026 +0100"
      },
      "message": "GH-54637: [Python] add `MemoryPool` support to `pq.read_table` (#54919)\n\n### Rationale for this change\n`pq.read_table` has no way to pass a memory pool. `ParquetReader` and `Dataset.to_table` already accept one, it just wasn\u0027t added.\n\n### What changes are included in this PR?\nI added a `memory_pool` argument to `read_table`, `ParquetFile` and `ParquetDataset`. It is passed to `ParquetReader` and to `Dataset.to_table`, with docstrings updated.\n\n### Are these changes tested?\nYes. I added new tests in `test_basic.py` - It reads a Parquet file with a tracked memory pool and check that the pool was actually used. They cover `read_table`, `ParquetFile` and `ParquetDataset`.\n\n### Are there any user-facing changes?\nNew optional `memory_pool` keyword. No breaking changes.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n- [x] Human\n- [ ] AI\n\nGithub Issue - https://github.com/apache/arrow/issues/54637\n* GitHub Issue: #54637\n\nAuthored-by: Omkar Kabde \u003comkarkabde@gmail.com\u003e\nSigned-off-by: AlenkaF \u003cfrim.alenka@gmail.com\u003e"
    },
    {
      "commit": "d4ab42ba54c205b521dd66de21a8de4b56c8752c",
      "tree": "098b406d32e120541f9e0e6af73d729be0ba0b1e",
      "parents": [
        "bb6a367ffe98a9655710860ac262ca653cf43b1d"
      ],
      "author": {
        "name": "Antoine Prouvost",
        "email": "AntoinePrv@users.noreply.github.com",
        "time": "Wed Oct 28 15:47:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 15:47:29 2026 +0100"
      },
      "message": "GH-50628: [C++][Parquet] Rework RecordReader to introduce flat optional optimization (#50629)\n\n### Rationale for this change\nSpeed up reading flat (non-nested) optional Parquet columns: decode definition levels directly into the validity bitmap instead of materializing `int16_t` levels.\n\n### What changes are included in this PR?\n - Split `TypedRecordReader` into required / flat optional / generic specializations (required may not be needed)\n  - Add RLE/bit-packed level to bitmap decoders (`level_decoder_internal.h`).\n  - Some inner refactors:\n    - Make some attribute private\n    - Push some attribute down to the children class where they are needed\n    - Remove some inheritance `TypedRecordReader : TypedColumnReaderImpl\u003cDType\u003e`\n    - Rename `ColumnReaderImplBase` to `ColumnChunkReader`\n    - Add value/validity/level sinks to factor \"write\" behaviour\n \n### Are these changes tested?\nYes, `RecordReader` tests run with and without the optimization; added FLBA, byte array and flat optional cases.\n\n### Are there any user-facing changes?\n- Would have been that `RecordReader::def_levels()` would become `nullptr` so optimization are gated behind a new option `allow_levels_optimization` (in `RecordReader::MakeParams` and `RowGroupReader::RecordReader`). Enabled internally.\n- `RecordReader` protected members removed.\n\n------\n\n* GitHub Issue: #50628\n\nAuthored-by: AntoinePrv \u003cAntoinePrv@users.noreply.github.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "bb6a367ffe98a9655710860ac262ca653cf43b1d",
      "tree": "9ead730ad90a3eaf7b737defe14d34328b3edb71",
      "parents": [
        "fc390cd3442ba8f2a1db964dee735c6f1234c4e1"
      ],
      "author": {
        "name": "mwish",
        "email": "maplewish117@gmail.com",
        "time": "Wed Oct 28 22:09:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 22:09:02 2026 +0800"
      },
      "message": "GH-55247: [C++][Parquet] Optimize ALP Decompress in clang + x86 (#55248)\n\n### Rationale for this change\n\nSee: https://godbolt.org/z/EPPqn7xco\n\n### What changes are included in this PR?\n\nExtract the alp argument out, this brings optimization in clang ( at least clang-18 ).\n\nAccording to the godbolt, gcc can optimize this well, so using gcc might not seeing this optimization.\n\n### Are these changes tested?\n\nNo\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nAI help me to test the cases in different machines\n\n**PR code and description written by:**\n\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n\n* GitHub Issue: #55247\n\nAuthored-by: mwish \u003cmaplewish117@gmail.com\u003e\nSigned-off-by: Gang Wu \u003custcwg@gmail.com\u003e"
    },
    {
      "commit": "fc390cd3442ba8f2a1db964dee735c6f1234c4e1",
      "tree": "60bffbf03752ae00cf7f244d67719a328e2615ff",
      "parents": [
        "22bbf58006b0ad90dadc075b0da2ff13c718be1f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:22:02 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:22:02 2026 +0900"
      },
      "message": "MINOR: [CI] Bump the apache-infrastructure-actions-stash group with 2 updates (#55288)\n\nBumps the apache-infrastructure-actions-stash group with 2 updates:\n[apache/infrastructure-actions/stash/restore](https://github.com/apache/infrastructure-actions)\nand\n[apache/infrastructure-actions/stash/save](https://github.com/apache/infrastructure-actions).\n\nUpdates `apache/infrastructure-actions/stash/restore` from\ne3e0a2261a9c6d5bdd882802b303f34b1511b6df to\nd3a005f07dd94a34d11361b0287b0c1fdc6d55f5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/d3a005f07dd94a34d11361b0287b0c1fdc6d55f5\"\u003e\u003ccode\u003ed3a005f\u003c/code\u003e\u003c/a\u003e\nRemove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/e7a0894bb07f279c1194726aff7c5edbdee513e5\"\u003e\u003ccode\u003ee7a0894\u003c/code\u003e\u003c/a\u003e\nSync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/1d3b0fe171c20098585833693bc6c1ed61038e5a\"\u003e\u003ccode\u003e1d3b0fe\u003c/code\u003e\u003c/a\u003e\naction-allowlist-review: bump DavidAnson/markdownlint-cli2-action (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1445\"\u003e#1445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/667c76687afb9f681a23c23d6f38a78e7b967ec3\"\u003e\u003ccode\u003e667c766\u003c/code\u003e\u003c/a\u003e\nSync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/eb5fbad03d61c74d7d9ef72e430ecbb0f8338faa\"\u003e\u003ccode\u003eeb5fbad\u003c/code\u003e\u003c/a\u003e\naction-allowlist-review: bump commit-check/commit-check-action (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1443\"\u003e#1443\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/10418eea2d6aa15b44d8d6e5fc38351d2f5bfdb2\"\u003e\u003ccode\u003e10418ee\u003c/code\u003e\u003c/a\u003e\nmagpie: record reconciled skill hashes in lockfile (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1442\"\u003e#1442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/b6dbfe9d930081350a58c0845b8c41cc2eb12377\"\u003e\u003ccode\u003eb6dbfe9\u003c/code\u003e\u003c/a\u003e\nRemove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/6dd2da6dfcfe6a05d28249b7dd7b62c857fa0490\"\u003e\u003ccode\u003e6dd2da6\u003c/code\u003e\u003c/a\u003e\nmagpie: add vetted-ops to the plugin floor, document setup (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1441\"\u003e#1441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/b69fcb10e1aeba985519b8ca5d62adcd18548684\"\u003e\u003ccode\u003eb69fcb1\u003c/code\u003e\u003c/a\u003e\nSync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/780e1b4f83be89981842b246abf2762b2ba16a7c\"\u003e\u003ccode\u003e780e1b4\u003c/code\u003e\u003c/a\u003e\naction-allowlist-review: bump leafo/gh-actions-luarocks (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1437\"\u003e#1437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/compare/e3e0a2261a9c6d5bdd882802b303f34b1511b6df...d3a005f07dd94a34d11361b0287b0c1fdc6d55f5\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache/infrastructure-actions/stash/save` from\ne3e0a2261a9c6d5bdd882802b303f34b1511b6df to\nd3a005f07dd94a34d11361b0287b0c1fdc6d55f5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/d3a005f07dd94a34d11361b0287b0c1fdc6d55f5\"\u003e\u003ccode\u003ed3a005f\u003c/code\u003e\u003c/a\u003e\nRemove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/e7a0894bb07f279c1194726aff7c5edbdee513e5\"\u003e\u003ccode\u003ee7a0894\u003c/code\u003e\u003c/a\u003e\nSync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/1d3b0fe171c20098585833693bc6c1ed61038e5a\"\u003e\u003ccode\u003e1d3b0fe\u003c/code\u003e\u003c/a\u003e\naction-allowlist-review: bump DavidAnson/markdownlint-cli2-action (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1445\"\u003e#1445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/667c76687afb9f681a23c23d6f38a78e7b967ec3\"\u003e\u003ccode\u003e667c766\u003c/code\u003e\u003c/a\u003e\nSync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/eb5fbad03d61c74d7d9ef72e430ecbb0f8338faa\"\u003e\u003ccode\u003eeb5fbad\u003c/code\u003e\u003c/a\u003e\naction-allowlist-review: bump commit-check/commit-check-action (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1443\"\u003e#1443\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/10418eea2d6aa15b44d8d6e5fc38351d2f5bfdb2\"\u003e\u003ccode\u003e10418ee\u003c/code\u003e\u003c/a\u003e\nmagpie: record reconciled skill hashes in lockfile (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1442\"\u003e#1442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/b6dbfe9d930081350a58c0845b8c41cc2eb12377\"\u003e\u003ccode\u003eb6dbfe9\u003c/code\u003e\u003c/a\u003e\nRemove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/6dd2da6dfcfe6a05d28249b7dd7b62c857fa0490\"\u003e\u003ccode\u003e6dd2da6\u003c/code\u003e\u003c/a\u003e\nmagpie: add vetted-ops to the plugin floor, document setup (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1441\"\u003e#1441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/b69fcb10e1aeba985519b8ca5d62adcd18548684\"\u003e\u003ccode\u003eb69fcb1\u003c/code\u003e\u003c/a\u003e\nSync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/commit/780e1b4f83be89981842b246abf2762b2ba16a7c\"\u003e\u003ccode\u003e780e1b4\u003c/code\u003e\u003c/a\u003e\naction-allowlist-review: bump leafo/gh-actions-luarocks (\u003ca\nhref\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1437\"\u003e#1437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/apache/infrastructure-actions/compare/e3e0a2261a9c6d5bdd882802b303f34b1511b6df...d3a005f07dd94a34d11361b0287b0c1fdc6d55f5\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "22bbf58006b0ad90dadc075b0da2ff13c718be1f",
      "tree": "7936e9c33d52193caa8705dbec99bea2c38d3558",
      "parents": [
        "9eb748dde427a102306d1aae3fbc8939f3cdc9fb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:12:17 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:12:17 2026 +0900"
      },
      "message": "MINOR: [CI] Bump docker/login-action from 4.6.0 to 4.7.0 (#55289)\n\nBumps [docker/login-action](https://github.com/docker/login-action) from 4.6.0 to 4.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/docker/login-action/releases\"\u003edocker/login-action\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve explicit ECR settings in \u003ccode\u003eregistry-auth\u003c/code\u003e by \u003ca href\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1089\"\u003edocker/login-action#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse registry hosts for scoped credentials by \u003ca href\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1088\"\u003edocker/login-action#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise Docker Hub OIDC max expiry to 6 hours by \u003ca href\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1068\"\u003edocker/login-action#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLog Docker Hub OIDC token exchange progress by \u003ca href\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1061\"\u003edocker/login-action#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr\u003c/code\u003e and \u003ccode\u003e@​aws-sdk/client-ecr-public\u003c/code\u003e to 3.1154.0 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1093\"\u003edocker/login-action#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.94.0 to 0.107.0 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1100\"\u003edocker/login-action#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​humanfs/node\u003c/code\u003e from 0.16.7 to 0.16.8 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1077\"\u003edocker/login-action#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump csv-parse from 7.0.1 to 7.0.3 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1078\"\u003edocker/login-action#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump handlebars from 4.7.9 to 4.7.10 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1091\"\u003edocker/login-action#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump js-yaml from 5.2.2 to 5.5.0 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1066\"\u003edocker/login-action#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump postcss from 8.5.22 to 8.5.26 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1071\"\u003edocker/login-action#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump postcss-selector-parser from 7.1.1 to 7.1.6 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1092\"\u003edocker/login-action#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump source-map-js from 1.2.1 to 1.2.2 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1090\"\u003edocker/login-action#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump undici from 6.27.0 to 6.29.1 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1085\"\u003edocker/login-action#1085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uuid from 14.0.1 to 14.0.3 in \u003ca href\u003d\"https://redirect.github.com/docker/login-action/pull/1096\"\u003edocker/login-action#1096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/docker/login-action/compare/v4.6.0...v4.7.0\"\u003ehttps://github.com/docker/login-action/compare/v4.6.0...v4.7.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/81c6f93d4bc991e510b342a00b419b3bb4efc5c6\"\u003e\u003ccode\u003e81c6f93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1100\"\u003e#1100\u003c/a\u003e from docker/dependabot/npm_and_yarn/docker/actions-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/1b16c8d1815e1d951d87a3522ff48a76d073735a\"\u003e\u003ccode\u003e1b16c8d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1096\"\u003e#1096\u003c/a\u003e from docker/dependabot/npm_and_yarn/uuid-14.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/ac86b5e9e9d2db43b12b2d3afb9140a427d69d65\"\u003e\u003ccode\u003eac86b5e\u003c/code\u003e\u003c/a\u003e [dependabot skip] chore: update generated content\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/1476d845f08dd8309a938959a280f2e23c0cba14\"\u003e\u003ccode\u003e1476d84\u003c/code\u003e\u003c/a\u003e build(deps): bump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.94.0 to 0.107.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/503cee68d85e94275776fcc6f5315f19207f7567\"\u003e\u003ccode\u003e503cee6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1095\"\u003e#1095\u003c/a\u003e from docker/dependabot/github_actions/actions/create...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/f0935357f5c539aeb7ff6b886ba5434ab76e9de3\"\u003e\u003ccode\u003ef093535\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1099\"\u003e#1099\u003c/a\u003e from docker/dependabot/github_actions/codecov/codeco...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/d5ae7f188776587b12b77b45e29ea21332462da9\"\u003e\u003ccode\u003ed5ae7f1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1098\"\u003e#1098\u003c/a\u003e from docker/dependabot/github_actions/docker/bake-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/6f9750797f6e7186f18c069a7e97abc1dcf1006b\"\u003e\u003ccode\u003e6f97507\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1097\"\u003e#1097\u003c/a\u003e from docker/dependabot/github_actions/docker/bake-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/006d61fa598847d65f6670d1569545fa2af9cf02\"\u003e\u003ccode\u003e006d61f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1094\"\u003e#1094\u003c/a\u003e from docker/dependabot/github_actions/codeql-actions...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/docker/login-action/commit/93f5f522eea5eacabf35cc89b9d19ec23e742471\"\u003e\u003ccode\u003e93f5f52\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/docker/login-action/issues/1093\"\u003e#1093\u003c/a\u003e from docker/dependabot/npm_and_yarn/aws-sdk-dependen...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/docker/login-action/compare/dbcb813823bdd20940b903addbd779551569679f...81c6f93d4bc991e510b342a00b419b3bb4efc5c6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003ddocker/login-action\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d4.6.0\u0026new-version\u003d4.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@ dependabot rebase` will rebase this PR\n- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@ dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@ dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@ dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@ dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\u003c/details\u003e\n\nAuthored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "9eb748dde427a102306d1aae3fbc8939f3cdc9fb",
      "tree": "9a7427ab3d918afa962b1b642b297d6fb8f410d9",
      "parents": [
        "e7b0e50dfa5bdddc42a52cd89d791fcc344b60e6"
      ],
      "author": {
        "name": "Alina (Xi) Li",
        "email": "96995091+alinaliBQ@users.noreply.github.com",
        "time": "Tue Oct 27 16:02:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 16:02:58 2026 -0700"
      },
      "message": "GH-55275: [C++][FlightRPC][ODBC] Unset `CPACK_WIX_PRODUCT_GUID` to allow Windows installer upgrade (#55276)\n\n### Rationale for this change\nGH-55275\n\nhttps://cmake.org/cmake/help/v4.5/cpack_gen/wix.html#variable:CPACK_WIX_PRODUCT_GUID\n\n\u003e CPACK_WIX_PRODUCT_GUID\n\u003e Product GUID (`Product/@ Id`)\n\u003e \n\u003e Will be automatically generated unless explicitly provided.\n\u003e \n\u003e If explicitly provided this will set the Product Id of your installer.\n\u003e \n\u003e The installer **will abort** if it detects a pre-existing installation that uses the **same GUID**.\n\nHighlights my own. \n\n### What changes are included in this PR?\nRemoved hard-coded `CPACK_WIX_PRODUCT_GUID`. Then CPack will generate the UUID value for Product ID during each build, and it should unblock users from upgrading using ODBC installer. \n\n### Are these changes tested?\nRegression tested in CI.\nTested installer on local Windows machine and was able to upgrade. \n\n### Are there any user-facing changes?\nno\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55275\n\nAuthored-by: Alina (Xi) Li \u003c96995091+alinaliBQ@users.noreply.github.com\u003e\nSigned-off-by: David Li \u003cli.davidm96@gmail.com\u003e"
    },
    {
      "commit": "e7b0e50dfa5bdddc42a52cd89d791fcc344b60e6",
      "tree": "55ffbd894c3cd249d9dedadcdf7ca5155f29e020",
      "parents": [
        "2ecb29d980e69fcc569167e8fed852af1a3afa3a"
      ],
      "author": {
        "name": "Alenka Frim",
        "email": "AlenkaF@users.noreply.github.com",
        "time": "Tue Oct 27 17:44:30 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 17:44:30 2026 +0100"
      },
      "message": "GH-55285: [Python] Typo in Decimal32Array definition in array.pxi (#55286)\n\n### Rationale for this change\n\n`python/pyarrow/array.pxi` defines the class as `Decima32Array` (missing `l`).\n\n### What changes are included in this PR?\n\nRenaming of the class in `array.pxi` to `Decimal32Array`.\n\n### Are these changes tested?\n\nI haven\u0027t added a special test for this.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55285\n\nAuthored-by: AlenkaF \u003cfrim.alenka@gmail.com\u003e\nSigned-off-by: Tadeja Kadunc \u003ctadeja.kadunc@gmail.com\u003e"
    },
    {
      "commit": "2ecb29d980e69fcc569167e8fed852af1a3afa3a",
      "tree": "ce24ab45687f2a16b59152047686a1a13162ef2c",
      "parents": [
        "0b250b73d40d47643ce4df6031508a2a3b2ea186"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Tue Oct 27 14:42:42 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:42:42 2026 +0000"
      },
      "message": "GH-55267: [C++][R] Arrow 26.0.0 fails to build on CRAN macOS builders: bundled simdjson C++20 concepts don\u0027t compile with the macOS 11 SDK (#55273)\n\n### Rationale for this change\n\nCRAN failures on 26.0.0 release due to regex not catching incompatible MacOSX11.sdk version\n\n### What changes are included in this PR?\n\nMake regex more permissive\n\n### Are these changes tested?\n\nNo\n\n### Are there any user-facing changes?\n\nNo\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55267\n\nAuthored-by: Nic Crane \u003cthisisnic@gmail.com\u003e\nSigned-off-by: Nic Crane \u003cthisisnic@gmail.com\u003e"
    },
    {
      "commit": "0b250b73d40d47643ce4df6031508a2a3b2ea186",
      "tree": "277410fd7005c902804d1e0f6c685f6620720928",
      "parents": [
        "9a18992678f86f140c6c76f427678031aee7d493"
      ],
      "author": {
        "name": "Nic Crane",
        "email": "thisisnic@gmail.com",
        "time": "Tue Oct 27 14:24:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:24:43 2026 +0000"
      },
      "message": "GH-38217: [R] Map format \u003d \"text\" to format \u003d \"csv\" in write_dataset() (#50367)\n\n### Rationale for this change\n\n`write_dataset()` errors on `format\u003d\"text\"` even though `open_dataset()` allows it.\n\n### What changes are included in this PR?\n\nMap \"text\" to \"csv\" so `write_dataset()` mirrors `open_dataset()`\n\n### Are these changes tested?\n\nYes\n\n### Are there any user-facing changes?\n\nNo\n* GitHub Issue: #38217\n\nAuthored-by: Nic Crane \u003cthisisnic@gmail.com\u003e\nSigned-off-by: Nic Crane \u003cthisisnic@gmail.com\u003e"
    },
    {
      "commit": "9a18992678f86f140c6c76f427678031aee7d493",
      "tree": "f329c9f72e6f3cc921f128e558fe91d4e41e3fcc",
      "parents": [
        "4ecdfe046ec367aa4e046f28f840c21d4e18701a"
      ],
      "author": {
        "name": "Zhou Hongfeng",
        "email": "87103887+zhf999@users.noreply.github.com",
        "time": "Tue Oct 27 20:43:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 13:43:33 2026 +0100"
      },
      "message": "GH-47774: [C++] Force-inline Status::~Status() to improve reading performance (#50749)\n\n### Rationale for this change\n\n`Status` is returned by nearly every API on hot paths (e.g. IPC/Parquet reading), so its destructor runs extremely frequently. The destructor body is already optimized for the common success case: it only checks `state_ !\u003d NULL` (with `ARROW_PREDICT_FALSE`) and returns immediately for an OK status, delegating the rare error cleanup to the out-of-line `DeleteState()`.\n\nHowever, without an explicit inlining hint, some compilers/optimization levels may not inline this destructor, turning the trivial `state_ \u003d\u003d NULL` fast path into a real function call at every call site. Forcing it inline removes this call overhead on hot read paths and improves read throughput.\n\nIn our perf test (reads a parquet file of 6.7GB), `Status::~Status` cost about 20 seconds, as the following flamegraph shows:\n\u003cimg width\u003d\"1381\" height\u003d\"254\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/c62601b8-6d1f-455a-9ee5-9edc4ea57852\" /\u003e\n\nAfter inlining `Status::~Status`, the hotspot disappeared. End-to-end latency was also reduced by 20 seconds, as expected.\n\n\u003cimg width\u003d\"1367\" height\u003d\"263\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/78ec8f84-f9b7-4d74-b767-9046c1d40eaf\" /\u003e\n\n### What changes are included in this PR?\n\n- Annotate `Status::~Status()` in `cpp/src/arrow/status.h` with `ARROW_FORCE_INLINE` (`__attribute__((always_inline)) inline` on GCC/Clang, `__forceinline` on MSVC), so the cheap null-check fast path is always inlined while the cold error path still goes through the non-inlined `DeleteState()`.\n\n### Are these changes tested?\n\nYes, by existing tests. This change does not alter any behavior of `Status`; the existing `Status` unit tests and the full C++ test suite cover it. The performance improvement can be observed with the existing read-path benchmarks.\n\n### Are there any user-facing changes?\n\nNo. This is an internal performance optimization with no API or behavior change.\n\n* GitHub Issue: #47774\n\nLead-authored-by: Antoine Pitrou \u003cpitrou@free.fr\u003e\nCo-authored-by: zhouhongfeng \u003czhouhongfeng.zhf@alibaba-inc.com\u003e\nCo-authored-by: Antoine Pitrou \u003cantoine@python.org\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "4ecdfe046ec367aa4e046f28f840c21d4e18701a",
      "tree": "5d66085f54f07cfd93f9608fe4d5402fb75fdf3d",
      "parents": [
        "5f75a12e29d2ccf1c5527db0750c8b5ce6aa9ce1"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 27 10:16:21 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 10:16:21 2026 +0100"
      },
      "message": "GH-54902: [C++] Move GCS and google-cloud-cpp to its own libarrow_gcs.so (#54905)\n\n### Rationale for this change\n\nTrying to reduce the size of libarrow.so and remove google-cloud-cpp SDK on some builds. Allow for users to plug and play based on requirements and divide our functionality into cleaner modules.\n\n### What changes are included in this PR?\n\nUnconditionally build GCS and the google-cloud-cpp SDK into a different module libarrow_gcs.so outside of libarrow.so.\nUpdate bindings to link against the new libarrow_gcs.so library.\nUpdate the Linux Package jobs to have the new module into a different package.\n\n### Are these changes tested?\n\nYes via CI\n\n### Are there any user-facing changes?\n\nYes, users will need to either link against libarrow_s3.so or register using LoadFileSystemFactories\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54902\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "5f75a12e29d2ccf1c5527db0750c8b5ce6aa9ce1",
      "tree": "6f7438d7e769129837e924585996b47b0859600f",
      "parents": [
        "96207d75fab8ba9dfea7df8cb21e9a97b4aa8dab"
      ],
      "author": {
        "name": "Zehua Zou",
        "email": "zehuazou2000@gmail.com",
        "time": "Tue Oct 27 16:59:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 09:59:22 2026 +0100"
      },
      "message": "GH-55124: [C++][Parquet] Allow masked nulls in required fields when writing (#55136)\n\n### Rationale for this change\n\nThe Parquet writer checks the leaf array\u0027s physical null count without accounting for the parent struct\u0027s validity bitmap. As a result, it rejects nulls in required child fields even when they are masked by null parent rows.\n\n### What changes are included in this PR?\n\nCorrected the logic used by the column writer to validate the null values for required leaf fields.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55124\n\nAuthored-by: Zehua Zou \u003czehuazou2000@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "96207d75fab8ba9dfea7df8cb21e9a97b4aa8dab",
      "tree": "91819742df6c10dae83060e1f3221ed14cbef6f3",
      "parents": [
        "4a6ebc06dc2bb967263fdf83449ac104e54cbaba"
      ],
      "author": {
        "name": "Antoine Pitrou",
        "email": "antoine@python.org",
        "time": "Tue Oct 27 09:48:54 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 09:48:54 2026 +0100"
      },
      "message": "GH-49760: [Doc][C++] Elaborate on what constitutes a vulnerability (#55271)\n\n### Rationale for this change\n\nWe often get private security reports for some issues which don\u0027t threaten confidentiality or integrity.\n\nFor these kinds of issues, we would rather have them reported through the usual public means, as it follows our open development principles more closely, and lessens the required paperwork (no CVE, etc.).\n\n### What changes are included in this PR?\n\nAdd a paragraph in the C++ security model about what should be reported as a security vulnerability vs. a regular bug.\n\n### Are these changes tested?\n\nN/A.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #49760\n\nAuthored-by: Antoine Pitrou \u003cantoine@python.org\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "4a6ebc06dc2bb967263fdf83449ac104e54cbaba",
      "tree": "ba49a12d310c3591c3369fc762ef620976dfb671",
      "parents": [
        "f9eee02fd19564c12ae58999fba6ac731be80836"
      ],
      "author": {
        "name": "Rok Mihevc",
        "email": "rok@mihevc.org",
        "time": "Mon Oct 26 20:04:24 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 20:04:24 2026 +0100"
      },
      "message": "GH-49153: [Python] Remove APIs deprecated before 15.0.0 (#53543)\n\n### Rationale for this change\n\nWe have many deprecated APIs in Python we should slowly remove.\n\n### What changes are included in this PR?\n\nSeveral deprecation messages are acted on.\n\n### Are these changes tested?\n\nBy the existing test suite.\n\n### Are there any user-facing changes?\n\nYes, some deprecated user-facing APIs are.removed.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #49153\n\nAuthored-by: Rok Mihevc \u003crok@mihevc.org\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "f9eee02fd19564c12ae58999fba6ac731be80836",
      "tree": "894cd7bedc10f116ab922d89ef8ef6b937a4e3c7",
      "parents": [
        "7454dec376c0fbc7c7086784336367204fd6be87"
      ],
      "author": {
        "name": "Alexander Taepper",
        "email": "alexander.taepper@gmail.com",
        "time": "Mon Oct 26 16:10:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 16:10:07 2026 +0100"
      },
      "message": "GH-54924: [C++] HasVariadicBuffers should respect extension types (#54925)\n\n### Rationale for this change\n\nThis fixes #54924. An extension array would not round-trip correctly through ArraySpans as a test demonstrates.\n\n### What changes are included in this PR?\n\nThis fixes the `HasVariadicBuffers` implementation to correctly handle extension types. A test demonstrating the fix is also included.\n\nThe fix follows the implementation of `ArraySpan::SetMembers`, where the same additional case for extension types is included\n\n### Are these changes tested?\n\nYes. By the existing test suite plus an additional test.\n\n### Are there any user-facing changes?\n\nNone other than the bug fix.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [X] AI\n- [ ] Not reviewed\n\nAn LLM suggested the second fix for \n```\n  if (type_id \u003d\u003d Type::STRING_VIEW || type_id \u003d\u003d Type::BINARY_VIEW) {\n```\nin `ArraySpan::SetMembers`, which does look correct to me.\n* GitHub Issue: #54924\n\nAuthored-by: Alexander Taepper \u003calexander.taepper@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "7454dec376c0fbc7c7086784336367204fd6be87",
      "tree": "aa423ee5e313ba06c6bc876116c62b24ff37f1c4",
      "parents": [
        "2cadeab93eb6e5e9e9707899ebd042a4c4a8302d"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Mon Oct 26 13:57:27 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 21:57:27 2026 +0900"
      },
      "message": "GH-55261: [CI] Stop running Extra CI jobs on push to main and push docker images on scheduled trigger events (#55262)\n\n### Rationale for this change\n\nWe are using too many CI resources from the shared pool. Running Linux Packaging jobs and other Extra CI jobs on main currently seems a waste of resources.\n\n### What changes are included in this PR?\n\nRemove the ability to run Extra CI jobs when we push to main and push the docker images on the scheduled events.\n\n### Are these changes tested?\n\nNo.\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55261\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "2cadeab93eb6e5e9e9707899ebd042a4c4a8302d",
      "tree": "4f38ce0a929304191d58502f4a11e6e71f6fe41e",
      "parents": [
        "b0492db23124be017e9ce20ba2c18e0e778e2899"
      ],
      "author": {
        "name": "Advit Arora",
        "email": "advitarora2@gmail.com",
        "time": "Mon Oct 26 10:11:40 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 11:11:40 2026 +0100"
      },
      "message": "GH-47417: [C++] Fix JSON parser losing nulls in a null-typed list (#51108)\n\n### Rationale for this change\n\n`{\"a\": [null, 1]}` silently parses to `[[1]]` in release builds, and aborts in debug.\n\nThis was introduced in `b7054c21aab` (0.14.0).\n\n### What changes are included in this PR?\n\n`AppendNull` looks up its child from the parent and returns the updated `BuilderPtr`, instead of taking a copy from the caller. `Null()` writes it back to `builder_`, so `builder_` no longer drifts from the parent\u0027s copy.\n\n### Are these changes tested?\n\nTwo new tests, `BlockParser.NullsInList` (inferred schema) and `BlockParserWithSchema.NullsInList` (explicit schema), parse lists of nulls, including `{\"a\": [{\"b\": null}, null]}`. Both fail in debug without the fix.\n\n### Are there any user-facing changes?\n\n`{\"a\": [null, 1]}` now parses to `[[null, 1]]`.\n\n**This PR contains a \"Critical Fix\".** Well-formed JSON silently loses list elements.\n\n* GitHub Issue: #47417\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\nAuthored-by: Advit Arora \u003cadvitarora2@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "b0492db23124be017e9ce20ba2c18e0e778e2899",
      "tree": "e5013629d07a620af8b0f39e7d2418b025e525ec",
      "parents": [
        "f10fadcedcd9d02cad73a7ebd3d674bfe8e5d6bb"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Mon Oct 26 16:47:15 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 08:47:15 2026 +0100"
      },
      "message": "GH-54638: [C++][FlightRPC] Upgrade bundled gRPC for OpenSSL 4 support (#54927)\n\n### Rationale for this change\n\ngRPC 1.76.0 doesn\u0027t compile with OpenSSL 4. gRPC 1.85.0 includes OpenSSL 4 support: https://github.com/grpc/grpc/pull/41932\n\n### What changes are included in this PR?\n\ngRPC 1.85.0 requires a newer Abseil. gRPC 1.76.0 doesn\u0027t compile with the newer Abseil. So we need to upgrade both of them together.\n\nWe use Abseil 20260817.0 not 20260526.0 that is used by gRPC 1.85.0 because Abseil 20260526.0 can\u0027t be built with MSVC with `/arch:AVX2`: https://github.com/abseil/abseil-cpp/issues/2116\n\ngRPC 1.85.0 moved its .proto files to the third_party/grpc-proto submodule. Source archives don\u0027t include submodules and we disable gRPC_DOWNLOAD_ARCHIVES. So we download grpc-proto by ourselves.\n\nAbseil 20260817.0 removed some libraries and added some new libraries. So we update the list of bundled Abseil libraries.\n\nAbseil 20260817.0 uses `O_NONBLOCK` that isn\u0027t available on MinGW. So we define `O_NONBLOCK` as 0 for MinGW like the upstream fix: https://github.com/abseil/abseil-cpp/commit/ddbdebc6c8\n\nAbseil 20260817.0 includes `\u003ccstdint\u003e` by itself. So we remove the `-include stdint.h` workaround for GCC 13 or later.\n\ngRPC headers don\u0027t use deprecated `std::iterator`. So we remove the `-Wno-error\u003ddeprecated-declarations` workaround.\n  \nWe didn\u0027t bundle upb static libraries used by gRPC. So static linking with `libarrow_bundled_dependencies.a` failed with undefined upb symbols. gRPC 1.85.0 also requires the new `upb_descriptor_lib`. So we bundle all upb static libraries.\n\nOther bundled dependencies also need to be upgraded for the new Abseil:\n\nProtobuf 31.1 can\u0027t be built with Abseil 20260817.0 with MSVC. So we upgrade bundled Protobuf to 36.2. Protobuf 36.2 headers include `utf8_validity.h` in utf8_range. So we add the utf8_range include directory for ORC built by ExternalProject.\n          \ngoogle-cloud-cpp headers use deprecated Abseil APIs such as `absl::visit()`. They cause compilation errors with `-Werror` with Abseil 20260817.0. They are fixed in google-cloud-cpp 3.9.0 or later but google-cloud-cpp 3.9.0 or later requires libcurl 8.7.1 or later. We can\u0027t require it because some supported platforms such as Ubuntu 24.04 ship older libcurl. So we use `-Wno-error\u003ddeprecated-declarations` for bundled google-cloud-cpp instead of upgrading it.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54638\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "f10fadcedcd9d02cad73a7ebd3d674bfe8e5d6bb",
      "tree": "37647b269eeee35f43557ab4f5ee5925f8445256",
      "parents": [
        "d228ba5a9def26e67e12b2e475be0b00edb77aea"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Mon Oct 26 16:39:15 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 08:39:15 2026 +0100"
      },
      "message": "GH-55112: [Packaging][Debian] Add missing opentelemetry-cpp dependency (#55249)\n\n### Rationale for this change\n\n`debuild` doesn\u0027t add OpenTelemetry dependencies to `libarrow.so.XXX` automatically because OpenTelemetry package on Debian doesn\u0027t have SO version.\n\n### What changes are included in this PR?\n\nAdd `opentelemetry-cpp` dependency explicitly.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55112\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "d228ba5a9def26e67e12b2e475be0b00edb77aea",
      "tree": "18687a95cda9661d78b7044f7960b80ad51d6fdd",
      "parents": [
        "2c800e6bbb8735e868b3b97f041de45095bfdbc5"
      ],
      "author": {
        "name": "Pearu Peterson",
        "email": "pearu.peterson@gmail.com",
        "time": "Mon Oct 26 03:38:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 10:38:00 2026 +0900"
      },
      "message": "GH-54647: [C++] Reject leap seconds in the strptime timestamp parser (#54659)\n\n### Rationale for this change\n\n`strptime` accepts a seconds value of 60 (glibc also 61), and the parser added it to the time of day, which wrapped it into the next minute. Arrow cannot represent leap seconds, and the ISO-8601 parser rejects them.\n\n### What changes are included in this PR?\n\nThe parser rejects a seconds value of 60 or more. The check applies only when the time of day is used, so Gandiva\u0027s `to_date`, which ignores the time, still accepts such values.\n\n### Are these changes tested?\n\nYes, in `TimestampParser.StrptimeParser`, and a Gandiva `to_date` test checks that a leap second still gives the date when the time is ignored.\n\n### Are there any user-facing changes?\n\nLeap seconds no longer parse with `strptime` formats, except in Gandiva\u0027s `to_date`.\n\n### AI usage disclosure\n\nDeveloped with AI assistance (Claude Code): the fix, the tests and this description were AI-generated under my direction and reviewed line by line by me. I own and can debug these changes. No copyrighted material is included.\n\n* GitHub Issue: #54647\n\nAuthored-by: Pearu Peterson \u003cpearu.peterson@gmail.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "2c800e6bbb8735e868b3b97f041de45095bfdbc5",
      "tree": "48123915dc67b8b3d09e4594fa7236f2dd85de24",
      "parents": [
        "0c6b47bccf59096b0037e6c4c8ffbc8a99751e45"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Fri Oct 23 16:17:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 23:17:44 2026 +0900"
      },
      "message": "GH-54928: [Packaging][CI] Change TMPDIR for reproducible builds to avoid out of space (#54943)\n\n### TBD\n\n### Rationale for this change\n\nSeveral Linux Packaging jobs are currently failing with out of space on the verify reproducibility step. This is due to `/tmp` size. Ubuntu runner image changed from Ubuntu 24.04 to Ubuntu 26.04 where the `/tmp` folder is mounted.\nIn the past the `/tmp` folder was on the root disk which had 145 GB of disk space.\n```\n Filesystem      Size  Used Avail Use% Mounted on\n/dev/root       145G   60G   85G  42% /\ntmpfs           7.9G   84K  7.9G   1% /dev/shm\ntmpfs           3.2G  988K  3.2G   1% /run\ntmpfs           5.0M     0  5.0M   0% /run/lock\nefivarfs        128M   32K  128M   1% /sys/firmware/efi/efivars\n/dev/sda16      881M   85M  735M  11% /boot\n/dev/sda15      105M  6.2M   99M   6% /boot/efi\ntmpfs           1.6G   12K  1.6G   1% /run/user/1001\n```\nWith the new runner the `/tmp` folder is on `tmpfs` with 7.8GB.\n```\n2026-10-23T02:23:08.8104328Z Filesystem      Size  Used Avail Use% Mounted on\n2026-10-23T02:23:08.8104761Z /dev/root       145G   58G   88G  40% /\n2026-10-23T02:23:08.8105145Z tmpfs           7.9G     0  7.9G   0% /dev/shm\n2026-10-23T02:23:08.8105751Z tmpfs           3.2G 1000K  3.2G   1% /run\n2026-10-23T02:23:08.8106428Z efivarfs        128M   32K  128M   1% /sys/firmware/efi/efivars\n2026-10-23T02:23:08.8107172Z tmpfs           7.9G   38M  7.8G   1% /tmp\n2026-10-23T02:23:08.8108065Z none            1.0M     0  1.0M   0% /run/credentials/systemd-journald.service\n2026-10-23T02:23:08.8109058Z none            1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service\n2026-10-23T02:23:08.8109866Z /dev/sda13      989M   81M  842M   9% /boot\n2026-10-23T02:23:08.8110512Z /dev/sda15      105M  6.3M   99M   7% /boot/efi\n2026-10-23T02:23:08.8111184Z none            1.0M     0  1.0M   0% /run/credentials/systemd-networkd.service\n2026-10-23T02:23:08.8112063Z tmpfs           1.6G  8.0K  1.6G   1% /run/user/1001\n2026-10-23T02:23:08.8112526Z none            1.0M     0  1.0M   0% /run/credentials/getty@ tty1.service\n2026-10-23T02:23:08.8113053Z none            1.0M     0  1.0M   0% /run/credentials/serial-getty@ ttyS0.service\n```\n\n### What changes are included in this PR?\n\nUse `runner.temp` (`RUNNER_TEMP`) to get a temporary directory on the runner instead of using `/tmp`.\nSee https://docs.github.com/en/actions/reference/workflows-and-actions/contexts and https://docs.github.com/en/actions/reference/workflows-and-actions/variables\n\n### Are these changes tested?\n\nYes via CI\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54928\n\nLead-authored-by: Raúl Cumplido \u003craulcumplido@gmail.com\u003e\nCo-authored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "0c6b47bccf59096b0037e6c4c8ffbc8a99751e45",
      "tree": "a363b1bca6855940246dac85026ef3b3637ce231",
      "parents": [
        "2db03408aaefad7edaf48831b37ed6047a80bce4"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Fri Oct 23 15:55:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 15:55:05 2026 +0200"
      },
      "message": "GH-55113: [CI][R] Install tzdata-legacy if available so tests are able to find required timezones (#55114)\n\n### Rationale for this change\n\nGH runner upgrade from Ubuntu 24.04 to 26.04 made some R tests fail due to missing timezone. (Rhub)\n\n### What changes are included in this PR?\n\nInstall `tzdata-legacy` package if available to have the required timezone.\n\n### Are these changes tested?\n\nYes on CI\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #55113\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "2db03408aaefad7edaf48831b37ed6047a80bce4",
      "tree": "a2843a4842c8701e14d4f3c8c20eb11e870d2b17",
      "parents": [
        "e53d3f202b8e9bdc3e2b6e59df71f09009233888"
      ],
      "author": {
        "name": "Logan Riggs",
        "email": "logan.riggs@gmail.com",
        "time": "Fri Oct 23 06:53:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 22:53:02 2026 +0900"
      },
      "message": "GH-51663: [C++][Gandiva] Race condition with Gandiva expressions (#51665)\n\n### Rationale for this change\n\nI originally identified [this issue in arrow-java](https://github.com/apache/arrow-java/issues/601) and fixed it on the arrow-java side with a coarse grained lock on the Projector and Filter Make methods. That fixed the issue but adds some undesirable overhead in certain multi threaded workflows.\nThis issue captures the deeper problem that is occurring in the C++ side of Gandiva and was not touched by my previous fix though it is prevented from happening. I have a proposed solution for this and believe it is a better overall solution.\n\n`Projector::Make()` and `Filter::Make()` read the shared expression cache once to decide the `is_cached` status and then call `SetLLVMObjectCache()`. That performs its own second, unsynchronized read of the same key before pre-loading a cached object into the LLJIT.\n\nThose two reads could disagree. If another thread compiling the identical (schema, expressions, selection vector mode, configuration) tuple inserted between them, the first thread would:\n\n1. take the `is_cached \u003d\u003d false` path, generating `expr_0_0` into its IR module, and\n2. also see a hit on the second read and `addObjectFile()` a cached object that defines `expr_0_0` as well.\n\nBoth then call `JITDylib::define` for the same symbol in the same `JITDylib`, and ORC\u0027s duplicate-symbol detection fires:\n\n```text\nCodeGenError in Gandiva: Failed to add IR module to LLJIT:\nIn gdv_module_..., duplicate definition of symbol \u0027expr_0_0\u0027\n```\n\n### What changes are included in this PR?\n\nThread the single cache-lookup result (`prev_cached_obj`) that already determined `is_cached` directly into `SetLLVMObjectCache()`, instead of letting it perform an independent second lookup.\n\n`Engine::SetLLVMObjectCache()` and `LLVMGenerator::SetLLVMObjectCache()` now take the resolved `std::shared_ptr\u003cllvm::MemoryBuffer\u003e` rather than a `GandivaObjectCache\u0026`. `Engine::SetLLVMObjectCache()` passes a copy of the buffer to `addObjectFile()`, as the old `GandivaObjectCache::getObject()` did, because the shared cache still owns the original buffer.\n\nNo new locking — this removes the window rather than serializing around it.\n\n### Are these changes tested?\n\nThis adds a new deterministic regression test, `cpp/src/gandiva/tests/cache_race_test.cc`, which is part of `gandiva-projector-test`.\n\nThe test doesn\u0027t depend on thread timing. It registers an `ExportedFuncsBase` hook that inserts an entry for the key being built into the shared cache during `Engine::Init()`. That is after `Make()`\u0027s first cache lookup and before the (pre-fix) second lookup in `SetLLVMObjectCache()`, so the race window is reproduced on every run. It covers both `Projector::Make()` and `Filter::Make()`, and checks that the built projector/filter evaluates correctly.\n \nVerified the tests fail with the duplicate-symbol error without this fix.\n\nVerified internally with our product stress tests after removing the arrow-java side of the fix. Once this change is in C++ I can make the java change to remove the synchronization.\n\n### Are there any user-facing changes?\n\n**This PR includes breaking changes to public APIs.** \n\nEngine::SetLLVMObjectCache and LLVMGenerator::SetLLVMObjectCache are GANDIVA_EXPORT so this changes an exported signature. In-tree there are no other callers, and the Gandiva Java side JNI only uses Projector::Make/Filter::Make, which are unchanged.\n\n### Was AI used for this PR?\n\nAI was used to diagnose the problem, write code and tests over several iterations before being reviewed by two human developers. A human ran several manual and regression tests against the change. One human reviewed and heavily edited the PR description and also wrote some himself.\n\n**PR code and description written by:**\n\n- [X] Human\n- [X] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [X] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51663\n\nAuthored-by: logan.riggs@gmail.com \u003clogan.riggs@gmail.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "e53d3f202b8e9bdc3e2b6e59df71f09009233888",
      "tree": "f266fd0b4b1807252152d2b91aad00cbdedd9bc7",
      "parents": [
        "14132604b3949ba1c25cc79fff2e1782b9efc413"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Fri Oct 23 12:03:55 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 12:03:55 2026 +0900"
      },
      "message": "GH-51690: [C++] Don\u0027t define __SSE2__ globally with MSVC (#53952)\n\n### Rationale for this change\n\n`simdjson \u003e\u003d 5` uses GCC builtins such as `__builtin_ctz` when `__SSE2__` is defined. So we can\u0027t build Apache Arrow C++ with `simdjson \u003e\u003d 5` and MSVC because we define `__SSE2__` globally.\n\n### What changes are included in this PR?\n\nWe don\u0027t need to define `__SSE2__` because xsimd detects SSE2 by `_M_X64` with MSVC.\n\nWe still need to define `__SSE4_1__`/`__SSE4_2__` for xsimd because MSVC doesn\u0027t define them even with `/arch:SSE4.2`. But we define them only where SSE4.2 is enabled. So they are no longer defined with `ARROW_SIMD_LEVEL\u003dNONE`.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51690\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "14132604b3949ba1c25cc79fff2e1782b9efc413",
      "tree": "3b740e7dbfa114104bba41b93d02a822828bf4c5",
      "parents": [
        "b9479757dd5c1914c2b007f11f6679c4fc080c05"
      ],
      "author": {
        "name": "Rok Mihevc",
        "email": "rok@mihevc.org",
        "time": "Thu Oct 22 19:38:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 19:38:21 2026 +0200"
      },
      "message": "MINOR: [Dev] Update collaborators list (#54960)\n\n### Rationale for this change\n\nThe collaborator list defines triage role. It helps having triage people.\n\n### What changes are included in this PR?\n\nAdd to the list a collaborator that could benefit from triage role.\n\n### Are these changes tested?\n\nNot relevant\n\n### Are there any user-facing changes?\n\nNo\n\nAuthored-by: Rok Mihevc \u003crok@mihevc.org\u003e\nSigned-off-by: Rok Mihevc \u003crok@mihevc.org\u003e"
    },
    {
      "commit": "b9479757dd5c1914c2b007f11f6679c4fc080c05",
      "tree": "888919d360b1e1f97dbe8ac541715337e0be4e7e",
      "parents": [
        "373d64c02cb23663b63c5853099fca43a46c39fc"
      ],
      "author": {
        "name": "Pearu Peterson",
        "email": "pearu.peterson@gmail.com",
        "time": "Thu Oct 22 17:22:24 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 23:22:24 2026 +0900"
      },
      "message": "GH-54646: [C++] Reject years out of range in the strptime timestamp parser (#54658)\n\n### Rationale for this change\n\nThe parser computed the year as `tm_year + 1900`, which can overflow `int` (e.g. with `%s`), and passed it to `date::year`, which holds 16 bits, so a year out of range gave a wrong timestamp.\n\n### What changes are included in this PR?\n\nThe year is computed in 64 bits and rejected if `date::year` cannot hold it.\n\n### Are these changes tested?\n\nYes, `TimestampParser.StrptimeYearOutOfRange` covers a year that wraps around and one where `tm_year + 1900` overflows `int`. It needs `%s` and is skipped where `strptime` does not parse `%s` into 64 bits (e.g. on Windows).\n\n### Are there any user-facing changes?\n\nValues whose year does not fit in 16 bits no longer parse with `strptime` formats.\n\n### AI usage disclosure\n\nDeveloped with AI assistance (Claude Code): the fix, the test and this description were AI-generated under my direction and reviewed line by line by me. I own and can debug these changes. No copyrighted material is included.\n\n* GitHub Issue: #54646\n\nAuthored-by: Pearu Peterson \u003cpearu.peterson@gmail.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "373d64c02cb23663b63c5853099fca43a46c39fc",
      "tree": "7842334887b6c3814ef3f5e4632089a628aa6959",
      "parents": [
        "6e4fa50fb02112904d54c7ec685ec9e8f7932bba"
      ],
      "author": {
        "name": "Alexis Placet",
        "email": "alexis.placet@quantstack.net",
        "time": "Wed Oct 21 12:21:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 11:21:59 2026 +0100"
      },
      "message": "GH-50282: [C++][FlightRPC] Refactor gRPC server and transport classes (#50407)\n\n# Rationale for this change\n\nThe goal of the pullrequest is to refactor the FligtRPC code to prepare the async implementation.\n\n# What changes are included in this PR\n\n- extracts `server.cc/transport_server.cc` internals into `transport_server_internal.{h,cc}` and the gRPC-specific call context, auth/middleware helper, and endpoint/builder setup into `transport/grpc/grpc_server_internal.{h,cc}`, templated on the gRPC context type so `ServerContext` and `CallbackServerContext` can share one implementation.                                                                          \n - Moves signal-driven shutdown into `internal::ServerSignalState`, fixing teardown ordering so handlers are restored even when `Serve()` fails early, a SIGPIPE race when waking the signal thread, and shutdown of an uninitialized server clearing another serving instance\u0027s signal target. (Github Copilot issue report)                                      \n - Adds public `Location::uri()` and `Location::port()`, and includes` arrow/util/uri.h` from types.h so the `Result\u003cutil::Uri\u003e` return type is instantiable by consumers of the installed header. (Github Copilot issue report in the PR) \n - `Wait()` on an uninitialized server now returns `Status::Invalid` instead of dereferencing null. No other public behavior change. `ServerTransport`, `TransportMessageReader`/`Writer`, `WriteDataStream` and friends stay internal. (Github Copilot issue report in the PR)                                                                                      \n - Drops the unused gRPC FlightData message registry. \n\n# Are these changes tested?\n- Full CI tests\n- Adds tests covering signal handling and server middleware headers that depend on handler state.\n\n# Are there any user-facing changes?\n- New API: `Location::uri()` → `Result\u003cutil::Uri\u003e`, `Location::port()` → `int` (-1 when absent)\n- Compilation fix: `types.h` now includes `arrow/util/uri.h`. Before, `Result\u003cutil::Uri\u003e` was uninstantiable for anyone including only the installed header.\n- Behavior: `Wait()` on an uninitialized server returns `Status::Invalid` (was a null deref). `Serve()` restores prior signal handlers on failure. `Shutdown()` on an uninitialized server no longer disables signal shutdown for another serving instance, signal thread wake no longer risks SIGPIPE-killing the process. (Github Copilot issue report in the PR) \n\n# Was AI used for this PR?\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR. \n\nPR code and description written by:\n- [x] Human\n- [x] AI\nReviewed before submission by:\n- [x] Human\n- [x] AI\n- [] Not reviewed\n\n* GitHub Issue: #50282\n\nLead-authored-by: Alexis Placet \u003calexis.placet@quantstack.net\u003e\nCo-authored-by: Alexis Placet \u003calexis.placet.dev@pm.me\u003e\nCo-authored-by: Alexis Placet \u003c2400067+Alex-PLACET@users.noreply.github.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "6e4fa50fb02112904d54c7ec685ec9e8f7932bba",
      "tree": "358cd63364789de06e12d3c83792dea68c1c4bf7",
      "parents": [
        "a4b74e560c7c409acd94fcd0ed9393c04942bb0a"
      ],
      "author": {
        "name": "Pearu Peterson",
        "email": "pearu.peterson@gmail.com",
        "time": "Wed Oct 21 10:23:25 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 16:23:25 2026 +0900"
      },
      "message": "GH-54643: [C++] Reject impossible dates and a zero day in the strptime timestamp parser (#54657)\n\n### Rationale for this change\n\n`strptime` checks the day of month against 31 at most, and some implementations (macOS, the vendored musl used on Windows) accept day `00`, and the vendored musl also month `00`. The parser rolled an impossible date such as February 30 over into the next month, took a zero day as the first of the month, and a zero month as December of the previous year.\n\n### What changes are included in this PR?\n\nThe parser rejects the parsed date if it is not valid, as the ISO-8601 parser does. To tell a zero day from an omitted one, the day is initialized to the first before parsing, instead of being raised to the first afterwards. The two fixes are in one PR because the zero-day fix relies on the date check. The vendored musl `strptime` also gets back the unsigned range check that upstream musl has, so it rejects day and month `00` itself.\n\n### Are these changes tested?\n\nYes, in `TimestampParser.StrptimeParser` (impossible dates, a zero day, a zero month, and February 29 of a leap year) and `TimestampParser.StrptimeWithoutDay` (a format without a day directive still gives the first of the month). The zero day and zero month cases only fail without the fix on platforms whose `strptime` accepts them.\n\n### Are there any user-facing changes?\n\nImpossible dates, a zero day and a zero month no longer parse with `strptime` formats.\n\n### AI usage disclosure\n\nDeveloped with AI assistance (Claude Code): the fix, the tests and this description were AI-generated under my direction and reviewed line by line by me. I own and can debug these changes. No copyrighted material is included.\n\n* GitHub Issue: #54643\n\nAuthored-by: Pearu Peterson \u003cpearu.peterson@gmail.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "a4b74e560c7c409acd94fcd0ed9393c04942bb0a",
      "tree": "9172ff1118668ea2e42476956118c175f67370e2",
      "parents": [
        "83cc1491805272e24dfbf6cadbdb8473a57a36a7"
      ],
      "author": {
        "name": "Vikrant Puppala",
        "email": "vikrant.puppala@databricks.com",
        "time": "Wed Oct 21 12:02:27 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 15:32:27 2026 +0900"
      },
      "message": "GH-54645: [C++][FlightRPC][ODBC] Fix descriptor test query (#54695)\n\n### Rationale for this change\n\nThe Dremio-backed ODBC test suite fails in StatementTest/1.TestChangingAppRowDescriptorRebindsColumns because Dremio treats VALUE as a reserved keyword. The same query succeeds against the SQLite mock, so the failure was only exposed by the remote suite.\n\n### What changes are included in this PR?\n\nRename the test query alias from value to val, which is accepted by both SQLite and Dremio.\n\n### Are these changes tested?\n\nYes. Ran the Ubuntu 24.04 CI-equivalent ODBC job locally:\n\n    UBUNTU\u003d24.04 docker compose run --rm ubuntu-cpp-odbc\n\nAll 61 C++ test executables passed, including the Dremio-backed arrow-flight-sql-odbc-test.\n\nMaintainer note: please apply the CI: Extra: C++ label so the ODBC CI job runs.\n\n### Are there any user-facing changes?\n\nNo. This is a test-only compatibility fix.\n\n### Was AI used for this PR?\n\nIn accordance to the AI generation guidelines, AI was used to investigate the failure, prepare the one-line test fix, run validation, and draft this description.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\nCloses #54645.\n* GitHub Issue: #54645\n\nAuthored-by: Vikrant Puppala \u003cvikrant.puppala@databricks.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "83cc1491805272e24dfbf6cadbdb8473a57a36a7",
      "tree": "ac9ec76f3e86af61f24e9ef1a9fd030c177c17c7",
      "parents": [
        "14daca685eecde57ae688a427fcdec210f8544a8"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Wed Oct 21 15:20:50 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 15:20:50 2026 +0900"
      },
      "message": "GH-54687: [GLib] Add missing owner references to GBytes (#54883)\n\n### Rationale for this change\n\nApache Arrow GLib uses `g_byte_new_static()` for zero-copy API. If owner objects are destroyed before `GBytes`, `GBytes`s refer freed data.\n\n### What changes are included in this PR?\n\n* Use `g_byte_new_with_free_func()` instead to refer owner objects.\n* `GParquetStatistics` refers `GParquetColumnChunkMetadata` because `GParquetColumnChunkMetadata` owns min/max values.\n* `gparquet_{,fixed_length_}byte_array_statistics_get_{min,max}()`: Use `(transfer full)` instead of `(transfer none)` to avoid circular reference. Direct Apache Parquet GLib uses must call `g_bytes_unref()` manually. This is a backward incompatible change. GObject Introspection users don\u0027t care about this. Because GObject Introspection cares about this automatically.\n* Enable ASAN tests only on Linux.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\n**This PR includes breaking changes to public APIs.** The return value of the following functions must be freed by `g_bytes_unref()`:\n* `gparquet_byte_array_statistics_get_min()`\n* `gparquet_byte_array_statistics_get_max()`\n* `gparquet_fixed_length_byte_array_statistics_get_min()`\n* `gparquet_fixed_length_byte_array_statistics_get_max()`\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54687\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "14daca685eecde57ae688a427fcdec210f8544a8",
      "tree": "1c6cae06b6bbd28b459d71f5144eb595d4514575",
      "parents": [
        "1776578067602ed059db9bd8c3e4fc126c4597f3"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Wed Oct 21 15:19:16 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 15:19:16 2026 +0900"
      },
      "message": "GH-49818: [C++][FlightRPC] Don\u0027t call Finish() twice on handshake stream (#54685)\n\n### Rationale for this change\n\n`arrow-flight-sql-odbc-test` sometimes aborts with `GRPC_CALL_ERROR_TOO_MANY_OPERATIONS` in `ClientReaderWriter::Finish()` of the handshake stream.\n\nThis happens when a server finishes a handshake before the client writes or reads. For example, `NoOpAuthHandler` on the server side and Dremio do this. In this case:\n\n1. `GrpcClientAuthSender::Write()` (or `GrpcClientAuthReader::Read()`) fails and calls `Finish()` on the handshake stream.\n2. The returned status is OK, so the client auth handler and `AuthenticateInternal()` continue.\n3. `AuthenticateInternal()` calls `WritesDone()`, drains the stream and calls `Finish()` again.\n4. gRPC rejects the second `RECV_STATUS_ON_CLIENT` with `GRPC_CALL_ERROR_TOO_MANY_OPERATIONS` and aborts the process.\n\n`GRPC_TRACE\u003dapi` shows this sequence:\n\n```text\nSEND_MESSAGE                                   -\u003e ERROR: Attempt to send message after stream was closed.\nRECV_INITIAL_METADATA + RECV_STATUS_ON_CLIENT  -\u003e OK  (Finish() by GrpcClientAuthSender::Write())\nSEND_CLOSE_FROM_CLIENT                                (WritesDone())\nRECV_MESSAGE                                          (drain)\nRECV_STATUS_ON_CLIENT                          -\u003e GRPC_CALL_ERROR_TOO_MANY_OPERATIONS (Finish() by AuthenticateInternal())\n```\n\nWhether the server finishes before the client writes is a race. So it\u0027s flaky.\n\n### What changes are included in this PR?\n\n* Add `GrpcClientHandshakeStream` that wraps the handshake stream:\n  * `Finish()` is called at most once. The second and later calls return the status of the first call.\n  * `Read()`, `Write()` and `WritesDone()` return `false` without calling gRPC after the stream is finished.\n* Return the status in `AuthenticateInternal()` without `WritesDone()` and draining when the stream is already finished.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes. Flight clients don\u0027t abort the process when a server finishes a handshake early.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #49818\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "1776578067602ed059db9bd8c3e4fc126c4597f3",
      "tree": "fdacab22fe23597ae5276c5d377da48d647dad35",
      "parents": [
        "a907fbc6461fe888c238c06db97edb16cef0d003"
      ],
      "author": {
        "name": "Dricmoy Bhattacharjee",
        "email": "dricbhattacharjee@gmail.com",
        "time": "Tue Oct 20 16:03:46 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 11:03:46 2026 +1300"
      },
      "message": "GH-51351: [C++][Parquet] Use default KMS connection values (#53996)\n\n### Rationale for this change\n\n`FileKeyWrapper` calls `SetDefaultIfEmpty()` on its stored configuration, but passes the original, unmodified configuration to `GetKmsClient`. This allows the KMS client factory to receive empty instance ID and URL values even though Arrow has already filled in defaults on its internal copy.\n\n### What changes are included in this PR?\n\n- Pass the defaulted `kms_connection_config_` member to `GetKmsClient`.\n- Update C++ and Python key-rotation tests to expect Arrow\u0027s existing default values for empty fields.\n- Separate the writer and reader crypto factories in the dataset encryption tests.\n\nThe dataset tests give the writer all keys and the reader only some. With a shared factory, the reader can reuse the writer\u0027s cached client, which already has all the keys. Separate factories ensure the reader uses its own keys, so the missing-key checks work correctly. The write-path fix exposes this because writing and reading now use the same default instance ID, where empty and `\"DEFAULT\"` IDs previously selected separate cache entries.\n\n### Are these changes tested?\n\n- Local C++ encryption key-management suite: 24 tests passed.\n- Both local Python encryption test files: 62 passed, 1 skipped. The skipped case requires a build without encryption support.\n- C++ and Python formatting and lint, and `git diff --check`, passed.\n- Fork CI for `537e296384`: [Python](https://github.com/Dricmoy/arrow/actions/runs/38923806919), [Dev](https://github.com/Dricmoy/arrow/actions/runs/38923806888), and [Docs](https://github.com/Dricmoy/arrow/actions/runs/38923806885) passed. The [C++ workflow](https://github.com/Dricmoy/arrow/actions/runs/38852310915) passed for the preceding commit; the follow-up commit changes only Python tests.\n\n### Are there any user-facing changes?\n\nKMS client factories receive Arrow\u0027s `\"DEFAULT\"` markers instead of empty strings for omitted instance ID and URL values. Explicit non-empty values are preserved. These markers are interpreted by the KMS implementation; they are not automatically resolved server addresses.\n\nI reviewed the compatibility tradeoff: custom factories that special-case empty strings may need updating. Defaulting the instance ID can also change client reuse because the cache is indexed by access token and instance ID. Requests with the same token and resolved ID can now share a client where empty and `\"DEFAULT\"` IDs previously selected separate entries. This makes client creation consistent with Arrow\u0027s existing defaulting logic and stored key metadata, but changes behavior for integrations that rely on empty strings. There are no API signature changes.\n\nCloses #51351. Follow-up to #53949.\n\n### Was AI used for this PR?\n\nAI assisted with the implementation, tests, validation, and this description. I reviewed the configuration flow, the default-value test expectations, the reader/writer cache separation, and the compatibility tradeoff described above. The PR overall is fairly small consistent expectation change, had some tests changed to fit the updated expectations.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51351\n\nAuthored-by: Dricmoy \u003cdricbhattacharjee@gmail.com\u003e\nSigned-off-by: Adam Reeve \u003cadreeve@gmail.com\u003e"
    },
    {
      "commit": "a907fbc6461fe888c238c06db97edb16cef0d003",
      "tree": "74441f2fb644f98852cf708821ee669036a2e9ec",
      "parents": [
        "ee382216db4f8d764ed17c16c5baef45afe3f757"
      ],
      "author": {
        "name": "Pearu Peterson",
        "email": "pearu.peterson@gmail.com",
        "time": "Tue Oct 20 14:51:15 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 20:51:15 2026 +0900"
      },
      "message": "GH-54641: [C++] Support locale directives in the vendored strptime on Windows (#54656)\n\n### Rationale for this change\n\nOn Windows, the vendored musl `strptime` does not handle `%a`, `%A`, `%b`, `%B`, `%h`, `%c`, `%p`, `%r`, `%x` and `%X`, because they need `nl_langinfo()`, which is not available there.\n\n### What changes are included in this PR?\n\nA C-locale replacement for `nl_langinfo()`, restricted to the items the vendored `strptime` uses, with the values of the POSIX locale.\n\n### Are these changes tested?\n\nYes, `TimestampParser.StrptimeLocaleDirectives` covers each of these directives. On Windows it exercises the vendored `strptime`; elsewhere it runs against the system `strptime`.\n\n### Are there any user-facing changes?\n\nOn Windows, `strptime` formats with these directives now parse.\n\n### AI usage disclosure\n\nDeveloped with AI assistance (Claude Code): the fix, the test and this description were AI-generated under my direction and reviewed line by line by me. I own and can debug these changes. No copyrighted material is included.\n\n* GitHub Issue: #54641\n\nAuthored-by: Pearu Peterson \u003cpearu.peterson@gmail.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "ee382216db4f8d764ed17c16c5baef45afe3f757",
      "tree": "e55ebf5d44f10094afca30501582f3822d71154c",
      "parents": [
        "61f24ce27b0597258938566665d353ce54bccf60"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 20 02:23:47 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 10:23:47 2026 +0900"
      },
      "message": "GH-54595: [Packaging][CI] Fix regex on update_deb_package_names to cover the 3 on libarrow_s3 (#54608)\n\n### Rationale for this change\n\nLinux packaging jobs for Deb packages are currently failing due to wrong libarrow_s32600 still being referred to.\n\n### What changes are included in this PR?\n\nUpdate regex to cover numbers on libarrowxxx package names.\nUpdate the wrong entries at control.in.\n\n### Are these changes tested?\n\nI have tested the regex locally with:\n```\n $ sed -i.bak -E -e  \"s/(lib(arrow|gandiva|parquet)[-a-z0-9]*)2700/\\\\12800/g\" dev/tasks/linux-packages/apache-arrow/debian/control.in\n```\nAnd validated the diff contains libarrow s3 updated:\n```diff\n@@ -122,13 +122,13 @@ Pre-Depends: ${misc:Pre-Depends}\n Depends:\n   ${misc:Depends},\n   ${shlibs:Depends},\n-  libarrow-acero2700 (\u003d ${binary:Version}),\n-  libparquet2700 (\u003d ${binary:Version})\n+  libarrow-acero2800 (\u003d ${binary:Version}),\n+  libparquet2800 (\u003d ${binary:Version})\n Description: Apache Arrow is a data processing library for analysis\n  .\n  This package provides C++ library files for Dataset module.\n \n-Package: libarrow-s3-2700\n+Package: libarrow-s3-2800\n Section: libs\n Architecture: any\n Multi-Arch: same\n```\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54595\n\nAuthored-by: Raúl Cumplido \u003craulcd@apache.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "61f24ce27b0597258938566665d353ce54bccf60",
      "tree": "af55c985e1ec79d80c1e091adb53c0ef96602f1a",
      "parents": [
        "fb767a7cae8a52bd52166628b73353d3d85ca88f"
      ],
      "author": {
        "name": "nishad shabbir",
        "email": "nishadshabbir28@gmail.com",
        "time": "Mon Oct 19 17:54:36 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 14:24:36 2026 +0200"
      },
      "message": "GH-52024: [Python] Fix the codec list in show_info() (#51753)\n\n### Rationale for this change\n\n`pa.show_info()` prints its Compression Codecs section from a hardcoded list:\n\n```python\ncodecs \u003d [\"brotli\", \"bz2\", \"gzip\", \"lz4_frame\", \"lz4\", \"snappy\", \"zstd\"]\n```\n\nThat list has drifted from `_ensure_compression()` in `io.pxi`, which is what\nactually decides which codec names work. Two problems follow:\n\n- `lz4` and `lz4_frame` both map to `CCompressionType_LZ4_FRAME`, so the same\n  codec is reported twice under two names.\n- `lz4_raw` maps to `CCompressionType_LZ4` and is a separate codec, but it is\n  not listed at all, even though `pa.Codec.is_available(\u0027lz4_raw\u0027)` is True.\n\nSo seven lines are printed for six codecs, and the codec that is missing is a\nreal one.\n\nBefore:\n\n```\nCompression Codecs:\n  brotli              : Enabled\n  bz2                 : Enabled\n  gzip                : Enabled\n  lz4_frame           : Enabled\n  lz4                 : Enabled\n  snappy              : Enabled\n  zstd                : Enabled\n```\n\nAfter:\n\n```\nCompression Codecs:\n  brotli              : Enabled\n  bz2                 : Enabled\n  gzip                : Enabled\n  lz4                 : Enabled\n  lz4_raw             : Enabled\n  snappy              : Enabled\n  zstd                : Enabled\n```\n\n### What changes are included in this PR?\n\nOne list in `python/pyarrow/__init__.py`: drop the duplicate `lz4_frame` and add\nthe missing `lz4_raw`. `lz4` is kept as the name for the frame codec since that\nis the one the docstrings lead with (`\u0027lz4\u0027 (or \u0027lz4_frame\u0027)`).\n\nOn deriving this programmatically rather than hardcoding it — agreed, that is\nthe better fix. The canonical mapping lives in `_ensure_compression()` in\n`io.pxi`, and neither `Codec` nor the C++ `compression.h` currently exposes the\nset of supported codecs, so it needs a new accessor on the Cython side for\n`show_info()` to read. I am happy to do that here, with the caveat that I cannot\ncompile the Cython extension in my environment and would be relying on CI to\nverify it. If you would prefer, I can keep this change minimal and open a\nfollow-up issue for the programmatic version. Let me know which you would rather\nhave.\n\n### Are these changes tested?\n\nNot by a new test. `show_info()` has no existing test coverage and its output is\na diagnostic print, so I did not want to pin the exact text without knowing\nwhether you would want that — happy to add one if you do.\n\nVerified by applying the same change to an installed pyarrow and reading the\noutput back, and by walking every name `_ensure_compression()` accepts to\nconfirm which of them map onto the same C++ enum value:\n\n```\nbz2 -\u003e BZ2, gzip -\u003e GZIP, brotli -\u003e BROTLI,\nlz4 -\u003e LZ4_FRAME, lz4_frame -\u003e LZ4_FRAME,   # same codec, two names\nlz4_raw -\u003e LZ4,                             # distinct, was not listed\nsnappy -\u003e SNAPPY, zstd -\u003e ZSTD\n```\n\n### Are there any user-facing changes?\n\nOnly the output of `pa.show_info()`, which now lists each supported codec once\nand includes `lz4_raw`. No API change.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #52024\n\nAuthored-by: nishad shabbir \u003cnishadshabbir28@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "fb767a7cae8a52bd52166628b73353d3d85ca88f",
      "tree": "71b62e96a6f107bdb68bd28dc3bcdc236e5c76d9",
      "parents": [
        "f0988511a8ab25a914fe70e4260a07d2e08460db"
      ],
      "author": {
        "name": "Aaditya Srinivasan",
        "email": "156181482+Reranko05@users.noreply.github.com",
        "time": "Mon Oct 19 14:54:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 11:24:08 2026 +0200"
      },
      "message": "GH-51008: [C++] Remove vendored whereami (#54024)\n\n### Rationale for this change\n\nRemove the unused vendored whereami library and its associated license text from LICENSE.txt.\n\n### What changes are included in this PR?\n\n- Remove the vendored whereami source and header files.\n- Remove the associated license text from LICENSE.txt.\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [ ] AI\n- [ ] Not reviewed\n\nCloses: #51008 \n\n* GitHub Issue: #51008\n\nAuthored-by: Aaditya Srinivasan \u003caadityasri03@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "f0988511a8ab25a914fe70e4260a07d2e08460db",
      "tree": "433d87b96ce76003ffbb76c6f559c619ed121fc5",
      "parents": [
        "e4405dcd52ddc6f060dc5d1eddb026c4be30c7f2"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Mon Oct 19 16:29:42 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 16:29:42 2026 +0900"
      },
      "message": "GH-54571: [GLib] Add support for returning string view array from C++ (#54572)\n\n### Rationale for this change\n\n`garrow_array_new_raw_valist()` misses string view array detection. If we miss it, we can\u0027t return a string view array from C++ to GLib.\n\n### What changes are included in this PR?\n\nAdd missing string view array detection.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nYes.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #54571\n\nAuthored-by: Sutou Kouhei \u003ckou@clear-code.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "e4405dcd52ddc6f060dc5d1eddb026c4be30c7f2",
      "tree": "d5aa1619bf55eb59e3f3da1dae313595cf167371",
      "parents": [
        "d67d78f6a60b065af9bd589f8c8b3f023d295678"
      ],
      "author": {
        "name": "Alexander",
        "email": "alexander.taepper@gmail.com",
        "time": "Mon Oct 19 04:27:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 10:27:14 2026 +0800"
      },
      "message": "GH-53730: [C++] Simplify destructor of `ArrowLog` (#53911)\n\n### Rationale for this change\n\n@ elfring correctly identified in https://github.com/apache/arrow/issues/53730 that we perform an unnecessary null check before invoking `delete`. \n\nCalling `delete` on a `nullptr` is completely safe.\n\n### What changes are included in this PR?\n\nThis simplifies the destructor of `ArrowLog`.\n\nAdditionally:\n- explicitly setting the member to `nullptr` in the destructor is unnecessary\n- my static analyzer also noticed that we can replace the `reinterpret_cast` with a safer `static_cast`\n\n### Are these changes tested?\n\nYes\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [X] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #53730\n\nAuthored-by: Alexander Taepper \u003calexander.taepper@gmail.com\u003e\nSigned-off-by: Zehua Zou \u003czehuazou2000@gmail.com\u003e"
    },
    {
      "commit": "d67d78f6a60b065af9bd589f8c8b3f023d295678",
      "tree": "a83115a5a8a8c0a3e3457810644c7b8091198215",
      "parents": [
        "9f0341314ca96eb58081d4132c77b460d880b2b0"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Sun Oct 18 17:51:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 09:51:42 2026 +0900"
      },
      "message": "GH-54489: [CI][Integration] Install jpype1 from conda-forge in conda-integration image (#54490)\n\n### Rationale for this change\n\nThe `conda-integration` image doesn\u0027t pin Python, so it now gets Python 3.15. `ci/scripts/integration_arrow.sh` installs jpype1 with pip, and PyPI has no cp315 wheel for jpype1 yet. pip falls back to building from source, which fails because the image doesn\u0027t include Apache Ant. See #54489 for details.\n\n### What changes are included in this PR?\n\nInstall `jpype1` from conda-forge in `conda-integration.dockerfile`, as `conda-python-jpype.dockerfile` already does. conda-forge has builds for Python 3.15 on both linux-64 and linux-aarch64.\n\n`integration_arrow.sh` is unchanged: its `pip install jpype1` finds the conda package already installed and does nothing. It still installs jpype1 when the script runs outside this image.\n\n### Are these changes tested?\n\nYes. The Integration job in apache/arrow-dotnet builds this image from scratch and fails with the error above. I ran that job on a fork with the Arrow checkout pointed at this branch, and it got past the jpype1 installation that used to fail. When I opened this PR the run was still in progress: https://github.com/CurtHagenlocher/arrow-dotnet/actions/runs/39150917107\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [ ] Human\n- [ ] AI\n- [ ] Not reviewed\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n* GitHub Issue: #54489\n\nAuthored-by: Curt Hagenlocher \u003ccurt@hagenlocher.org\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "9f0341314ca96eb58081d4132c77b460d880b2b0",
      "tree": "e58d5326c22cbcf8ccf20e7800c584693397452b",
      "parents": [
        "50c2fc2656e4cb2a8ca57d7014b8143b47ec1eb9"
      ],
      "author": {
        "name": "paultiq",
        "email": "104510378+paultiq@users.noreply.github.com",
        "time": "Fri Oct 16 08:41:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 13:41:48 2026 +0100"
      },
      "message": "GH-52522: [CI][Python] Build with released CPython 3.15.0 (#53264)\n\n### Rationale for this change\n\nPython 3.15.0 released 2026-10-09 (https://www.python.org/downloads/release/python-3150/).\n\nThis is a follow-up to https://github.com/apache/arrow/pull/48191, bumping the release pins and versions from 3.15.0rc2 to 3.15.0 (released).\n\n### What changes are included in this PR?\n- Change version reference from 3.15.0rc2 to 3.15.0\n- Update manylinux and musllinux quay.io build dates\n- Update build date for python-build-standalone\n- Bump PYTHON_WHEEL_WINDOWS_IMAGE_REVISION and PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION\n\n### Are these changes tested?\nNo\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [X] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #52522\n\nAuthored-by: paul@iqmo.com \u003cpaul@iqmo.com\u003e\nSigned-off-by: Raúl Cumplido \u003craulcd@apache.org\u003e"
    },
    {
      "commit": "50c2fc2656e4cb2a8ca57d7014b8143b47ec1eb9",
      "tree": "4b0eabede490a422729c3335c096691ce53d62d7",
      "parents": [
        "740237e342c647967279abf6b36f2e2fafe46181"
      ],
      "author": {
        "name": "Alina (Xi) Li",
        "email": "96995091+alinaliBQ@users.noreply.github.com",
        "time": "Thu Oct 15 21:49:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 13:49:21 2026 +0900"
      },
      "message": "GH-53818: [C++][FlightRPC][ODBC] Fix Windows ODBC Installer Registering Empty Driver and Setup Paths (#53819)\n\n### Rationale for this change\nhttps://github.com/apache/arrow/issues/53818\n\n### What changes are included in this PR?\n\n- Resolve bug where Windows ODBC installer registers empty `Driver` and `Setup` values. Both values should point to the actual installed driver path.\n- Add CI verification for Windows ODBC registration values\n\n### Are these changes tested?\n\n- Yes, tested in CI\n\n### Are there any user-facing changes?\n\nYes. This fixes a packaging bug of the Windows ODBC installer.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #53818\n\nAuthored-by: Alina (Xi) Li \u003calina.li@improving.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "740237e342c647967279abf6b36f2e2fafe46181",
      "tree": "0aa34990178354c447976834f6b54fcf5fbbca61",
      "parents": [
        "402a71cb4f6780fba1247df6c59f7f34e31b8ddc"
      ],
      "author": {
        "name": "Evan Brown",
        "email": "ezb@google.com",
        "time": "Thu Oct 15 23:05:56 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 11:05:56 2026 +0800"
      },
      "message": "[C++] Remove capacity() check in TDigest::TDigestImpl::Validate() (#52276)\n\n### Rationale for this change\n\n`std::vector::reserve(delta_)` only guarantees `capacity() \u003e\u003d delta_`,\nnot `capacity() \u003d\u003d delta_`. When the C++ standard library and allocator\nuse size-returning allocations (such as C++23 `allocate_at_least`),\n`reserve(delta_)` can immediately set `capacity() \u003e delta_`, causing\n`TDigestImpl::Validate()` to fail with `\"oversized tdigest buffer\"` even\nwhen the number of centroids is at most `delta_`.\n\nFixes issue #53777.\n\n### What changes are included in this PR?\n\nRemove the check of `capacity() \u003e delta_` in\n`TDigest::TDigestImpl::Validate()`.\n\n### Are these changes tested?\n\nYes, covered by existing `TDigestTest` unit tests in\n`cpp/src/arrow/util/tdigest_test.cc`.\n\n### Are there any user-facing changes?\n\nNo.\n\n### Was AI used for this PR?\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed"
    },
    {
      "commit": "402a71cb4f6780fba1247df6c59f7f34e31b8ddc",
      "tree": "6642bb39f54420458de671eb80172ad5581acada",
      "parents": [
        "d26582eee4e07c1ad3e840757ed35e835596bb5d"
      ],
      "author": {
        "name": "Vikrant Puppala",
        "email": "vikrant.puppala@databricks.com",
        "time": "Fri Oct 16 06:47:43 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 18:17:43 2026 -0700"
      },
      "message": "GH-51341: [C++][FlightRPC][ODBC] Fix statement descriptor and cursor lifecycle (#51342)\n\n### Rationale for this change\n\nThe Flight SQL ODBC statement implementation had a cluster of related descriptor and cursor lifecycle defects:\n\n- the implicit application row descriptor (ARD) was initialized from the application parameter descriptor (APD), aliasing two descriptor roles;\n- `SQL_NULL_HANDLE` did not restore built-in application descriptors;\n- freeing a statement left dangling registrations in explicit descriptors;\n- `SQLFetch` and `SQLGetData` without an open cursor could dereference a null result or report the wrong diagnostic; and\n- `SQLMoreResults` did not close the current cursor when returning `SQL_NO_DATA`.\n\n### What changes are included in this PR?\n\n- Initialize the active ARD from `built_in_ard_`.\n- Map null APD/ARD assignments to the corresponding built-in descriptor and detach the outgoing explicit descriptor.\n- Detach explicit descriptors before releasing a statement.\n- Return SQLSTATE `24000` from `SQLFetch` and `SQLGetData` when no cursor is open.\n- Close the current cursor when `SQLMoreResults` returns `SQL_NO_DATA`.\n\n### Are there any user-facing changes?\n\nYes. Spec-valid descriptor release and reset sequences no longer retain dangling state, invalid cursor operations return SQLSTATE `24000`, and `SQLMoreResults` closes the current cursor as required.\n\n### How was this patch tested?\n\n- Added focused mock/remote typed ODBC regression tests.\n\nCloses #51341.\n* GitHub Issue: #51341\n\nAuthored-by: Vikrant Puppala \u003cvikrant.puppala@databricks.com\u003e\nSigned-off-by: David Li \u003cli.davidm96@gmail.com\u003e"
    },
    {
      "commit": "d26582eee4e07c1ad3e840757ed35e835596bb5d",
      "tree": "340a7ba1676cd33ffe9d3446c51d17bf93ff4b57",
      "parents": [
        "292674e64afdce6be29d2ee5e45a48201895c7d8"
      ],
      "author": {
        "name": "Abdul Rawoof Khan",
        "email": "abdulr@bugqore.com",
        "time": "Fri Oct 16 06:42:45 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:12:45 2026 +0900"
      },
      "message": "GH-50544: [C++][Gandiva] Fix out-of-bounds read in round with most negative precision (#50545)\n\n### Rationale for this change\n\n`round_int32_int32` and `round_int64_int32` negate the caller-supplied precision into `abs_precision` before range-checking it, so the check `abs_precision \u003e 9` (and `\u003e 18` for the int64 overload) never fires for `precision \u003d\u003d INT32_MIN`, where the negation leaves the value negative. That value reaches `get_power_of_10`, which indexes a 19-element static table behind `DCHECK_GE`/`DCHECK_LE` only. The DCHECKs compile out in release builds, so `round(int_col, -2147483648)` reads far outside the table and either faults or returns arbitrary memory as the rounding multiplier. Both overloads are registered in `function_registry_arithmetic.cc`, so the precision comes straight from user SQL.\n\n`truncate_int64_int32` in the same file already compares the signed scale directly (`out_scale \u003c -38`) and is unaffected; the two `round` overloads are the only sites that negate first.\n\n### What changes are included in this PR?\n\nCheck the bound against the signed `precision` before negating, at both sites. Every precision that was in range before still takes the same path, and the negation now only runs on values known to be within 9 (or 18) of zero.\n\n### Are these changes tested?\n\nYes. Added two cases to `TestExtendedMathOps.TestRound` covering `std::numeric_limits\u003cint32_t\u003e::min()` for both overloads, matching the existing `truncate_int64_int32` case in the same file. On the unpatched tree the debug build aborts with `extended_math_ops.cc:372: Check failed: (exp) \u003e\u003d (0)`; with the fix the full `gandiva-precompiled-test` suite passes (134 tests).\n\n### Are there any user-facing changes?\n\nNo.\n\n**This PR contains a \"Critical Fix\".** It fixes an out-of-bounds read reachable from a user-supplied `round` precision argument.\n* GitHub Issue: #50544\n\nAuthored-by: abdul rawoof \u003cabdulr@bugqore.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "292674e64afdce6be29d2ee5e45a48201895c7d8",
      "tree": "4103b86510275a2c09113c84cc976655dbb5281e",
      "parents": [
        "53416d1d713acba688951486c9b72cc58792c3a1"
      ],
      "author": {
        "name": "Hanayoshi-8744",
        "email": "toshinari@sawayoshi.net",
        "time": "Fri Oct 16 10:09:19 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:09:19 2026 +0900"
      },
      "message": "GH-53931: [C++] Update bundled Apache Thrift to 0.25.0 (#53932)\n\n### Rationale for this change\n\nThrift 0.25.0 was released shortly after #51559 (bump to 0.24.0) was opened, so bump the bundled version again to keep up with the latest release for 27.0.0.\n\n### What changes are included in this PR?\n\n- Bump the bundled Apache Thrift from 0.24.0 to 0.25.0 in `cpp/thirdparty/versions.txt`. The SHA256 matches the one published at downloads.apache.org.\n\n### Are these changes tested?\n\n- Compared the 0.24.0 and 0.25.0 sources of the Thrift headers Arrow uses (`TCompactProtocol`, `TMemoryBuffer` in `TBufferTransports.h`, `TApplicationException`). The differences are const-correctness, explicit casts, and opt-in additions mainly for `TFramedTransport`; I found no change in the default behavior of `TMemoryBuffer`.\n- Built Arrow C++ locally on macOS (arm64, AppleClang) with `-DARROW_PARQUET\u003dON -DARROW_BUILD_TESTS\u003dON -DThrift_SOURCE\u003dBUNDLED` on top of the current `main`, and ran `parquet-internals-test`, `parquet-file-deserialize-test`, `parquet-schema-test`, `parquet-reader-test`, `parquet-writer-test`, `parquet-arrow-reader-writer-test`, `parquet-arrow-metadata-test`, `parquet-arrow-index-test`, and `parquet-arrow-internals-test`. All passed (some tests were skipped, e.g. those requiring Snappy, which was not enabled in my build).\n- Not tested locally: Linux, Windows, and the R package builds; these rely on CI.\n\n### Are there any user-facing changes?\n\nNo.\n\n* GitHub Issue: #53931\n\n---\n\nDisclosure: this change was prepared with the assistance of an AI coding tool (Claude Code). I reviewed the diff and ran the tests locally before opening this PR.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nAuthored-by: Hanayoshi-8744 \u003c201203709+Hanayoshi-8744@users.noreply.github.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "53416d1d713acba688951486c9b72cc58792c3a1",
      "tree": "8cac756d91ecb3b5ae8b091e15323ce4a49c4e5b",
      "parents": [
        "e0038052f5479a3178e8d6b0d1d4a5921f037790"
      ],
      "author": {
        "name": "Vikrant Puppala",
        "email": "vikrant.puppala@databricks.com",
        "time": "Fri Oct 16 06:34:35 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 18:04:35 2026 -0700"
      },
      "message": "GH-50852: [C++][FlightRPC][ODBC] Decode wide connection/descriptor string attributes with the wide decoder (#50853)\n\n### Rationale for this change\n\nTwo string attributes in the ODBC driver are decoded with the byte-wise\ndecoder even when the value arrives through a wide (Unicode / `*W`) entry point,\nso the wide buffer is misread and corrupted.\n\n`ODBCConnection::SetConnectAttr(SQL_ATTR_CURRENT_CATALOG)` had its two decode\nbranches swapped:\n\n```cpp\nif (is_unicode) {\n  SetAttributeUTF8(value, string_length, catalog);      // byte-wise\n} else {\n  SetAttributeSQLWCHAR(value, string_length, catalog);  // wide\n}\n```\n\n`is_unicode` selects the buffer **width**: a unicode (`*W`) call passes a wide\n`SQLWCHAR` buffer that must be decoded with `SetAttributeSQLWCHAR`; a non-unicode\ncall passes a byte string decoded with `SetAttributeUTF8`. With the branches\nswapped, a wide catalog name (e.g. UTF-16 `\"my_catalog\"`) is reinterpreted\nbyte-wise and stored with the wide encoding\u0027s embedded NULs\n(`\"m\\0y\\0_\\0c\\0a\\0t\\0a\\0l\\0o\\0g\\0\"`), so catalog scoping operates on a corrupt\nname. This is the inverse of the mapping the getter already uses:\n`GetStringAttribute` maps `is_unicode -\u003e GetAttributeSQLWCHAR`.\n\n`ODBCDescriptor::SetField(SQL_DESC_NAME)` is the same class of bug: it\nunconditionally used the byte-wise `SetAttributeUTF8`, even though the matching\ngetter (`GetField` / `SQL_DESC_NAME`) reads the field back with\n`GetAttributeSQLWCHAR`.\n\n**How this happened (history):**\n- The `SQL_ATTR_CURRENT_CATALOG` branches were swapped from the start, in the\n  original driver import (GH-46522, #40939). Note the getter side was written\n  against the shared `GetStringAttribute` helper (which decides width in one\n  place and got it right), while the setter open-coded the branch inline and\n  inverted the polarity — there is no matching `SetStringAttribute` helper.\n- The descriptor `SQL_DESC_NAME` case was originally *consistent* (getter and\n  setter both byte-wise). GH-47721 (#48050) later migrated the descriptor\n  string getters to the wide `GetAttributeSQLWCHAR` for correct Unicode column\n  attributes, but left the `SQL_DESC_NAME` setter on the byte-wise decoder,\n  creating the asymmetry.\n\n### What changes are included in this PR?\n\n- `odbc_connection.cc`: swap the `SQL_ATTR_CURRENT_CATALOG` decode branches so a\n  unicode call uses `SetAttributeSQLWCHAR` and a non-unicode call uses\n  `SetAttributeUTF8`, matching `GetStringAttribute`.\n- `odbc_descriptor.cc`: decode `SQL_DESC_NAME` with `SetAttributeSQLWCHAR` to\n  match its getter.\n- `connection_attr_test.cc`: add `TestSQLSetGetConnectAttrCurrentCatalogWide`, a\n  `TYPED_TEST` (mock + remote fixtures) that sets a multi-character catalog\n  through the wide entry point and asserts the full name round-trips back.\n- `odbc_descriptor_test.cc` (new): add `ODBCDescriptorTest.SetGetNameWideRoundTrips`,\n  a `SetField`/`GetField` round-trip on `SQL_DESC_NAME` with a multi-character\n  wide name. There is no `SQLSetDescField` entry point in this tree, so this\n  covers the descriptor change with a direct unit test on `ODBCDescriptor`.\n\n### Are these changes tested?\n\nYes. Each change has a round-trip test that distinguishes the fixed and unfixed\ncode:\n\n| check | result |\n|---|---|\n| catalog test, **with** fix (mock fixture) | PASS — `out_catalog \u003d\u003d \"my_catalog\"` |\n| catalog test, **without** fix (mock fixture) | FAIL — `out_catalog \u003d\u003d \"m\\0y\\0_\\0c\\0a\\0t\\0a\\0l\\0o\\0g\\0\"` |\n| descriptor test, **with** fix | PASS — name reads back as `\"my_column\"` |\n| descriptor test, **without** fix | FAIL — byte-wise decode corrupts the stored UTF-16 |\n| `arrow-odbc-spi-impl-test` (unit suite) | 85/85 pass |\n| `ConnectionAttributeTest/0.*` (mock suite) | 25/25 pass |\n| clang-format | clean on all changed files |\n\nThe connection catalog test uses the mock fixture (`FlightSQLODBCMockTestBase`,\nan in-process SQLite Flight SQL server); its remote variant runs when\n`ARROW_FLIGHT_SQL_ODBC_CONN` is set. The descriptor test is a standalone unit\ntest. Verified locally against the mock fixture and the unit suite.\n\n### Are there any user-facing changes?\n\nYes. A catalog name (and descriptor `SQL_DESC_NAME`) set through the wide entry\npoint is now decoded correctly instead of being corrupted. Applications that set\na multi-character catalog through `SQLSetConnectAttrW` now scope to the intended\ncatalog.\n\n### AI usage\n\nPer the [AI-generated code guidance](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code):\nthe diagnosis, the fix, and the test were produced with the assistance of an AI\ncoding agent and reviewed and verified by me. Correctness was checked by\n(1) confirming the getter path (`GetStringAttribute`) maps `is_unicode` to the\nwide decoder, establishing the intended mapping the setters violated, and\n(2) running the new round-trip test against both the fixed and unfixed driver to\nconfirm it distinguishes them (clean name vs. embedded-NUL corruption).\n\n---\n_🤖 Drafted by Claude Code (an AI agent) and reviewed \u0026 verified by vikrantpuppala._\n\n* GitHub Issue: #50852\n\nLead-authored-by: Vikrant Puppala \u003cvikrant.puppala@databricks.com\u003e\nCo-authored-by: Isaac\nSigned-off-by: David Li \u003cli.davidm96@gmail.com\u003e"
    },
    {
      "commit": "e0038052f5479a3178e8d6b0d1d4a5921f037790",
      "tree": "823f78cd41639afb3266ea661e93ea8fff6fe853",
      "parents": [
        "ca5564e007a209e251b9d4648af4bc6a53c68c4f"
      ],
      "author": {
        "name": "Alina (Xi) Li",
        "email": "96995091+alinaliBQ@users.noreply.github.com",
        "time": "Thu Oct 15 18:01:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 18:01:48 2026 -0700"
      },
      "message": "GH-51614: [C++][FlightRPC] Universal macOS PKG Installer (#51765)\n\n### Rationale for this change\n\nhttps://github.com/apache/arrow/issues/51614 \n\n### What changes are included in this PR?\n\n- Output universal .pkg installer that work on both ARM and AMD. \n- Add CI step to verify installation by the universal pkg installer.\n- use `macos-26` for ODBC workflows\n\n### Are these changes tested?\n\nTested in CI. \nManually tested the universal .pkg installer on M5 and Intel Mac machines. \n\n### Are there any user-facing changes?\nNo. \n\nDevelopers can use the universal macOS .pkg installer titled `flight-sql-odbc-pkg-installer-universal` from the CI.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51614\n\nAuthored-by: Alina (Xi) Li \u003c96995091+alinaliBQ@users.noreply.github.com\u003e\nSigned-off-by: Bryce Mecum \u003cpetridish@gmail.com\u003e"
    },
    {
      "commit": "ca5564e007a209e251b9d4648af4bc6a53c68c4f",
      "tree": "d3b333012185e13362bb848081c8528d5c12faa9",
      "parents": [
        "a2cfb5c414181a4397e1a5f98d45a93095d30c02"
      ],
      "author": {
        "name": "Eric Wang",
        "email": "150875139+erichanwang@users.noreply.github.com",
        "time": "Wed Oct 14 22:09:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 19:09:00 2026 -0700"
      },
      "message": "GH-50828: [C++][FlightRPC][ODBC] Add SQLGetInfo remote tests (#50838)\n\n### Rationale for this change\n\nThe SQLGetInfo tests for `SQL_CREATE_SCHEMA` and `SQL_CREATE_TABLE` only covered the mock server. The remote fixture can report different DDL capabilities, so the missing remote coverage allowed regressions to go unnoticed.\n\n### What changes are included in this PR?\n\n- Add a named remote connection-info fixture.\n- Add remote tests for `SQL_CREATE_SCHEMA` and `SQL_CREATE_TABLE`.\n- Keep the mock expectations (`1`) and assert the remote fixture\u0027s unsupported DDL values (`0`) separately.\n\nFixes #50828.\n\n### Are these changes tested?\n\nYes\n\n### Are there any user-facing changes?\n\nNo.\n\n* GitHub Issue: #50828\n\nAuthored-by: erichanwang \u003cericwang559@gmail.com\u003e\nSigned-off-by: David Li \u003cli.davidm96@gmail.com\u003e"
    },
    {
      "commit": "a2cfb5c414181a4397e1a5f98d45a93095d30c02",
      "tree": "6c54fcaa7392387013e8316a45247c363f82e756",
      "parents": [
        "910292405bb82ccbf057b9801f5e4b922ea23788"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 09:28:57 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:28:57 2026 +0900"
      },
      "message": "MINOR: [CI] Bump the apache-infrastructure-actions-stash group with 2 updates (#53778)\n\nBumps the apache-infrastructure-actions-stash group with 2 updates: [apache/infrastructure-actions/stash/restore](https://github.com/apache/infrastructure-actions) and [apache/infrastructure-actions/stash/save](https://github.com/apache/infrastructure-actions).\n\nUpdates `apache/infrastructure-actions/stash/restore` from 547b55daa5d3c7e45383094ef738b7d16bc8ccc5 to e3e0a2261a9c6d5bdd882802b303f34b1511b6df\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/e3e0a2261a9c6d5bdd882802b303f34b1511b6df\"\u003e\u003ccode\u003ee3e0a22\u003c/code\u003e\u003c/a\u003e Remove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/1a529f6db9a40ded1cc91759e638ef3e1b39b7b5\"\u003e\u003ccode\u003e1a529f6\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/94cbf4fddc3c73ff413eb107e23a272cdc5e90c8\"\u003e\u003ccode\u003e94cbf4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1383\"\u003e#1383\u003c/a\u003e from jprinet/allowlist-develocity-v2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/2af048a126d7df8febe5e31217740ec885b8b4ef\"\u003e\u003ccode\u003e2af048a\u003c/code\u003e\u003c/a\u003e Add gradle/develocity-actions setup-npm and setup-python, bump to v2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b1b1ab191498302581efdef55279706f79249c0e\"\u003e\u003ccode\u003eb1b1ab1\u003c/code\u003e\u003c/a\u003e Remove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/955e87054e303ccabdfb55ad097eb0a9b7060401\"\u003e\u003ccode\u003e955e870\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/454b0612175a8cc288d2724ef688d358aae8e538\"\u003e\u003ccode\u003e454b061\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1382\"\u003e#1382\u003c/a\u003e from apache/dependabot/github_actions/dot-github/act...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/ecb1de7022f372eff2011e8ba96b04c18a23319a\"\u003e\u003ccode\u003eecb1de7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1381\"\u003e#1381\u003c/a\u003e from apache/dependabot/github_actions/dot-github/act...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b10fadaf2aa57db41bf96ce32ca4265cb076150c\"\u003e\u003ccode\u003eb10fada\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump loadingalias/cargo-rail-action\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/cef1fb21532c9c901157db07e4d2ef05e115ae1a\"\u003e\u003ccode\u003ecef1fb2\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump pypa/cibuildwheel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/infrastructure-actions/compare/547b55daa5d3c7e45383094ef738b7d16bc8ccc5...e3e0a2261a9c6d5bdd882802b303f34b1511b6df\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache/infrastructure-actions/stash/save` from 547b55daa5d3c7e45383094ef738b7d16bc8ccc5 to e3e0a2261a9c6d5bdd882802b303f34b1511b6df\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/e3e0a2261a9c6d5bdd882802b303f34b1511b6df\"\u003e\u003ccode\u003ee3e0a22\u003c/code\u003e\u003c/a\u003e Remove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/1a529f6db9a40ded1cc91759e638ef3e1b39b7b5\"\u003e\u003ccode\u003e1a529f6\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/94cbf4fddc3c73ff413eb107e23a272cdc5e90c8\"\u003e\u003ccode\u003e94cbf4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1383\"\u003e#1383\u003c/a\u003e from jprinet/allowlist-develocity-v2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/2af048a126d7df8febe5e31217740ec885b8b4ef\"\u003e\u003ccode\u003e2af048a\u003c/code\u003e\u003c/a\u003e Add gradle/develocity-actions setup-npm and setup-python, bump to v2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b1b1ab191498302581efdef55279706f79249c0e\"\u003e\u003ccode\u003eb1b1ab1\u003c/code\u003e\u003c/a\u003e Remove Expired Refs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/955e87054e303ccabdfb55ad097eb0a9b7060401\"\u003e\u003ccode\u003e955e870\u003c/code\u003e\u003c/a\u003e Sync actions.yml, composite action, and approved_patterns.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/454b0612175a8cc288d2724ef688d358aae8e538\"\u003e\u003ccode\u003e454b061\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1382\"\u003e#1382\u003c/a\u003e from apache/dependabot/github_actions/dot-github/act...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/ecb1de7022f372eff2011e8ba96b04c18a23319a\"\u003e\u003ccode\u003eecb1de7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/apache/infrastructure-actions/issues/1381\"\u003e#1381\u003c/a\u003e from apache/dependabot/github_actions/dot-github/act...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/b10fadaf2aa57db41bf96ce32ca4265cb076150c\"\u003e\u003ccode\u003eb10fada\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump loadingalias/cargo-rail-action\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/infrastructure-actions/commit/cef1fb21532c9c901157db07e4d2ef05e115ae1a\"\u003e\u003ccode\u003ecef1fb2\u003c/code\u003e\u003c/a\u003e action-allowlist-review: bump pypa/cibuildwheel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/infrastructure-actions/compare/547b55daa5d3c7e45383094ef738b7d16bc8ccc5...e3e0a2261a9c6d5bdd882802b303f34b1511b6df\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@ dependabot rebase` will rebase this PR\n- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@ dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@ dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@ dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@ dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@ dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@ dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nAuthored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nSigned-off-by: Sutou Kouhei \u003ckou@clear-code.com\u003e"
    },
    {
      "commit": "910292405bb82ccbf057b9801f5e4b922ea23788",
      "tree": "8c69b9483e4a2c2a2e556cd82625f5e7286ed0b5",
      "parents": [
        "28d9769101d5f136210b91fb882197d81cb780c6"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Wed Oct 14 20:57:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 14:57:52 2026 +0200"
      },
      "message": "GH-53615: [C++][Parquet] Add ALP to file-level fuzz corpus (#53671)\n\n### Rationale for this change\n\nFollow up on #48345 by including ALP in the generated Parquet file-level fuzz corpus.\n\n### What changes are included in this PR?\n\nAdd `Encoding::ALP` to `kFloatEncodings`.\n\n### Are these changes tested?\n\nN/A.\n\n### Are there any user-facing changes?\n\nNo. This only changes fuzzing seed generation, not production reader or writer behavior.\n\n### Was AI used for this PR?\n\nAI prepared and reviewed the one-line change and the PR description.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\nCloses #53615.\n\n* GitHub Issue: #53615\n\nAuthored-by: Gang Wu \u003custcwg@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "28d9769101d5f136210b91fb882197d81cb780c6",
      "tree": "3149c24fcf69547d9f43ffc6cd8acc94d57191e8",
      "parents": [
        "7ee15283bc9fac8b4e523b0b4640439b547ef0ff"
      ],
      "author": {
        "name": "Alexander Taepper",
        "email": "alexander.taepper@gmail.com",
        "time": "Wed Oct 14 10:58:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 10:58:50 2026 +0200"
      },
      "message": "GH-51834: [C++] Reduce `ARROW_ASSIGN_OR_RAISE` stack consumption with gcc/clang (#53314)\n\n### Rationale for this change\n\n@ pitrou found in [investigations](https://github.com/apache/arrow/issues/51834) that repeated uses of `ARROW_ASSIGN_OR_RAISE` can lead to very large stack consumptions.\n\n### What changes are included in this PR?\n\nThis PR adds a new definition of the `ARROW_ASSIGN_OR_RAISE` macro, which avoids intermediate results using a gcc/clang compiler extension.\n\n### Are these changes tested?\n\nNo new feature, all tests still pass.\n\n### Are there any user-facing changes?\n\nYes. The `ARROW_ASSIGN_OR_RAISE` macro is a public interface and now has a breaking change:\n\nIf `lhs` is a declaration, it will already be in scope for the body of the right-hand-side. This lead to one breakage in the arrow code-base:\n\n```\n    ARROW_ASSIGN_OR_RAISE(auto options,\n                          GetReadOptions(*reader-\u003eschema(), *self, *options));\n```\n\nwhich needed manual fixing. This could also break users of the C++ library\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [X] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [X] Human\n- [X] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #51834\n\nAuthored-by: Alexander Taepper \u003calexander.taepper@gmail.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "7ee15283bc9fac8b4e523b0b4640439b547ef0ff",
      "tree": "ef6e22983889e7e24af5983ca2d641c25c3d58e1",
      "parents": [
        "b61b1c7a3d5638bc87c43b7c5c7fa44e63623ebe"
      ],
      "author": {
        "name": "Divjot Arora",
        "email": "div.arora@databricks.com",
        "time": "Tue Oct 13 14:42:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 14:42:53 2026 +0200"
      },
      "message": "GH-53518: [Parquet] Reject unsupported compression codecs (#53522)\n\n### Rationale for this change\nSee https://github.com/apache/arrow/issues/53518 for rationale. Treating unknown compression codecs as `UNCOMPRESSED` is wrong and at best causes the read to fail late during decoding and at worst yields incorrect results if the compressed stream is actually a valid decodable set of bytes (very unlikely).\n\n### What changes are included in this PR?\nThis PR causes unsupported compression codecs to fail a read eagerly during Thrift parsing.\n\n### Are these changes tested?\nYes, new test case added to `metadata_test.cc`\n\n### Are there any user-facing changes?\nNo\n\n### Was AI used for this PR?\n**PR code and description written by:**\n\n- [x] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [ ] AI\n- [ ] Not reviewed\n\nCloses #53518 \n* GitHub Issue: #53518\n\nAuthored-by: Divjot Arora \u003cdiv.arora@databricks.com\u003e\nSigned-off-by: Antoine Pitrou \u003cantoine@python.org\u003e"
    },
    {
      "commit": "b61b1c7a3d5638bc87c43b7c5c7fa44e63623ebe",
      "tree": "7c3cbb17b5d141d4d6bb11db8d516e997756543d",
      "parents": [
        "31591d7cfa7d97fd600dba7e76d8fc9198e3070f"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:40 2026 +0200"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:40 2026 +0200"
      },
      "message": "MINOR: [Release] Update .deb/.rpm changelogs for 26.0.0\n"
    },
    {
      "commit": "31591d7cfa7d97fd600dba7e76d8fc9198e3070f",
      "tree": "26cf922cd0b1d58a22adf5bf41c88961d823e21d",
      "parents": [
        "e304e13b6869b1647d3b753b8ab38765095233d2"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:34 2026 +0200"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:34 2026 +0200"
      },
      "message": "MINOR: [Release] Update .deb package names for 27.0.0\n"
    },
    {
      "commit": "e304e13b6869b1647d3b753b8ab38765095233d2",
      "tree": "b9c2e5cf0d769d7e013e8b5eaa9ac4c2c11c39b3",
      "parents": [
        "71826eb1fa86275a5edae1ee5c453854a3088336"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:24 2026 +0200"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:24 2026 +0200"
      },
      "message": "MINOR: [Release] Update versions for 27.0.0-SNAPSHOT\n"
    },
    {
      "commit": "71826eb1fa86275a5edae1ee5c453854a3088336",
      "tree": "c60373948309d978665ad2af21d1f5c2422cd3d3",
      "parents": [
        "c4a0850ebf9e800cf4dd453476a22051257f3ed6"
      ],
      "author": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:18 2026 +0200"
      },
      "committer": {
        "name": "Raúl Cumplido",
        "email": "raulcumplido@gmail.com",
        "time": "Tue Oct 13 12:43:18 2026 +0200"
      },
      "message": "MINOR: [Release] Update CHANGELOG.md for 26.0.0\n"
    },
    {
      "commit": "c4a0850ebf9e800cf4dd453476a22051257f3ed6",
      "tree": "c013cc01eddc17a494c031978a2d81b60552a1e4",
      "parents": [
        "875cd2ed9b2be520f7af74f9b4badd2b70b28f39"
      ],
      "author": {
        "name": "water",
        "email": "672684719@qq.com",
        "time": "Tue Oct 13 18:39:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 12:39:15 2026 +0200"
      },
      "message": "GH-51018: [C++] Fix indices_nonzero segfault on chunkless ChunkedArray (#51021)\n\n### Rationale for this change\n\n`pyarrow.compute.indices_nonzero()` segfaults (SIGSEGV) on a `ChunkedArray` with zero chunks. A zero-length `Array` and a `ChunkedArray` holding one empty chunk both work; only the chunkless case crashes.\n\n### Are these changes tested?\n\nYes, by new test case.\n\n### Are there any user-facing changes?\n\nOnly a bugfix.\n\n* GitHub Issue: #51018\n\nAuthored-by: waterWang \u003cwaterWang@users.noreply.github.com\u003e\nSigned-off-by: Rok Mihevc \u003crok@mihevc.org\u003e"
    },
    {
      "commit": "875cd2ed9b2be520f7af74f9b4badd2b70b28f39",
      "tree": "11538b784e2c27996a58fbcf307e657bb9b004bd",
      "parents": [
        "9b34c4a6a8856212b885f6a1e934795af04f3192"
      ],
      "author": {
        "name": "prtkgaur",
        "email": "prtkgaur@gmail.com",
        "time": "Mon Oct 12 22:33:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 13:33:02 2026 +0800"
      },
      "message": "GH-48701: [C++][Parquet] Add ALPpd encoding (#48345)\n\nCo-authored-by: Dhirhan Kanesalingam \u003c[dhirhan17@ gmail.com](mailto:dhirhan17@ gmail.com)\u003e\n\nWith help from :  @ emkornfield, @ wgtmac\n\n### Rationale for this change\n\n  [Adaptive Lossless Floating-Point (ALP)](https://docs.google.com/document/d/1PlyUSfqCqPVwNt8XA-CfRqsbc0NKRG0Kk1FigEm3JOg/edit?tab\u003dt.0#heading\u003dh.5xf60mx6q7xk)\n  is designed for floating-point data that commonly represents decimal values.\n  For these workloads, ALP can provide better compression and faster decoding\n  than general-purpose compression or existing Parquet encodings.\n\n  This PR adds ALP support for Parquet `FLOAT` and `DOUBLE` columns in the Arrow\n  C++ implementation.\n\n  ### Specification\n\n  - [Original ALP specification](https://docs.google.com/document/d/1xz2cudDpN2Y1ImFcTXh15s-3fPtD_aWt/edit)\n  - [Parquet `AlpEncoding.md`](https://github.com/apache/parquet-format/blob/main/AlpEncoding.md)\n    (merged through apache/parquet-format#539; currently in Preview)\n\n  ### What changes are included in this PR?\n\n  This PR adds:\n\n  - The core ALP compression and decompression implementation.\n  - Sampling logic for selecting encoding parameters.\n  - Page metadata serialization, validation, and decoding.\n  - Parquet encoders and decoders for `FLOAT` and `DOUBLE`.\n  - Incremental decoding of ALP pages one vector at a time.\n  - CMake and Meson build integration.\n  - C++ documentation describing how to use the encoding.\n\n  ALP is opt-in on the write path. It is used only when the writer explicitly\n  selects `Encoding::ALP` and dictionary encoding is disabled. Arrow does not\n  currently select ALP automatically based on the input data.\n\n  ### Are these changes tested?\n\n  Yes. Test coverage includes:\n\n  - Interoperability with the ALP conformance file in `parquet-testing`.\n  - `FLOAT` and `DOUBLE` round trips.\n  - Decimal-like, constant, random, and exception-heavy inputs.\n  - Empty and all-null pages.\n  - Configurable vector sizes.\n  - Truncated or malformed page metadata.\n  - Invalid offsets, element counts, bit widths, and exception positions.\n  - Batched and incremental decoding.\n\n  ### Are there any user-facing changes?\n\n  Yes. Arrow C++ can read Parquet pages encoded with ALP. Writers can explicitly\n  select ALP for supported floating-point columns.\n\n  ALP requires reader support and is not selected automatically, so existing\n  writer behavior remains unchanged unless users opt in.\n\n* GitHub Issue: #48701\n\nLead-authored-by: Prateek Gaur \u003cprateek.gaur@snowflake.com\u003e\nCo-authored-by: Gang Wu \u003custcwg@gmail.com\u003e\nSigned-off-by: Gang Wu \u003custcwg@gmail.com\u003e"
    },
    {
      "commit": "9b34c4a6a8856212b885f6a1e934795af04f3192",
      "tree": "f8719530cccb4a93ed75fd529b612b18c76a17df",
      "parents": [
        "84472e46c93dc87af738704f91fea6e6b6e2cf02"
      ],
      "author": {
        "name": "Krisztián Szűcs",
        "email": "szucs.krisztian@gmail.com",
        "time": "Mon Oct 12 12:01:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 12:01:13 2026 +0200"
      },
      "message": "GH-51684: [C++][Parquet] Keep the CDC chunking state across row groups (#51685)\n\n### Rationale for this change\n\nThe content-defined chunker was owned by the column writer, which is\nrecreated for every row group, so the chunking state was reset at each\nrow group boundary. See #51684.\n\n### What changes are included in this PR?\n\nThe file writer creates one chunker per leaf column and passes it to the\ncolumn writers of every row group through a private\n`ColumnWriter::Make()` overload.\n\n### Are these changes tested?\n\nYes. `IndependentOfRowGroupBoundaries` writes the same table into one\nand into six row groups and expects the same page boundaries apart from\nthe row group ends. The first commit adds it alone, failing without the\nfix.\n\n### Are there any user-facing changes?\n\n- Files with multiple row groups get different page boundaries, since\nthe chunking continues across row groups.\n- `ColumnWriter::Make()` is unchanged, but column writers created\nthrough it no longer chunk, so content-defined chunking requires\n`ParquetFileWriter`.\n- Multi-threaded writes with content-defined chunking are about 1.7×\nslower until #51692 (9.9 ms vs 5.8 ms writing 12 int32 columns of 1M\nrows on an M4 Max)\n\n### Deduplication results\n\nA 1 GiB file of 128Mi random int64 values (PLAIN, snappy, default CDC\noptions) compared with a copy that has 10 rows inserted at 20%. The\nratio is the share of bytes left after deduplicating both files with the\nXet chunker; 50% means the edited copy adds almost nothing.\n\n| Row groups | pyarrow 25.0.1 | This PR | arrow-rs 58.4 |\n|---|---|---|---|\n| 8 × 16Mi rows | 50.2% | 50.1% | 50.1% |\n| 32 × 4Mi rows | 50.6% | 50.4% | 50.5% |\n| 128 × 1Mi rows | 52.4% | 51.6% | 51.6% |\n| 512 × 256Ki rows | 59.8% | 56.4% | 56.5% |\n| 2048 × 64Ki rows | 84.8% | 74.2% | 74.2% |\n| Without CDC | 86.3% | 86.3% | 86.3% |\n\nThe page boundaries now match arrow-rs, which already keeps the chunker\nstate across row groups.\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation\nguidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code),\nplease disclose below whether and how AI was used in this PR.\n\nClaude Code wrote the code, tests and description under human direction.\n\n**PR code and description written by:**\n\n- [ ] Human\n- [x] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n* GitHub Issue: #51684"
    },
    {
      "commit": "84472e46c93dc87af738704f91fea6e6b6e2cf02",
      "tree": "7c1605d944ca3fede782572584ed2a43189535d7",
      "parents": [
        "5ef3c5200359bc8e2375daf5f989369b0c8c089b"
      ],
      "author": {
        "name": "Robert Kruszewski",
        "email": "github@robertk.io",
        "time": "Mon Oct 12 05:35:45 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 12:35:45 2026 +0800"
      },
      "message": "GH-52161: [C++][Parquet] Add support for string/binary view to content defined chunking writer (#52162)\n\n### Rationale for this change\n\nView types are supported in parquet writer but they error when using content defined chunking\n\n### What changes are included in this PR?\n\nTeach the internal chunker how to calculate the size for view types\n\n### Are these changes tested?\n\nAdded tests\n\n### Are there any user-facing changes?\n\nNo\n\n### Was AI used for this PR?\n\nIn accordance to the [AI generation guidelines](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code), please disclose below whether and how AI was used in this PR.\n\n**PR code and description written by:**\n\n- [x] Human\n- [ ] AI\n\n**Reviewed before submission by:**\n\n- [x] Human\n- [x] AI\n- [ ] Not reviewed\n\n* GitHub Issue: #52161\n\nAuthored-by: Robert Kruszewski \u003cgithub@robertk.io\u003e\nSigned-off-by: Zehua Zou \u003czehuazou2000@gmail.com\u003e"
    }
  ],
  "next": "5ef3c5200359bc8e2375daf5f989369b0c8c089b"
}
