)]}'
{
  "log": [
    {
      "commit": "cdc768edeb2f0a4017c0d27efc27efbb1f278214",
      "tree": "831631f97ff417305c92cbe290327ae765afbf05",
      "parents": [
        "23c1ed3390bd78a78c78025e37d0667cefe32d1a"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed May 06 15:26:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 15:26:48 2026 -0400"
      },
      "message": "fix(arrow/flight): deliver response headers eagerly in streaming client middleware (#801)\n\n### Rationale for this change\n\nFixes #755. The cookie middleware (`NewClientCookieMiddleware`) does not\ncapture `Set-Cookie` headers returned in response to a streaming RPC\nlike `Handshake` when the server also sends back a response payload.\n\n`ClientHeadersMiddleware.HeadersReceived` was only invoked from\n`finishFn`, which fires when `Recv()` returns `io.EOF` or a non-`io.EOF`\nerror. `AuthenticateBasicToken` calls `Recv()` exactly once; if the\nserver sends a `HandshakeResponse` payload (common when the Handshake\ncarries auth data or a session cookie), `Recv()` returns that message\nrather than `io.EOF` and `finishFn` never fires. The cookie middleware\nnever sees the response headers, so the session cookie is dropped and\nsubsequent RPCs go out without it, even though the user reports cookies\nARE delivered on other endpoints like `GetFlightInfo` (unary RPCs\ncapture headers synchronously via `grpc.Header(\u0026md)`).\n\n### What changes are included in this PR?\n\n- `clientStream.Header()` now delivers response metadata to\n`ClientHeadersMiddleware` at-most-once (guarded by\n`atomic.Bool.CompareAndSwap`) the first time headers are successfully\nretrieved for a streaming RPC.\n- The existing `finishFn` path is unchanged so:\n  - trailers are still captured when the stream completes, and\n- callers that never explicitly invoke `Header()` get the exact same\nbehavior as before.\n- Added four regression tests in `arrow/flight/handshake_cookie_test.go`\ncovering:\n1. `Set-Cookie` in Handshake response **headers** (via\n`AuthenticateBasicToken`)\n  2. `Set-Cookie` in Handshake response **trailers**\n3. `Set-Cookie` + server-sent `HandshakeResponse` payload (the precise\nscenario reported in #755 — fails without this fix)\n4. Eager capture when `stream.Header()` is inspected before draining the\nstream (also fails without this fix)\n\n### Are these changes tested?\n\nYes. The four new tests in `arrow/flight/handshake_cookie_test.go`\nreproduce the regression. Tests 3 and 4 fail without the fix and pass\nwith it. The existing middleware/cookie tests continue to pass,\nincluding with `-race`.\n\n### Are there any user-facing changes?\n\nMinor behavioral refinement of `ClientHeadersMiddleware` for streaming\nRPCs: `HeadersReceived` may now be invoked up to twice on a streaming\nRPC whose caller explicitly calls `stream.Header()` — once with just the\nresponse headers (from `Header()`), and again with headers+trailers\njoined (from the existing `finishFn` path at stream completion). This is\nbackward compatible for the in-tree `clientCookieMiddleware` (cookie\nupdates are keyed by `name+path` and idempotent). Callers that never\nexplicitly call `stream.Header()` see no change in behavior."
    },
    {
      "commit": "23c1ed3390bd78a78c78025e37d0667cefe32d1a",
      "tree": "fcfdd04136c3d8362b03436786aa00e46e663b8a",
      "parents": [
        "4eed453c230ca77ef6b5a1c00e4fcea75030223e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue May 05 11:17:59 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 11:17:59 2026 -0400"
      },
      "message": "chore: Bump github.com/klauspost/compress from 1.18.5 to 1.18.6 (#799)\n\nBumps\n[github.com/klauspost/compress](https://github.com/klauspost/compress)\nfrom 1.18.5 to 1.18.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/klauspost/compress/releases\"\u003egithub.com/klauspost/compress\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.18.6\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003es2: Fix amd64 stack frame corruption by \u003ca\nhref\u003d\"https://github.com/klauspost\"\u003e\u003ccode\u003e@​klauspost\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1145\"\u003eklauspost/compress#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egzhttp: Canonicalize ETag header by \u003ca\nhref\u003d\"https://github.com/justinmayhew\"\u003e\u003ccode\u003e@​justinmayhew\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1139\"\u003eklauspost/compress#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: pool hash tables in Go encode paths to reduce allocations by\n\u003ca href\u003d\"https://github.com/huynhanx03\"\u003e\u003ccode\u003e@​huynhanx03\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1143\"\u003eklauspost/compress#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/justinmayhew\"\u003e\u003ccode\u003e@​justinmayhew\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1139\"\u003eklauspost/compress#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/huynhanx03\"\u003e\u003ccode\u003e@​huynhanx03\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1143\"\u003eklauspost/compress#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1144\"\u003eklauspost/compress#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/klauspost/compress/compare/v1.18.5...v1.18.6\"\u003ehttps://github.com/klauspost/compress/compare/v1.18.5...v1.18.6\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\nhref\u003d\"https://github.com/klauspost/compress/commit/ac2f5e87a3089bd58c974ca53cef71c7aa8bf877\"\u003e\u003ccode\u003eac2f5e8\u003c/code\u003e\u003c/a\u003e\ndocs: use unix line-endings for markdown files (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1144\"\u003e#1144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/620d7b5cfbf89fbfdf69884f8a561a2981c25b11\"\u003e\u003ccode\u003e620d7b5\u003c/code\u003e\u003c/a\u003e\ns2: Fix amd64 stack frame corruption (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/1b63f2fece784da6334068c671e3f94366bf9d68\"\u003e\u003ccode\u003e1b63f2f\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump the github-actions group with 2 updates (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/3d86b893733380c370eba876f5beaaf63aeeea94\"\u003e\u003ccode\u003e3d86b89\u003c/code\u003e\u003c/a\u003e\ns2: pool hash tables in Go encode paths to reduce allocations (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/15967def6890f5494829394274686436976c4936\"\u003e\u003ccode\u003e15967de\u003c/code\u003e\u003c/a\u003e\ngzhttp: Canonicalize ETag header (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1139\"\u003e#1139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/klauspost/compress/compare/v1.18.5...v1.18.6\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/klauspost/compress\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.18.5\u0026new-version\u003d1.18.6)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "4eed453c230ca77ef6b5a1c00e4fcea75030223e",
      "tree": "377908d1dc314503e1438664f94a0408503199f6",
      "parents": [
        "228ea5d579714fb2419a84b6417a61174a101e1c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue May 05 10:42:36 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 10:42:36 2026 -0400"
      },
      "message": "chore: Bump google.golang.org/grpc from 1.80.0 to 1.81.0 (#798)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.80.0 to 1.81.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.81.0\u003c/h2\u003e\n\u003ch1\u003eBehavior Changes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ebalancer/rls: Switch gauge metrics to asynchronous emission (once\nper collection cycle) to reduce telemetry noise and align with other\ngRPC language implementations. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8808\"\u003e#8808\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDependencies\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinimum supported Go version is now 1.25. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8969\"\u003e#8969\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003exds: Use the leaf cluster\u0027s security config for the TLS handshake\ninstead of the aggregate cluster\u0027s config. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8956\"\u003e#8956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etransport: Send a \u003ccode\u003eRST_STREAM\u003c/code\u003e when receiving an\n\u003ccode\u003eEND_STREAM\u003c/code\u003e when the stream is not already half-closed. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8832\"\u003e#8832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: Fix ADS resource name validation to prevent a panic. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8970\"\u003e#8970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew Features\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003egrpc/stats: Add support for custom labels in per-call metrics (\u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A108-otel-custom-per-call-label.md\"\u003egRFC\nA108\u003c/a\u003e). (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9008\"\u003e#9008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: Add support for Server Name Indication (SNI) and SAN validation\n(\u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A101-SNI-setting-and-SNI-SAN-validation.md\"\u003egRFC\nA101\u003c/a\u003e). Disabled by default. To enable, set\n\u003ccode\u003eGRPC_EXPERIMENTAL_XDS_SNI\u003dtrue\u003c/code\u003e environment variable. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9016\"\u003e#9016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: Add support to control which fields get propagated from ORCA\nbackend metric reports to LRS load reports (\u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A85-lrs-custom-metrics-changes.md\"\u003egRFC\nA85\u003c/a\u003e). Disabled by default. To enable, set\n\u003ccode\u003eGRPC_EXPERIMENTAL_XDS_ORCA_LRS_PROPAGATION\u003dtrue\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9005\"\u003e#9005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: Add metrics to track xDS client connectivity and cached\nresource state (\u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md\"\u003egRFC\nA78\u003c/a\u003e). (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8807\"\u003e#8807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estats/otel: Enhance \u003ccode\u003egrpc.subchannel.disconnections\u003c/code\u003e\nmetric by adding disconnection reason to the\n\u003ccode\u003egrpc.disconnect_error\u003c/code\u003e label (\u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A94-subchannel-otel-metrics.md\"\u003egRFC\nA94\u003c/a\u003e). This provides granular insights into why subchannels are\nclosing. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8973\"\u003e#8973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emem: Add \u003ccode\u003emem.Buffer.Slice()\u003c/code\u003e API to slice the buffer\nlike a slice. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8977\"\u003e#8977\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/ash2k\"\u003e\u003ccode\u003e@​ash2k\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePerformance Improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ealts: Pool read buffers to lower memory utilization when sockets are\nunreadable. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8964\"\u003e#8964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etransport: Pool HTTP/2 framer read buffers to reduce idle memory\nconsumption. Currently limited to Linux for ALTS and non-encrypted\ntransports (TCP, Unix). To disable, set\n\u003ccode\u003eGRPC_GO_EXPERIMENTAL_HTTP_FRAMER_READ_BUFFER_POOLING\u003dfalse\u003c/code\u003e\nand report any issues. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9032\"\u003e#9032\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/cb18228317ff523e63d931b4058b0329585b7dcd\"\u003e\u003ccode\u003ecb18228\u003c/code\u003e\u003c/a\u003e\nChange version to 1.81.0 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9062\"\u003e#9062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/96748f973e20bbfcafa19a8bdffc85ad5da138d1\"\u003e\u003ccode\u003e96748f9\u003c/code\u003e\u003c/a\u003e\nCherry-pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9105\"\u003e#9105\u003c/a\u003e to\n1.81.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9106\"\u003e#9106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/91832222f0144f76527b630ca55cfea6e1aa015a\"\u003e\u003ccode\u003e9183222\u003c/code\u003e\u003c/a\u003e\nCherry pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9055\"\u003e#9055\u003c/a\u003e,\n\u003ca href\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9032\"\u003e#9032\u003c/a\u003e\nto v1.81.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9095\"\u003e#9095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/5cba6da4211f3b130238c792937f5921741b616a\"\u003e\u003ccode\u003e5cba6da\u003c/code\u003e\u003c/a\u003e\nRevert \u0026quot;deps: update dependencies for all modules (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9065\"\u003e#9065\u003c/a\u003e)\u0026quot;\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9067\"\u003e#9067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/af8a9364aa7523ab24d214e9ef13e6ad64d5c5f9\"\u003e\u003ccode\u003eaf8a936\u003c/code\u003e\u003c/a\u003e\ndeps: update dependencies for all modules (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9065\"\u003e#9065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/cdc60dfaaadde45e16aa3c28237c0e655a722c1a\"\u003e\u003ccode\u003ecdc60df\u003c/code\u003e\u003c/a\u003e\ntransport: optimize heap allocations in ready reader and update syscall\nconne...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/208d053e3204c806ba9e6205c26aa064c8b42852\"\u003e\u003ccode\u003e208d053\u003c/code\u003e\u003c/a\u003e\nxds/resolver: pass complete XDSConfig in RPC context for HTTP filters\n(gRFC A...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/50fe1cc7fd78b78ae638ed90ea78514c934167ac\"\u003e\u003ccode\u003e50fe1cc\u003c/code\u003e\u003c/a\u003e\ntest: Fix flaky test\n\u003ccode\u003eTestServerStreaming_ClientCallRecvMsgTwice\u003c/code\u003e in\n`end2end...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/d574bad188f25ba03d41a506e6f2ef93837ad10b\"\u003e\u003ccode\u003ed574bad\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump go.opentelemetry.io/otel/sdk from 1.42.0 to 1.43.0 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9050\"\u003e#9050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/b8bf4d0488a351c563d63797ffba321585d6bb24\"\u003e\u003ccode\u003eb8bf4d0\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump go.opentelemetry.io/otel/sdk from 1.42.0 to 1.43.0 in\n/inte...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.80.0...v1.81.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.80.0\u0026new-version\u003d1.81.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "228ea5d579714fb2419a84b6417a61174a101e1c",
      "tree": "01f24624e948166be148d52961b63b9ad03bc038",
      "parents": [
        "e33273301c2825b8ddf01b07946e8da4f85f50b6"
      ],
      "author": {
        "name": "Sai Asish Y",
        "email": "say.apm35@gmail.com",
        "time": "Mon May 04 09:28:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 12:28:17 2026 -0400"
      },
      "message": "fix(compute/kernels): map FSB byte-width to numeric memo type for is_in (#797)\n\nCloses #785.\n\n`CreateSetLookupState` already routes `FixedSizeBinary` widths 1/2/4/8\nonto the numeric fast path (`SetLookupState[uintN]` +\n`visitNumeric[uintN]`), but `Init` then asked `newMemoTable` for\n`arrow.FIXED_SIZE_BINARY` and got a `BinaryMemoTable`, which fails the\nsubsequent `TypedMemoTable[uintN]` assertion. The cleanup hook had the\nsame blind spot — it cast every state to `SetLookupState[[]byte]` and\nwould have panicked there too once Init was fixed.\n\nMap the FSB byte-width to the matching uint type before the lookup, and\nonly release in `CleanupFn` when the state actually carries a\n`BinaryMemoTable`. Adds a regression test exercising widths 1/2/4/8.\n\nSigned-off-by: SAY-5 \u003csay.apm35@gmail.com\u003e"
    },
    {
      "commit": "e33273301c2825b8ddf01b07946e8da4f85f50b6",
      "tree": "7322f3f8296029aeedfbcac111a2c5e551265ea1",
      "parents": [
        "2b2aa6bcc6efe1b197a98ced4c81c4a0e125ffbd"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri May 01 12:36:22 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 12:36:22 2026 -0400"
      },
      "message": "fix(arrow/cdata): make nativeCRecordBatchReader deterministic (#793)\n\n### Rationale for this change\nInstead of relying on a finalizer, make the `nativeCRecordBatchReader`\nuse atomic Retain and Release to make releasing deterministic.\n\n### What changes are included in this PR?\nRemove the finalizer, call C.ArrowArrayRelease and\nC.ArrowArrayStreamRelease based on refcount.\n\n### Are these changes tested?\nYes, tests cover this already.\n\n\n### Are there any user-facing changes?\nOnly that retain and release now properly control the determinism of\nreleasing the C memory instead of relying on a finalizer."
    },
    {
      "commit": "2b2aa6bcc6efe1b197a98ced4c81c4a0e125ffbd",
      "tree": "86925e33feecf7eed185a1b3131b9a280b9d4463",
      "parents": [
        "cb314d65c606c698ff969de2d947cf66df815fad"
      ],
      "author": {
        "name": "Tobias Pütz",
        "email": "puetztobias@gmail.com",
        "time": "Thu Apr 30 19:40:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:40:44 2026 -0400"
      },
      "message": "fix(parquet): align dictionary fallback with parquet-mr (#786)\n\n### Rationale for this change\n\nOn dictionary overflow, arrow-go always flushed the dictionary page and\nany buffered dict-encoded data pages before switching to PLAIN, even\nwhen no dict-encoded data page had been cut. On mid-cardinality columns\nthe result was a 4-encoding chunk layout (PLAIN_DICTIONARY, PLAIN, RLE,\nPLAIN) that bloated output by 20-30% versus parquet-mr.\n\nThis was noticed when testing iceberg-go\u0027s recently added compaction\nfeature, where some tables with particular high cardinality columns\nwould see a 30% size increase after compaction.\n\n### What changes are included in this PR?\n\nMirror parquet-mr\u0027s FallbackValuesWriter:\n\n- Discard the dictionary and re-encode buffered indices as PLAIN when no\ndict-encoded data page has been flushed yet; only emit the dictionary\npage once a dict-encoded page is committed.\n- Before the first dict-encoded page, fall back to PLAIN if dict +\nindices \u003e\u003d raw input bytes.\n- Size dict-encoded pages by raw input bytes (not the RLE indices\u0027\nencoded size) so the page cadence matches PLAIN.\n\nAdds DictEncoder.FallBackTo / ObservedRawSize and exposes\nBinaryMemoTable.Value for the fallback translation.\n\n\n### Are these changes tested?\n\nYes, as part of the PR and also e2e while testing compaction in\niceberg-go.\n\n### Are there any user-facing changes?\n\nNo public API changes, only observable thing should be the dropped\ndouble encoding."
    },
    {
      "commit": "cb314d65c606c698ff969de2d947cf66df815fad",
      "tree": "3fac27393352b4571ca5583a85dd6916067f34e0",
      "parents": [
        "27e0bcbffbf61f4100ec0efc8cc34215a566ccb7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 29 13:17:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 13:17:54 2026 -0400"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.49.1 to 1.50.0 (#783)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.49.1\nto 1.50.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md\"\u003emodernc.org/sqlite\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-24 v1.50.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to sqlite-vec \u003ca\nhref\u003d\"https://github.com/asg017/sqlite-vec/releases/tag/v0.1.9\"\u003ev0.1.9\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eColumnInfo\u003c/code\u003e, enabling dynamic query builders\nand ORMs to retrieve underlying SQLite C-API metadata\n(\u003ccode\u003eOriginName\u003c/code\u003e, \u003ccode\u003eTableName\u003c/code\u003e,\n\u003ccode\u003eDatabaseName\u003c/code\u003e, and \u003ccode\u003eDeclType\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eThis feature is exposed via the idiomatic \u003ccode\u003edatabase/sql\u003c/code\u003e\nescape hatch \u003ccode\u003e(*sql.Conn).Raw()\u003c/code\u003e, avoiding custom statement\nhandles and keeping the standard library workflow intact.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/113\"\u003e#113\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/113\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/113\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-17 v1.49.0: Upgrade to \u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_53_0.html\"\u003eSQLite 3.53.0\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e-DSQLITE_ENABLE_DBPAGE_VTAB\u003c/code\u003e to the transpilation.\nSee \u003ca href\u003d\"https://www.sqlite.org/dbpage.html\"\u003e\u0026quot;The SQLITE_DBPAGE\nVirtual Table\u0026quot;\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-06 v1.48.2:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix ABI mapping mismatch in the pre-update hook trampoline that\ncaused silent truncation of large 64-bit RowIDs.\u003c/li\u003e\n\u003cli\u003eEnsure the Go trampoline signature correctly aligns with the public\n\u003ccode\u003esqlite3_preupdate_hook\u003c/code\u003e C API, preventing data corruption\nfor high-entropy keys (e.g., Snowflake IDs).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/98\"\u003e#98\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/98\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/98\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix the memory allocator used in\n\u003ccode\u003e(*conn).Deserialize\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003etls.Alloc\u003c/code\u003e with \u003ccode\u003esqlite3_malloc64\u003c/code\u003e to\nprevent internal allocator corruption. This ensures the buffer is safely\nowned by SQLite, which may resize or free it due to the\n\u003ccode\u003eSQLITE_DESERIALIZE_RESIZEABLE\u003c/code\u003e and\n\u003ccode\u003eSQLITE_DESERIALIZE_FREEONCLOSE\u003c/code\u003e flags.\u003c/li\u003e\n\u003cli\u003ePrevent a memory leak by properly freeing the allocated buffer if\nfetching the main database name fails before handing ownership to\nSQLite.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/100\"\u003e#100\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/100\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/100\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e(*conn).Deserialize\u003c/code\u003e to explicitly reject\n\u003ccode\u003enil\u003c/code\u003e or empty byte slices.\u003c/li\u003e\n\u003cli\u003ePrevent silent database disconnection and connection pool corruption\ncaused by SQLite\u0027s default behavior when\n\u003ccode\u003esqlite3_deserialize\u003c/code\u003e receives a 0-length buffer.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/101\"\u003e#101\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/101\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/101\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecommitHookTrampoline\u003c/code\u003e and\n\u003ccode\u003erollbackHookTrampoline\u003c/code\u003e signatures by removing the unused\n\u003ccode\u003epCsr\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAligns internal hook callbacks accurately with the underlying SQLite\nC API, cleaning up the code to prevent potential future confusion or\nbugs.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/102\"\u003e#102\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/102\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/102\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003echeckptr\u003c/code\u003e instrumentation failures during \u003ccode\u003ego\ntest -race\u003c/code\u003e when registering and using virtual tables\n(\u003ccode\u003evtab\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllocate \u003ccode\u003esqlite3_module\u003c/code\u003e instances using the C allocator\n(\u003ccode\u003elibc.Xcalloc\u003c/code\u003e) instead of the Go heap. This ensures\ntranspiled C code can safely perform pointer operations on the struct\nwithout tripping Go\u0027s pointer checks.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/103\"\u003e#103\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/103\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/103\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix data race on \u003ccode\u003emutex.id\u003c/code\u003e in the \u003ccode\u003emutexTry\u003c/code\u003e\nnon-recursive path.\u003c/li\u003e\n\u003cli\u003eEnsure consistent atomic writes (\u003ccode\u003eatomic.StoreInt32\u003c/code\u003e) to\nprevent data races with atomic loads in \u003ccode\u003emutexHeld\u003c/code\u003e and\n\u003ccode\u003emutexNotheld\u003c/code\u003e during concurrent execution.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/104\"\u003e#104\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/104\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/104\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix resource leak in \u003ccode\u003e(*Backup).Commit\u003c/code\u003e where the\ndestination connection was not closed on error.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edstConn\u003c/code\u003e is properly closed when\n\u003ccode\u003esqlite3_backup_finish\u003c/code\u003e fails, preventing file descriptor,\nTLS, and memory leaks.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/105\"\u003e#105\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/105\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/105\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eExec\u003c/code\u003e to fully drain rows when encountering\n\u003ccode\u003eSQLITE_ROW\u003c/code\u003e, preventing silent data loss in DML\nstatements.\u003c/li\u003e\n\u003cli\u003ePreviously, \u003ccode\u003eExec\u003c/code\u003e aborted after the first row, meaning\n\u003ccode\u003eINSERT\u003c/code\u003e, \u003ccode\u003eUPDATE\u003c/code\u003e, or \u003ccode\u003eDELETE\u003c/code\u003e\nstatements with a \u003ccode\u003eRETURNING\u003c/code\u003e clause would fail to process\nsubsequent rows. The execution path now correctly loops until\n\u003ccode\u003eSQLITE_DONE\u003c/code\u003e and properly respects context cancellations\nduring the drain loop, fully aligning with native C\n\u003ccode\u003esqlite3_exec\u003c/code\u003e semantics.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/106\"\u003e#106\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/106\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/106\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u0026quot;Shadowed err value (stmt.go)\u0026quot;.\u003c/li\u003e\n\u003cli\u003eSee [GitLab issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/249\"\u003e#249\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/work_items/249\"\u003ehttps://gitlab.com/cznic/sqlite/-/work_items/249\u003c/a\u003e),\nthanks Emrecan BATI!\u003c/li\u003e\n\u003cli\u003eFix silent omission of virtual table savepoint callbacks by\ncorrectly setting the sqlite3_module version.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/107\"\u003e#107\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/107\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/107\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003evfsRead\u003c/code\u003e to properly handle partial and fragmented\nreads from \u003ccode\u003eio.Reader\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ef.Read\u003c/code\u003e with \u003ccode\u003eio.ReadFull\u003c/code\u003e to ensure\nthe buffer is fully populated, preventing premature\n\u003ccode\u003eSQLITE_IOERR_SHORT_READ\u003c/code\u003e errors on valid mid-stream partial\nreads. Unread tail bytes at EOF are now efficiently zero-filled using\nthe built-in \u003ccode\u003eclear\u003c/code\u003e function.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/108\"\u003e#108\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/108\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/108\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eRefactor internal error formatting to safely handle uninitialized or\nclosed database pointers.\u003c/li\u003e\n\u003cli\u003ePrevent a misleading \u0026quot;out of memory\u0026quot; error message when an\noperation fails and the underlying SQLite database handle is\n\u003ccode\u003eNULL\u003c/code\u003e (\u003ccode\u003edb \u003d\u003d 0\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/109\"\u003e#109\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/109\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/109\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix error handling in database backup and restore initialization\n(\u003ccode\u003esqlite3_backup_init\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure error codes and messages are accurately read from the\ndestination database handle rather than hardcoding the source or remote\nhandle. This prevents swallowed errors or mismatched \u0026quot;not an\nerror\u0026quot; messages when a backup or restore operation fails to\nstart.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/111\"\u003e#111\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/111\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/111\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/e220cc9b51f0ce842490194538f3c45daf2572b3\"\u003e\u003ccode\u003ee220cc9\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: add !113\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/a58d5e552a64d5082bdf1488db35f27ce7536c1d\"\u003e\u003ccode\u003ea58d5e5\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027columns\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/119d8b1c8514ceadf0a5a4aa8a9c94514b739377\"\u003e\u003ccode\u003e119d8b1\u003c/code\u003e\u003c/a\u003e\nadd ColumnInfo, for inspecting query columns\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/c353a4f762ca821c6ebc6a17097e19e9dcec5306\"\u003e\u003ccode\u003ec353a4f\u003c/code\u003e\u003c/a\u003e\nupgrade to sqlite-vec v0.1.9\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.49.1...v1.50.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmodernc.org/sqlite\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.49.1\u0026new-version\u003d1.50.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "27e0bcbffbf61f4100ec0efc8cc34215a566ccb7",
      "tree": "43aa6ff468f26856efd5c9295822372b23d19bd0",
      "parents": [
        "53a6e7b466d7703d4096a7d092fcb268e09cd104"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Apr 28 12:28:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 12:28:15 2026 -0400"
      },
      "message": "Fix discussion category case in release workflow"
    },
    {
      "commit": "53a6e7b466d7703d4096a7d092fcb268e09cd104",
      "tree": "25d1c863c8d321cf930413a4711c2a4bad0aeb0c",
      "parents": [
        "5c4fdc920dd3e4a2eeccaca298d00b00475b537b"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Fri Apr 24 10:27:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 13:27:54 2026 -0400"
      },
      "message": "release: fix syntax error in verify_rc.sh (#782)\n\nThe previous commit didn\u0027t fix the issue because \\ needs to be the final\ncharacter, or at least it does on my system.\n\nRef: https://github.com/apache/arrow-go/pull/781#issuecomment-4314898385"
    },
    {
      "commit": "5c4fdc920dd3e4a2eeccaca298d00b00475b537b",
      "tree": "b3617f4650659d7769fd882fd6d046db2910a917",
      "parents": [
        "7b3d772a9a75f218d743a2eb671fce5cd4af5f39"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Apr 24 12:57:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 12:57:21 2026 -0400"
      },
      "message": "Remove --remote-name option from download function\n\nRemoved the --remote-name option from the download function. we\u0027re using `--output` explicitly now"
    },
    {
      "commit": "7b3d772a9a75f218d743a2eb671fce5cd4af5f39",
      "tree": "3f1d584ba6d6b9d41e64bfd9a9a16d7e86598701",
      "parents": [
        "4a0b225b6951c46497daa6b87978416cbb28481c"
      ],
      "author": {
        "name": "Varun Venkatesh",
        "email": "118274086+varun0630@users.noreply.github.com",
        "time": "Fri Apr 24 09:56:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 12:56:44 2026 -0400"
      },
      "message": "parquet/compress: enable WithAllLitEntropyCompression(true) for zstd (#779)\n\n## Rationale\n\nThe `klauspost/compress/zstd` encoder currently disables\n`AllLitEntropyCompression` at `SpeedDefault` (the preset that maps to\nzstd levels 1–4). Klauspost\u0027s encoder short-circuits to storing literals\nuncompressed when no LZ matches are found, skipping the entropy-coding\nstage. This is a good tradeoff for genuinely incompressible data (random\nbytes), but it leaves significant compression on the table for\nreal-world columnar data where LZ match density is low but byte\ndistributions are highly skewed — e.g. parquet INT32 decimal columns\nwhose values cluster in a small range (so the high bytes are mostly\nzero).\n\nEnabling `WithAllLitEntropyCompression(true)` forces entropy coding on\nliterals even without LZ matches, matching the behavior of the C\nreference implementation (`facebook/zstd`) at the same nominal levels.\n\n## Impact\n\nMeasured on a real-world parquet workload — TPC-DS `store_sales`, 7\nTrino-written files, ~9.5M rows, 23 columns including high-cardinality\n`Decimal(7,2)` columns — going through Apache Iceberg\u0027s compaction path\nat ZSTD level 3:\n\n| Config | Output vs input |\n|---|---|\n| klauspost (current default) | +6.11% inflation |\n| **klauspost + WithAllLitEntropyCompression(true)** | **-1.84%\nreduction** |\n| DataDog/zstd (CGo wrapper around C zstd) level 3 | -2.23% reduction |\n| Trino (JNI, C zstd level 3) — reference | -3.99% reduction |\n\nPer-blob benchmark (161 page blobs compressed directly by both\nimplementations at level 3):\n- klauspost current default: 346,287 KB (66.60% of raw)\n- klauspost + this fix: 329,249 KB (63.32% of raw)\n- DataDog/zstd: 329,648 KB (63.40% of raw)\n\nWith this one-line change, klauspost matches (and slightly beats) the C\nreference implementation on this workload.\n\nDiscussing with @klauspost we concluded that enabling\n`AllLitEntropyCompression` is the intended way to close this gap. This\nPR applies that setting to arrow-go\u0027s zstd codec.\n\n## Trade-off\n\nSlightly slower compression on genuinely incompressible data (the case\n`AllLitEntropyCompression` was disabled for). For parquet workloads,\nthis is typically a non-issue since columns with no structure are rare.\n\nCo-authored-by: Varun Venkatesh \u003cvarunvenkatesh@Varuns-MacBook-Pro.local\u003e"
    },
    {
      "commit": "4a0b225b6951c46497daa6b87978416cbb28481c",
      "tree": "91ac400d626a81b6841500a4bb6a5e17354c244f",
      "parents": [
        "7d825c02571af354a3047d55e33aae95b08f975c"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Apr 24 12:28:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 12:28:00 2026 -0400"
      },
      "message": "fix(release): keys download (#781)\n\n### Rationale for this change\nfixes #780\n\n### What changes are included in this PR?\nAdds `--output` argument to the `download` function in `verify_rc.sh` to\nfix the verification script."
    },
    {
      "commit": "7d825c02571af354a3047d55e33aae95b08f975c",
      "tree": "2e854f1c2c9ac07c70209afa022147daa496e48c",
      "parents": [
        "f63e2c65f9f0c0a76f4c0c0a30d67990ff645d00"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Apr 22 17:56:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 17:56:15 2026 -0400"
      },
      "message": "chore(arrow): bump to v18.6.0 (#778)"
    },
    {
      "commit": "f63e2c65f9f0c0a76f4c0c0a30d67990ff645d00",
      "tree": "92113e266df9feacc4fe8edfa4890722c9c6820d",
      "parents": [
        "c5f0943277155a00439e082cbe3a44af84ea4f46"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Apr 22 17:53:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 17:53:48 2026 -0400"
      },
      "message": "feat(arrow/array): Add new arreflect package (#771)\n\n### Rationale for this change\n\nAttempting to address https://github.com/apache/arrow-adbc/issues/4185,\nthere is no built-in way to convert between arrow arrays/records and\nnative Go objects and types using reflection. Users currently must\nmanually construct builders, iterate columns and handle type mapping for\ntheir own schemas. Some other Arrow implementations (e.g. pyarrow) offer\nhigher-level APIs for this, so we can close the gap for Go.\n\n### What changes are included in this PR?\n\nAdds a new opt-in sub-package `arrow/array/arreflect` providing\nbidirectional Go↔Arrow conversion via reflection.\n\n**Public API**:\n- `At[T]`, `ToSlice[T]` — Arrow array → Go value/slice\n- `FromSlice[T]` — Go slice → Arrow array (variadic `Option` for\ndict/listview/ree/decimal/temporal overrides)\n- `RecordToSlice[T]`, `RecordFromSlice[T]` — `RecordBatch` ↔ Go struct\nslices\n- `RecordAt[T]`, `RecordAtAny` — single-row record accessors (typed and\nruntime-inferred)\n- `RecordToAnySlice` — runtime-inferred full-record conversion (no\ncompile-time Go type needed)\n- `InferSchema[T]`, `InferType[T]` — infer `*arrow.Schema` /\n`arrow.DataType` from Go types\n- `InferGoType` — invert Arrow→Go type mapping at runtime via\n`reflect.StructOf`\n- `AtAny`, `ToAnySlice` — dynamic accessors when the Go type is not\nknown at compile time\n- `WithDict()`, `WithListView()`, `WithREE()`, `WithDecimal(p,s)`,\n`WithTemporal(s)` — encoding options\n- Sentinel errors `ErrUnsupportedType`, `ErrTypeMismatch` (usable with\n`errors.Is`)\n\n**Supported Arrow types**: all primitives,\nTimestamp/Date32/Date64/Time32/Time64/Duration, Decimal32/64/128/256,\nStruct, List/LargeList/ListView/LargeListView (read), FixedSizeList,\nMap, Dictionary (`dict` tag), RunEndEncoded (`ree` tag).\n\n*Struct tag control* (follows `encoding/json` conventions):\n\n```go\ntype Row struct {\n    Name  string            `arrow:\"name\"`\n    Score float64           `arrow:\"score\"`\n    Skip  string            `arrow:\"-\"`\n    Enc   string            `arrow:\"enc,dict\"`\n    When  time.Time         `arrow:\"when,date32\"`\n    Vals  []int             `arrow:\"vals,listview\"`\n    Price decimal128.Num    `arrow:\"price,decimal(18,2)\"`\n}\n```\n\nKey implementation details:\n- Pointer fields → nullable Arrow fields (nil \u003d null); multi-level\npointers fully dereferenced\n- Embedded struct fields promoted following `encoding/json` BFS rules\n(`collectFieldCandidates` + `resolveFieldCandidates`)\n- Struct metadata cached per type via `sync.Map`\n- `WithTemporal` validates input, returning `ErrUnsupportedType` for\nunrecognized values\n- `FromSlice` empty-slice path applies all encoding options consistently\nwith the non-empty path (decimal, temporal, dict, listview, ree)\n- Tag parsing uses parenthesis-aware `splitTagTokens` for decimal(p,s) —\nno fragile comma reassembly\n- `InferGoType` validates all runes of exported field names, rejects\nnon-identifier characters (hyphens, dots, spaces, digit prefixes), and\ndetects duplicate exported names after capitalization\n- `validateDictValueType` enforced on all dict paths (struct tags,\n`FromSlice` opts, empty-slice)\n- Primitive types cached as package-level `reflect.Type` vars\n- Internal duplication minimized via helpers: `asTime`/`asDuration`\n(TypeAssert), `appendListElement` (list builder dispatch with checked\ntype assertion), `listLike` interface (Elem() unification)\n- Large list variants (`LARGE_LIST`, `LARGE_LIST_VIEW`) supported for\nreading but not produced by `FromSlice`\n\n### Are these changes tested?\n\nYes, comprehensive test coverage along with testable examples that will\nshow up in the docs.\n\n### Are there any user-facing changes?\n\nYes, the entirely new public API in the new `arrow/array/arreflect`"
    },
    {
      "commit": "c5f0943277155a00439e082cbe3a44af84ea4f46",
      "tree": "4bf835aae6ee6dcbe2a6d6f73f3ee17ccc6687a1",
      "parents": [
        "be9ea463effb1e96ad1b922b3a1257ae3727ba30"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Apr 21 13:30:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 13:30:32 2026 -0400"
      },
      "message": "fix(parquet): clarify docstring on Close method of FileWriter, proper err output (#774)\n\n### Rationale for this change\nFixes #703\n\n### What changes are included in this PR?\nClarifying the docstrings on the Close methods of the FileWriter and\npqarrow.FileWriter\n\n### Are these changes tested?\nDocumentation changes, no need to test\n\n### Are there any user-facing changes?\nNo"
    },
    {
      "commit": "be9ea463effb1e96ad1b922b3a1257ae3727ba30",
      "tree": "6f5981c3d168ac45df60f6bb17248ecc01876e54",
      "parents": [
        "acd5a53586103f2395e357dfdbe337325cfa279c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 18:01:56 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 18:01:56 2026 -0400"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.48.2 to 1.49.1 (#775)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.48.2\nto 1.49.1.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/fe575e48232629112cce2e8bea368358e35c1616\"\u003e\u003ccode\u003efe575e4\u003c/code\u003e\u003c/a\u003e\ndoc.go: update SQLite version\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/3ccb9cab30387f2192593c4acb635e58fd6bbd5e\"\u003e\u003ccode\u003e3ccb9ca\u003c/code\u003e\u003c/a\u003e\nupgrade to SQLite 3.53.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.48.2...v1.49.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmodernc.org/sqlite\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.48.2\u0026new-version\u003d1.49.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "acd5a53586103f2395e357dfdbe337325cfa279c",
      "tree": "579623c16eaa09b2a4eaac0d3ebd91d351cacbd7",
      "parents": [
        "a97bd0bf6fb1312121aa6969bd2efbbe9a54fffa"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 18:00:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 18:00:33 2026 -0400"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go/v8 from 8.0.1 to 8.1.0 (#776)\n\nBumps\n[github.com/substrait-io/substrait-go/v8](https://github.com/substrait-io/substrait-go)\nfrom 8.0.1 to 8.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/releases\"\u003egithub.com/substrait-io/substrait-go/v8\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.1.0 (2026-04-19)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eplan\u003c/code\u003e\u003c/strong\u003e add ExtensionTable method to\nBuilder interface (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/228\"\u003e#228\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/d9ff1cca6ae21ef67f432c2d257bdefedeb07907\"\u003ed9ff1cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eparser\u003c/code\u003e\u003c/strong\u003e update to Substrait v0.87.0\nwith enum arg support (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/222\"\u003e#222\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/0de3c9f7eb8c61878bf64a05076ed7f5478a9cf9\"\u003e0de3c9f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to the build process or auxiliary tools and libraries such\nas documentation generation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003edeps\u003c/code\u003e\u003c/strong\u003e remove use of deprecated\ngopkg.in/yaml/v3 (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/230\"\u003e#230\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/df2a4a29844f58dc5e7a98d58e56591ef412153b\"\u003edf2a4a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003edeps\u003c/code\u003e\u003c/strong\u003e use tagged versions of\ndependencies (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/229\"\u003e#229\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/507336638b2a9146aa86bfff9d14194241a30833\"\u003e5073366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003edeps\u003c/code\u003e\u003c/strong\u003e remove use of deprecated\ngolang.org/x/exp/slices (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/231\"\u003e#231\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/bdcbc170ebfa14d2e637d0609d4ba16443e796ae\"\u003ebdcbc17\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/507336638b2a9146aa86bfff9d14194241a30833\"\u003e\u003ccode\u003e5073366\u003c/code\u003e\u003c/a\u003e\nchore(deps): use tagged versions of dependencies (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/bdcbc170ebfa14d2e637d0609d4ba16443e796ae\"\u003e\u003ccode\u003ebdcbc17\u003c/code\u003e\u003c/a\u003e\nchore(deps): remove use of deprecated golang.org/x/exp/slices (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/231\"\u003e#231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/df2a4a29844f58dc5e7a98d58e56591ef412153b\"\u003e\u003ccode\u003edf2a4a2\u003c/code\u003e\u003c/a\u003e\nchore(deps): remove use of deprecated gopkg.in/yaml/v3 (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/d9ff1cca6ae21ef67f432c2d257bdefedeb07907\"\u003e\u003ccode\u003ed9ff1cc\u003c/code\u003e\u003c/a\u003e\nfeat(plan): add ExtensionTable method to Builder interface (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/228\"\u003e#228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/0de3c9f7eb8c61878bf64a05076ed7f5478a9cf9\"\u003e\u003ccode\u003e0de3c9f\u003c/code\u003e\u003c/a\u003e\nfeat(parser): update to Substrait v0.87.0 with enum arg support (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/222\"\u003e#222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/compare/v8.0.1...v8.1.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-go/v8\u0026package-manager\u003dgo_modules\u0026previous-version\u003d8.0.1\u0026new-version\u003d8.1.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "a97bd0bf6fb1312121aa6969bd2efbbe9a54fffa",
      "tree": "473d93c0413042438c2a262f4fa43bd70daec335",
      "parents": [
        "65f1182a39997dd117aa19130640bd2455975862"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Apr 17 13:30:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:30:37 2026 -0400"
      },
      "message": "fix(parquet/pqarrow): normalize the element name in the stored ARROW:schema (#746)\n\n### Rationale for this change\ncloses #744\n\n### What changes are included in this PR?\nNormalizes the element name of list fields in the stored ARROW:schema of\na parquet file to avoid mismatches.\n\n### Are these changes tested?\nYes, a new unit test is added.\n\n### Are there any user-facing changes?\nYes, should be a bug fix to ensure consistency."
    },
    {
      "commit": "65f1182a39997dd117aa19130640bd2455975862",
      "tree": "10cdc11b57f9892e207dcdd4a01a39df0d4920a2",
      "parents": [
        "e0df4f91b5d00f647eaffd875ef40ffe159f8838"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Apr 15 14:07:07 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 14:07:07 2026 -0400"
      },
      "message": "perf: optimize ARM64 NEON min/max assembly (#748)\n\n### Rationale for this change\n\nThe NEON assembly in `internal/utils/min_max_neon_arm64.s` was\nmachine-translated from compiler output (via asm2plan9s) and had two\nsignificant inefficiencies:\n\n1. **32-bit functions used half the available NEON register width** —\n`.2s` (64-bit D-registers, 2 lanes) instead of `.4s` (128-bit\nQ-registers, 4 lanes), leaving half the hardware throughput on the\ntable.\n2. **64-bit functions wasted 4 MOV instructions per loop iteration** —\n`BSL` (bit select) is destructive to its mask operand, forcing register\nsaves before each compare+select. ARM64 provides `BIT`/`BIF` (bit insert\nif true/false) which are destructive to the *accumulator* instead,\neliminating the need for saves entirely.\n\n### What changes are included in this PR?\n\n**Assembly optimizations (`min_max_neon_arm64.s`):**\n\n- **32-bit (int32/uint32):** Widen all NEON operations from `.2s` to\n`.4s`, processing 8 elements per loop iteration instead of 4. Use\n`sminv`/`smaxv`/`uminv`/`umaxv` for single-instruction horizontal\nreduction instead of manual `dup` + compare pairs. Adjust loop mask from\n`0xfffffffc` (multiples of 4) to `0xfffffff8` (multiples of 8) and\nscalar tail threshold from 3 to 7.\n- **64-bit (int64/uint64):** Replace `BSL` + 4×`MOV` register saves with\n`BIT`/`BIF` instructions. Restructure the 4 independent comparisons to\nbe grouped together for maximum instruction-level parallelism on\nout-of-order cores, followed by 4 independent select operations.\n- **Readability:** Replace `LBB0_3` style labels with descriptive names\n(`int32_neon`, `int32_loop`, `int32_scalar`, etc.).\n\n**New test file (`min_max_test.go`):**\n\n- Correctness tests for all 4 types (int32, uint32, int64, uint64)\nvalidating NEON results against pure Go implementation across 15\nboundary sizes including NEON/scalar transition points (1, 3, 4, 7, 8,\n9, 15, 16, 31, 63, 64, 100, 1024).\n- Benchmarks for all 4 types at 5 input sizes (64, 256, 1024, 8192,\n65536) with throughput reporting.\n\n### Benchmark results (Apple M4, 6 iterations, benchstat):\n\n```\n                        │ before        │     after                              │\n                        │    sec/op     │   sec/op     vs base                  │\nMinMaxInt32/n\u003d64-10       5.992n ± 1%    3.675n ± 0%   -38.67% (p\u003d0.002 n\u003d6)\nMinMaxInt32/n\u003d256-10      20.80n ± 1%    10.75n ± 1%   -48.35% (p\u003d0.002 n\u003d6)\nMinMaxInt32/n\u003d1024-10    107.20n ± 0%    50.70n ± 0%   -52.71% (p\u003d0.002 n\u003d6)\nMinMaxInt32/n\u003d8192-10     921.6n ± 0%    466.5n ± 0%   -49.39% (p\u003d0.002 n\u003d6)\nMinMaxInt32/n\u003d65536-10    7.570µ ± 1%    3.909µ ± 0%   -48.37% (p\u003d0.002 n\u003d6)\nMinMaxUint32/n\u003d64-10      6.039n ± 1%    3.694n ± 0%   -38.83% (p\u003d0.002 n\u003d6)\nMinMaxUint32/n\u003d256-10     21.25n ± 0%    10.89n ± 0%   -48.76% (p\u003d0.002 n\u003d6)\nMinMaxUint32/n\u003d1024-10   109.75n ± 0%    51.81n ± 0%   -52.79% (p\u003d0.002 n\u003d6)\nMinMaxUint32/n\u003d8192-10    936.9n ± 0%    474.6n ± 0%   -49.34% (p\u003d0.002 n\u003d6)\nMinMaxUint32/n\u003d65536-10   7.667µ ± 0%    3.960µ ± 0%   -48.36% (p\u003d0.002 n\u003d6)\nMinMaxInt64/n\u003d64-10       11.18n ± 0%    11.10n ± 0%    -0.72% (p\u003d0.002 n\u003d6)\nMinMaxInt64/n\u003d256-10      51.09n ± 0%    50.96n ± 0%    -0.24% (p\u003d0.022 n\u003d6)\nMinMaxInt64/n\u003d1024-10     233.2n ± 0%    232.2n ± 0%    -0.41% (p\u003d0.013 n\u003d6)\nMinMaxInt64/n\u003d8192-10     1.917µ ± 0%    1.910µ ± 1%    -0.37% (p\u003d0.002 n\u003d6)\nMinMaxInt64/n\u003d65536-10    15.59µ ± 0%    15.53µ ± 0%    -0.40% (p\u003d0.004 n\u003d6)\nMinMaxUint64/n\u003d64-10      11.10n ± 0%    11.06n ± 0%    -0.41% (p\u003d0.004 n\u003d6)\nMinMaxUint64/n\u003d256-10     51.29n ± 0%    51.11n ± 0%         ~ (p\u003d0.052 n\u003d6)\nMinMaxUint64/n\u003d1024-10    233.9n ± 1%    233.1n ± 0%         ~ (p\u003d0.219 n\u003d6)\nMinMaxUint64/n\u003d8192-10    1.929µ ± 0%    1.917µ ± 0%    -0.60% (p\u003d0.006 n\u003d6)\nMinMaxUint64/n\u003d65536-10   15.65µ ± 0%    15.59µ ± 0%    -0.38% (p\u003d0.024 n\u003d6)\ngeomean                    228.5n         164.8n        -27.87%\n```\n\n**32-bit: ~2× throughput** (38 GB/s → 81 GB/s at n\u003d1024). **Geomean:\n-27.9% latency, +38.7% throughput.**\n\nThe 64-bit improvement is small (~0.4%) because the M4\u0027s out-of-order\nengine already absorbs MOV latency via register renaming. On in-order or\nnarrower cores (Cortex-A55/A76) the BIT/BIF optimization would show a\nlarger improvement.\n\n### Are these changes tested?\n\nYes. New correctness tests validate all 4 NEON functions against the\npure Go reference implementation across 15 input sizes that exercise:\n- Empty input (length 0)\n- Scalar-only paths (length 1–7 for 32-bit, 1–3 for 64-bit)\n- Exact NEON boundary (length 8 for 32-bit, length 4 for 64-bit)\n- NEON + scalar tail (length 9, 15, 31, 63, 100)\n- Pure NEON (length 16, 64, 1024)\n\nEach test forces `MinInt`/`MaxInt` values at random positions to verify\nextreme values are handled correctly.\n\n### Are there any user-facing changes?\n\nNo API changes. This is a pure performance improvement to internal SIMD\nroutines used by Parquet statistics computation and Arrow dictionary\noperations."
    },
    {
      "commit": "e0df4f91b5d00f647eaffd875ef40ffe159f8838",
      "tree": "b77922f23c2a07c48dd2fbf1c5deb0ab2e4e37b8",
      "parents": [
        "f8eb699372b69465e7f882f24abf8e05082239a0"
      ],
      "author": {
        "name": "Lucas Valente",
        "email": "serramatutu@users.noreply.github.com",
        "time": "Tue Apr 14 20:10:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 14:10:11 2026 -0400"
      },
      "message": "`UnsafeAppendBoolToBitmap` for dictionary and REE builders (#758)\n\n### Rationale for this change\n\nFor more context:\nhttps://github.com/apache/arrow-go/pull/558/changes#r2758798540\n\nThe Builders for REE and dict-encoded arrays were inheriting the\n`UnsafeAppendBoolToBitmap()` and `UnsafeAppend()` from the `Builder`\ninterface defined in `arrow/array/builder.go`. The default\nimplementation does not bump the length of the inner `idxBuilder` or\n`runEndsBuilder`, which causes it to be in an inconsistent state where\nthe parent has greater length than the index/run-ends builder. This\ncauses a panic when instancing a record batch.\n\n### What changes are included in this PR?\n\nThis PR makes `UnsafeAppendBoolToBitmap()` for `RunEndEncodedBuilder`\npanic as there is not a good semantic meaning for this method in case of\nREE.\n\nIt also implements `UnsafeAppendBoolToBitmap()` and `UnsafeAppend()` for\nthe Dictionary builders. This allows users to use `bldr.Reserve(n)`\nfollowed by `n` calls to `UnsafeAppend()` or\n`UnsafeAppendBoolToBitmap()` without the need to check if the array\nneeds to grow everytime.\n\n### Are these changes tested?\n\nYes.\n\n### Are there any user-facing changes?\n\nNo. The API was already there (inherited from `Builder`), but the\nbehavior was incorrect.\n\n---------\n\nCo-authored-by: Matt Topol \u003czotthewizard@gmail.com\u003e"
    },
    {
      "commit": "f8eb699372b69465e7f882f24abf8e05082239a0",
      "tree": "76bbe8f42d95fbc7b3d5be2e9ca935a00b9ad03d",
      "parents": [
        "073bb0629de937209a6141706232bccd832f18c4"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Apr 14 13:52:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 13:52:26 2026 -0400"
      },
      "message": "feat(arrow/array): add Validate/ValidateFull to binary and string arrays (#747)\n\n## Summary\n\nFixes #691\n\nAdds `Validate()` and `ValidateFull()` methods to `Binary`,\n`LargeBinary`, `String`, and `LargeString` array types, plus top-level\ndispatch functions and record-level convenience helpers.\n\n## Problem\n\nThe existing `setData` validation only checks the **last** offset\nagainst the data buffer length. Subtly corrupted data — e.g.\nnon-monotonic or negative intermediate offsets — passes construction but\ncauses a runtime `panic: slice bounds out of range` when `Value(i)` is\ncalled later, **after** the IPC reader\u0027s `recover()` scope has already\nreturned. Users receiving data from untrusted sources (e.g. Flight SQL\nfrom Doris DB) have no way to detect this without crashing.\n\n## Solution\n\n- `Validate()` — O(1): checks offset buffer size and that the last\noffset is within the data buffer (mirrors existing `setData` checks, but\nreturns an error instead of panicking)\n- `ValidateFull()` — O(n): additionally verifies all offsets are\nnon-negative and monotonically non-decreasing, catching the subtle\ncorruption case\n- `Validate(arr arrow.Array) error` / `ValidateFull(arr arrow.Array)\nerror` — top-level dispatch via the new `Validator` interface\n- `ValidateRecord(rec arrow.RecordBatch) error` /\n`ValidateRecordFull(...)` — convenience wrappers that validate all\ncolumns, with error messages including column index and name\n\n## Usage\n\n```go\nrec, err :\u003d reader.Read()\nif err !\u003d nil { ... }\nif err :\u003d array.ValidateRecordFull(rec); err !\u003d nil {\n    log.Printf(\"skipping corrupted batch: %v\", err)\n    rec.Release()\n    continue\n}\n```\n\n## Test plan\n\n- [ ] `TestBinaryValidate` — valid arrays, sliced arrays, non-monotonic\noffsets, negative first offset\n- [ ] `TestLargeBinaryValidate` — same for large binary\n- [ ] `TestStringValidate` — same for string\n- [ ] `TestLargeStringValidate` — same for large string\n- [ ] `TestTopLevelValidate` — dispatch to `Validator`, passthrough for\nnon-`Validator` types, `ValidateRecord` with mixed valid/corrupt columns"
    },
    {
      "commit": "073bb0629de937209a6141706232bccd832f18c4",
      "tree": "db2fd41ac4a5eac56e8f1e2023763b247f44d539",
      "parents": [
        "176940535f1335a6dba98f8830bde49232ef32fb"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Apr 14 11:39:01 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 11:39:01 2026 -0400"
      },
      "message": "fix(arrow): formatting lint issue (#770)"
    },
    {
      "commit": "176940535f1335a6dba98f8830bde49232ef32fb",
      "tree": "a0c8419874f473da5ef8cb15e66aac6560d9d4e6",
      "parents": [
        "6f308c300989eeaf15c762e6d8aff766eef21627"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Apr 13 23:23:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 17:23:14 2026 -0400"
      },
      "message": "chore: replace golang.org/x/xerrors for stdlib errors (#763)\n\nrelates to:\n\n- https://github.com/apache/arrow/pull/5997\n- https://github.com/apache/arrow/issues/16992\n\n\n\nThe golang.org/x/xerrors module is a transitional module for what became\ngo1.13 errors. Most of its functionality is now available in stdlib\nerrors, with the exception of stdlib not providing a stack-trace (and\nsome utility functions related to that).\n\nLooking at history to see if that functionality was essential for using\nthis package, I found that the golang.org/x/errors module was introduced\nin [apache/arrow@7126fdb], to address [ARROW-7357].\n\n\u003e we should migrate away from `pkg/errors` to `golang.org/x/xerrors` to\n\u003e ensure better error handling (and one that is Go-1.13 compatible).\n\nBased on the above, it looks like the intent was to provide\ncompatibility with go1.13+ errors, which are now mainline, so stdlib\nerrors should be preferred for this.\n\n[ARROW-7357]: https://issues.apache.org/jira/browse/ARROW-7357\n[apache/arrow@7126fdb]:\nhttps://github.com/apache/arrow/commit/7126fdb5d6d2f7dd94fdd3d43ab9256825ff3d44\n\n### Rationale for this change\n\n\n### What changes are included in this PR?\n\n\n### Are these changes tested?\n\n\n### Are there any user-facing changes?\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\nCo-authored-by: Matt Topol \u003czotthewizard@gmail.com\u003e"
    },
    {
      "commit": "6f308c300989eeaf15c762e6d8aff766eef21627",
      "tree": "ed766c55fa6f4ee655c5431b22439a3ab3aec596",
      "parents": [
        "a67e783033d02c5564a5d7c97929ea8197cd35ab"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 16:54:58 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:54:58 2026 -0400"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go/v8 from 8.0.0 to 8.0.1 (#769)\n\nBumps\n[github.com/substrait-io/substrait-go/v8](https://github.com/substrait-io/substrait-go)\nfrom 8.0.0 to 8.0.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/releases\"\u003egithub.com/substrait-io/substrait-go/v8\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.0.1 (2026-04-12)\u003c/h1\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003etestcases\u003c/code\u003e\u003c/strong\u003e normalize decimal literal\ntypes to declared column type in aggregate args (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/221\"\u003e#221\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/2242c28db1ae8c11d00df6367730d02ee310bc3f\"\u003e2242c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/2242c28db1ae8c11d00df6367730d02ee310bc3f\"\u003e\u003ccode\u003e2242c28\u003c/code\u003e\u003c/a\u003e\nfix(testcases): normalize decimal literal types to declared column type\nin ag...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/7a1f38ef9d0eb77bf7adde9f11f2ea7ce81ddb93\"\u003e\u003ccode\u003e7a1f38e\u003c/code\u003e\u003c/a\u003e\nci: add check to validate go.mod version matches git tags (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/compare/v8.0.0...v8.0.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-go/v8\u0026package-manager\u003dgo_modules\u0026previous-version\u003d8.0.0\u0026new-version\u003d8.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "a67e783033d02c5564a5d7c97929ea8197cd35ab",
      "tree": "d62fe5b9ccd83b61e49656922766f8293e58fa03",
      "parents": [
        "08956270ced42fd8a312e3a4e1249886b4f4bc67"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 16:54:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:54:49 2026 -0400"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.48.1 to 1.48.2 (#768)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.48.1\nto 1.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md\"\u003emodernc.org/sqlite\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-06 v1.48.2:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix ABI mapping mismatch in the pre-update hook trampoline that\ncaused silent truncation of large 64-bit RowIDs.\u003c/li\u003e\n\u003cli\u003eEnsure the Go trampoline signature correctly aligns with the public\n\u003ccode\u003esqlite3_preupdate_hook\u003c/code\u003e C API, preventing data corruption\nfor high-entropy keys (e.g., Snowflake IDs).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/98\"\u003e#98\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/98\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/98\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix the memory allocator used in\n\u003ccode\u003e(*conn).Deserialize\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003etls.Alloc\u003c/code\u003e with \u003ccode\u003esqlite3_malloc64\u003c/code\u003e to\nprevent internal allocator corruption. This ensures the buffer is safely\nowned by SQLite, which may resize or free it due to the\n\u003ccode\u003eSQLITE_DESERIALIZE_RESIZEABLE\u003c/code\u003e and\n\u003ccode\u003eSQLITE_DESERIALIZE_FREEONCLOSE\u003c/code\u003e flags.\u003c/li\u003e\n\u003cli\u003ePrevent a memory leak by properly freeing the allocated buffer if\nfetching the main database name fails before handing ownership to\nSQLite.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/100\"\u003e#100\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/100\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/100\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e(*conn).Deserialize\u003c/code\u003e to explicitly reject\n\u003ccode\u003enil\u003c/code\u003e or empty byte slices.\u003c/li\u003e\n\u003cli\u003ePrevent silent database disconnection and connection pool corruption\ncaused by SQLite\u0027s default behavior when\n\u003ccode\u003esqlite3_deserialize\u003c/code\u003e receives a 0-length buffer.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/101\"\u003e#101\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/101\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/101\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecommitHookTrampoline\u003c/code\u003e and\n\u003ccode\u003erollbackHookTrampoline\u003c/code\u003e signatures by removing the unused\n\u003ccode\u003epCsr\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAligns internal hook callbacks accurately with the underlying SQLite\nC API, cleaning up the code to prevent potential future confusion or\nbugs.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/102\"\u003e#102\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/102\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/102\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003echeckptr\u003c/code\u003e instrumentation failures during \u003ccode\u003ego\ntest -race\u003c/code\u003e when registering and using virtual tables\n(\u003ccode\u003evtab\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllocate \u003ccode\u003esqlite3_module\u003c/code\u003e instances using the C allocator\n(\u003ccode\u003elibc.Xcalloc\u003c/code\u003e) instead of the Go heap. This ensures\ntranspiled C code can safely perform pointer operations on the struct\nwithout tripping Go\u0027s pointer checks.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/103\"\u003e#103\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/103\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/103\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix data race on \u003ccode\u003emutex.id\u003c/code\u003e in the \u003ccode\u003emutexTry\u003c/code\u003e\nnon-recursive path.\u003c/li\u003e\n\u003cli\u003eEnsure consistent atomic writes (\u003ccode\u003eatomic.StoreInt32\u003c/code\u003e) to\nprevent data races with atomic loads in \u003ccode\u003emutexHeld\u003c/code\u003e and\n\u003ccode\u003emutexNotheld\u003c/code\u003e during concurrent execution.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/104\"\u003e#104\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/104\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/104\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix resource leak in \u003ccode\u003e(*Backup).Commit\u003c/code\u003e where the\ndestination connection was not closed on error.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edstConn\u003c/code\u003e is properly closed when\n\u003ccode\u003esqlite3_backup_finish\u003c/code\u003e fails, preventing file descriptor,\nTLS, and memory leaks.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/105\"\u003e#105\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/105\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/105\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eExec\u003c/code\u003e to fully drain rows when encountering\n\u003ccode\u003eSQLITE_ROW\u003c/code\u003e, preventing silent data loss in DML\nstatements.\u003c/li\u003e\n\u003cli\u003ePreviously, \u003ccode\u003eExec\u003c/code\u003e aborted after the first row, meaning\n\u003ccode\u003eINSERT\u003c/code\u003e, \u003ccode\u003eUPDATE\u003c/code\u003e, or \u003ccode\u003eDELETE\u003c/code\u003e\nstatements with a \u003ccode\u003eRETURNING\u003c/code\u003e clause would fail to process\nsubsequent rows. The execution path now correctly loops until\n\u003ccode\u003eSQLITE_DONE\u003c/code\u003e and properly respects context cancellations\nduring the drain loop, fully aligning with native C\n\u003ccode\u003esqlite3_exec\u003c/code\u003e semantics.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/106\"\u003e#106\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/106\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/106\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u0026quot;Shadowed err value (stmt.go)\u0026quot;.\u003c/li\u003e\n\u003cli\u003eSee [GitLab issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/249\"\u003e#249\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/work_items/249\"\u003ehttps://gitlab.com/cznic/sqlite/-/work_items/249\u003c/a\u003e),\nthanks Emrecan BATI!\u003c/li\u003e\n\u003cli\u003eFix silent omission of virtual table savepoint callbacks by\ncorrectly setting the sqlite3_module version.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/107\"\u003e#107\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/107\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/107\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003evfsRead\u003c/code\u003e to properly handle partial and fragmented\nreads from \u003ccode\u003eio.Reader\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ef.Read\u003c/code\u003e with \u003ccode\u003eio.ReadFull\u003c/code\u003e to ensure\nthe buffer is fully populated, preventing premature\n\u003ccode\u003eSQLITE_IOERR_SHORT_READ\u003c/code\u003e errors on valid mid-stream partial\nreads. Unread tail bytes at EOF are now efficiently zero-filled using\nthe built-in \u003ccode\u003eclear\u003c/code\u003e function.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/108\"\u003e#108\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/108\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/108\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eRefactor internal error formatting to safely handle uninitialized or\nclosed database pointers.\u003c/li\u003e\n\u003cli\u003ePrevent a misleading \u0026quot;out of memory\u0026quot; error message when an\noperation fails and the underlying SQLite database handle is\n\u003ccode\u003eNULL\u003c/code\u003e (\u003ccode\u003edb \u003d\u003d 0\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/109\"\u003e#109\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/109\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/109\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix error handling in database backup and restore initialization\n(\u003ccode\u003esqlite3_backup_init\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure error codes and messages are accurately read from the\ndestination database handle rather than hardcoding the source or remote\nhandle. This prevents swallowed errors or mismatched \u0026quot;not an\nerror\u0026quot; messages when a backup or restore operation fails to\nstart.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/111\"\u003e#111\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/111\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/111\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix database handle and C-heap memory leaks when\n\u003ccode\u003esqlite3_open_v2\u003c/code\u003e fails.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esqlite3_close_v2\u003c/code\u003e is called on the partially\nallocated database handle during a failed open, and explicitly close\n\u003ccode\u003elibc.TLS\u003c/code\u003e in \u003ccode\u003enewConn\u003c/code\u003e to prevent resource\nleakage.\u003c/li\u003e\n\u003cli\u003ePrevent misleading \u0026quot;out of memory\u0026quot; error messages on\nfailed connections by correctly extracting the exact error string from\nthe allocated handle before it is closed.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/112\"\u003e#112\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/112\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/112\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-03 v1.48.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix memory leaks and double-free vulnerabilities in the\nmulti-statement query execution path.\u003c/li\u003e\n\u003cli\u003eEnsure bind-parameter allocations are reliably freed via strict\nownership transfer if an error occurs mid-loop or if multiple statements\nbind parameters.\u003c/li\u003e\n\u003cli\u003eFix a resource leak where a subsequent statement\u0027s error could\norphan a previously generated \u003ccode\u003erows\u003c/code\u003e object without closing\nit, leaking the prepared statement handle.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/df1697738de700bdbfe7a6ed822a8ddef14f1c98\"\u003e\u003ccode\u003edf16977\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: add !112\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/172c3955c2894135d87e8a773248796afda13f77\"\u003e\u003ccode\u003e172c395\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027fix-openv2-handle-leak\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/27197307bbdb9c5c2a6dc683803f9c6e956e35a6\"\u003e\u003ccode\u003e2719730\u003c/code\u003e\u003c/a\u003e\nfix openV2 handle leak, TLS leak, and misleading error on failed\nopen\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/53c87f6f1d6ec3da80e5d094b823eb6e98292857\"\u003e\u003ccode\u003e53c87f6\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: add !111\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/c324f373b73b9c1ee7c499bd4af630a8a84b0de2\"\u003e\u003ccode\u003ec324f37\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027fix-backup-restore-error-handle\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/fc791df12206f8b75bca585ff4dc2df078e35165\"\u003e\u003ccode\u003efc791df\u003c/code\u003e\u003c/a\u003e\nread error from correct db handle on backup init failure\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/1620515255ac994489fdb3dd7a9437750ce5a2e5\"\u003e\u003ccode\u003e1620515\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: add !109\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/72aaab4e35f35c8a500a97d868ca3007695ccce6\"\u003e\u003ccode\u003e72aaab4\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027errstr-for-db\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/2ae65f7f7e2831c44c0817b605cef87ccb94e126\"\u003e\u003ccode\u003e2ae65f7\u003c/code\u003e\u003c/a\u003e\nextract errstrForDB from conn.errstr\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/eeec006a0cd8791d7d6e05451b09188db6226406\"\u003e\u003ccode\u003eeeec006\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: add !108\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.48.1...v1.48.2\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmodernc.org/sqlite\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.48.1\u0026new-version\u003d1.48.2)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "08956270ced42fd8a312e3a4e1249886b4f4bc67",
      "tree": "b2d25f614b62a01c160352c8d3bd3c60bdd0ccfc",
      "parents": [
        "8426bd84f698a77b4486ea369935b15d3eacddc9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 16:54:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:54:38 2026 -0400"
      },
      "message": "chore: Bump golang.org/x/sys from 0.42.0 to 0.43.0 (#767)\n\nBumps [golang.org/x/sys](https://github.com/golang/sys) from 0.42.0 to\n0.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sys/commit/f33a730cd0c449cfd6f7106780c73052e96cc33d\"\u003e\u003ccode\u003ef33a730\u003c/code\u003e\u003c/a\u003e\nwindows: support nil security descriptor on GetNamedSecurityInfo\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sys/commit/493d1725989a7a3f3582adfa68faf7207aec666b\"\u003e\u003ccode\u003e493d172\u003c/code\u003e\u003c/a\u003e\ncpu: add runtime import in cpu_darwin_arm64_other.go\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sys/commit/2c2be756b97dee6d15aba69839acfbd4e0f3ccc5\"\u003e\u003ccode\u003e2c2be75\u003c/code\u003e\u003c/a\u003e\nwindows: use syscall.SyscallN in Proc.Call\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sys/commit/a76ec62d6c5389e4fe51c659ba926bf71e471a67\"\u003e\u003ccode\u003ea76ec62\u003c/code\u003e\u003c/a\u003e\ncpu: roll back \u0026quot;use IsProcessorFeaturePresent to calculate ARM64 on\nwindows\u0026quot;\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/golang/sys/compare/v0.42.0...v0.43.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgolang.org/x/sys\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.42.0\u0026new-version\u003d0.43.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "8426bd84f698a77b4486ea369935b15d3eacddc9",
      "tree": "60e856d1d0285f05e40beef8cd2ac22677ae27cb",
      "parents": [
        "2289d0571392f2ab46852dfd1970ed26a5393f24"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 16:54:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:54:21 2026 -0400"
      },
      "message": "chore: Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#766)\n\nBumps\n[actions/upload-artifact](https://github.com/actions/upload-artifact)\nfrom 7.0.0 to 7.0.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/releases\"\u003eactions/upload-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the readme with direct upload details by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/795\"\u003eactions/upload-artifact#795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReadme: bump all the example versions to v7 by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/796\"\u003eactions/upload-artifact#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude changes in typespec/ts-http-runtime 0.3.5 by \u003ca\nhref\u003d\"https://github.com/yacaovsnc\"\u003e\u003ccode\u003e@​yacaovsnc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/797\"\u003eactions/upload-artifact#797\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/v7...v7.0.1\"\u003ehttps://github.com/actions/upload-artifact/compare/v7...v7.0.1\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\nhref\u003d\"https://github.com/actions/upload-artifact/commit/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a\"\u003e\u003ccode\u003e043fb46\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/797\"\u003e#797\u003c/a\u003e\nfrom actions/yacaovsnc/update-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/634250c1388765ea7ed0f053e636f1f399000b94\"\u003e\u003ccode\u003e634250c\u003c/code\u003e\u003c/a\u003e\nInclude changes in typespec/ts-http-runtime 0.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/e454baaac2be505c9450e11b8f3215c6fc023ce8\"\u003e\u003ccode\u003ee454baa\u003c/code\u003e\u003c/a\u003e\nReadme: bump all the example versions to v7 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/74fad66b98a6d799dc004d3353ccd0e6f6b2530e\"\u003e\u003ccode\u003e74fad66\u003c/code\u003e\u003c/a\u003e\nUpdate the readme with direct upload details (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/795\"\u003e#795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/upload-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d7.0.0\u0026new-version\u003d7.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "2289d0571392f2ab46852dfd1970ed26a5393f24",
      "tree": "2cd8f2ddac165f9f9fcf8491f031baa8565c88ad",
      "parents": [
        "e78b931f5e75d900ad6a47283a5c3275de7f12db"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 16:54:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:54:09 2026 -0400"
      },
      "message": "chore: Bump actions/github-script from 8.0.0 to 9.0.0 (#765)\n\nBumps [actions/github-script](https://github.com/actions/github-script)\nfrom 8.0.0 to 9.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/github-script/releases\"\u003eactions/github-script\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew features:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003egetOctokit\u003c/code\u003e factory function\u003c/strong\u003e —\nAvailable directly in the script context. Create additional\nauthenticated Octokit clients with different tokens for multi-token\nworkflows, GitHub App tokens, and cross-org access. See \u003ca\nhref\u003d\"https://github.com/actions/github-script#creating-additional-clients-with-getoctokit\"\u003eCreating\nadditional clients with \u003ccode\u003egetOctokit\u003c/code\u003e\u003c/a\u003e for details and\nexamples.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOrchestration ID in user-agent\u003c/strong\u003e — The\n\u003ccode\u003eACTIONS_ORCHESTRATION_ID\u003c/code\u003e environment variable is\nautomatically appended to the user-agent string for request\ntracing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBreaking changes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003erequire(\u0027@actions/github\u0027)\u003c/code\u003e no longer works in\nscripts.\u003c/strong\u003e The upgrade to \u003ccode\u003e@actions/github\u003c/code\u003e v9\n(ESM-only) means \u003ccode\u003erequire(\u0027@actions/github\u0027)\u003c/code\u003e will fail at\nruntime. If you previously used patterns like \u003ccode\u003econst { getOctokit }\n\u003d require(\u0027@actions/github\u0027)\u003c/code\u003e to create secondary clients, use the\nnew injected \u003ccode\u003egetOctokit\u003c/code\u003e function instead — it\u0027s available\ndirectly in the script context with no imports needed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egetOctokit\u003c/code\u003e is now an injected function parameter.\nScripts that declare \u003ccode\u003econst getOctokit \u003d ...\u003c/code\u003e or \u003ccode\u003elet\ngetOctokit \u003d ...\u003c/code\u003e will get a \u003ccode\u003eSyntaxError\u003c/code\u003e because\nJavaScript does not allow \u003ccode\u003econst\u003c/code\u003e/\u003ccode\u003elet\u003c/code\u003e\nredeclaration of function parameters. Use the injected\n\u003ccode\u003egetOctokit\u003c/code\u003e directly, or use \u003ccode\u003evar getOctokit \u003d\n...\u003c/code\u003e if you need to redeclare it.\u003c/li\u003e\n\u003cli\u003eIf your script accesses other \u003ccode\u003e@actions/github\u003c/code\u003e internals\nbeyond the standard \u003ccode\u003egithub\u003c/code\u003e/\u003ccode\u003eoctokit\u003c/code\u003e client, you\nmay need to update those references for v9 compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ACTIONS_ORCHESTRATION_ID to user-agent string by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/github-script/pull/695\"\u003eactions/github-script#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use deployment: false for integration test environments by \u003ca\nhref\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/github-script/pull/712\"\u003eactions/github-script#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat!: add getOctokit to script context, upgrade\n\u003ccode\u003e@​actions/github\u003c/code\u003e v9, \u003ccode\u003e@​octokit/core\u003c/code\u003e v7, and\nrelated packages by \u003ca\nhref\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/github-script/pull/700\"\u003eactions/github-script#700\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/github-script/pull/695\"\u003eactions/github-script#695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/github-script/compare/v8.0.0...v9.0.0\"\u003ehttps://github.com/actions/github-script/compare/v8.0.0...v9.0.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\nhref\u003d\"https://github.com/actions/github-script/commit/3a2844b7e9c422d3c10d287c895573f7108da1b3\"\u003e\u003ccode\u003e3a2844b\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/github-script/issues/700\"\u003e#700\u003c/a\u003e\nfrom actions/salmanmkc/expose-getoctokit + prepare re...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/ca10bbdd1a7739de09e99a200c7a59f5d73a4079\"\u003e\u003ccode\u003eca10bbd\u003c/code\u003e\u003c/a\u003e\nfix: use \u003ccode\u003e@​octokit/core/\u003c/code\u003etypes import for v7\ncompatibility\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/86e48e20ac85c970ed1f96e718fd068173948b7b\"\u003e\u003ccode\u003e86e48e2\u003c/code\u003e\u003c/a\u003e\nmerge: incorporate main branch changes\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/c1084728b5b935ec4ddc1e4cee877b01797b3ff9\"\u003e\u003ccode\u003ec108472\u003c/code\u003e\u003c/a\u003e\nchore: rebuild dist for v9 upgrade and getOctokit factory\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/afff112e4f8b57c718168af75b89ce00bc8d091d\"\u003e\u003ccode\u003eafff112\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/github-script/issues/712\"\u003e#712\u003c/a\u003e\nfrom actions/salmanmkc/deployment-false + fix user-ag...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/ff8117e5b78c415f814f39ad6998f424fee7b817\"\u003e\u003ccode\u003eff8117e\u003c/code\u003e\u003c/a\u003e\nci: fix user-agent test to handle orchestration ID\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/81c6b7876079abe10ff715951c9fc7b3e1ab389d\"\u003e\u003ccode\u003e81c6b78\u003c/code\u003e\u003c/a\u003e\nci: use deployment: false to suppress deployment noise from integration\ntests\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/3953caf8858d318f37b6cc53a9f5708859b5a7b7\"\u003e\u003ccode\u003e3953caf\u003c/code\u003e\u003c/a\u003e\ndocs: update README examples from \u003ca\nhref\u003d\"https://github.com/v8\"\u003e\u003ccode\u003e@​v8\u003c/code\u003e\u003c/a\u003e to \u003ca\nhref\u003d\"https://github.com/v9\"\u003e\u003ccode\u003e@​v9\u003c/code\u003e\u003c/a\u003e, add getOctokit docs\nand v9 brea...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/c17d55b90dcdb3d554d0027a6c180a7adc2daf78\"\u003e\u003ccode\u003ec17d55b\u003c/code\u003e\u003c/a\u003e\nci: add getOctokit integration test job\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/github-script/commit/a047196d9a02fe92098771cafbb98c2f1814e408\"\u003e\u003ccode\u003ea047196\u003c/code\u003e\u003c/a\u003e\ntest: add getOctokit integration tests via callAsyncFunction\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/github-script/compare/ed597411d8f924073f98dfc5c65a23a2325f34cd...3a2844b7e9c422d3c10d287c895573f7108da1b3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/github-script\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d8.0.0\u0026new-version\u003d9.0.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "e78b931f5e75d900ad6a47283a5c3275de7f12db",
      "tree": "9cf42a465d200c7adcafdd9c333de0f8d70d68e8",
      "parents": [
        "ea84305b9d92cd61caeb57efd7efbdd78ce5d1f7"
      ],
      "author": {
        "name": "Alex",
        "email": "90222413+hamilton-earthscope@users.noreply.github.com",
        "time": "Tue Apr 14 08:52:29 2026 +1200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:52:29 2026 -0400"
      },
      "message": "feat(arrow/compute): sort support (#749)\n\n## Summary\n\nImplements stable `sort_indices` (and `sort` via `take`) for arrays,\nchunked arrays, record batches, and tables using logical row indices\nover `Chunked` data **without concatenating chunks**. The control flow\nand ordering rules are modeled on Apache Arrow C++ **`vector_sort.cc` /\n`vector_sort_internal.h`**, with a few **Go- and performance-driven**\ndifferences called out below.\n\n## Parity with Arrow C++ (`vector_sort.cc` / `vector_sort_internal.h`)\n\n**Same overall structure**\n\n- **Single sort key, one column**\n- **Multiple chunks:** per-chunk sort then **pairwise merge** of sorted\nspans (C++ **ChunkedArraySorter** / **ChunkedMergeImpl** idea).\n- **Single chunk, no validity nulls and no null-likes:** direct stable\nsort on indices (C++ skips null partitioning when `null_count \u003d\u003d 0` and\nthere are no null-likes).\n- Otherwise: **partition validity nulls**, **partition float null-likes\n(NaN)**, stable sort of finite values, then\n**VisitConstantRanges**-style handling of ties\n(`vector_sort_internal.go`).\n\n- **Multiple sort keys**\n- **`len(keys) \u003c\u003d kMaxRadixSortKeys` (8):** **MSD radix** path per\nrecord-batch range (`radixRecordBatchSortRange` ↔\n**ConcreteRecordBatchColumnSorter::SortRange**).\n- **More than 8 keys:** **MultipleKeyRecordBatchSorter**-style global\nstable sort with lexicographic compare across keys\n(`multipleKeyRecordBatchSortRange`).\n- **Aligned chunk boundaries** across all keyed columns (typical table):\nsort **each chunk slice** with the same strategy, then **merge spans**\nlike C++ **TableSorter** batch merge.\n\n**Same ordering semantics (intended match to C++)**\n\n- Per-key **ascending / descending** and **null placement** (including\n**NaN** as null-like for floats).\n- **Stable** ordering: merge and `slices.SortStableFunc` are used so\ntie-breaking matches the C++ “left before right” stable merge behavior\nwhere documented in code.\n\n**Same “column comparator” role**\n\n- Go **`columnComparator`** interface ↔ C++ **`ColumnComparator`**:\n`compareRowsForKey`, null / null-like metadata, `columnHasValidityNulls`\n(skip **PartitionNullsOnly** when there are no validity nulls).\n\n**Physical types**\n\n- One **monomorphic** comparator type per supported physical pattern in\n**`vector_sort_physical.go`**, analogous to C++\n**`ConcreteColumnComparator\u003cT\u003e`** (concrete `*array.T` + direct `Value`\n/ `Cmp` / special cases for bool and intervals).\n\n## Intentional differences and rationale\n\n| Area | C++ | This Go port |\n| ---------------------------------------------- |\n-------------------------------------------------------------------------------------\n|\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n|\n| **Resolving logical row → (chunk, offset)** | Chunk / resolver\nmachinery in C++ | **Dense `logicalRowMap`**: one `rowMapCell{chunk,\nlocal}` per logical row when `len(chunks) \u003e 1`; **`pair(i,j)`** resolves\ntwo rows in one shot. **Why:** random compares during sort/merge need\nO(1) resolution; a flat table + co-located fields beats repeated\nresolver work and improves locality vs separate `chunk`/`local` slices.\n|\n| **`physicalColumnBase` methods** | N/A (different language) |\n**Pointer receivers** on `pair` / `isNullAtGlobal` / `cell`. **Why:**\nvalue receivers would copy slice headers (and map state) on every\ncompare. |\n| **Stable sort primitive** | `std::stable_sort` |\n**`slices.SortStableFunc`** (Go 1.21+). **Why:** library primitive;\nsemantics aligned with stable weak ordering used elsewhere in the port.\n|\n| **Column dispatch at runtime** | Templates + virtuals |\n**`columnComparator` interface** for “which column” in multi-key and\nmerge loops. **Why:** idiomatic Go; per-type work stays in concrete\n`compareRowsForKey` implementations. |\n| **Chunked merge with null-likes (e.g. float)** | C++ can **split**\nmerge for null-like vs non-null-like regions (**ChunkedMergeImpl**) |\n**Single `less` over full row order** after per-chunk partitioning/sort.\n**Why:** simpler merge while preserving order as long as per-chunk\nphases match C++; documented in `vector_sort.go` comments. |\n| **Generics for physical columns** | Templates instantiate fully |\n**Explicit monomorphs only** for the hot compare path. **Why:** measured\nregression vs Go generics on this hot path (inlining / assertions);\nverbosity traded for performance. |\n\n## File Layout\n\n- `arrow/compute/vector_sort.go` — `sort_indices` / `sort` registration\nand datum dispatch.\n- `arrow/compute/vector_sort_test.go` — functional tests.\n- `arrow/compute/internal/kernels/vector_sort.go` — orchestration,\nmerge, `SortIndices` kernel.\n- `arrow/compute/internal/kernels/vector_sort_internal.go` — null\npartitions, radix / multi-key batch sort.\n- `arrow/compute/internal/kernels/vector_sort_support.go` —\n`logicalRowMap` and ordering helpers.\n- `arrow/compute/internal/kernels/vector_sort_physical.go` — per-type\ncolumn comparators.\n- `arrow/compute/internal/kernels/vector_sort_bench_test.go` —\nbenchmarks.\n\n## Testing\n\n- `go test ./arrow/compute -run TestSort -count\u003d1`\n- Benchmarks: `go test ./arrow/compute/internal/kernels\n-bench\u003dBenchmarkSortIndices -benchmem` .\n\n## References\n\n- Arrow C++: `cpp/src/arrow/compute/kernels/vector_sort.cc` and\n`vector_sort_internal.h` (and related comparators).\n-\nhttps://github.com/apache/arrow/blob/main/cpp/src/arrow/compute/kernels/vector_sort.cc\n-\nhttps://github.com/apache/arrow/blob/main/cpp/src/arrow/compute/kernels/vector_sort_internal.h\n  \n## Related Issues\n- Closes #66"
    },
    {
      "commit": "ea84305b9d92cd61caeb57efd7efbdd78ce5d1f7",
      "tree": "6d176479591a3a2cf06045be23290fb8f22f4429",
      "parents": [
        "deed26cafb9323c32e3245f683087d25c55aae06"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Apr 13 22:51:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:51:04 2026 -0400"
      },
      "message": "refactor(parquet/cmd): replace uses of github.com/docopt/docopt-go (#764)\n\nThe github.com/docopt/docopt-go repository has not been maintained for\nmany Years; replace it for stdlib flags, which is slightly more code to\nwrite, but removes the un-maintained dependency.\n\n### Rationale for this change\n\n\n### What changes are included in this PR?\n\n\n### Are these changes tested?\n\n\n### Are there any user-facing changes?\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "deed26cafb9323c32e3245f683087d25c55aae06",
      "tree": "2b7d643f16fa873237679860f3aaeab50f69f61f",
      "parents": [
        "5615d94fb283385a370c1c1999164d45b2d476af"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Apr 13 18:57:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 12:57:53 2026 -0400"
      },
      "message": "chore: remove tools.go files in favor of go.mod \"tool\" directive (#759)\n\nThis prevents dependencies used for `//go:generate` from being included\nas a direct dependency, while preserving the ability to specify the\nversion to use through go.mod (as `//indirect` dependency if not used\nelsehwere).\n\nTools specified in go.mod can be downloaded with `go get -tool`, e.g.;\n\n    go get -tool github.com/klauspost/asmfmt/cmd/asmfmt\n\nOr ran with `go tool \u003cname of tool\u003e`.\n\n### Rationale for this change\n\n\n### What changes are included in this PR?\n\n\n### Are these changes tested?\n\n\n### Are there any user-facing changes?\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "5615d94fb283385a370c1c1999164d45b2d476af",
      "tree": "44189b3698c131f6072e774d239cc8205204ac6f",
      "parents": [
        "6648c1d202bd3d844d532b9167ad292b093a05e6"
      ],
      "author": {
        "name": "Karen Li",
        "email": "33815319+kli19@users.noreply.github.com",
        "time": "Mon Apr 13 11:57:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 11:57:12 2026 -0400"
      },
      "message": "test(parquet/file): add regression test for mixed-size ByteArray WriteBatch  (#757)\n\n### Rationale for this change\nIssue #756 reports that small ByteArray values are silently dropped when\na large (≥1MB) value appears in the same WriteBatch. This was already\nfixed on main by #690, but there was no test covering the specific\nmixed-size scenario.\n\n### What changes are included in this PR?\nAdds a regression test that writes a batch of mixed-size ByteArray\nvalues (small values flanking a 2MB value) and verifies all values\nround-trip correctly.\n\n### Are these changes tested?\nThe test itself is the change. Confirmed it fails at bbf7ab75 (#655, the\nbuggy commit) and passes on main.\n\n### Are there any user-facing changes?\nNo"
    },
    {
      "commit": "6648c1d202bd3d844d532b9167ad292b093a05e6",
      "tree": "4319bb70a9f5ecf20c92ab1a85726dd5a7b59ccb",
      "parents": [
        "2e44b727051c49ccb557b1b0603d5a94c9fa6f0e"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Apr 13 03:10:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 21:10:40 2026 -0400"
      },
      "message": "fix(arrow/cdata, arrow/flight): fix handling of colons in values and fix potential panics (#761)\n\n### fix(arrow/cdata): importSchema: handle colons in values\n\nUse strings.Cut, both as an optimization, and to prevent values\ncontaining\na colon (e.g. \"tsu:+01:00\") from being mis-interpreted. This patch also\nremoves some intermediate variables, and redundant handling of\n\"defaulttz\",\nwhich assigned an empty string if the value was empty.\n\n\n### fix(arrow/cdata): importSchema: fix potential panic and optimize\n\nRewrite the code with strings.Cut and strings.SplitSeq to reduce\nallocations, and to fix a potential panic.\n\nBefore this patch, the code would panic if a colon was missing;\n\nCGO_ENABLED\u003d1 go test -v -tags test -run TestUnionSchemaErrors\n./arrow/cdata/\n    --- FAIL: TestUnionSchemaErrors (0.00s)\n        --- FAIL: TestUnionSchemaErrors/+us (0.00s)\npanic: runtime error: index out of range [1] with length 1 [recovered,\nrepanicked]\n\n    goroutine 9 [running]:\n    testing.tRunner.func1.2({0x7fc7c0, 0x4000026ab0})\n        /usr/local/go/src/testing/testing.go:1872 +0x190\n    testing.tRunner.func1()\n        /usr/local/go/src/testing/testing.go:1875 +0x31c\n    panic({0x7fc7c0?, 0x4000026ab0?})\n        /usr/local/go/src/runtime/panic.go:783 +0x120\ngithub.com/apache/arrow-go/v18/arrow/cdata.importSchema(0x40001c36d0)\n        /foo/arrow/cdata/cdata.go:306 +0x1520\n    github.com/apache/arrow-go/v18/arrow/cdata.ImportCArrowField(...)\n        /foo/arrow/cdata/interface.go:43\n\ngithub.com/apache/arrow-go/v18/arrow/cdata.TestUnionSchemaErrors.func1(0x40000e0a80)\n        /foo/arrow/cdata/cdata_test.go:188 +0xb0\n    testing.tRunner(0x40000e0a80, 0x400020c060)\n        /usr/local/go/src/testing/testing.go:1934 +0xc8\n    created by testing.(*T).Run in goroutine 8\n        /usr/local/go/src/testing/testing.go:1997 +0x364\n    FAIL\tgithub.com/apache/arrow-go/v18/arrow/cdata\t0.007s\n    FAIL\n\nWith this patch applied, the code handles the invalid value gracefully;\n\nCGO_ENABLED\u003d1 go test -v -tags test -run TestUnionSchemaErrors\n./arrow/cdata/\n    \u003d\u003d\u003d RUN   TestUnionSchemaErrors\n    \u003d\u003d\u003d RUN   TestUnionSchemaErrors/+us\n    \u003d\u003d\u003d RUN   TestUnionSchemaErrors/+ud\n    --- PASS: TestUnionSchemaErrors (0.00s)\n        --- PASS: TestUnionSchemaErrors/+us (0.00s)\n        --- PASS: TestUnionSchemaErrors/+ud (0.00s)\n    PASS\n    ok  \tgithub.com/apache/arrow-go/v18/arrow/cdata\t0.003s\n\n\n### fix(arrow/flight): avoid panic on malformed authorization header\n\nRewrite the code with strings.Cut for readability and ensue missing\ncredentials\nin Basic/Bearer authorization headers return Unauthenticated instead of\npanicking.\n\nBefore this patch, the code could panic;\n\n    go test -run TestBasicAuthMissingCredential ./arrow/flight/\n    panic: runtime error: index out of range [1] with length 1\n\n    goroutine 7 [running]:\n\ngithub.com/apache/arrow-go/v18/arrow/flight_test.TestBasicAuthMissingCredential.CreateServerBasicAuthMiddleware.createServerBearerTokenStreamInterceptor.func3({0x8d8240,\n0x40002134a0}, {0xa73e68, 0x40000e2000}, 0x40000100c0, 0x96b628)\n        /foo/arrow/flight/server_auth.go:188 +0x49c\n    ....\n\nWith this patch applied, the code handles the invalid header gracefully;\n\n    go test -run TestBasicAuthMissingCredential ./arrow/flight/\n    ok  \tgithub.com/apache/arrow-go/v18/arrow/flight\t0.010s\n\n\n\n\n### Rationale for this change\n\n\n### What changes are included in this PR?\n\n\n### Are these changes tested?\n\n\n### Are there any user-facing changes?\n\n---------\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "2e44b727051c49ccb557b1b0603d5a94c9fa6f0e",
      "tree": "edf630a37f1a7311695fd302169dd4a8b2080297",
      "parents": [
        "786d91a8f4249137614eb6e25f745b1ea1012e06"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Apr 13 01:05:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 19:05:33 2026 -0400"
      },
      "message": "chore: remove mentions of compatibility with go toolchain \u003c go1.18 (#760)\n\nThe github.com/apache/arrow/go/v11/arrow/compute module was removed in\ncommit f6e34421658726a6e5c98327a7e6b619ae798d34, making it part of the\nmain module. The go version in go.mod was updated to go1.18, but older\nversions of the go toolchain could still be used;\n\n\u003e Requirements\n\u003e\n\u003e Despite the go.mod stating go1.18, everything except for the compute\npackage\n\u003e is able to be built with go1.17 (and most is also compatible with\ngo1.16).\n\nBefore Go 1.21, the go line in go.mod was effectively advisory: older\ntoolchains might still try to build the module, and only complain if\nthey hit something unsupported. Starting with Go 1.21 (backported to\ngo1.19.3 and go1.20.8), the go line became a strict minimum requirement.\nhttps://go.dev/doc/go1.21\n\nCommit ddfa8159f9cace619b0da2898c7aea0906393655 updated the go version\nin go.mod to go1.21.0, no longer allowing older toolchains to be used.\n\nThis patch removes the mentions of older toolchains.\n\n### Rationale for this change\n\n\n### What changes are included in this PR?\n\n\n### Are these changes tested?\n\n\n### Are there any user-facing changes?\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "786d91a8f4249137614eb6e25f745b1ea1012e06",
      "tree": "35a79b419c18e0d07445157a58a08625882179e8",
      "parents": [
        "a6c0a5e8dd1b924c4a30b3c66aff6ac33a0d128a"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Apr 13 01:04:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 19:04:48 2026 -0400"
      },
      "message": "chore(deps): replace golang/snappy with klauspost/compress/snappy (#762)\n\nThe github.com/golang/snappy repository was archived and is no longer\nmaintained. klauspost/compress provides a drop-in replacement, which is\nactively maintained, and the klauspost/compress module is already an\nexisting dependency.\n\n### Rationale for this change\n\n\n### What changes are included in this PR?\n\n\n### Are these changes tested?\n\n\n### Are there any user-facing changes?\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e"
    },
    {
      "commit": "a6c0a5e8dd1b924c4a30b3c66aff6ac33a0d128a",
      "tree": "97be8f24efcbd9c5f3a9919080a8a08a98309fb2",
      "parents": [
        "3c8d9c6b3ed12c231cc4b3d0294bc7e6ae812b9b"
      ],
      "author": {
        "name": "Ben Bellick",
        "email": "36523439+benbellick@users.noreply.github.com",
        "time": "Fri Apr 10 14:15:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 14:15:06 2026 -0400"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go from v7.6.0 to v8.0.0 (#754)\n\n### Rationale for this change\n\nUpgrade substrait-go to the latest major version (v8). I\u0027m visiting from\n@substrait-io and want to bump this so I can update the dependency in\n`iceberg-go`.\n\n### What changes are included in this PR?\n\n- Updated `github.com/substrait-io/substrait-go` from v7.6.0 to v8.0.0\n- Updated import paths from `v7` to `v8` across `arrow/compute/exprs`\n- Transitive dependency bumps: `substrait-protobuf/go` v0.84.0 →\nv0.85.0, `substrait` v0.84.0 → v0.85.0\n\n### Are these changes tested?\n\nExisting tests pass (`go test ./arrow/compute/exprs/...`).\n\n### Are there any user-facing changes?\n\nUsers importing `arrow/compute/exprs` will transitively depend on\nsubstrait-go v8 instead of v7.\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "3c8d9c6b3ed12c231cc4b3d0294bc7e6ae812b9b",
      "tree": "b83efb58b843774021d047c303ff11234b370a3e",
      "parents": [
        "bab7540c0faa4d0666cfc4bab5d7a015c13a03e5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Apr 07 12:57:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 12:57:51 2026 -0400"
      },
      "message": "chore: Bump github.com/andybalholm/brotli from 1.2.0 to 1.2.1 (#753)\n\nBumps\n[github.com/andybalholm/brotli](https://github.com/andybalholm/brotli)\nfrom 1.2.0 to 1.2.1.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/0675b242cf45dcdd51ed6fb600876b570bea329b\"\u003e\u003ccode\u003e0675b24\u003c/code\u003e\u003c/a\u003e\nRemove unnecessary nil checks\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/946c3e4071198a86d6c037ffcd138968dd4fc68e\"\u003e\u003ccode\u003e946c3e4\u003c/code\u003e\u003c/a\u003e\nmatchfinder: verify candidate matches against source data\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/014fb9c9e8f7e87e7996309844260b1f8d890528\"\u003e\u003ccode\u003e014fb9c\u003c/code\u003e\u003c/a\u003e\nAdd Bargain3 MatchFinder\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/deb905c53b5bcb9fa2d20ccb66890fa941c883cf\"\u003e\u003ccode\u003edeb905c\u003c/code\u003e\u003c/a\u003e\nTrio: vary hash table sizes\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/b84bddd64ee4c9ca21b98009bc212e14fd7b5bd4\"\u003e\u003ccode\u003eb84bddd\u003c/code\u003e\u003c/a\u003e\nM4: fix updating chain for long history\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/a7ad41202f4421be4299ea5c911b41396c6170bf\"\u003e\u003ccode\u003ea7ad412\u003c/code\u003e\u003c/a\u003e\nBargain1 \u0026amp; Bargain2: check for matches less often\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/6c6ca8c2a86a6448ef2b7986e6c8ecf5e8a9e29c\"\u003e\u003ccode\u003e6c6ca8c\u003c/code\u003e\u003c/a\u003e\nAdd Bargain1 MatchFinder\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/01c485509d026342053502adc6c3b692dcbf2003\"\u003e\u003ccode\u003e01c4855\u003c/code\u003e\u003c/a\u003e\nAdd Bargain2 MatchFinder\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/b70ce549fa67fc350e2051de343a06d00e16a264\"\u003e\u003ccode\u003eb70ce54\u003c/code\u003e\u003c/a\u003e\nAdd HTTPCompressorWithLevel\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/commit/f8935d5c2aed358527994b3f3c16c3229f228c70\"\u003e\u003ccode\u003ef8935d5\u003c/code\u003e\u003c/a\u003e\nAdd a flate encoder using the matchfinder package.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/andybalholm/brotli/compare/v1.2.0...v1.2.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/andybalholm/brotli\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.2.0\u0026new-version\u003d1.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "bab7540c0faa4d0666cfc4bab5d7a015c13a03e5",
      "tree": "ee013276be6da5665d7d38ad1184aa6c1bcfc389",
      "parents": [
        "f0498c2e5408ad0e5a1a7ab94ddc7ee2e72d8d28"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Apr 07 12:57:40 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 12:57:40 2026 -0400"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.48.0 to 1.48.1 (#752)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.48.0\nto 1.48.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md\"\u003emodernc.org/sqlite\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-06 v1.48.2:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix ABI mapping mismatch in the pre-update hook trampoline that\ncaused silent truncation of large 64-bit RowIDs.\u003c/li\u003e\n\u003cli\u003eEnsure the Go trampoline signature correctly aligns with the public\n\u003ccode\u003esqlite3_preupdate_hook\u003c/code\u003e C API, preventing data corruption\nfor high-entropy keys (e.g., Snowflake IDs).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/98\"\u003e#98\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/98\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/98\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix the memory allocator used in\n\u003ccode\u003e(*conn).Deserialize\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003etls.Alloc\u003c/code\u003e with \u003ccode\u003esqlite3_malloc64\u003c/code\u003e to\nprevent internal allocator corruption. This ensures the buffer is safely\nowned by SQLite, which may resize or free it due to the\n\u003ccode\u003eSQLITE_DESERIALIZE_RESIZEABLE\u003c/code\u003e and\n\u003ccode\u003eSQLITE_DESERIALIZE_FREEONCLOSE\u003c/code\u003e flags.\u003c/li\u003e\n\u003cli\u003ePrevent a memory leak by properly freeing the allocated buffer if\nfetching the main database name fails before handing ownership to\nSQLite.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/100\"\u003e#100\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/100\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/100\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e(*conn).Deserialize\u003c/code\u003e to explicitly reject\n\u003ccode\u003enil\u003c/code\u003e or empty byte slices.\u003c/li\u003e\n\u003cli\u003ePrevent silent database disconnection and connection pool corruption\ncaused by SQLite\u0027s default behavior when\n\u003ccode\u003esqlite3_deserialize\u003c/code\u003e receives a 0-length buffer.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/101\"\u003e#101\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/101\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/101\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecommitHookTrampoline\u003c/code\u003e and\n\u003ccode\u003erollbackHookTrampoline\u003c/code\u003e signatures by removing the unused\n\u003ccode\u003epCsr\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAligns internal hook callbacks accurately with the underlying SQLite\nC API, cleaning up the code to prevent potential future confusion or\nbugs.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/102\"\u003e#102\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/102\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/102\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003echeckptr\u003c/code\u003e instrumentation failures during \u003ccode\u003ego\ntest -race\u003c/code\u003e when registering and using virtual tables\n(\u003ccode\u003evtab\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllocate \u003ccode\u003esqlite3_module\u003c/code\u003e instances using the C allocator\n(\u003ccode\u003elibc.Xcalloc\u003c/code\u003e) instead of the Go heap. This ensures\ntranspiled C code can safely perform pointer operations on the struct\nwithout tripping Go\u0027s pointer checks.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/103\"\u003e#103\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/103\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/103\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix data race on \u003ccode\u003emutex.id\u003c/code\u003e in the \u003ccode\u003emutexTry\u003c/code\u003e\nnon-recursive path.\u003c/li\u003e\n\u003cli\u003eEnsure consistent atomic writes (\u003ccode\u003eatomic.StoreInt32\u003c/code\u003e) to\nprevent data races with atomic loads in \u003ccode\u003emutexHeld\u003c/code\u003e and\n\u003ccode\u003emutexNotheld\u003c/code\u003e during concurrent execution.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/104\"\u003e#104\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/104\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/104\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix resource leak in \u003ccode\u003e(*Backup).Commit\u003c/code\u003e where the\ndestination connection was not closed on error.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edstConn\u003c/code\u003e is properly closed when\n\u003ccode\u003esqlite3_backup_finish\u003c/code\u003e fails, preventing file descriptor,\nTLS, and memory leaks.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/105\"\u003e#105\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/105\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/105\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eExec\u003c/code\u003e to fully drain rows when encountering\n\u003ccode\u003eSQLITE_ROW\u003c/code\u003e, preventing silent data loss in DML\nstatements.\u003c/li\u003e\n\u003cli\u003ePreviously, \u003ccode\u003eExec\u003c/code\u003e aborted after the first row, meaning\n\u003ccode\u003eINSERT\u003c/code\u003e, \u003ccode\u003eUPDATE\u003c/code\u003e, or \u003ccode\u003eDELETE\u003c/code\u003e\nstatements with a \u003ccode\u003eRETURNING\u003c/code\u003e clause would fail to process\nsubsequent rows. The execution path now correctly loops until\n\u003ccode\u003eSQLITE_DONE\u003c/code\u003e and properly respects context cancellations\nduring the drain loop, fully aligning with native C\n\u003ccode\u003esqlite3_exec\u003c/code\u003e semantics.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/106\"\u003e#106\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/106\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/106\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003cli\u003eFix \u0026quot;Shadowed err value (stmt.go)\u0026quot;.\u003c/li\u003e\n\u003cli\u003eSee [GitLab issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/249\"\u003e#249\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/work_items/249\"\u003ehttps://gitlab.com/cznic/sqlite/-/work_items/249\u003c/a\u003e),\nthanks Emrecan BATI!\u003c/li\u003e\n\u003cli\u003eFix silent omission of virtual table savepoint callbacks by\ncorrectly setting the sqlite3_module version.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/107\"\u003e#107\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/107\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/107\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-04-03 v1.48.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix memory leaks and double-free vulnerabilities in the\nmulti-statement query execution path.\u003c/li\u003e\n\u003cli\u003eEnsure bind-parameter allocations are reliably freed via strict\nownership transfer if an error occurs mid-loop or if multiple statements\nbind parameters.\u003c/li\u003e\n\u003cli\u003eFix a resource leak where a subsequent statement\u0027s error could\norphan a previously generated \u003ccode\u003erows\u003c/code\u003e object without closing\nit, leaking the prepared statement handle.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/96\"\u003e#96\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/96\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/96\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-03-27 v1.48.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e_timezone\u003c/code\u003e DSN query parameter to apply IANA\ntimezones (e.g., \u0026quot;America/New_York\u0026quot;) to both reads and\nwrites.\u003c/li\u003e\n\u003cli\u003eWrites will convert \u003ccode\u003etime.Time\u003c/code\u003e values to the target\ntimezone before formatting as a string.\u003c/li\u003e\n\u003cli\u003eReads will interpret timezone-less strings as being in the target\ntimezone.\u003c/li\u003e\n\u003cli\u003eDoes not impact \u003ccode\u003e_inttotime\u003c/code\u003e integer values, which will\nalways safely evaluate as UTC.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003e_time_format\u003ddatetime\u003c/code\u003e URI parameter to\nformat \u003ccode\u003etime.Time\u003c/code\u003e values identically to SQLite\u0027s native\n\u003ccode\u003edatetime()\u003c/code\u003e function and \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e\n(\u003ccode\u003eYYYY-MM-DD HH:MM:SS\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/94\"\u003e#94\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/94\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/94\u003c/a\u003e)\nand [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/95\"\u003e#95\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/95\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/95\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-03-17 v1.47.0: Add CGO-free version of the vector extensions\nfrom \u003ca\nhref\u003d\"https://github.com/asg017/sqlite-vec\"\u003ehttps://github.com/asg017/sqlite-vec\u003c/a\u003e.\nSee \u003ccode\u003evec_test.go\u003c/code\u003e for example usage. From the GitHub project\npage:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImportant:\u003c/strong\u003e sqlite-vec is a pre-v1, so expect\nbreaking changes!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/51d1f91256bcb466efed1dd68e0cba740727b64c\"\u003e\u003ccode\u003e51d1f91\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: document v1.48.1...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/50a8b7f6450f1beb34a8e4e5455c3d70226d5c29\"\u003e\u003ccode\u003e50a8b7f\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: document v1.48.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/60500243df654c8ef068a91517de0ec30bc34a44\"\u003e\u003ccode\u003e6050024\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027multi-stmt-double-free\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/ef93ba85ea85f92ab04b4a51ff501dfd4b7e4667\"\u003e\u003ccode\u003eef93ba8\u003c/code\u003e\u003c/a\u003e\nimprove memory safety of allocs in stmt.query\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/2a97c686c0d08529ca1138200bf6afe3d8dda66b\"\u003e\u003ccode\u003e2a97c68\u003c/code\u003e\u003c/a\u003e\nadd conn.freeAllocs\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.48.0...v1.48.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmodernc.org/sqlite\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.48.0\u0026new-version\u003d1.48.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "f0498c2e5408ad0e5a1a7ab94ddc7ee2e72d8d28",
      "tree": "a0daf388827ce3bd95a1500479e991d819845660",
      "parents": [
        "20c47dd5faa8e38c690ae0c458a99f593e177f5a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Apr 07 12:57:30 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 12:57:30 2026 -0400"
      },
      "message": "chore: Bump google.golang.org/grpc from 1.79.3 to 1.80.0 (#751)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.79.3 to 1.80.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.80.0\u003c/h2\u003e\n\u003ch1\u003eBehavior Changes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ebalancer: log a warning if a balancer is registered with uppercase\nletters, as balancer names should be lowercase. In a future release,\nbalancer names will be treated as case-insensitive; see \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/5288\"\u003e#5288\u003c/a\u003e\nfor details. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8837\"\u003e#8837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: update resource error handling and re-resolution logic (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8907\"\u003e#8907\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eRe-resolve all \u003ccode\u003eLOGICAL_DNS\u003c/code\u003e clusters simultaneously when\nre-resolution is requested.\u003c/li\u003e\n\u003cli\u003eFail all in-flight RPCs immediately upon receipt of listener or\nroute resource errors, instead of allowing them to complete.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003exds: support the LB policy configured in \u003ccode\u003eLOGICAL_DNS\u003c/code\u003e\ncluster resources instead of defaulting to \u003ccode\u003epick_first\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8733\"\u003e#8733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecredentials/tls: perform per-RPC authority validation against the\nleaf certificate instead of the entire peer certificate chain. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8831\"\u003e#8831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: enabling A76 ring hash endpoint keys no longer causes EDS\nresources with invalid proxy metadata to be NACKed when HTTP CONNECT\n(gRFC A86) is disabled. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8875\"\u003e#8875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: validate that the sum of endpoint weights in a locality does\nnot exceed the maximum \u003ccode\u003euint32\u003c/code\u003e value. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8899\"\u003e#8899\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/RAVEYUS\"\u003e\u003ccode\u003e@​RAVEYUS\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003exds: fix incorrect proto field access in the weighted round robin\n(WRR) configuration where \u003ccode\u003eblackout_period\u003c/code\u003e was used instead\nof \u003ccode\u003eweight_expiration_period\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8915\"\u003e#8915\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/gregbarasch\"\u003e\u003ccode\u003e@​gregbarasch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003exds/rbac: handle addresses with ports in IP matchers. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8990\"\u003e#8990\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew Features\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eringhash: enable gRFC A76 (endpoint hash keys and request hash\nheaders) by default. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8922\"\u003e#8922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePerformance Improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ecredentials/alts: pool write buffers to reduce memory allocations\nand usage. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8919\"\u003e#8919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egrpc: enable the use of pooled write buffers for buffering HTTP/2\nframe writes by default. This reduces memory usage when connections are\nidle. Use the \u003ca\nhref\u003d\"https://pkg.go.dev/google.golang.org/grpc#WithSharedWriteBuffer\"\u003eWithSharedWriteBuffer\u003c/a\u003e\ndial option or the \u003ca\nhref\u003d\"https://pkg.go.dev/google.golang.org/grpc#SharedWriteBuffer\"\u003eSharedWriteBuffer\u003c/a\u003e\nserver option to disable this feature. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8957\"\u003e#8957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds/priority: stop caching child LB policies removed from the\nconfiguration. This will help reduce memory and cpu usage when\nlocalities are constantly switching between priorities. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8997\"\u003e#8997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emem: add a faster tiered buffer pool; use the experimental \u003ca\nhref\u003d\"https://pkg.go.dev/google.golang.org/grpc/mem@master#NewBinaryTieredBufferPool\"\u003emem.NewBinaryTieredBufferPool\u003c/a\u003e\nfunction to create such pools. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8775\"\u003e#8775\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/397e45edaa68f8763773bbaaf539cf7894169cd2\"\u003e\u003ccode\u003e397e45e\u003c/code\u003e\u003c/a\u003e\nChange version to 1.80.0 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8948\"\u003e#8948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/64ebf0a600005838970e6ba1eb0a9e46e528ed73\"\u003e\u003ccode\u003e64ebf0a\u003c/code\u003e\u003c/a\u003e\nCherry-pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8997\"\u003e#8997\u003c/a\u003e to\nv1.80.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9027\"\u003e#9027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/e45ed241865981b6973cdd0dd69571456d570282\"\u003e\u003ccode\u003ee45ed24\u003c/code\u003e\u003c/a\u003e\nxds/rbac: add additional handling for addresses with ports (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8990\"\u003e#8990\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9022\"\u003e#9022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/c78d26e03e129f5cb357b757037fcded2333b74e\"\u003e\u003ccode\u003ec78d26e\u003c/code\u003e\u003c/a\u003e\nCherry-pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8957\"\u003e#8957\u003c/a\u003e to\nv1.80.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/9007\"\u003e#9007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/bd7cd3c1abbd27fb751275a58886444d52103482\"\u003e\u003ccode\u003ebd7cd3c\u003c/code\u003e\u003c/a\u003e\ngrpc: enforce strict path checking for incoming requests on the server\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8987\"\u003e#8987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/b6597b3d328c1ed6b003f9a23b942af7148352ca\"\u003e\u003ccode\u003eb6597b3\u003c/code\u003e\u003c/a\u003e\nxds/clusterimpl: use xdsConfig for updates and remove redundant fields\nfrom L...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/1d4fa8a7b772553e82137b059ad4a8f632a1c522\"\u003e\u003ccode\u003e1d4fa8a\u003c/code\u003e\u003c/a\u003e\nxds: change cdsbalancer to use update from dependency manager (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8907\"\u003e#8907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/8f47d364511c8eb0517b47e1a39f13a1370c6a10\"\u003e\u003ccode\u003e8f47d36\u003c/code\u003e\u003c/a\u003e\nattributes: Replace internal map with linked list (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8933\"\u003e#8933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/22e1ee8085952b4bdadf2928c187d665f6daff99\"\u003e\u003ccode\u003e22e1ee8\u003c/code\u003e\u003c/a\u003e\nxds: add panic recovery in xdsclient resource unmarshalling. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8895\"\u003e#8895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/7136e99ee323c26984174eb3cec85c201fef9946\"\u003e\u003ccode\u003e7136e99\u003c/code\u003e\u003c/a\u003e\ncredentials/alts: Pool write buffers (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8919\"\u003e#8919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.79.3...v1.80.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.79.3\u0026new-version\u003d1.80.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "20c47dd5faa8e38c690ae0c458a99f593e177f5a",
      "tree": "5d6dfc8cbd47f51b380da2c2505b9a5fdbd72b9a",
      "parents": [
        "3af6b3984fde2bfb18de5c2fd6eeacd11c613bff"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Apr 07 12:55:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 12:55:51 2026 -0400"
      },
      "message": "chore: Bump docker/login-action from 4.0.0 to 4.1.0 (#750)\n\nBumps [docker/login-action](https://github.com/docker/login-action) from\n4.0.0 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/docker/login-action/releases\"\u003edocker/login-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix scoped Docker Hub cleanup path when registry is omitted by \u003ca\nhref\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/945\"\u003edocker/login-action#945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr\u003c/code\u003e and\n\u003ccode\u003e@​aws-sdk/client-ecr-public\u003c/code\u003e to 3.1020.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/930\"\u003edocker/login-action#930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.77.0 to 0.86.0 in\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/932\"\u003edocker/login-action#932\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/936\"\u003edocker/login-action#936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump brace-expansion from 1.1.12 to 1.1.13 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/952\"\u003edocker/login-action#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump fast-xml-parser from 5.3.4 to 5.3.6 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/942\"\u003edocker/login-action#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump flatted from 3.3.3 to 3.4.2 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/944\"\u003edocker/login-action#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump glob from 10.3.12 to 10.5.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/940\"\u003edocker/login-action#940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump handlebars from 4.7.8 to 4.7.9 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/949\"\u003edocker/login-action#949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump http-proxy-agent and https-proxy-agent to 8.0.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/937\"\u003edocker/login-action#937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump lodash from 4.17.23 to 4.18.1 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/958\"\u003edocker/login-action#958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump minimatch from 3.1.2 to 3.1.5 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/941\"\u003edocker/login-action#941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump picomatch from 4.0.3 to 4.0.4 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/948\"\u003edocker/login-action#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump undici from 6.23.0 to 6.24.1 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/938\"\u003edocker/login-action#938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v4.0.0...v4.1.0\"\u003ehttps://github.com/docker/login-action/compare/v4.0.0...v4.1.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\nhref\u003d\"https://github.com/docker/login-action/commit/4907a6ddec9925e35a0a9e82d7399ccc52663121\"\u003e\u003ccode\u003e4907a6d\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/930\"\u003e#930\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/aws-sdk-dependenc...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/1e233e691a8881d7f35ca7c2d5dfaaed80b39636\"\u003e\u003ccode\u003e1e233e6\u003c/code\u003e\u003c/a\u003e\nchore: update generated content\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/6c24ead68057f18c30c808a431f0b85dc25663cb\"\u003e\u003ccode\u003e6c24ead\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump the aws-sdk-dependencies group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/ee034d70944e3546349cd24295914f139342f1e6\"\u003e\u003ccode\u003eee034d7\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/958\"\u003e#958\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/lodash-4.18.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/1527209db9734bd2352a2dc1a63d79c9aa5358bb\"\u003e\u003ccode\u003e1527209\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/937\"\u003e#937\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/proxy-agent-depen...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/d39362aba4d72f8d9d93e0962119840690133e1b\"\u003e\u003ccode\u003ed39362a\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump lodash from 4.17.23 to 4.18.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/a6f092b568105cbb6d9deb7e55e0a4c5c1025fce\"\u003e\u003ccode\u003ea6f092b\u003c/code\u003e\u003c/a\u003e\nchore: update generated content\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/60953f0bed2120ec69659d271fe18d34bc069779\"\u003e\u003ccode\u003e60953f0\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump the proxy-agent-dependencies group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/62c688590fb4ab6c6e89a217ced0a7b2ddcf1340\"\u003e\u003ccode\u003e62c6885\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/936\"\u003e#936\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/docker/actions-to...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/102c0e672992d2e992c89b6f4808d65a353b5a1a\"\u003e\u003ccode\u003e102c0e6\u003c/code\u003e\u003c/a\u003e\nchore: update generated content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/b45d80f862d83dbcd57f89517bcf500b2ab88fb2...4907a6ddec9925e35a0a9e82d7399ccc52663121\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003ddocker/login-action\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d4.0.0\u0026new-version\u003d4.1.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "3af6b3984fde2bfb18de5c2fd6eeacd11c613bff",
      "tree": "761ab7495ff2c96839fb78691ea1111d1242e733",
      "parents": [
        "5383f8f6d8fcf97f60a50097c61bcca739ca02d1"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Apr 07 12:55:28 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 12:55:28 2026 -0400"
      },
      "message": "fix: eliminate per-element heap allocs in is_in kernel for binary types (#745)\n\n## Summary\n\n- Add `BinaryMemoTable.ExistsDirect` that inlines the hash table probe\nloop, avoiding the closure in `HashTable.Lookup` that causes `val\n[]byte` to escape to the heap\n- Add `isInBinaryDirect` specialized kernel path that bypasses the\n`visitBinary` → `VisitBitBlocksShort` closure chain by directly\niterating with `OptionalBitBlockCounter`\n- Route `BinaryDataType` dispatch in `DispatchIsIn` to the new direct\npath (handles both int32 and int64 offsets)\n\n## Motivation\n\nThe `is_in` kernel for binary types allocated once per input element\nbecause the `[]byte` value escaped to the heap through a closure chain:\n\n1. `visitBinary` slices `rawBytes[offsets[pos]:offsets[pos+1]]` and\npasses to a callback\n2. The callback calls `BinaryMemoTable.Exists(v)`\n3. `Exists` calls `lookup` which creates a closure capturing `val`\n4. The closure is passed to `HashTable.Lookup`, causing escape analysis\nto move `val` to the heap\n\nCloses #736\n\n## Benchmark (100k rows, 10-element value set)\n\n| Metric | Before | After | Improvement |\n|--------|--------|-------|-------------|\n| ns/op | 4,133,679 | 923,565 | **4.5x faster** |\n| B/op | 2,435,327 | 33,092 | **73x less memory** |\n| allocs/op | 100,075 | 70 | **1,430x fewer allocs** |\n\nAll existing `TestIsInBinary` subtests pass (binary, large\\_binary,\nutf8, large\\_utf8 × all null matching behaviors)."
    },
    {
      "commit": "5383f8f6d8fcf97f60a50097c61bcca739ca02d1",
      "tree": "f37a3eaab17ef0f20b1a4d7925d1ea36eeead275",
      "parents": [
        "0f991db3f352751a141b6ec8bf10bd848fe3269f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 03 13:25:24 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:25:24 2026 -0400"
      },
      "message": "chore: Bump actions/setup-go from 6.3.0 to 6.4.0 (#737)\n\nBumps [actions/setup-go](https://github.com/actions/setup-go) from 6.3.0\nto 6.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/setup-go/releases\"\u003eactions/setup-go\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd go-download-base-url input for custom Go distributions by \u003ca\nhref\u003d\"https://github.com/gdams\"\u003e\u003ccode\u003e@​gdams\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/721\"\u003eactions/setup-go#721\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency update\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade minimatch from 3.1.2 to 3.1.5 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/727\"\u003eactions/setup-go#727\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation update\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRearrange README.md, add advanced-usage.md by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/724\"\u003eactions/setup-go#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Microsoft build of Go link by \u003ca\nhref\u003d\"https://github.com/gdams\"\u003e\u003ccode\u003e@​gdams\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/734\"\u003eactions/setup-go#734\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/gdams\"\u003e\u003ccode\u003e@​gdams\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/721\"\u003eactions/setup-go#721\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/setup-go/compare/v6...v6.4.0\"\u003ehttps://github.com/actions/setup-go/compare/v6...v6.4.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\nhref\u003d\"https://github.com/actions/setup-go/commit/4a3601121dd01d1626a1e23e37211e3254c1c06c\"\u003e\u003ccode\u003e4a36011\u003c/code\u003e\u003c/a\u003e\ndocs: fix Microsoft build of Go link (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/734\"\u003e#734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/8f19afcc704763637be6b1718da0af52ca05785d\"\u003e\u003ccode\u003e8f19afc\u003c/code\u003e\u003c/a\u003e\nfeat: add go-download-base-url input for custom Go distributions (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/27fdb267c15a8835f1ead03dfa07f89be2bb741a\"\u003e\u003ccode\u003e27fdb26\u003c/code\u003e\u003c/a\u003e\nBump minimatch from 3.1.2 to 3.1.5 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/def8c394e3ad351a79bc93815e4a585520fe993b\"\u003e\u003ccode\u003edef8c39\u003c/code\u003e\u003c/a\u003e\nRearrange README.md, add advanced-usage.md (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/setup-go/compare/v6.3.0...v6.4.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "0f991db3f352751a141b6ec8bf10bd848fe3269f",
      "tree": "2ae05eeb6b69bdd9eaf97b6d64a8b2427afd7165",
      "parents": [
        "730f4ecc22ab80fd06b62f70308e2731970845dc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 03 13:25:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:25:10 2026 -0400"
      },
      "message": "chore: Bump github.com/klauspost/compress from 1.18.4 to 1.18.5 (#738)\n\nBumps\n[github.com/klauspost/compress](https://github.com/klauspost/compress)\nfrom 1.18.4 to 1.18.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/klauspost/compress/releases\"\u003egithub.com/klauspost/compress\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.18.5\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ezstd: Fix crash when changing encoder dictionary with same ID by \u003ca\nhref\u003d\"https://github.com/klauspost\"\u003e\u003ccode\u003e@​klauspost\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1135\"\u003eklauspost/compress#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ezstd: Default to full zero frames by \u003ca\nhref\u003d\"https://github.com/klauspost\"\u003e\u003ccode\u003e@​klauspost\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1134\"\u003eklauspost/compress#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eflate: Clean up histogram order by \u003ca\nhref\u003d\"https://github.com/klauspost\"\u003e\u003ccode\u003e@​klauspost\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/pull/1133\"\u003eklauspost/compress#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/klauspost/compress/compare/v1.18.4...v1.18.5\"\u003ehttps://github.com/klauspost/compress/compare/v1.18.4...v1.18.5\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\nhref\u003d\"https://github.com/klauspost/compress/commit/c5e0077f50a3268a27b02816adc48ebfb535c65e\"\u003e\u003ccode\u003ec5e0077\u003c/code\u003e\u003c/a\u003e\nzstd: Fix encoder changing dictionary with same ID (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/fd3f23e2d1d0fca18f38ee2dfedb73d0ca5b02e5\"\u003e\u003ccode\u003efd3f23e\u003c/code\u003e\u003c/a\u003e\nzstd: Default to full zero frames (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/8233c587ef6e7b0f5168bfc08e63ea37e97b2d36\"\u003e\u003ccode\u003e8233c58\u003c/code\u003e\u003c/a\u003e\nflate: Clean up histogram order (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/bcf0d1289c8df01178af919dd5d8ff83afaa5471\"\u003e\u003ccode\u003ebcf0d12\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump the github-actions group with 3 updates (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/cf758fe1c54e3049f302474d2a98afd3acc1a884\"\u003e\u003ccode\u003ecf758fe\u003c/code\u003e\u003c/a\u003e\nci: Upgrade Go versions, clean up (\u003ca\nhref\u003d\"https://redirect.github.com/klauspost/compress/issues/1130\"\u003e#1130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/klauspost/compress/commit/77cc5203de2eb0034a63eace182bb28aa869cb83\"\u003e\u003ccode\u003e77cc520\u003c/code\u003e\u003c/a\u003e\nAdd v1.18.4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/klauspost/compress/compare/v1.18.4...v1.18.5\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "730f4ecc22ab80fd06b62f70308e2731970845dc",
      "tree": "4c4a02df02035783865ebc8ac87b7a56c3a6fd9e",
      "parents": [
        "976dc1a5ab4cf7cb703ffc5f8b96eef27125c870"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 03 13:25:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:25:00 2026 -0400"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go/v7 from 7.5.1 to 7.6.0 (#739)\n\nBumps\n[github.com/substrait-io/substrait-go/v7](https://github.com/substrait-io/substrait-go)\nfrom 7.5.1 to 7.6.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/releases\"\u003egithub.com/substrait-io/substrait-go/v7\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.6.0 (2026-03-13)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade substrait to v0.84.0 (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/208\"\u003e#208\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/6c98a7bffc4ffd9b8074eaf2e39bb521e68fce34\"\u003e6c98a7b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd output schema validation (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/207\"\u003e#207\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/48bbdb43eeccc61c7adfecc3549a1b004fd52fd8\"\u003e48bbdb4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/48bbdb43eeccc61c7adfecc3549a1b004fd52fd8\"\u003e\u003ccode\u003e48bbdb4\u003c/code\u003e\u003c/a\u003e\nfeat: add output schema validation (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/207\"\u003e#207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/6c98a7bffc4ffd9b8074eaf2e39bb521e68fce34\"\u003e\u003ccode\u003e6c98a7b\u003c/code\u003e\u003c/a\u003e\nfeat: upgrade substrait to v0.84.0 (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/compare/v7.5.1...v7.6.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "976dc1a5ab4cf7cb703ffc5f8b96eef27125c870",
      "tree": "74f46ca59fdbadf977753c381c33e989cfefdee4",
      "parents": [
        "8af513cb71e2412ec527fdb0627351ef89ca38a3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 03 13:24:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:24:47 2026 -0400"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.47.0 to 1.48.0 (#740)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.47.0\nto 1.48.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md\"\u003emodernc.org/sqlite\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e2026-03-27 v1.48.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e_timezone\u003c/code\u003e DSN query parameter to apply IANA\ntimezones (e.g., \u0026quot;America/New_York\u0026quot;) to both reads and\nwrites.\u003c/li\u003e\n\u003cli\u003eWrites will convert \u003ccode\u003etime.Time\u003c/code\u003e values to the target\ntimezone before formatting as a string.\u003c/li\u003e\n\u003cli\u003eReads will interpret timezone-less strings as being in the target\ntimezone.\u003c/li\u003e\n\u003cli\u003eDoes not impact \u003ccode\u003e_inttotime\u003c/code\u003e integer values, which will\nalways safely evaluate as UTC.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003e_time_format\u003ddatetime\u003c/code\u003e URI parameter to\nformat \u003ccode\u003etime.Time\u003c/code\u003e values identically to SQLite\u0027s native\n\u003ccode\u003edatetime()\u003c/code\u003e function and \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e\n(\u003ccode\u003eYYYY-MM-DD HH:MM:SS\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/94\"\u003e#94\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/94\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/94\u003c/a\u003e)\nand [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/95\"\u003e#95\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/95\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/95\u003c/a\u003e),\nthanks Josh Bleecher Snyder!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-03-17 v1.47.0: Add CGO-free version of the vector extensions\nfrom \u003ca\nhref\u003d\"https://github.com/asg017/sqlite-vec\"\u003ehttps://github.com/asg017/sqlite-vec\u003c/a\u003e.\nSee \u003ccode\u003evec_test.go\u003c/code\u003e for example usage. From the GitHub project\npage:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImportant:\u003c/strong\u003e sqlite-vec is a pre-v1, so expect\nbreaking changes!\u003c/li\u003e\n\u003cli\u003eStore and query float, int8, and binary vectors in vec0 virtual\ntables\u003c/li\u003e\n\u003cli\u003eWritten in pure C, no dependencies, runs anywhere SQLite runs\n(Linux/MacOS/Windows, in the browser with WASM, Raspberry Pis,\netc.)\u003c/li\u003e\n\u003cli\u003eStore non-vector data in metadata, auxiliary, or partition key\ncolumns\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/93\"\u003e#93\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/93\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/93\u003c/a\u003e),\nthanks Zhenghao Zhang!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-03-16 v1.46.2: Upgrade to \u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_51_3.html\"\u003eSQLite 3.51.3\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-17 v1.46.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure connection state is reset if Tx.Commit fails. Previously,\nerrors like SQLITE_BUSY during COMMIT could leave the underlying\nconnection inside a transaction, causing errors when the connection was\nreused by the database/sql pool. The driver now detects this state and\nforces a rollback internally.\u003c/li\u003e\n\u003cli\u003eFixes [GitHub issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/2\"\u003e#2\u003c/a\u003e](\u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/issues/2\"\u003emodernc-org/sqlite#2\u003c/a\u003e),\nthanks Edoardo Spadolini!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-17 v1.46.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable ColumnTypeScanType to report time.Time instead of string for\nTEXT columns declared as DATE, DATETIME, TIME, or TIMESTAMP via a new\n\u003ccode\u003e_texttotime\u003c/code\u003e URI parameter.\u003c/li\u003e\n\u003cli\u003eSee [GitHub pull request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/1\"\u003e#1\u003c/a\u003e](\u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/pull/1\"\u003emodernc-org/sqlite#1\u003c/a\u003e),\nthanks devhaozi!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-09  v1.45.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce vtab subpackage (modernc.org/sqlite/vtab) exposing Module,\nTable, Cursor, and IndexInfo API for Go virtual tables.\u003c/li\u003e\n\u003cli\u003eWire vtab registration into the driver: vtab.RegisterModule installs\nmodules globally and each new connection calls\nsqlite3_create_module_v2.\u003c/li\u003e\n\u003cli\u003eImplement vtab trampolines for\nxCreate/xConnect/xBestIndex/xDisconnect/xDestroy/xOpen/xClose/xFilter/xNext/xEof/xColumn/xRowid.\u003c/li\u003e\n\u003cli\u003eMap SQLite’s sqlite3_index_info into vtab.IndexInfo, including\nconstraints, ORDER BY terms, and constraint usage (ArgIndex → xFilter\nargv[]).\u003c/li\u003e\n\u003cli\u003eAdd an in‑repo dummy vtab module and test (module_test.go) that\nvalidates registration, basic scanning, and constraint visibility.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/90\"\u003e#90\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/90\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/90\u003c/a\u003e),\nthanks Adrian Witas!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-19 v1.44.3: Resolves [GitLab issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/243\"\u003e#243\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/issues/243\"\u003ehttps://gitlab.com/cznic/sqlite/-/issues/243\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-18 v1.44.2: Upgrade to \u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_51_2.html\"\u003eSQLite 3.51.2\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-13 v1.44.0: Upgrade to SQLite 3.51.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-10-10 v1.39.1: Upgrade to SQLite 3.50.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-06-09 v1.38.0: Upgrade to SQLite 3.50.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-02-26 v1.36.0: Upgrade to SQLite 3.49.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-11-16 v1.34.0: Implement ResetSession and IsValid methods in\nconnection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-07-22 v1.31.0: Support windows/386.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/19b842914a3fe3f8b7ed5ded2db60eb3382659c8\"\u003e\u003ccode\u003e19b8429\u003c/code\u003e\u003c/a\u003e\nupdate {CHANGELOG,README}.md\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/78ddab8b009207847528a6e5258a9029c2954921\"\u003e\u003ccode\u003e78ddab8\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027datetime-format\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/2e045237da7f22acfda8f8d874be3c90d9793239\"\u003e\u003ccode\u003e2e04523\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027add-timezone\u0027 into \u0027master\u0027\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/77706c148d6c8ea5fc9eced99c9287471eb0f98b\"\u003e\u003ccode\u003e77706c1\u003c/code\u003e\u003c/a\u003e\nadd _time_format\u003ddatetime support\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/18958226a30e8abc2312d4ec90ec8cf50ad20a59\"\u003e\u003ccode\u003e1895822\u003c/code\u003e\u003c/a\u003e\nadd _timezone DSN query parameter\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/c2c6272674caf9ae0acdc420ad5a33b6cb80ee75\"\u003e\u003ccode\u003ec2c6272\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: fix formatting\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/2942e4623f7f52b70c33bba6ae5669adfa8d68d6\"\u003e\u003ccode\u003e2942e46\u003c/code\u003e\u003c/a\u003e\nrestore logo.png\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.47.0...v1.48.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\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": "8af513cb71e2412ec527fdb0627351ef89ca38a3",
      "tree": "d8e0185ff6817fa666be9164b1bbf67f9a0e2413",
      "parents": [
        "8c6539f135a983cb7929f3331aab28f2ac638af8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 03 13:24:34 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:24:34 2026 -0400"
      },
      "message": "chore: Bump github.com/goccy/go-json from 0.10.5 to 0.10.6 (#741)\n\nBumps [github.com/goccy/go-json](https://github.com/goccy/go-json) from\n0.10.5 to 0.10.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/goccy/go-json/releases\"\u003egithub.com/goccy/go-json\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.6\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: panic on embedded struct with recursive by \u003ca\nhref\u003d\"https://github.com/NgoKimPhu\"\u003e\u003ccode\u003e@​NgoKimPhu\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/goccy/go-json/pull/483\"\u003egoccy/go-json#483\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/NgoKimPhu\"\u003e\u003ccode\u003e@​NgoKimPhu\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/goccy/go-json/pull/483\"\u003egoccy/go-json#483\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/goccy/go-json/compare/v0.10.5...v0.10.6\"\u003ehttps://github.com/goccy/go-json/compare/v0.10.5...v0.10.6\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\nhref\u003d\"https://github.com/goccy/go-json/commit/e4877d51d546f8c67b1cd9b49ab002ba3af37785\"\u003e\u003ccode\u003ee4877d5\u003c/code\u003e\u003c/a\u003e\nfix: panic on embedded struct with recursive (\u003ca\nhref\u003d\"https://redirect.github.com/goccy/go-json/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/goccy/go-json/compare/v0.10.5...v0.10.6\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "8c6539f135a983cb7929f3331aab28f2ac638af8",
      "tree": "d1b1fd77d8fbcd98666db2f81e4419b344c8b1dc",
      "parents": [
        "f4830238118f588802f5af9b999d9406224a8303"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Apr 02 15:06:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 15:06:23 2026 -0400"
      },
      "message": "perf(parquet): vectorize ARM64 NEON bool unpacking for ~4x throughput (#731)\n\n### Rationale for this change\nImprove the bytes_to_bools implementation on ARM64 NEON with actual SIMD\ninstructions. The result is a ~4x throughput improvement for ARM64\n\n### What changes are included in this PR?\nRewrote the assembly using `DUP` + `CMTST` NEON pattern.\n\n1. ld1r {v2.8b}, [ptr] — broadcast one input byte across all 8 SIMD\nlanes\n2. cmtst v2.8b, v2.8b, v0.8b — parallel bit-test against mask\n[1,2,4,8,16,32,64,128]\n3. and v2.8b, v2.8b, v1.8b — normalize 0xFF → 0x01 for valid Go bool\nvalues\n4. st1 {v2.8b}, [ptr], #8 — store 8 output bools at once with\npost-increment\nA scalar tail handles the last few bits when fewer than 8 output slots\nremain.\n\n### Are these changes tested?\nAll existing tests continue to pass, new tests added to further validate\n\n- Added TestBytesToBoolsCorrectness — validates every bit position\nagainst the reference Go implementation for sizes 1–1024 bytes\n- Added TestBytesToBoolsOutlenSmaller — edge case where output is\nsmaller than 8× input\n- Added BenchmarkBytesToBools — parametric benchmark at 64B, 256B, 1KB,\n4KB, 16KB\n\n### Are there any user-facing changes?\nNo, this is purely a performance optimization:\n\n*Benchmark Results (Apple M4, darwin/arm64)*\n```\n                               baseline (scalar)   optimized (NEON)\n                                   sec/op              sec/op    vs base\n\nBytesToBools/bytes\u003d64-10           82.69n              21.57n     -73.91% (p\u003d0.008)\nBytesToBools/bytes\u003d256-10         333.60n              86.43n     -74.09% (p\u003d0.008)\nBytesToBools/bytes\u003d1K-10           1.322µ              327.4n     -75.23% (p\u003d0.008)\nBytesToBools/bytes\u003d4K-10           5.293µ              1.297µ     -75.50% (p\u003d0.008)\nBytesToBools/bytes\u003d16K-10         21.343µ              5.184µ     -75.71% (p\u003d0.008)\ngeomean                            1.327µ              333.1n     -74.90%\n```\n\nThroughput: 735 MiB/s → 2,863 MiB/s (+298%)\nZero allocations in both versions. All results statistically\nsignificant.\n\n---------\n\nCo-authored-by: Matt Topol \u003czeroshade@Matts-Mac-mini.local\u003e"
    },
    {
      "commit": "f4830238118f588802f5af9b999d9406224a8303",
      "tree": "72578415ad94026e8116366fa8907c8db73c1bae",
      "parents": [
        "abb91cf9aedde397a21f810680eb57627af225b3"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Apr 02 14:47:56 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 14:47:56 2026 -0400"
      },
      "message": "fix(parquet): eagerly release adaptive bloom filter candidate buffers + skip flaky flight tests in CI (#743)\n\n## Summary\n\n- Eagerly release adaptive bloom filter candidate data buffers when they\nare pruned during `InsertHash`/`InsertBulk` and after `WriteTo`\ncompletes, instead of relying solely on GC cleanup/finalizer.\n- Skip flaky `arrow/flight` and `arrow/flight/flightsql` tests in CI\nusing `-short` flag while keeping them runnable locally.\n\n## Bloom Filter Fix\n\nThe `adaptiveBlockSplitBloomFilter` creates candidate\n`blockSplitBloomFilter` objects whose data buffers are only freed by a\nGC cleanup (`runtime.AddCleanup` on Go 1.24+ / `runtime.SetFinalizer` on\nGo 1.23). In `TestEncryptedBloomFilters`, `TearDownTest` calls\n`runtime.GC()` twice, but that isn\u0027t always sufficient for the full\nreachability chain (adaptive filter → candidates → bloom filters →\ncleanup) to be collected and run before the\n`CheckedAllocator.AssertSize(0)` assertion.\n\nThis change releases candidate buffers eagerly at two points:\n1. **`InsertHash`/`InsertBulk`** – when `slices.DeleteFunc` prunes\ncandidates that exceeded their NDV threshold.\n2. **`WriteTo`** – releases all remaining candidate buffers after\nwriting the optimal one.\n\nThe existing `addCleanup` on each `blockSplitBloomFilter` remains as a\nsafety net. A second `Release()` from the eventual GC cleanup is a safe\nno-op since the buffer\u0027s internal slice is already nil after the first\ncall.\n\n## Flaky Flight Tests\n\nThe `arrow/flight` and `arrow/flight/flightsql` packages have gRPC\nserver/client tests with inherent timing races that spuriously fail\nunder `-race`/`-asan` in CI:\n- `TestCookiesClone` – cookie propagation race\n- `TestClientStreamMiddleware` – gRPC header metadata race\n- `TestSetRemoveSessionOptions` – session option propagation race\n- `TestStatelessServerSessionCookies` – session cookie race\n\nAdded `TestMain` to both packages that skips all tests when `-short` is\nset, and added `-short` to the arrow `go test` invocations in\n`ci/scripts/test.sh`. Parquet test invocations are unaffected.\n\n**CI**: `go test -short ./...` → flight/flightsql tests skipped\n**Local**: `go test ./...` → all tests run normally"
    },
    {
      "commit": "abb91cf9aedde397a21f810680eb57627af225b3",
      "tree": "0cafb3a589e2c28ef5575d779cc35f165c57d550",
      "parents": [
        "24e89846346b7f667db94ecba41caece4e49e26b"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Sun Mar 29 13:54:35 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 13:54:35 2026 -0400"
      },
      "message": "perf(parquet): eliminate per-value allocation in delta bit-pack decoder (#730)\n\n### Rationale for this change\n\nThe delta bit-pack decoder\u0027s `unpackNextMini()` method calls\n`BitReader.GetValue()` once per value in each miniblock. `GetValue()`\nallocates a fresh `[]uint64` slice on every call.\n\nFor the default block size of 128 with 4 miniblocks of 32 values each,\nthis causes ~128 heap allocations per block, or ~2048 allocations per\n1024-value page. This allocation pressure dominates the decoder\u0027s\nruntime and generates significant GC load.\n\n### What changes are included in this PR?\n\n1. **Reused buffer**: Added a `deltaBuf []uint64` field to the decoder\nstruct that is allocated once and reused across calls, eliminating the\nper-value allocations.\n2. **Width\u003d0 fast-path**: When `deltaBitWidth \u003d\u003d 0` (all deltas are\nidentical, common for sequential or constant data), skip the bit reading\nentirely and directly accumulate `minDelta`\n\n### Are these changes tested?\nYes, the existing test suite passes along with all encoding and property\ntests\n\n### Are there any user-facing changes?\nNo user-facing API changes, purely an internal optimization\n\n*Benchmark Results (darwin/arm64, Apple M4, Go 1.25)*\n\n**Baseline (main):**\n```\ngoos: darwin\ngoarch: arm64\npkg: github.com/apache/arrow-go/v18/parquet/internal/encoding\ncpu: Apple M4\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     101904   11393 ns/op    359.52 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     107488   11192 ns/op    365.97 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     107224   11338 ns/op    361.26 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     105836   11338 ns/op    361.26 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     105051   11167 ns/op    366.78 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      1846  653185 ns/op    401.33 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      1914  631663 ns/op    415.01 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      1912  630612 ns/op    415.70 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      1916  633029 ns/op    414.11 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      1939  640181 ns/op    409.48 MB/s   4912 B/op   2 allocs/op\n```\n\n**Optimized (this PR):**\n```\ngoos: darwin\ngoarch: arm64\npkg: github.com/apache/arrow-go/v18/parquet/internal/encoding\ncpu: Apple M4\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     435112    2768 ns/op   1479.84 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     434569    2768 ns/op   1479.95 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     434536    2772 ns/op   1477.51 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     411572    2859 ns/op   1432.55 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_1024-10     419126    2862 ns/op   1431.03 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      8756  136708 ns/op   1917.55 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      8850  136880 ns/op   1915.14 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      8913  136911 ns/op   1914.70 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      8158  145797 ns/op   1798.01 MB/s   4912 B/op   2 allocs/op\nBenchmarkDeltaBinaryPackedDecodingInt32/len_65536-10      8281  142564 ns/op   1838.79 MB/s   4912 B/op   2 allocs/op\n```\n\n**Summary:**\n\n| Size | Baseline (ns/op) | Optimized (ns/op) | Speedup | Baseline\n(MB/s) | Optimized (MB/s) |\n\n|------|-------------------|-------------------|---------|-----------------|------------------|\n| 1024 | 11,286 | 2,806 | **4.0x** | 363 | 1,460 |\n| 65536 | 637,734 | 139,772 | **4.6x** | 411 | 1,877 |\n\n* ~4-4.6x faster decoding\n* Zero additional allocations (2 allocs/op unchanged — those are from\ntest setup)\n* Encoding performance is unchanged (encoder path not modified)\n\nCo-authored-by: Matt Topol \u003czeroshade@Matts-Mac-mini.local\u003e"
    },
    {
      "commit": "24e89846346b7f667db94ecba41caece4e49e26b",
      "tree": "9e641c8fb9849d8ba975ad94287c4ff0da4ebd34",
      "parents": [
        "f3677ae347146da54a11eda3666b680b70d20c8f"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Sun Mar 29 13:54:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 13:54:21 2026 -0400"
      },
      "message": "perf(parquet/internal/encoding): vectorize amd64 bool unpack (#735)\n\n### Rationale for this change\nThe SSE4 and AVX2 implementations of _bytes_to_bools in\nparquet/internal/utils/ contain zero SIMD instructions. They completely\nfailed to auto-vectorize the C loop, producing purely scalar code\n(movzx/shr/and/mov one bit at a time). The SSE4 and AVX2 .s files are\nbyte-for-byte identical — just scalar code with different labels.\n\nThis is the amd64 counterpart to #731 which fixed the same issue on\nARM64 NEON.\n\n### What changes are included in this PR?\n\nRewrote both assembly implementations with actual SIMD vectorized code.\nSSE4 (unpack_bool_sse4_amd64.s) — processes 2 input bytes → 16 output\nbools per iteration:\n\n1. MOVWLZX + MOVD — load 2 input bytes into XMM\n2. PSHUFB — broadcast byte 0 → lanes 0-7, byte 1 → lanes 8-15\n3. PAND + PCMPEQB — parallel bit-test against mask\n[1,2,4,8,16,32,64,128] × 2\n4. PAND — normalize 0xFF → 0x01 for valid Go bool values\n5. MOVOU — store 16 output bools at once\n\nAVX2 (unpack_bool_avx2_amd64.s) — processes 4 input bytes → 32 output\nbools per iteration:\n\n1. MOVL + MOVD + VPBROADCASTD — load and broadcast 4 bytes across all 32\nYMM lanes\n2. VPSHUFB — distribute each byte to its 8 corresponding lanes\n3. VPAND + VPCMPEQB + VPAND — parallel bit-test + normalize to 0/1\n4. VMOVDQU — store 32 output bools at once\n5. VZEROUPPER — avoid SSE-AVX transition penalties on return\n\nBoth include scalar tails for when fewer than vector-width output slots\nremain.\n\n### Are these changes tested?\n\nAll existing tests continue to pass, new tests added to further\nvalidate:\n\n- TestBytesToBoolsCorrectness — validates every bit position against the\nreference Go implementation for sizes 1–1024 bytes\n- TestBytesToBoolsOutlenSmaller — edge case where output is smaller than\n8× input\n- BenchmarkBytesToBools — parametric benchmark at 64B, 256B, 1KB, 4KB,\n16KB\n\n\n### Are there any user-facing changes?\nNo, this is purely a performance optimization:\n\n*Benchmark Results (AMD Ryzen 7 7800X3D, linux/amd64)*\n\n```\n                               baseline (scalar)   optimized (AVX2)\n                                   sec/op              sec/op       vs base\nBytesToBools/bytes\u003d64-16           146.0n              15.60n     -89.32% (p\u003d0.008)\nBytesToBools/bytes\u003d256-16          562.3n              63.36n     -88.73% (p\u003d0.008)\nBytesToBools/bytes\u003d1K-16           2.247µ              253.9n     -88.70% (p\u003d0.008)\nBytesToBools/bytes\u003d4K-16           8.970µ              1.018µ     -88.65% (p\u003d0.008)\nBytesToBools/bytes\u003d16K-16         35.798µ              4.044µ     -88.70% (p\u003d0.008)\ngeomean                            2.262µ              252.8n     -88.82%\n```\n\nThroughput: 432 MiB/s → 3,853 MiB/s (+795%)\nZero allocations in both versions. All results statistically\nsignificant."
    },
    {
      "commit": "f3677ae347146da54a11eda3666b680b70d20c8f",
      "tree": "de90127912ccb657d8c54a6157bdde0e77ec9cd8",
      "parents": [
        "168abc58a342ad78a0deca0a9b6c42cc0dedb351"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Mar 27 16:17:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 16:17:13 2026 -0400"
      },
      "message": "ci: fix tinygo build with maphash (#734)\n\n### Rationale for this change\ntinygo doesn\u0027t meet the `hash/maphash` abi properly and so doesn\u0027t build\ncorrectly with go1.25\n\n### What changes are included in this PR?\nCreate an implementation that works for tinygo and convert the rest of\nthe code to point to a conditionally compiled maphash which either uses\nthe stdlib or an implementation that works on tinygo depending on what\nis being built."
    },
    {
      "commit": "168abc58a342ad78a0deca0a9b6c42cc0dedb351",
      "tree": "509c54df8919c647f78b090b24ff48ecbaa305a5",
      "parents": [
        "d5f0c34e6e97044703be3523f29efedfd0207099"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Mar 27 13:40:35 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 13:40:35 2026 -0400"
      },
      "message": "ci: fix mingw GO_VERSION (#733)\n\n### Rationale for this change\nMingW WIndows build is failing\n\n### What changes are included in this PR?\nfix CI steps that sets the GO_VERSION from `.env` into the environment\n\n\n### Are there any user-facing changes?\nCI only"
    },
    {
      "commit": "d5f0c34e6e97044703be3523f29efedfd0207099",
      "tree": "2cb78c493b18160598b49e01d4f9d0e167032c90",
      "parents": [
        "f831c1ae0720e45c2598daba0f69723c9791ad95"
      ],
      "author": {
        "name": "Alex Normand",
        "email": "alex.normand@datadoghq.com",
        "time": "Thu Mar 26 08:21:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 11:21:12 2026 -0400"
      },
      "message": "fix(parquet/pqarrow): return an error on pqarrow write calls if the writer is already closed (#728)\n\n### Rationale for this change\nCurrently, the pqarrow FileWriter ignores the `closed` status of the\nFileWriter and write calls are attempted which can lead to surprising\nand hard to understand errors as noted in issue #727 . Returning a clear\nerror stating the `FileWriter` is already closed should help nudge users\nabout their misuse of the API (or provide an indicator of a potential\nrace condition between invocations of Write calls and Close). .\n\n### What changes are included in this PR?\nAdds a check on all `FileWriter` write methods to validate is a\n`FileWriter` is already closed to return a clear error and short-circuit\nthe write execution.\n\n### Are these changes tested?\nYes, a unit tested was added to validate the behavior.\n\n### Are there any user-facing changes?\n\nresolves #727"
    },
    {
      "commit": "f831c1ae0720e45c2598daba0f69723c9791ad95",
      "tree": "1ebdf1e39d2277193b63d21cbc9218e3f93df008",
      "parents": [
        "bede4c2242796026a8054d4057fe9d398b20be34"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Mar 26 14:12:38 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 01:12:38 2026 -0400"
      },
      "message": "chore: pin docker/login-action for ASF allowlist (#729)\n\n### Rationale for this change\n\nCI is failing\nExample: https://github.com/apache/arrow-go/actions/runs/23573127399\n\n### What changes are included in this PR?\n\nPin the actions so they match the ASF allowlist\n(https://github.com/apache/infrastructure-actions)\n\n### Are these changes tested?\n\nN/A\n\n### Are there any user-facing changes?\n\nNo"
    },
    {
      "commit": "bede4c2242796026a8054d4057fe9d398b20be34",
      "tree": "277cfd79712fb9e70b71d02804a38a1b1ee11b57",
      "parents": [
        "0ff23957fdc54a84e62b16ab3ee5d6c27b7b9b6b"
      ],
      "author": {
        "name": "wwarner-inf",
        "email": "148783220+wwarner-inf@users.noreply.github.com",
        "time": "Tue Mar 24 23:27:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 23:27:42 2026 -0400"
      },
      "message": "Test and fix for bug in selectMapimpl (#726)\n\n### Rationale for this change\n\nMaps of Nullables produce corrupted parquet.\n\n### What changes are included in this PR?\n\nThe existing tests for `TakeKernelMap` are made runnable by correcting\nthe test json to be suitable input for `array.FromJSON()`. Added a\ncondition in `assertTakeArrays()` that checks that the data type has\nbeen preserved. Using the C++ implementation as a reference.\n\n### Are these changes tested?\nYes, but not deeply.\n\n### Are there any user-facing changes?\nThe api is unchanged, however parquet output will change slightly for\nthose files containing maps with optional values."
    },
    {
      "commit": "0ff23957fdc54a84e62b16ab3ee5d6c27b7b9b6b",
      "tree": "a0ca672bf73c3b0aa12dbe6fcbb201677d01eaca",
      "parents": [
        "68b06fa23add4921f89bb809db6b045e5949ebd8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Mar 24 12:30:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 12:30:41 2026 -0400"
      },
      "message": "chore: Bump golang.org/x/tools from 0.42.0 to 0.43.0 (#719)\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.42.0\nto 0.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/24a8e95f9d7ae2696f66314da5e50c0d98ccaa90\"\u003e\u003ccode\u003e24a8e95\u003c/code\u003e\u003c/a\u003e\ngo.mod: update golang.org/x dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/3dd57fba1a6eed320cd9ea2b292cacdacda1e5e8\"\u003e\u003ccode\u003e3dd57fb\u003c/code\u003e\u003c/a\u003e\ngopls/internal/mcp: refactor unified diff generation\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/fcc014db2b644cc1e0a9d08157efab0156699ada\"\u003e\u003ccode\u003efcc014d\u003c/code\u003e\u003c/a\u003e\ncmd/digraph: fix package doc\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/39f0f5c6d34afcb5664463f6e97c076187a305ea\"\u003e\u003ccode\u003e39f0f5c\u003c/code\u003e\u003c/a\u003e\ncmd/stress: add -failfast flag\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/063c2644e296d3154b4dcbfc15ebeb09e6f07290\"\u003e\u003ccode\u003e063c264\u003c/code\u003e\u003c/a\u003e\ngopls/test/integration/misc: add diagnostics to flaky test\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/deb6130cda665525d826291d591e988ace74f447\"\u003e\u003ccode\u003edeb6130\u003c/code\u003e\u003c/a\u003e\ngopls/internal/golang: fix hover panic in raw strings with CRLF\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/5f1186b97512a314f8a35509072d7657eaf7c60a\"\u003e\u003ccode\u003e5f1186b\u003c/code\u003e\u003c/a\u003e\ngopls/internal/analysis/driverutil: remove unnecessary new imports\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/ff454944261ad40f98abfc097fae89272ce40935\"\u003e\u003ccode\u003eff45494\u003c/code\u003e\u003c/a\u003e\ngo/analysis: expose GoMod etc. to Pass.Module\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/62daff4834809b6cce693f6f0dff1c2722cb6328\"\u003e\u003ccode\u003e62daff4\u003c/code\u003e\u003c/a\u003e\ngo/analysis/passes/inline: fix panic in inlineAlias with instantiated\ngeneric...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/tools/commit/fcb6088b9059538dd6bcbd5238c10ffdc71700b5\"\u003e\u003ccode\u003efcb6088\u003c/code\u003e\u003c/a\u003e\nx/tools: delete obsolete code\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/golang/tools/compare/v0.42.0...v0.43.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgolang.org/x/tools\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.42.0\u0026new-version\u003d0.43.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "68b06fa23add4921f89bb809db6b045e5949ebd8",
      "tree": "66bb78bc16f9fb3ba014e2c591835cf4bd667274",
      "parents": [
        "99216eda8b86cfdfccc07c4dc8a8516efe1a3055"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 17:19:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 17:19:09 2026 -0400"
      },
      "message": "chore: Bump golang.org/x/sync from 0.19.0 to 0.20.0 (#694)\n\nBumps [golang.org/x/sync](https://github.com/golang/sync) from 0.19.0 to\n0.20.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sync/commit/ec11c4a93de22cde2abe2bf74d70791033c2464c\"\u003e\u003ccode\u003eec11c4a\u003c/code\u003e\u003c/a\u003e\nerrgroup: fix a typo in the documentation\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sync/commit/1a583072c11b16c643c8f6051ff1fab5a424d0a9\"\u003e\u003ccode\u003e1a58307\u003c/code\u003e\u003c/a\u003e\nall: modernize interface{} -\u0026gt; any\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golang/sync/commit/3172ca581eb96530283f713311f81df986c19932\"\u003e\u003ccode\u003e3172ca5\u003c/code\u003e\u003c/a\u003e\nall: upgrade go directive to at least 1.25.0 [generated]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/golang/sync/compare/v0.19.0...v0.20.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgolang.org/x/sync\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.19.0\u0026new-version\u003d0.20.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "99216eda8b86cfdfccc07c4dc8a8516efe1a3055",
      "tree": "144a463fc81b61d7d4f27e1fd4f25220c54a59c0",
      "parents": [
        "a1a63fe6a8c95aecbf6445e8ce54a2ea12a33189"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 16:33:56 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 16:33:56 2026 -0400"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.46.1 to 1.46.2 (#720)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.46.1\nto 1.46.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md\"\u003emodernc.org/sqlite\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e2026-03-16 v1.46.2: Upgrade to \u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_51_3.html\"\u003eSQLite 3.51.3\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-17 v1.46.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure connection state is reset if Tx.Commit fails. Previously,\nerrors like SQLITE_BUSY during COMMIT could leave the underlying\nconnection inside a transaction, causing errors when the connection was\nreused by the database/sql pool. The driver now detects this state and\nforces a rollback internally.\u003c/li\u003e\n\u003cli\u003eFixes [GitHub issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/2\"\u003e#2\u003c/a\u003e](\u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/issues/2\"\u003emodernc-org/sqlite#2\u003c/a\u003e),\nthanks Edoardo Spadolini!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-17 v1.46.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable ColumnTypeScanType to report time.Time instead of string for\nTEXT columns declared as DATE, DATETIME, TIME, or TIMESTAMP via a new\n\u003ccode\u003e_texttotime\u003c/code\u003e URI parameter.\u003c/li\u003e\n\u003cli\u003eSee [GitHub pull request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/1\"\u003e#1\u003c/a\u003e](\u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/pull/1\"\u003emodernc-org/sqlite#1\u003c/a\u003e),\nthanks devhaozi!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-09  v1.45.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce vtab subpackage (modernc.org/sqlite/vtab) exposing Module,\nTable, Cursor, and IndexInfo API for Go virtual tables.\u003c/li\u003e\n\u003cli\u003eWire vtab registration into the driver: vtab.RegisterModule installs\nmodules globally and each new connection calls\nsqlite3_create_module_v2.\u003c/li\u003e\n\u003cli\u003eImplement vtab trampolines for\nxCreate/xConnect/xBestIndex/xDisconnect/xDestroy/xOpen/xClose/xFilter/xNext/xEof/xColumn/xRowid.\u003c/li\u003e\n\u003cli\u003eMap SQLite’s sqlite3_index_info into vtab.IndexInfo, including\nconstraints, ORDER BY terms, and constraint usage (ArgIndex → xFilter\nargv[]).\u003c/li\u003e\n\u003cli\u003eAdd an in‑repo dummy vtab module and test (module_test.go) that\nvalidates registration, basic scanning, and constraint visibility.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/90\"\u003e#90\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/90\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/90\u003c/a\u003e),\nthanks Adrian Witas!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-19 v1.44.3: Resolves [GitLab issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/243\"\u003e#243\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/issues/243\"\u003ehttps://gitlab.com/cznic/sqlite/-/issues/243\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-18 v1.44.2: Upgrade to \u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_51_2.html\"\u003eSQLite 3.51.2\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-13 v1.44.0: Upgrade to SQLite 3.51.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-10-10 v1.39.1: Upgrade to SQLite 3.50.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-06-09 v1.38.0: Upgrade to SQLite 3.50.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-02-26 v1.36.0: Upgrade to SQLite 3.49.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-11-16 v1.34.0: Implement ResetSession and IsValid methods in\nconnection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-07-22 v1.31.0: Support windows/386.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-06-04 v1.30.0: Upgrade to SQLite 3.46.0, release notes at\n\u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_46_0.html\"\u003ehttps://sqlite.org/releaselog/3_46_0.html\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-02-13 v1.29.0: Upgrade to SQLite 3.45.1, release notes at\n\u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_45_1.html\"\u003ehttps://sqlite.org/releaselog/3_45_1.html\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-12-14: v1.28.0: Add (*Driver).RegisterConnectionHook,\nConnectionHookFn, ExecQuerierContext, RegisterConnectionHook.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-08-03 v1.25.0: enable SQLITE_ENABLE_DBSTAT_VTAB.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-07-11 v1.24.0: Add\n(*conn).{Serialize,Deserialize,NewBackup,NewRestore} methods, add Backup\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/d7c9932b311af8741de8fa03011de3704940d210\"\u003e\u003ccode\u003ed7c9932\u003c/code\u003e\u003c/a\u003e\nvendor libsqlite3/SQLite 3.51.3, updates \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/247\"\u003e#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.46.1...v1.46.2\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmodernc.org/sqlite\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.46.1\u0026new-version\u003d1.46.2)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "a1a63fe6a8c95aecbf6445e8ce54a2ea12a33189",
      "tree": "800cb663e8ff4b6caabb80e5a802fbf5b6a59559",
      "parents": [
        "d41e0b501985802c1c62443487a8488129fce29b"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Mar 20 10:30:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 20 10:30:48 2026 -0400"
      },
      "message": "chore: Update CI with Go 1.25/1.26 (#725)\n\n### Rationale for this change\nWe follow the standard go policy of supporting N - 1 where N is the\nlatest version of Go. Several dependencies have already updated to a\nminimum of go1.25 so we need to do the same.\n\n### What changes are included in this PR?\n- Update .env default Go version to 1.25.8\n- Update CI workflows to test Go 1.25 and 1.26, removing 1.24:\n  - test.yml: Update all test matrices (docker, macos, windows)\n  - benchmark.yml: Update to Go 1.26.1\n  - lint.yml: Update to Go 1.25\n\n### Are these changes tested?\nYes\n\n### Are there any user-facing changes?\nStarting with our next version, our go.mod will list go1.25 as our\nminimum"
    },
    {
      "commit": "d41e0b501985802c1c62443487a8488129fce29b",
      "tree": "f69ebf46b28ac12c4a05e773b123186d790e7fc6",
      "parents": [
        "b0287d702a9ea18ac5dfe51f27859483cf0d53d3"
      ],
      "author": {
        "name": "Harrison Crosse",
        "email": "harrison@crosse.dev",
        "time": "Thu Mar 19 14:18:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 14:18:13 2026 -0400"
      },
      "message": "fix(parquet): strip repetition_type from root SchemaElement during serialization (#723)\n\n### Rationale\n\nThe Parquet spec says the root of the schema doesn\u0027t have a\n`repetition_type`. arrow-go writes `REPEATED` for the root\n`SchemaElement` in the Thrift footer, which breaks interop with\nconsumers like Snowflake. #722 has the full writeup and\ncross-implementation comparison.\n\n### What changes are included in this PR?\n\n`ToThrift()` now nils out `RepetitionType` on the root element before\nreturning, stripping it from the serialized output. This matches how\nparquet-java and arrow-rs handle the root.\n\nThe in-memory representation and `WithRootRepetition` API are\nunaffected. `FromParquet` [already tolerates a nil root repetition\ntype](https://github.com/apache/arrow-go/blob/main/parquet/schema/schema.go#L78-L79),\nso this is backwards-compatible for both readers and writers.\n\n### Are these changes tested?\n\nUpdated the existing `TestNestedExample` and added\n`TestToThriftRootRepetitionStripped` which checks that the root\u0027s\n`repetition_type` is stripped for all three repetition variants and that\nnon-root elements keep theirs.\n\nCloses #722"
    },
    {
      "commit": "b0287d702a9ea18ac5dfe51f27859483cf0d53d3",
      "tree": "ff2552a27f9d040a2e32310402a67918ee9a0251",
      "parents": [
        "8f0ce8424dbed073993ecb67fba180cbcb5c13f3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 19 13:26:44 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 13:26:44 2026 -0400"
      },
      "message": "chore: Bump actions/download-artifact from 8.0.0 to 8.0.1 (#718)\n\nBumps\n[actions/download-artifact](https://github.com/actions/download-artifact)\nfrom 8.0.0 to 8.0.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/releases\"\u003eactions/download-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for CJK characters in the artifact name by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/471\"\u003eactions/download-artifact#471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a regression test for artifact name + content-type mismatches by\n\u003ca href\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/472\"\u003eactions/download-artifact#472\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/v8...v8.0.1\"\u003ehttps://github.com/actions/download-artifact/compare/v8...v8.0.1\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\nhref\u003d\"https://github.com/actions/download-artifact/commit/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c\"\u003e\u003ccode\u003e3e5f45b\u003c/code\u003e\u003c/a\u003e\nAdd regression tests for CJK characters (\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/e6d03f67377d4412c7aa56a8e2e4988e6ec479dd\"\u003e\u003ccode\u003ee6d03f6\u003c/code\u003e\u003c/a\u003e\nAdd a regression test for artifact name + content-type mismatches (\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/download-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d8.0.0\u0026new-version\u003d8.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "8f0ce8424dbed073993ecb67fba180cbcb5c13f3",
      "tree": "c5a48700c0c2b09d80e3e35a2d1c6883fe0dd113",
      "parents": [
        "9d024703ef0da6d41d599e373e75de3ffab4d022"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Mar 19 13:23:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 13:23:47 2026 -0400"
      },
      "message": "perf(parquet): optimize stats and bloom filters for bool columns (#715)\n\n### Rationale for this change\nThe initial bool optimization (#707) added direct bitmap encoding with\n`WriteBitmapBatch` and `WriteBitmapBatchSpaced` functions to reduce\nallocations during encoding and decoding. However, this didn\u0027t implement\nthe same optimization for statistics updated, bloom filter inserts or\nspaced encoding.\n\n### What changes are included in this PR?\n1. Update the bloom filter handling to compute hashes directly from\nbitmaps, including for spaced values and reuse slice allocation across\niterations.\n2. Update statistics handling to update min/max directly from bitmaps\nfor spaced and non-spaced scenarios.\n3. Update the encoder interface for the boolean encoder to have a\n`PutSpacedBitmap` and compress bitmaps with validity buffers.\n4. Add `writeBitmapValues` and `writeBitmapValuesSpaced` for the boolean\ncolumn writer with fallback to `[]bool` conversions if the encoder\ndoesn\u0027t implement the interface.\n\n### Are these changes tested?\nYes, unit tests are added for everything\n\n### Are there any user-facing changes?\nNo user-facing API changes, this is a pure internal optimization change\nfor boolean columns.\n\n*Benchmark Results*\n\n*Statistics Update*\n```\n  BEFORE (with bitmap → []bool conversion):\n  BenchmarkBooleanStatisticsWithConversion-16\n    153,398 ns/op    109,278 B/op (107 KB)    6 allocs/op\n\n  AFTER (direct bitmap operations):\n  BenchmarkBooleanStatisticsDirectBitmap-16\n        393 ns/op      2,698 B/op (2.6 KB)    5 allocs/op\n```\n\n* 390x faster \n* 97.5% less memory\n* 1 fewer allocation\n\n*Bloom filter hashing*\n```\n  BEFORE (with bitmap → []bool conversion):\n  BenchmarkBloomFilterHashingWithConversion-16\n    1,084,001 ns/op    3,309,593 B/op (3.23 MB)    3 allocs/op\n\n  AFTER (direct bitmap operations):\n  BenchmarkBloomFilterHashingDirectBitmap-16\n      448,882 ns/op      802,821 B/op (784 KB)    2 allocs/op\n```\n\n* 2.4x faster\n* 76% less memory\n* 2.5 MB saved/operation\n* 1 fewer allocation\n\n*Full write path (Stats + Bloom Filter)*\n```\n  BEFORE (with bitmap → []bool conversion):\n  BenchmarkFullWritePathWithConversion-16\n    1,211,525 ns/op    3,315,566 B/op (3.24 MB)    15 allocs/op\n\n  AFTER (direct bitmap operations):\n  BenchmarkFullWritePathDirectBitmap-16\n      580,934 ns/op      807,640 B/op (789 KB)    13 allocs/op\n```\n\n* 2.1x faster\n* 76% less memory\n* 2.5 MB saved per 100k bools written\n* 2 fewer allocations\n\n---------\n\nCo-authored-by: Matt \u003czero@gibson\u003e\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "9d024703ef0da6d41d599e373e75de3ffab4d022",
      "tree": "dd02f47195bac6af3190d2dcc8c9afff1c66c189",
      "parents": [
        "5a944224b27705e968a05062bea93b85da1e2e2f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 19 13:15:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 13:15:48 2026 -0400"
      },
      "message": "chore: Bump google.golang.org/grpc from 1.79.2 to 1.79.3 (#724)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.79.2 to 1.79.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.79.3\u003c/h2\u003e\n\u003ch1\u003eSecurity\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eserver: fix an authorization bypass where malformed :path headers\n(missing the leading slash) could bypass path-based restricted\n\u0026quot;deny\u0026quot; rules in interceptors like \u003ccode\u003egrpc/authz\u003c/code\u003e. Any\nrequest with a non-canonical path is now immediately rejected with an\n\u003ccode\u003eUnimplemented\u003c/code\u003e error. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8981\"\u003e#8981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/dda86dbd9cecb8b35b58c73d507d81d67761205f\"\u003e\u003ccode\u003edda86db\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.3 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8983\"\u003e#8983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/72186f163e75a065c39e6f7df9b6dea07fbdeff5\"\u003e\u003ccode\u003e72186f1\u003c/code\u003e\u003c/a\u003e\ngrpc: enforce strict path checking for incoming requests on the server\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8981\"\u003e#8981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/97ca3522b239edf6813e2b1106924e9d55e89d43\"\u003e\u003ccode\u003e97ca352\u003c/code\u003e\u003c/a\u003e\nChanging version to 1.79.3-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8954\"\u003e#8954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.79.2...v1.79.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.79.2\u0026new-version\u003d1.79.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/apache/arrow-go/network/alerts).\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": "5a944224b27705e968a05062bea93b85da1e2e2f",
      "tree": "fe787c6066d485212473d52a31f868348f92e95f",
      "parents": [
        "7ae2e33535c5181194c377f8a21629cf66b574ce"
      ],
      "author": {
        "name": "Dima Kuznetsov",
        "email": "dima@eon.io",
        "time": "Tue Mar 17 19:02:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 13:02:31 2026 -0400"
      },
      "message": "perf(parquet/compress): set zstd pool encoder concurrency to 1 (#717)\n\nThe zstdEncoderPool is used exclusively by EncodeAll(), which is a\nsingle-shot synchronous call that uses exactly one inner block encoder.\nHowever, zstd.NewWriter defaults concurrent to runtime.GOMAXPROCS,\npre-allocating that many inner block encoders — each with its own ~1 MiB\nhistory buffer (ensureHist). On a 10-core machine, each pooled Encoder\nallocates 10 inner encoders when only 1 is ever used by EncodeAll.\n\nWith WithEncoderConcurrency(1), each pooled encoder creates a single\ninner encoder, matching actual usage. The streaming Write/Close path is\nunaffected — it does not use the pool.\n\nBenchmark results (Apple M4 Pro, arm64, 256 KiB semi-random data):\n\nBenchmarkZstdPooledEncodeAll/Default-14 11000 B/op 5250 MB/s\nBenchmarkZstdPooledEncodeAll/Concurrency1-14 810 B/op 5500 MB/s\n\n14x less memory per operation, ~5% higher throughput from reduced GC\npressure.\n\nIn a parquet write workload (1 GiB Arrow data, ZSTD level 3), this\nreduced ensureHist allocations from 22 GiB to 7 GiB and madvise kernel\nCPU from 4.6s to 2.3s (10% wall-time improvement).\n\n### Rationale for this change\n\nHigh memory churn during parquet encoding\n\n### What changes are included in this PR?\n\nChange to zstd encoder concurrency, a benchmark to reproduce results.\n\n### Are these changes tested?\n\nYes\n\n### Are there any user-facing changes?\n\nNo"
    },
    {
      "commit": "7ae2e33535c5181194c377f8a21629cf66b574ce",
      "tree": "40c8e69706176280e5769f91d74cb77381533706",
      "parents": [
        "5bf10f2ff41895da8857c45d322347ec21000122"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "tserakhau@double.cloud",
        "time": "Sun Mar 15 23:52:16 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 15 18:52:16 2026 -0400"
      },
      "message": "fix(compute): fix data race and memory leak in concurrent is_in kernel (#712)\n\nby cleaning up SetLookupState via per-invocation ctx.State instead of\nshared kernel.Data\n\nfix: apache/iceberg-go/issues/489\n\n### Rationale for this change\n\nfix: apache/iceberg-go/issues/489 (flaky test in iceberg-go)\n\n### What changes are included in this PR?\n\nfix data race and memory leak in concurrent is_in kernel\n\n### Are these changes tested?\n\nyes, added a test to repro memory leak (3/10 runs fails)\n\n### Are there any user-facing changes?"
    },
    {
      "commit": "5bf10f2ff41895da8857c45d322347ec21000122",
      "tree": "2c477bd204ad2a83981f0294dd722976b304804c",
      "parents": [
        "fc20f37d89be6b81ae9dd8567e00ac6943671aec"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Sun Mar 15 15:25:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 15 15:25:41 2026 -0400"
      },
      "message": "perf(parquet/file): avoid double bool bitmap conversion (#707)\n\n### Rationale for this change\nBoolean columns currently get double converted when transferring between\nArrow and Parquet\n\n### What changes are included in this PR?\n\n**1. Arrow bitutil (`arrow/bitutil/bitmaps.go`)**\n- Added `AppendBitmap()` method to `BitmapWriter`\n- Directly copies bits from source bitmap using efficient `CopyBitmap()`\n\n**2. Parquet encoder (`parquet/internal/encoding/boolean_encoder.go`)**\n- Added `PutBitmap()` method to `PlainBooleanEncoder`\n- Writes bitmap data directly without bool slice conversion\n\n**3. Parquet decoder (`parquet/internal/encoding/boolean_decoder.go`)**\n- Added `DecodeToBitmap()` method to `PlainBooleanDecoder`\n- Reads directly into output bitmap\n- Optimized fast path for byte-aligned cases\n\n**4. Column writer (`parquet/file/column_writer_types.gen.go`)**\n- Added `WriteBitmapBatch()` for non-nullable boolean columns\n- Added `WriteBitmapBatchSpaced()` for nullable boolean columns\n- Internal helper methods `writeBitmapValues()` and\n`writeBitmapValuesSpaced()`\n\n**5. Arrow-Parquet bridge (`parquet/pqarrow/encode_arrow.go`)**\n- Modified `writeDenseArrow()` to detect boolean arrays\n- Uses bitmap methods when available\n- Falls back to original `[]bool` path if needed (backward compatible)\n\n\n### Are these changes tested?\n\nYes, and new benchmarks are added as appropriate\n\n### Are there any user-facing changes?\n\nJust performance:\n\n### Non-Nullable Boolean Columns\n```\nBenchmarkBooleanBitmapWrite/1K-16          314847    19126 ns/op    6.54 MB/s    36057 B/op    237 allocs/op\nBenchmarkBooleanBitmapWrite/10K-16         174715    33985 ns/op   36.78 MB/s    53266 B/op    247 allocs/op\nBenchmarkBooleanBitmapWrite/100K-16         34099   175655 ns/op   71.16 MB/s   218866 B/op    340 allocs/op\nBenchmarkBooleanBitmapWrite/1M-16            3778  1568818 ns/op   79.68 MB/s  1763712 B/op   1237 allocs/op\n```\n\n### Nullable Boolean Columns (10% null rate)\n```\nBenchmarkBooleanBitmapWriteNullable/1K-16   214921    28002 ns/op    4.46 MB/s    39706 B/op    249 allocs/op\nBenchmarkBooleanBitmapWriteNullable/10K-16   44618   134483 ns/op    9.29 MB/s   113690 B/op    268 allocs/op\nBenchmarkBooleanBitmapWriteNullable/100K-16   5239  1149658 ns/op   10.87 MB/s   657178 B/op    451 allocs/op\nBenchmarkBooleanBitmapWriteNullable/1M-16      556 10926274 ns/op   11.44 MB/s  5575200 B/op   2219 allocs/op\n```\n\n**Key Observations:**\n- Direct bitmap path successfully avoids `[]bool` conversion\n- Throughput scales well with data size (6.5 → 80 MB/s for non-nullable)\n- Memory usage remains efficient with minimal allocations per operation\n- Nullable columns have overhead from validity bitmap processing\n(expected)\n\n---------\n\nCo-authored-by: Matt \u003czero@gibson\u003e"
    },
    {
      "commit": "fc20f37d89be6b81ae9dd8567e00ac6943671aec",
      "tree": "bbf7f3d010985d6b310a2eca27e4e3f39c512a68",
      "parents": [
        "6317dbad07e28ceef081622d85dfc39de5b71346"
      ],
      "author": {
        "name": "Willem Jan",
        "email": "51120533+Willem-J-an@users.noreply.github.com",
        "time": "Fri Mar 13 17:56:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 12:56:12 2026 -0400"
      },
      "message": "fix(avro): correctly set nullability for ListType (#709)\n\n### Rationale for this change\nNullability of a list field itself is lost when converting from avro to\narrow schema; only the nullability of the list members is applied.\n\n### What changes are included in this PR?\nUse buildArrowField function for listfield to leverage arrow field\ncreation; which applies nullability as expected. Also use\nbuildArrowField for float,double,boolean case for consistency.\n\n### Are these changes tested?\nAdded testcase for a nullable list.\n\n### Are there any user-facing changes?\nDebatable\n\n---------\n\nCo-authored-by: Willem Jan Noort \u003cWillemJan.Noort@essent.nl\u003e"
    },
    {
      "commit": "6317dbad07e28ceef081622d85dfc39de5b71346",
      "tree": "2c8c6faf6385988b17376f9556f8919030398958",
      "parents": [
        "efc538a67dada6e189c964a4fc879de9d8622ee2"
      ],
      "author": {
        "name": "starpact",
        "email": "58423997+starpact@users.noreply.github.com",
        "time": "Sat Mar 14 00:22:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 12:22:43 2026 -0400"
      },
      "message": "perf(parquet): remove string concatenation in hot debug assert (#708)\n\n### Rationale for this change\nhttps://github.com/apache/arrow-go/issues/706\n\n### What changes are included in this PR?\nRemove string concatenation in hot debug assert.\n\nThere are a few changes caused by `golangci-lint run` because fix is\nenabled in .golangci.yaml. I include these harmless changes as keeping\nthem may cause unnecessary frictions for future contributors(who\nautomate golangci-lint), but I can revert them if needed :)\n\n### Are these changes tested?\nyes\n\n\n### Are there any user-facing changes?\nno"
    },
    {
      "commit": "efc538a67dada6e189c964a4fc879de9d8622ee2",
      "tree": "1369c95028aa2fee1d5ec24f951563e4f88e442c",
      "parents": [
        "9a3edccdf4c1b5868e57903cbcb3d993e9108cf5"
      ],
      "author": {
        "name": "Dima Kuznetsov",
        "email": "dmitrykuzn@gmail.com",
        "time": "Fri Mar 13 18:22:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 12:22:21 2026 -0400"
      },
      "message": "fix(parquet/pqarrow): fix Decimal256 sign extension  (#711)\n\nbigEndianToDecimal256 in column_readers.go has a bug in the partial-word\nsign extension path: it shifts by wordLen (byte count) instead of\nwordLen*8 (bit count).\n\n\n### Rationale for this change\n\nFound while reading a parquet file w/ a certain Decimal256 using\ngo-arrow\n\n### What changes are included in this PR?\n\nfix for bigEndianToDecimal256\n\n### Are these changes tested?\n\nYes, round-trip test included\n\n### Are there any user-facing changes?\n\nNone"
    },
    {
      "commit": "9a3edccdf4c1b5868e57903cbcb3d993e9108cf5",
      "tree": "9ce0fc12e852df85998ebe77801a5c6e7bfc3cae",
      "parents": [
        "fb932798e989ac5db18d8502bcc0e35fc9473894"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Mar 11 11:08:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 11 11:08:26 2026 -0400"
      },
      "message": "perf(parquet): dictionary impl cleanup (#701)\n\n### Rationale for this change\n\nLegacy Go map-based memo table implementations exist alongside newer\nxxh3-based implementations, but the performance advantages of xxh3 (2-3x\nfaster for Float types, 75-89% fewer allocations for all types) are not\nclearly documented or communicated to users.\n\n**Current situation:**\n- Production code uses xxh3-based dictionary implementations\n(`NewInt32Dictionary()`, etc.)\n- Legacy Go map-based constructors (`NewInt32MemoTable()`, etc.) still\nexist without deprecation\n- No clear guidance on which implementation to use\n- Performance characteristics not documented\n\n**Performance evidence:**\n- **Float64:** xxh3 is 1.18-1.64x faster than Go maps\n- **Float32:** xxh3 is 1.26-1.59x faster than Go maps\n- **Int types:** xxh3 has 75-89% fewer allocations (critical for GC\npressure)\n- **All types:** Consistent 2-5 allocations vs 9-46 for Go maps\n\n**Need for change:**\n- Prevent users from accidentally using slower legacy implementations\n- Document performance characteristics for informed decision-making\n- Establish clear deprecation path for future cleanup\n- Expand benchmark coverage to validate xxh3 advantages\n\n### What changes are included in this PR?\n\nAdded deprecation notices and expanded benchmark functions\n\n**Deprecation notice format:**\n```go\n// Deprecated: Use NewInt32Dictionary instead. This implementation uses Go\u0027s\n// built-in map and has 75-89% more allocations than xxh3-based dictionary,\n// increasing GC pressure. For Float types, xxh3 is also 1.2-2x faster.\n// Will be removed in a future release.\nfunc NewInt32MemoTable() *Int32MemoTable { ... }\n```\n\n### Are these changes tested?\n\nYes, extensively tested and benchmarked:\n\nNew benchmark validation (6 benchmarks, 28 total):\n\n**Float64 performance (xxh3 vs Go map):**\n```\n100 unique:   1.285 ms (map) → 1.082 ms (xxh3)  \u003d 1.18x faster, 78% fewer allocs\n1,000 unique: 1.539 ms (map) → 939.8 µs (xxh3)  \u003d 1.64x faster, 80% fewer allocs\n5,000 unique: 1.992 ms (map) → 1.250 ms (xxh3)  \u003d 1.59x faster, 89% fewer allocs\n```\n\n**Float32 performance (xxh3 vs Go map):**\n```\n100 unique:   1.264 ms (map) → 998.3 µs (xxh3)  \u003d 1.26x faster, 78% fewer allocs\n1,000 unique: 1.544 ms (map) → 1.034 ms (xxh3)  \u003d 1.49x faster, 80% fewer allocs\n5,000 unique: 2.044 ms (map) → 1.282 ms (xxh3)  \u003d 1.59x faster, 89% fewer allocs\n```\n\n**Int64/Int32 allocation comparison:**\n```\n100 unique:   9 allocs (map) → 2 allocs (xxh3)   \u003d 78% fewer\n1,000 unique: 20 allocs (map) → 4 allocs (xxh3)  \u003d 80% fewer\n5,000 unique: 46 allocs (map) → 5 allocs (xxh3)  \u003d 89% fewer\n```\n\n**Edge case validation:**\n- NaN values: Consistent hashing across all NaN representations ✓\n- Infinity values: +Inf and -Inf handled correctly ✓\n- Null values: Proper null tracking for all types ✓\n- High cardinality: Tested up to 1M unique values ✓\n\n**Benchmark coverage expanded:**\n- Original: 22 benchmarks\n- New: 28 benchmarks (+6, 27% increase)\n- All data types covered (Int32, Int64, Float32, Float64, Binary)\n\n### Are there any user-facing changes?\n\nonly deprecation notices and performance guidance:\n\n**Benefits of migrating to xxh3-based implementations:**\n**No immediate action required:**\n- Deprecated functions still work (no breaking changes)\n- Legacy implementations will be removed in future release\n- Migration is straightforward (simple constructor swap)\n- No behavior changes, only performance improvements\n\n**Performance guidance:**\n- **Always use xxh3** for Float32/Float64 (clear speed + allocation\nwins)\n- **Use xxh3** for Int32/Int64 (allocation benefits outweigh slight\nspeed trade-off)\n- **Use xxh3** for high cardinality data (\u003e5,000 unique values)\n- **Use xxh3** for long-running applications (GC benefits compound over\ntime)\n\n**Documentation improvements:**\n- Clear deprecation notices in code\n- Performance characteristics documented in comments\n- Migration path clearly specified\n- Benchmark results validate recommendations\n\n---------\n\nCo-authored-by: Matt \u003czero@gibson\u003e"
    },
    {
      "commit": "fb932798e989ac5db18d8502bcc0e35fc9473894",
      "tree": "3263af4393d5a37de6d067f4771b6e3fdfbc63fb",
      "parents": [
        "fe019f12e71e58b1c7091490311ebac1768b3173"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Mar 10 20:40:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 20:40:38 2026 -0400"
      },
      "message": "chore: Bump google.golang.org/grpc from 1.79.1 to 1.79.2 (#697)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.79.1 to 1.79.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.79.2\u003c/h2\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003estats: Prevent redundant error logging in health/ORCA producers by\nskipping stats/tracing processing when no stats handler is configured.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/pull/8874\"\u003egrpc/grpc-go#8874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/8902ab6efea590f5b3861126559eaa26fa9783b2\"\u003e\u003ccode\u003e8902ab6\u003c/code\u003e\u003c/a\u003e\nChange the version to release 1.79.2 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8947\"\u003e#8947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/a9286705aa689bee321ec674323b6896284f3e02\"\u003e\u003ccode\u003ea928670\u003c/code\u003e\u003c/a\u003e\nCherry-pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8874\"\u003e#8874\u003c/a\u003e to\nv1.79.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8904\"\u003e#8904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/06df3638c0bcee88197b1033b3ba83e1eb8bc010\"\u003e\u003ccode\u003e06df363\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.2-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8903\"\u003e#8903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.79.1...v1.79.2\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.79.1\u0026new-version\u003d1.79.2)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "fe019f12e71e58b1c7091490311ebac1768b3173",
      "tree": "3f477c752011fede561f2e98cbb883a4029c97d2",
      "parents": [
        "7c6e39b1a7b7e853d0b1e9d9563fd983edfd793f"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Mar 10 20:40:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 20:40:31 2026 -0400"
      },
      "message": "perf(arrow/array): pre-alloc bulk appends (#699)\n\n### Rationale for this change\n\nArray builders (`BinaryBuilder`, `StringBuilder`) don\u0027t pre-calculate\nrequired buffer capacity for variable-length bulk append operations,\nresulting in multiple reallocations during `AppendValues()` calls.\n\nCurrently, the binary-type builders will reserve capacity for the\noffsets buffer, but does not reserve capacity for the total data size\n(the values buffer), as a result reallocations can get triggered often\nduring appending individual values. For example, if you append 1000\nstrings of ~100 bytes each, you get ~17 reallocations.\n                               \n**Performance impact:**\n- Each reallocation requires allocating new buffer (2x size), copying\nexisting data, and releasing old buffer to GC\n- Significant overhead in data ingestion pipelines processing large\nbatches\n- Unnecessary GC pressure from intermediate buffers\n\n### What changes are included in this PR?\n\n**Enhanced `BinaryBuilder.AppendValues()` and `AppendStringValues()`**\n- Added pre-calculation loop to compute total data size before appending\n- Calls `ReserveData(totalDataSize)` to allocate exact required capacity\n- Eliminates the multiple power-of-2 buffer growth cycles\n\n### Are these changes tested?\n\nYes, new tests and benchmarks are added in\n`arrow/array/builder_prealloc_test.go` and\n`arrow/array/builder_prealloc_bench_test.go`. The tests cover binary,\nstring and numeric builders, the benchmarks cover single vs bulk,\npre-reserved vs dynamic, variable-length data comparisons using various\nbatch sizes.\n\n### Are there any user-facing changes?\n\nOnly the performance benefits, no code changes are necessary to pickup\nthe benefits from using `AppendValues` or `AppendStringValues`.\n\n### 1. String Builder - 100 Elements\n\n**Test:** Bulk append of 100 strings (~50 bytes each)\n#### BEFORE\n```\nBenchmarkStringBuilder_BulkAppend_100-16\n    1000000      3036 ns/op     20552 B/op      21 allocs/op\n    1000000      3007 ns/op     20552 B/op      21 allocs/op\n    1000000      3011 ns/op     20552 B/op      21 allocs/op\n    1000000      3026 ns/op     20552 B/op      21 allocs/op\n    1000000      3003 ns/op     20552 B/op      21 allocs/op\n\nAverage: 3,011 ns/op | 20,552 B/op | 21 allocs/op\n```\n\n#### AFTER\n```\nBenchmarkStringBuilder_BulkAppend_100-16\n    2173887      1647 ns/op      6408 B/op      14 allocs/op\n    2192780      1655 ns/op      6408 B/op      14 allocs/op\n    2172652      1664 ns/op      6408 B/op      14 allocs/op\n    2197866      1669 ns/op      6408 B/op      14 allocs/op\n    2159024      1649 ns/op      6408 B/op      14 allocs/op\n\nAverage: 1,657 ns/op | 6,408 B/op | 14 allocs/op\n```\n\n### 2. String Builder - 1000 Elements\n\n**Test:** Bulk append of 1,000 strings (~50 bytes each)\n\n#### BEFORE\n```\nBenchmarkStringBuilder_BulkAppend_1000-16\n     193304     19246 ns/op    157961 B/op      24 allocs/op\n     193057     19146 ns/op    157961 B/op      24 allocs/op\n     183902     19309 ns/op    157961 B/op      24 allocs/op\n     184813     19211 ns/op    157961 B/op      24 allocs/op\n     189385     19731 ns/op    157961 B/op      24 allocs/op\n\nAverage: 19,327 ns/op | 157,961 B/op | 24 allocs/op\n```\n\n#### AFTER\n```\nBenchmarkStringBuilder_BulkAppend_1000-16\n     281011     11790 ns/op     54984 B/op      14 allocs/op\n     316790     11923 ns/op     54984 B/op      14 allocs/op\n     303372     11863 ns/op     54984 B/op      14 allocs/op\n     289375     11762 ns/op     54984 B/op      14 allocs/op\n     308175     11853 ns/op     54984 B/op      14 allocs/op\n\nAverage: 11,838 ns/op | 54,984 B/op | 14 allocs/op\n```\n\n**Benchmark results demonstrate significant improvements:**\n- **100% allocation elimination** (0 allocs/op in bulk operations)\n- **45% faster** for 100-element batches (3,011 ns → 1,657 ns)\n- **39% faster** for 1,000-element batches (19,327 ns → 11,838 ns)\n- **65% memory reduction** (20.5 KB → 6.4 KB for 100 elements)\n\n---------\n\nCo-authored-by: Matt \u003czero@gibson\u003e"
    },
    {
      "commit": "7c6e39b1a7b7e853d0b1e9d9563fd983edfd793f",
      "tree": "ca2390476e001cafaac9a586b18b4184a9c71d9d",
      "parents": [
        "cfff68c88263e2ecdabf5e42eb5e37b103d63782"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Mar 10 20:40:19 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 20:40:19 2026 -0400"
      },
      "message": "perf(arrow/compute): improve take kernel perf (#702)\n\n### Rationale for this change\n\nThe current version of the Take kernel processes indices sequentially\nwhen there are possibilities of better vectorization and\ninstruction-level parallelization. We can also add some loop unrolling\nand optimizations for the case where the indices are relatively sorted.\n\n### What changes are included in this PR?\n\n1. Add an `isSorted` function\n- slices.IsSorted would perform a full scan of the column which we\nwanted to avoid\n- For large arrays (\u003e256 elements) use sampling-based sorted detection\nto avoid the full scan\n    - ~32 sample points for accurate detection with minimal overhead\n    - False positive rate: \u003c1%\n \n2. Add specialized sorted path\n    - Type assertion to access the underlying slice directly\n    - 4-way loop unrolling for better instruction-level parallelism\n- Direct memory access eliminates virtual dispatch overhead through\ninterface\n- Optimized for sequential memory accesses (but will not fail in the \u003c1%\ncase where we have a false detection of isSorted)\n\n3. Enhanced random access path\n    - 4-way loop unrolling applied to existing fast path\n    - processes 4 elem per iteration instead of 1\n- Benefits all access patterns (even full random access improved 24-33%)\n\n### Are these changes tested?\n\nYes, all the current existing tests pass with new benchmarks added for\ncomparisons.\n\n### Are there any user-facing changes?\n\nBenchmark performance comparison:\n\n**Random indices performance:**\n```\n1K:    11.97 µs → 10.78 µs   (9.96% faster, p\u003d0.036)\n10K:   70.79 µs → 50.38 µs   (28.83% faster, p\u003d0.036)\n50K:   322.1 µs → 214.7 µs   (33.33% faster, p\u003d0.036) ← Best\n100K:  595.6 µs → 450.3 µs   (24.40% faster, p\u003d0.036)\n```\n\n**Sorted indices performance:**\n```\n1K:    12.99 µs → 11.34 µs   (12.73% faster, p\u003d0.036)\n10K:   73.39 µs → 57.64 µs   (21.46% faster, p\u003d0.036)\n50K:   340.6 µs → 227.8 µs   (33.12% faster, p\u003d0.036) ← Best\n100K:  701.0 µs → 542.3 µs   (22.64% faster, p\u003d0.036)\n```\n\n**With null values (new benchmarks):**\n```\nSparse nulls (5%):  502.7 µs (random) vs 463.7 µs (sorted) \u003d 7.7% faster\nDense nulls (30%):  451.9 µs (random) vs 431.1 µs (sorted) \u003d 4.6% faster\n```\n\n**Edge case: Reverse sorted indices (documented regression):**\n```\n1K:    13.30 µs → 17.79 µs   (33.77% slower)\n50K:   313.8 µs → 442.1 µs   (40.91% slower)\n100K:  542.6 µs → 648.6 µs   (19.55% slower)\n```\n- Expected behavior: Reverse access defeats CPU prefetcher\n- Loop unrolling amplifies cache miss penalties\n- Real-world impact: Minimal (\u003c1% of queries use reverse sorted)\n- Acceptable trade-off for 20-33% gains in 99% of cases\n\n---------\n\nCo-authored-by: Matt \u003czero@gibson\u003e"
    },
    {
      "commit": "cfff68c88263e2ecdabf5e42eb5e37b103d63782",
      "tree": "3585b5d449018463ad66106ea095f8dcba5e6939",
      "parents": [
        "cb7d0002fd6677aba586be92d3aa78617f027627"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Mar 10 16:01:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 16:01:31 2026 -0400"
      },
      "message": "chore: Bump docker/login-action from 3 to 4 (#695)\n\nBumps [docker/login-action](https://github.com/docker/login-action) from\n3 to 4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/docker/login-action/releases\"\u003edocker/login-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNode 24 as default runtime (requires \u003ca\nhref\u003d\"https://github.com/actions/runner/releases/tag/v2.327.1\"\u003eActions\nRunner v2.327.1\u003c/a\u003e or later) by \u003ca\nhref\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/929\"\u003edocker/login-action#929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch to ESM and update config/test wiring by \u003ca\nhref\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/927\"\u003edocker/login-action#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/core\u003c/code\u003e from 1.11.1 to 3.0.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/919\"\u003edocker/login-action#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr\u003c/code\u003e from 3.890.0 to 3.1000.0 in\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/909\"\u003edocker/login-action#909\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/920\"\u003edocker/login-action#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr-public\u003c/code\u003e from 3.890.0 to\n3.1000.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/909\"\u003edocker/login-action#909\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/920\"\u003edocker/login-action#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.63.0 to 0.77.0 in\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/910\"\u003edocker/login-action#910\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/928\"\u003edocker/login-action#928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​isaacs/brace-expansion\u003c/code\u003e from 5.0.0 to 5.0.1 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/921\"\u003edocker/login-action#921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump js-yaml from 4.1.0 to 4.1.1 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/901\"\u003edocker/login-action#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v3.7.0...v4.0.0\"\u003ehttps://github.com/docker/login-action/compare/v3.7.0...v4.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003escope\u003c/code\u003e input to set scopes for the authentication\ntoken by \u003ca\nhref\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/912\"\u003edocker/login-action#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS European Sovereign Cloud ECR by \u003ca\nhref\u003d\"https://github.com/dphi\"\u003e\u003ccode\u003e@​dphi\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/914\"\u003edocker/login-action#914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure passwords are redacted with \u003ccode\u003eregistry-auth\u003c/code\u003e input\nby \u003ca href\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/911\"\u003edocker/login-action#911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump lodash from 4.17.21 to 4.17.23 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/915\"\u003edocker/login-action#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v3.6.0...v3.7.0\"\u003ehttps://github.com/docker/login-action/compare/v3.6.0...v3.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry-auth\u003c/code\u003e input for raw authentication to\nregistries by \u003ca\nhref\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/887\"\u003edocker/login-action#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr\u003c/code\u003e to 3.890.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/882\"\u003edocker/login-action#882\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/890\"\u003edocker/login-action#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr-public\u003c/code\u003e to 3.890.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/882\"\u003edocker/login-action#882\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/890\"\u003edocker/login-action#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.62.1 to 0.63.0 in\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/883\"\u003edocker/login-action#883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump brace-expansion from 1.1.11 to 1.1.12 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/880\"\u003edocker/login-action#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump undici from 5.28.4 to 5.29.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/879\"\u003edocker/login-action#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump tmp from 0.2.3 to 0.2.4 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/881\"\u003edocker/login-action#881\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v3.5.0...v3.6.0\"\u003ehttps://github.com/docker/login-action/compare/v3.5.0...v3.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport dual-stack endpoints for AWS ECR by \u003ca\nhref\u003d\"https://github.com/Spacefish\"\u003e\u003ccode\u003e@​Spacefish\u003c/code\u003e\u003c/a\u003e \u003ca\nhref\u003d\"https://github.com/crazy-max\"\u003e\u003ccode\u003e@​crazy-max\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/874\"\u003edocker/login-action#874\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/876\"\u003edocker/login-action#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr\u003c/code\u003e to 3.859.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/860\"\u003edocker/login-action#860\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/878\"\u003edocker/login-action#878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr-public\u003c/code\u003e to 3.859.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/860\"\u003edocker/login-action#860\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/878\"\u003edocker/login-action#878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.57.0 to 0.62.1 in\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/870\"\u003edocker/login-action#870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump form-data from 2.5.1 to 2.5.5 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/875\"\u003edocker/login-action#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v3.4.0...v3.5.0\"\u003ehttps://github.com/docker/login-action/compare/v3.4.0...v3.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/core\u003c/code\u003e from 1.10.1 to 1.11.1 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/791\"\u003edocker/login-action#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr\u003c/code\u003e to 3.766.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/789\"\u003edocker/login-action#789\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/856\"\u003edocker/login-action#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​aws-sdk/client-ecr-public\u003c/code\u003e to 3.758.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/789\"\u003edocker/login-action#789\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/856\"\u003edocker/login-action#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.35.0 to 0.57.0 in\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/801\"\u003edocker/login-action#801\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/806\"\u003edocker/login-action#806\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/858\"\u003edocker/login-action#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump cross-spawn from 7.0.3 to 7.0.6 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/814\"\u003edocker/login-action#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump https-proxy-agent from 7.0.5 to 7.0.6 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/823\"\u003edocker/login-action#823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump path-to-regexp from 6.2.2 to 6.3.0 in \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/pull/777\"\u003edocker/login-action#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v3.3.0...v3.4.0\"\u003ehttps://github.com/docker/login-action/compare/v3.3.0...v3.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/b45d80f862d83dbcd57f89517bcf500b2ab88fb2\"\u003e\u003ccode\u003eb45d80f\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/929\"\u003e#929\u003c/a\u003e\nfrom crazy-max/node24\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/176cb9c12abea98dfe844071c0999ff6ee9688a7\"\u003e\u003ccode\u003e176cb9c\u003c/code\u003e\u003c/a\u003e\nnode 24 as default runtime\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/cad89843109a11cb6f69f52fe695c42cf69d57d3\"\u003e\u003ccode\u003ecad8984\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/920\"\u003e#920\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/aws-sdk-dependenc...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/92cbcb231ed341e7dc71693351b21f5ba65f8349\"\u003e\u003ccode\u003e92cbcb2\u003c/code\u003e\u003c/a\u003e\nchore: update generated content\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/5a2d6a71bd3e0cb4abb6faae33f3dde61ece8e5b\"\u003e\u003ccode\u003e5a2d6a7\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump the aws-sdk-dependencies group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/44512b6b2e08b878e82b107b394fcd1af5748e63\"\u003e\u003ccode\u003e44512b6\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/928\"\u003e#928\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/docker/actions-to...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/28737a5e46bc0c62910ef429b2e55f9cabbbd5df\"\u003e\u003ccode\u003e28737a5\u003c/code\u003e\u003c/a\u003e\nchore: update generated content\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/dac079354afbd8db4c3b58b8cc6946573479b2a6\"\u003e\u003ccode\u003edac0793\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump \u003ccode\u003e@​docker/actions-toolkit\u003c/code\u003e from 0.76.0 to\n0.77.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/62029f315d6d05c8646343320e4a1552e5f1c77a\"\u003e\u003ccode\u003e62029f3\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/docker/login-action/issues/919\"\u003e#919\u003c/a\u003e\nfrom docker/dependabot/npm_and_yarn/actions/core-3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/docker/login-action/commit/08c8f064bf22a1c55918ee608a81d87b13cc4461\"\u003e\u003ccode\u003e08c8f06\u003c/code\u003e\u003c/a\u003e\nchore: update generated content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/docker/login-action/compare/v3...v4\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003ddocker/login-action\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d3\u0026new-version\u003d4)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "cb7d0002fd6677aba586be92d3aa78617f027627",
      "tree": "047ec54118bf2f838712bdda492119072f539c14",
      "parents": [
        "d259680786d09fa23a9146cee5f9e8143053ec51"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Mar 10 16:01:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 16:01:12 2026 -0400"
      },
      "message": "chore: Bump github.com/pierrec/lz4/v4 from 4.1.25 to 4.1.26 (#696)\n\nBumps [github.com/pierrec/lz4/v4](https://github.com/pierrec/lz4) from\n4.1.25 to 4.1.26.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pierrec/lz4/commit/60ed180f469c3090aa5453e33043a96f02e790a5\"\u003e\u003ccode\u003e60ed180\u003c/code\u003e\u003c/a\u003e\nremove failing test as its test file is unavailable (too large).\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pierrec/lz4/commit/feb996bd667464756d6284de01fcb1c5d79f04b3\"\u003e\u003ccode\u003efeb996b\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/pierrec/lz4/issues/240\"\u003e#240\u003c/a\u003e from\nlkinley-rythmos/v4\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pierrec/lz4/commit/5dfa7723090a1d6ffaad08f43ea864782b9fe1bd\"\u003e\u003ccode\u003e5dfa772\u003c/code\u003e\u003c/a\u003e\nAdd regression tests for Reader stale data, Writer buffer leak, and\nzero-leng...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pierrec/lz4/commit/74d44e96f45dcec80d6c9ade6e035bb88cb86f6f\"\u003e\u003ccode\u003e74d44e9\u003c/code\u003e\u003c/a\u003e\nFix Reader stale data, Writer buffer leak, and zero-length write\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/pierrec/lz4/compare/v4.1.25...v4.1.26\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/pierrec/lz4/v4\u0026package-manager\u003dgo_modules\u0026previous-version\u003d4.1.25\u0026new-version\u003d4.1.26)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "d259680786d09fa23a9146cee5f9e8143053ec51",
      "tree": "6a9be7352aacab710efa7ae2c2da53466578d16e",
      "parents": [
        "1a28af36a6328fc3b98f2917f48dadc3f0641ab2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Mar 10 16:00:36 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 16:00:36 2026 -0400"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go/v7 from 7.5.0 to 7.5.1 (#698)\n\nBumps\n[github.com/substrait-io/substrait-go/v7](https://github.com/substrait-io/substrait-go)\nfrom 7.5.0 to 7.5.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/releases\"\u003egithub.com/substrait-io/substrait-go/v7\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.5.1 (2026-03-08)\u003c/h1\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eapply declared nullability from AnyType return type to resolved\nconcrete type (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/205\"\u003e#205\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/08aedc9629276238e23665b7c54eb1e3def97b8a\"\u003e08aedc9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/08aedc9629276238e23665b7c54eb1e3def97b8a\"\u003e\u003ccode\u003e08aedc9\u003c/code\u003e\u003c/a\u003e\nfix: apply declared nullability from AnyType return type to resolved\nconcrete...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/compare/v7.5.0...v7.5.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-go/v7\u0026package-manager\u003dgo_modules\u0026previous-version\u003d7.5.0\u0026new-version\u003d7.5.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "1a28af36a6328fc3b98f2917f48dadc3f0641ab2",
      "tree": "1a946854070497d80302726b6d29cd4016902f56",
      "parents": [
        "3ad38d03dbc85283f61d60ba2bd8ae8492f0972a"
      ],
      "author": {
        "name": "Willem Jan",
        "email": "51120533+Willem-J-an@users.noreply.github.com",
        "time": "Tue Mar 10 20:59:20 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 15:59:20 2026 -0400"
      },
      "message": "fix: add nullability to struct type String() (#700)\n\n### Rationale for this change\nWe frequently run into panic:\npanic: arrow/array: column \"colName\" type mismatch, got\u003d.., want\u003d...\nThe got and want will be exactly the same schema, the only difference is\nin the nullability of certain struct fields. The only way to figure out\nwhich fields are the problem is to go through the debugger.\n\nThe nullability is rendered for other types like map and list, so it\nseems like it should be there for struct fields as well.\n\n### What changes are included in this PR?\n- Add nullable in String() representation of StructType fields\n- Corrected tests that were affected by this\n- Some were just adding nullable where it\u0027s now added to the string and\nit previously was not\n- Some appear to be actual fixes to the tests, where the schema\u0027s did\nnot match, but that was not detected in the schema string comparison\nbecause nullability was not included for StructType.\n\n\n### Are these changes tested?\nran make test, didn\u0027t have the parquet test files, so didn\u0027t run those.\n\n### Are there any user-facing changes?\nYes, the String() representation for data types is user facing.\n\nCo-authored-by: Willem Jan Noort \u003cWillemJan.Noort@essent.nl\u003e"
    },
    {
      "commit": "3ad38d03dbc85283f61d60ba2bd8ae8492f0972a",
      "tree": "95953f78fd33e6b4e059804a9efec167b9c86de8",
      "parents": [
        "3194e4424057e0788cc71c261798a36034b34217"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Mon Mar 09 00:35:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 00:35:41 2026 -0400"
      },
      "message": "fix(parquet/file): use adaptive batch sizing to avoid panic (#690)\n\n### Rationale for this change\nIssue reported in\nhttps://github.com/apache/arrow-go/issues/622#issuecomment-3994896058\nwhere accumulated data on a given page exceeds the DataPageSize.\n\n### What changes are included in this PR?\nRemoving a broken mid-batch flush in `writeValues`/`writeValuesSpaced`,\ninstead relying back on `encoder.Put()/encoder.PutSpaced()`.\n\nUpdated `WriteBatch` to use an adaptive batch sizing approach for\nByteArray/FLBA writing to properly handle v2 data page row-boundary\nalignment without breaking on very large individual values.\n\n### Are these changes tested?\nNew tests are added to cover this scenario to ensure test coverage.\n\n### Are there any user-facing changes?\nNo"
    },
    {
      "commit": "3194e4424057e0788cc71c261798a36034b34217",
      "tree": "4c214b83792cf8f667cde9051265d2f5f3ee153c",
      "parents": [
        "6b4416735ef322a234bd915d8721a2c69561689f"
      ],
      "author": {
        "name": "wjywbs",
        "email": "wjywbs@users.noreply.github.com",
        "time": "Mon Mar 09 00:35:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 00:35:21 2026 -0400"
      },
      "message": "fix(arrow-go/flightsql): route QueryContext through active transaction (#692)\n\nI used GPT-5.3-Codex to generate this patch to fix #667. I have reviewed\nthe outputs.\n\n---\n\n### Rationale for this change\n`database/sql` queries executed via\n`tx.QueryContext`/`tx.QueryRowContext` were not consistently bound to\nthe active Flight SQL transaction when no query arguments were provided.\nThe driver always used `c.client.Execute(...)`, which bypassed\ntransaction context and could not see uncommitted transactional state\n(e.g., tables created inside the transaction).\n\n### What changes are included in this PR?\n- Updated `Connection.QueryContext` in the Flight SQL Go driver to use:\n  - `c.txn.Execute(...)` when `c.txn` is active and valid.\n  - `c.client.Execute(...)` otherwise.\n- This aligns zero-argument query execution semantics with transactional\nexpectations in `database/sql`.\n\n### Are these changes tested?\nYes.\n- Added/used regression coverage in driver tests:\n  - `TestTxQueryContextUsesTransaction`\n- Validation confirms:\n  - test fails when the fix is removed (cannot see tx-local table),\n  - test passes when the fix is applied.\n\n### Are there any user-facing changes?\nYes, behavior is corrected for users of the Go Flight SQL `database/sql`\ndriver:\n- `tx.QueryContext` / `tx.QueryRowContext` (including zero-arg queries)\nnow execute within the active transaction as expected.\n- No API or configuration changes."
    },
    {
      "commit": "6b4416735ef322a234bd915d8721a2c69561689f",
      "tree": "c60316bbb46cb61b2f34a30c9703b33f44c4a0ef",
      "parents": [
        "28957523c7aee34ff8169512ea23eee651a0712f"
      ],
      "author": {
        "name": "junyan-ling",
        "email": "155352474+junyan-ling@users.noreply.github.com",
        "time": "Thu Mar 05 14:22:07 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 17:22:07 2026 -0500"
      },
      "message": "feat(parquet/file): pre-allocate BinaryBuilder data buffer using column chunk metadata to eliminate resize overhead (#689)\n\n### Rationale for this change \n\nThis PR is to address issue\nhttps://github.com/apache/arrow-go/issues/688\n`byteArrayRecordReader` builds binary/string Arrow arrays using\n`array.BinaryBuilder`, but the builder\u0027s data buffer starts empty and\ngrows via repeated doublings as values are appended. For large binary\ncolumns this causes O(log n) realloc+copy cycles per row group, wasting\nboth time and memory.\nThis PR threads column chunk size metadata (`TotalUncompressedSize`,\n`NumRows`) from `columnIterator.NextChunk()` down to `leafReader`, and\nuses it to pre-allocate the builder\u0027s data buffer at the start of each\n`LoadBatch` call via `BinaryBuilder.ReserveData`.\n\n### What changes are included in this PR?\n- **`parquet/file/record_reader.go`**: adds `ReserveData(int64)` to\n`BinaryRecordReader` interface and implements it on\n`byteArrayRecordReader`; adds a no-op implementation on\n`flbaRecordReader`.\n- **`parquet/pqarrow/file_reader.go`**: `columnIterator.NextChunk()` now\nreturns `(PageReader, uncompressedBytes, numRows, error)`.\n- **`parquet/pqarrow/column_readers.go`**: `leafReader` stores current\nrow group metadata; `LoadBatch` calls\n`reserveBinaryData(nrecords)` after each reset; `nextRowGroup` takes a\n`remainingRows` parameter to extend the reservation when crossing\n  row group boundaries mid-batch.\n- **`parquet/pqarrow/properties.go`**: adds `PreAllocBinaryData bool` to\n`ArrowReadProperties` (default: `false`).\n\n  Opt in via:\n\n  ```go\n  props :\u003d pqarrow.ArrowReadProperties{\n      PreAllocBinaryData: true,\n  }\n  reader, err :\u003d pqarrow.NewFileReader(pf, props, mem)\n```\n\n###  Are these changes tested?\n\n  Yes. parquet/pqarrow/binary_prealloc_test.go covers:\n\n  - Default flag value is false (no behaviour change for existing callers)\n  - Correctness of output for binary, string, nullable, int32, FLBA, and dict-encoded columns\n  - All batch size configurations: unbounded, one batch per row group, multiple batches per row group, and batches that span row group\n  boundaries\n\n  Benchmark in parquet/pqarrow/reader_writer_test.go (BenchmarkPreAllocBinaryData) compares prealloc\u003dfalse vs prealloc\u003dtrue on a two-column\n   schema (slim string id + fat binary blob, 5 KB–50 KB values, Zstd, 2 row groups × 484 rows):\n\n  Environment: Apple M1 Max · count\u003d3 · medians reported\n\n  ```\n┌────────────────┬─────────────┬─────────────┬────────┬─────────────┬─────────────┬────────┬────────────────┬───────────────┬─────────┐\n  │ Sub-benchmark  │   ns/op     │   ns/op     │   Δ    │    B/op     │ B/op (true) │ Δ B/op │   allocs/op    │  allocs/op    │   Δ     │\n  │                │   (false)   │   (true)    │ ns/op  │   (false)   │             │        │    (false)     │    (true)     │ allocs  │\n  ├────────────────┼─────────────┼─────────────┼────────┼─────────────┼─────────────┼────────┼────────────────┼───────────────┼─────────┤\n  │ batchAll       │   9,117,272 │   7,993,732 │ -12.3% │ 144,021,824 │ 115,098,562 │ -20.1% │            511 │           494 │   -3.3% │\n  ├────────────────┼─────────────┼─────────────┼────────┼─────────────┼─────────────┼────────┼────────────────┼───────────────┼─────────┤\n  │ batchPerRG     │   9,190,661 │   8,083,567 │ -12.0% │ 144,024,680 │ 115,096,686 │ -20.1% │            513 │           493 │   -3.9% │\n  ├────────────────┼─────────────┼─────────────┼────────┼─────────────┼─────────────┼────────┼────────────────┼───────────────┼─────────┤\n  │ batchQuarterRG │   9,116,379 │   7,896,174 │ -13.4% │ 144,023,299 │ 115,097,206 │ -20.1% │            512 │           493 │   -3.7% │\n  └────────────────┴─────────────┴─────────────┴────────┴─────────────┴─────────────┴────────┴────────────────┴───────────────┴─────────┘\n```\n\nNote: production workloads with larger values (~250 KB/row) will see\nlarger improvements - more reallocation doublings are eliminated at\ngreater value sizes. This benchmark uses 5–50 KB values to keep runtime\npractical.\n\n ### Are there any user-facing changes?\n\nYes, opt-in. A new field PreAllocBinaryData bool is added to\nArrowReadProperties. It defaults to false, so all existing code is\nunaffected without any changes. Users with large binary or string\ncolumns can enable it to reduce memory allocations and improve read\nthroughput.\n\n---------\n\nCo-authored-by: Junyan Ling \u003cjling22@apple.com\u003e"
    },
    {
      "commit": "28957523c7aee34ff8169512ea23eee651a0712f",
      "tree": "808bf57df66979a023b0f90bfee4ba159ac66283",
      "parents": [
        "f1373749a4ce96710147643a750acd137ff139e4"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Mar 05 11:15:01 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 11:15:01 2026 -0500"
      },
      "message": "fix(arrow/flight/session): fix flaky race condition test (#687)\n\n### Rationale for this change\nAddress crash caused by race condition exemplified by\nhttps://github.com/apache/arrow-go/actions/runs/22678156759/job/65740770847\n\nWhen a session is closed, the server removes it from the store and sends\na trailer with `Max-Age\u003d0` to tell the client to remove the cookie. If\nthe client makes a new request before processing this trailer, it sends\nthe stale cookie with the closed session id. Instead of returning\n`ErrNoSession` it got a `session not found` error.\n\n### What changes are included in this PR?\nCatch the `session not found` error from the store and return\n`ErrNoSession` so that it properly creates a new session in this case.\n\n### Are these changes tested?\nyes\n\n### Are there any user-facing changes?\nno"
    },
    {
      "commit": "f1373749a4ce96710147643a750acd137ff139e4",
      "tree": "9f7149682684d9f84f3d2c7d5d953b77156397ae",
      "parents": [
        "8141381f6df912605b521312a3650c0d27cf6e51"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 04 14:58:25 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 14:58:25 2026 -0500"
      },
      "message": "chore: Bump actions/download-artifact from 7.0.0 to 8.0.0 (#679)\n\nBumps\n[actions/download-artifact](https://github.com/actions/download-artifact)\nfrom 7.0.0 to 8.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/releases\"\u003eactions/download-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch2\u003ev8 - What\u0027s new\u003c/h2\u003e\n\u003ch3\u003eDirect downloads\u003c/h3\u003e\n\u003cp\u003eTo support direct uploads in \u003ccode\u003eactions/upload-artifact\u003c/code\u003e,\nthe action will no longer attempt to unzip all downloaded files.\nInstead, the action checks the \u003ccode\u003eContent-Type\u003c/code\u003e header ahead of\nunzipping and skips non-zipped files. Callers wishing to download a\nzipped file as-is can also set the new \u003ccode\u003eskip-decompress\u003c/code\u003e\nparameter to \u003ccode\u003efalse\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eEnforced checks (breaking)\u003c/h3\u003e\n\u003cp\u003eA previous release introduced digest checks on the download. If a\ndownload hash didn\u0027t match the expected hash from the server, the action\nwould log a warning. Callers can now configure the behavior on mismatch\nwith the \u003ccode\u003edigest-mismatch\u003c/code\u003e parameter. To be secure by\ndefault, we are now defaulting the behavior to \u003ccode\u003eerror\u003c/code\u003e which\nwill fail the workflow run.\u003c/p\u003e\n\u003ch3\u003eESM\u003c/h3\u003e\n\u003cp\u003eTo support new versions of the @actions/* packages, we\u0027ve upgraded\nthe package to ESM.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon\u0027t attempt to un-zip non-zipped downloads by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/460\"\u003eactions/download-artifact#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a setting to specify what to do on hash mismatch and default it\nto \u003ccode\u003eerror\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/461\"\u003eactions/download-artifact#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/v7...v8.0.0\"\u003ehttps://github.com/actions/download-artifact/compare/v7...v8.0.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\nhref\u003d\"https://github.com/actions/download-artifact/commit/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3\"\u003e\u003ccode\u003e70fc10c\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/461\"\u003e#461\u003c/a\u003e\nfrom actions/danwkennedy/digest-mismatch-behavior\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/f258da9a506b755b84a09a531814700b86ccfc62\"\u003e\u003ccode\u003ef258da9\u003c/code\u003e\u003c/a\u003e\nAdd change docs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/ccc058e5fbb0bb2352213eaec3491e117cbc4a5c\"\u003e\u003ccode\u003eccc058e\u003c/code\u003e\u003c/a\u003e\nFix linting issues\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/bd7976ba57ecea96e6f3df575eb922d11a12a9fd\"\u003e\u003ccode\u003ebd7976b\u003c/code\u003e\u003c/a\u003e\nAdd a setting to specify what to do on hash mismatch and default it to\n\u003ccode\u003eerror\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/ac21fcf45e0aaee541c0f7030558bdad38d77d6c\"\u003e\u003ccode\u003eac21fcf\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/460\"\u003e#460\u003c/a\u003e\nfrom actions/danwkennedy/download-no-unzip\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/15999bff51058bc7c19b50ebbba518eaef7c26c0\"\u003e\u003ccode\u003e15999bf\u003c/code\u003e\u003c/a\u003e\nAdd note about package bumps\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/974686ed5098c7f9c9289ec946b9058e496a2561\"\u003e\u003ccode\u003e974686e\u003c/code\u003e\u003c/a\u003e\nBump the version to \u003ccode\u003ev8\u003c/code\u003e and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/fbe48b1d2756394be4cd4358ed3bc1343b330e75\"\u003e\u003ccode\u003efbe48b1\u003c/code\u003e\u003c/a\u003e\nUpdate test names to make it clearer what they do\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/96bf374a614d4360e225874c3efd6893a3f285e7\"\u003e\u003ccode\u003e96bf374\u003c/code\u003e\u003c/a\u003e\nOne more test fix\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/b8c4819ef592cbe04fd93534534b38f853864332\"\u003e\u003ccode\u003eb8c4819\u003c/code\u003e\u003c/a\u003e\nFix skip decompress test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/37930b1c2abaa49bbe596cd826c3c89aef350131...70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/download-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d7.0.0\u0026new-version\u003d8.0.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "8141381f6df912605b521312a3650c0d27cf6e51",
      "tree": "7fb5df0e4549f1c2defbbda3e90a798779f699ac",
      "parents": [
        "56ba929d1a1dac01f0181c5951ab03c962392555"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 04 14:58:16 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 14:58:16 2026 -0500"
      },
      "message": "chore: Bump actions/upload-artifact from 6.0.0 to 7.0.0 (#680)\n\nBumps\n[actions/upload-artifact](https://github.com/actions/upload-artifact)\nfrom 6.0.0 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/releases\"\u003eactions/upload-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003ev7 What\u0027s new\u003c/h2\u003e\n\u003ch3\u003eDirect Uploads\u003c/h3\u003e\n\u003cp\u003eAdds support for uploading single files directly (unzipped). Callers\ncan set the new \u003ccode\u003earchive\u003c/code\u003e parameter to \u003ccode\u003efalse\u003c/code\u003e to\nskip zipping the file during upload. Right now, we only support single\nfiles. The action will fail if the glob passed resolves to multiple\nfiles. The \u003ccode\u003ename\u003c/code\u003e parameter is also ignored with this\nsetting. Instead, the name of the artifact will be the name of the\nuploaded file.\u003c/p\u003e\n\u003ch3\u003eESM\u003c/h3\u003e\n\u003cp\u003eTo support new versions of the \u003ccode\u003e@actions/*\u003c/code\u003e packages,\nwe\u0027ve upgraded the package to ESM.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd proxy integration test by \u003ca\nhref\u003d\"https://github.com/Link\"\u003e\u003ccode\u003e@​Link\u003c/code\u003e\u003c/a\u003e- in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/754\"\u003eactions/upload-artifact#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade the module to ESM and bump dependencies by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/762\"\u003eactions/upload-artifact#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport direct file uploads by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/764\"\u003eactions/upload-artifact#764\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Link\"\u003e\u003ccode\u003e@​Link\u003c/code\u003e\u003c/a\u003e- made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/754\"\u003eactions/upload-artifact#754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/v6...v7.0.0\"\u003ehttps://github.com/actions/upload-artifact/compare/v6...v7.0.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\nhref\u003d\"https://github.com/actions/upload-artifact/commit/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f\"\u003e\u003ccode\u003ebbbca2d\u003c/code\u003e\u003c/a\u003e\nSupport direct file uploads (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/589182c5a4cec8920b8c1bce3e2fab1c97a02296\"\u003e\u003ccode\u003e589182c\u003c/code\u003e\u003c/a\u003e\nUpgrade the module to ESM and bump dependencies (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/47309c993abb98030a35d55ef7ff34b7fa1074b5\"\u003e\u003ccode\u003e47309c9\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/754\"\u003e#754\u003c/a\u003e\nfrom actions/Link-/add-proxy-integration-tests\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/02a8460834e70dab0ce194c64360c59dc1475ef0\"\u003e\u003ccode\u003e02a8460\u003c/code\u003e\u003c/a\u003e\nAdd proxy integration test\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/b7c566a772e6b6bfb58ed0dc250532a479d7789f...bbbca2ddaa5d8feaa63e36b76fdaad77386f024f\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/upload-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d6.0.0\u0026new-version\u003d7.0.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "56ba929d1a1dac01f0181c5951ab03c962392555",
      "tree": "3efb738ebe11cf90c8f903cdb12c8dbefee78308",
      "parents": [
        "fb0a62f395d0644a3c9d7873b4cc92a09961359e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 04 14:58:03 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 14:58:03 2026 -0500"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go/v7 from 7.4.0 to 7.5.0 (#682)\n\nBumps\n[github.com/substrait-io/substrait-go/v7](https://github.com/substrait-io/substrait-go)\nfrom 7.4.0 to 7.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/releases\"\u003egithub.com/substrait-io/substrait-go/v7\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.5.0 (2026-03-01)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003eParameterizedFuncType\u003c/code\u003e support to\n\u003ccode\u003eunwrapAnyTypeWithName\u003c/code\u003e for higher-order function type\nresolution (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/202\"\u003e#202\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/8179602deae69faf305fb29de4076a10975b59f1\"\u003e8179602\u003c/a\u003e)\n\u003cblockquote\u003e\n\u003cp\u003eAdds a missing \u003ccode\u003e*ParameterizedFuncType\u003c/code\u003e case to\n\u003ccode\u003eunwrapAnyTypeWithName\u003c/code\u003e\nin \u003ccode\u003etypes/any_type.go\u003c/code\u003e, enabling type resolution for\nhigher-order\nfunctions (HOFs) that use parameterized function types in their YAML\ndefinitions\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/8179602deae69faf305fb29de4076a10975b59f1\"\u003e\u003ccode\u003e8179602\u003c/code\u003e\u003c/a\u003e\nfeat: add \u003ccode\u003eParameterizedFuncType\u003c/code\u003e support to\n\u003ccode\u003eunwrapAnyTypeWithName\u003c/code\u003e for high...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/compare/v7.4.0...v7.5.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-go/v7\u0026package-manager\u003dgo_modules\u0026previous-version\u003d7.4.0\u0026new-version\u003d7.5.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "fb0a62f395d0644a3c9d7873b4cc92a09961359e",
      "tree": "6edfb23917775f547b85e8473d1dc9dcd4e235fd",
      "parents": [
        "d6242c01b689cbd3b45399b39e952f5280d9c663"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 04 12:18:45 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 12:18:45 2026 -0500"
      },
      "message": "chore: Bump actions/setup-go from 6.2.0 to 6.3.0 (#678)\n\nBumps [actions/setup-go](https://github.com/actions/setup-go) from 6.2.0\nto 6.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/setup-go/releases\"\u003eactions/setup-go\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate default Go module caching to use go.mod by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/705\"\u003eactions/setup-go#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix golang download url to go.dev by \u003ca\nhref\u003d\"https://github.com/178inaba\"\u003e\u003ccode\u003e@​178inaba\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/469\"\u003eactions/setup-go#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/setup-go/compare/v6...v6.3.0\"\u003ehttps://github.com/actions/setup-go/compare/v6...v6.3.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\nhref\u003d\"https://github.com/actions/setup-go/commit/4b73464bb391d4059bd26b0524d20df3927bd417\"\u003e\u003ccode\u003e4b73464\u003c/code\u003e\u003c/a\u003e\nFix golang download url to go.dev (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/a5f9b05d2d216f63e13859e0d847461041025775\"\u003e\u003ccode\u003ea5f9b05\u003c/code\u003e\u003c/a\u003e\nUpdate default Go module caching to use go.mod (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/setup-go/compare/v6.2.0...v6.3.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/setup-go\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d6.2.0\u0026new-version\u003d6.3.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "d6242c01b689cbd3b45399b39e952f5280d9c663",
      "tree": "9a9a52822750b3004d86f94ea20e1f6be96b7791",
      "parents": [
        "61a09f5af2c8f08a1f395a39bf74b580b082f0de"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 04 12:18:32 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 12:18:32 2026 -0500"
      },
      "message": "chore: Bump github.com/pterm/pterm from 0.12.82 to 0.12.83 (#681)\n\nBumps [github.com/pterm/pterm](https://github.com/pterm/pterm) from\n0.12.82 to 0.12.83.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/pterm/pterm/releases\"\u003egithub.com/pterm/pterm\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.83\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eFixes 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(prefix): PrefixPrinter now uses updated defaultWriter by \u003ca\nhref\u003d\"https://github.com/christeredvartsen\"\u003e\u003ccode\u003e@​christeredvartsen\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/pterm/pterm/pull/752\"\u003epterm/pterm#752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reset IsActive before RawOutput early return in\nSpinnerPrinter.Stop() by \u003ca\nhref\u003d\"https://github.com/bk-simon\"\u003e\u003ccode\u003e@​bk-simon\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/pterm/pterm/pull/764\"\u003epterm/pterm#764\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/christeredvartsen\"\u003e\u003ccode\u003e@​christeredvartsen\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/pterm/pterm/pull/752\"\u003epterm/pterm#752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bk-simon\"\u003e\u003ccode\u003e@​bk-simon\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/pterm/pterm/pull/764\"\u003epterm/pterm#764\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/pterm/pterm/compare/v0.12.82...v0.12.83\"\u003ehttps://github.com/pterm/pterm/compare/v0.12.82...v0.12.83\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\nhref\u003d\"https://github.com/pterm/pterm/commit/ed296ee75a70b5bb062438995e147aa114c2d539\"\u003e\u003ccode\u003eed296ee\u003c/code\u003e\u003c/a\u003e\nchore: update golangci-lint action to v9 and specify version\nv2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pterm/pterm/commit/5fde88a33bb2f8f7ae94cb48d1d5ddb02ec3c3c9\"\u003e\u003ccode\u003e5fde88a\u003c/code\u003e\u003c/a\u003e\nfix: fixed tests\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pterm/pterm/commit/a057e0aa4c39b460ce07eec2923a22def703e931\"\u003e\u003ccode\u003ea057e0a\u003c/code\u003e\u003c/a\u003e\nchore: fixed linting errors\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pterm/pterm/commit/fe86f8ac69bd213ba860992e70198cbc59bbbad1\"\u003e\u003ccode\u003efe86f8a\u003c/code\u003e\u003c/a\u003e\nrefactor: migrate golangci-lint config\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pterm/pterm/commit/6176f91631042dd9cf8239fb6f9386740f5a9858\"\u003e\u003ccode\u003e6176f91\u003c/code\u003e\u003c/a\u003e\nchore: update deps\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pterm/pterm/commit/92adf380d54db71b548e93fb6b2bf3b49f33e759\"\u003e\u003ccode\u003e92adf38\u003c/code\u003e\u003c/a\u003e\nfix: reset IsActive before RawOutput early return in\nSpinnerPrinter.Stop() (#...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pterm/pterm/commit/bcb9c07ad8b7d537f7c71f3c3c689409c00180c3\"\u003e\u003ccode\u003ebcb9c07\u003c/code\u003e\u003c/a\u003e\nfix(prefix): PrefixPrinter now uses updated defaultWriter (\u003ca\nhref\u003d\"https://redirect.github.com/pterm/pterm/issues/752\"\u003e#752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/pterm/pterm/compare/v0.12.82...v0.12.83\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/pterm/pterm\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.12.82\u0026new-version\u003d0.12.83)](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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "61a09f5af2c8f08a1f395a39bf74b580b082f0de",
      "tree": "64c037a0949cdaf66c56c0f0602e8c449ce42c21",
      "parents": [
        "2e878e3f25abe8828d623cadec908059ea822b14"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Mar 04 11:56:00 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 17:56:00 2026 +0100"
      },
      "message": "chore(dev/release): use release/KEYS instead of dev/KEYS (#683)\n\nfixes #677\n\n---------\n\nCo-authored-by: Raúl Cumplido \u003craulcumplido@gmail.com\u003e"
    },
    {
      "commit": "2e878e3f25abe8828d623cadec908059ea822b14",
      "tree": "e3b070bb7ecd2c360670bc3960a752ef4a0db48c",
      "parents": [
        "b873f11421e471850bd638008816db8bba665a94"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Mar 04 11:33:19 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 11:33:19 2026 -0500"
      },
      "message": "chore(fixup): silly mistake (#686)\n\nfixup silly mistake in post-website.sh"
    },
    {
      "commit": "b873f11421e471850bd638008816db8bba665a94",
      "tree": "f36cb1553d23d96fd83dd6b2ccf1ed201e286e05",
      "parents": [
        "2de8b123a24f0e687fbfc590a0019c803037a076"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Mar 04 11:29:23 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 11:29:23 2026 -0500"
      },
      "message": "chore(dev/post-website): improve email generation (#685)\n\n"
    },
    {
      "commit": "2de8b123a24f0e687fbfc590a0019c803037a076",
      "tree": "8576be0b13fbe75207253462fc8c9982d46099df",
      "parents": [
        "448122ab169d3bada5af0bae01975af4f176762f"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Feb 27 13:44:39 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 13:44:39 2026 -0500"
      },
      "message": "chore(arrow): bump PkgVersion to 18.5.2 (#676)\n\nprep for next release"
    },
    {
      "commit": "448122ab169d3bada5af0bae01975af4f176762f",
      "tree": "826728d31cb0946d4355c319cd235274bd7329c7",
      "parents": [
        "7d9f38123934afb7c92567f06078dbecc3d75fad"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Feb 27 13:33:52 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 13:33:52 2026 -0500"
      },
      "message": "chore(dev/release): embed hash of source tarball into email (#675)\n\nFollowing the discussion on\nhttps://lists.apache.org/thread/o2mpsf5okhzfz2k4mbg5d4s9ror69587 and\nhttps://github.com/apache/arrow-adbc/pull/3965, I figured we should do\nthe same for arrow-go."
    },
    {
      "commit": "7d9f38123934afb7c92567f06078dbecc3d75fad",
      "tree": "fb48aef326f237dd80e89116bfce359c2d088c06",
      "parents": [
        "cecefdfcc7117136bbab40eb35a105c6556d4c5c"
      ],
      "author": {
        "name": "William",
        "email": "98815791+peasee@users.noreply.github.com",
        "time": "Fri Feb 27 10:00:04 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 13:00:04 2026 -0500"
      },
      "message": "feat: Support setting IPC options in FlightSQL call options (#674)\n\n### Rationale for this change\n\nI would like to specify the IPC stream compression settings for the\nFlightSQL `ExecuteIngest` command. Currently, there is no way to apply\nIPC options to the writer stream from the `ExecuteIngest` method.\n\n### What changes are included in this PR?\n\n* Introduces a `ExecuteIngestWithIPC` which allows passing IPC options\n* Retains the existing behaviour of `ExecuteIngest`\n* Consolidates the shared execute ingest behaviour into a private\n`executeIngest`\n\n### Are these changes tested?\n\n* Tested with new unit tests to validate the record batch frames are\nsent with LZ4 compression when the `ipc.WithLZ4()` option is passed in\nthe call options\n\n### Are there any user-facing changes?\n\n* Yes - introduces a new public method `ExecuteIngestWithIPC`"
    },
    {
      "commit": "cecefdfcc7117136bbab40eb35a105c6556d4c5c",
      "tree": "a4b176239eaa0c120525369cbc68cbff26fe24bc",
      "parents": [
        "f9281fcd32f0851fc201d623c70f2a5377ec910a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Feb 23 17:06:26 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 17:06:26 2026 -0500"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-go/v7 from 7.3.0 to 7.4.0 (#672)\n\nBumps\n[github.com/substrait-io/substrait-go/v7](https://github.com/substrait-io/substrait-go)\nfrom 7.3.0 to 7.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/releases\"\u003egithub.com/substrait-io/substrait-go/v7\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.4.0 (2026-02-22)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade substrait to v0.81.0 and support metadata field in YAML\nextension files (\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait-go/issues/201\"\u003e#201\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/158851c43399719ee4165aeb191f3dece2c984e5\"\u003e158851c\u003c/a\u003e)\n\u003cblockquote\u003e\n\u003cp\u003eSupport the \u003ccode\u003emetadata\u003c/code\u003e field in YAML extension files, as\nintroduced in\n\u003ca\nhref\u003d\"https://redirect.github.com/substrait-io/substrait/pull/922\"\u003esubstrait-io/substrait#922\u003c/a\u003e.\nMetadata is now\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/commit/158851c43399719ee4165aeb191f3dece2c984e5\"\u003e\u003ccode\u003e158851c\u003c/code\u003e\u003c/a\u003e\nfeat: upgrade substrait to v0.81.0 and support metadata field in YAML\nextensi...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-go/compare/v7.3.0...v7.4.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-go/v7\u0026package-manager\u003dgo_modules\u0026previous-version\u003d7.3.0\u0026new-version\u003d7.4.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "f9281fcd32f0851fc201d623c70f2a5377ec910a",
      "tree": "7b4410ce27ea076e2edc347d22f95e6a0f968002",
      "parents": [
        "287a6010ef0441a7853c86fdef8ce378c98920d7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Feb 23 16:46:33 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 16:46:33 2026 -0500"
      },
      "message": "chore: Bump modernc.org/sqlite from 1.45.0 to 1.46.1 (#670)\n\nBumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.45.0\nto 1.46.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md\"\u003emodernc.org/sqlite\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-17 v1.46.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure connection state is reset if Tx.Commit fails. Previously,\nerrors like SQLITE_BUSY during COMMIT could leave the underlying\nconnection inside a transaction, causing errors when the connection was\nreused by the database/sql pool. The driver now detects this state and\nforces a rollback internally.\u003c/li\u003e\n\u003cli\u003eFixes [GitHub issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/2\"\u003e#2\u003c/a\u003e](\u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/issues/2\"\u003emodernc-org/sqlite#2\u003c/a\u003e),\nthanks Edoardo Spadolini!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-17 v1.46.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable ColumnTypeScanType to report time.Time instead of string for\nTEXT columns declared as DATE, DATETIME, TIME, or TIMESTAMP via a new\n\u003ccode\u003e_texttotime\u003c/code\u003e URI parameter.\u003c/li\u003e\n\u003cli\u003eSee [GitHub pull request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/1\"\u003e#1\u003c/a\u003e](\u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/pull/1\"\u003emodernc-org/sqlite#1\u003c/a\u003e),\nthanks devhaozi!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-02-09  v1.45.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce vtab subpackage (modernc.org/sqlite/vtab) exposing Module,\nTable, Cursor, and IndexInfo API for Go virtual tables.\u003c/li\u003e\n\u003cli\u003eWire vtab registration into the driver: vtab.RegisterModule installs\nmodules globally and each new connection calls\nsqlite3_create_module_v2.\u003c/li\u003e\n\u003cli\u003eImplement vtab trampolines for\nxCreate/xConnect/xBestIndex/xDisconnect/xDestroy/xOpen/xClose/xFilter/xNext/xEof/xColumn/xRowid.\u003c/li\u003e\n\u003cli\u003eMap SQLite’s sqlite3_index_info into vtab.IndexInfo, including\nconstraints, ORDER BY terms, and constraint usage (ArgIndex → xFilter\nargv[]).\u003c/li\u003e\n\u003cli\u003eAdd an in‑repo dummy vtab module and test (module_test.go) that\nvalidates registration, basic scanning, and constraint visibility.\u003c/li\u003e\n\u003cli\u003eSee [GitLab merge request \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/90\"\u003e#90\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/merge_requests/90\"\u003ehttps://gitlab.com/cznic/sqlite/-/merge_requests/90\u003c/a\u003e),\nthanks Adrian Witas!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-19 v1.44.3: Resolves [GitLab issue \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/issues/243\"\u003e#243\u003c/a\u003e](\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/-/issues/243\"\u003ehttps://gitlab.com/cznic/sqlite/-/issues/243\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-18 v1.44.2: Upgrade to \u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_51_2.html\"\u003eSQLite 3.51.2\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2026-01-13 v1.44.0: Upgrade to SQLite 3.51.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-10-10 v1.39.1: Upgrade to SQLite 3.50.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-06-09 v1.38.0: Upgrade to SQLite 3.50.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2025-02-26 v1.36.0: Upgrade to SQLite 3.49.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-11-16 v1.34.0: Implement ResetSession and IsValid methods in\nconnection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-07-22 v1.31.0: Support windows/386.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-06-04 v1.30.0: Upgrade to SQLite 3.46.0, release notes at\n\u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_46_0.html\"\u003ehttps://sqlite.org/releaselog/3_46_0.html\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2024-02-13 v1.29.0: Upgrade to SQLite 3.45.1, release notes at\n\u003ca\nhref\u003d\"https://sqlite.org/releaselog/3_45_1.html\"\u003ehttps://sqlite.org/releaselog/3_45_1.html\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-12-14: v1.28.0: Add (*Driver).RegisterConnectionHook,\nConnectionHookFn, ExecQuerierContext, RegisterConnectionHook.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-08-03 v1.25.0: enable SQLITE_ENABLE_DBSTAT_VTAB.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-07-11 v1.24.0: Add\n(*conn).{Serialize,Deserialize,NewBackup,NewRestore} methods, add Backup\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e2023-06-01 v1.23.0: Allow registering aggregate functions.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/c777b9066dd7f97147b35345fce4c6a7a728c3ff\"\u003e\u003ccode\u003ec777b90\u003c/code\u003e\u003c/a\u003e\nadd GOVERNANCE.md\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/806ed2d1be238ad8e00f133eba05df275a14117d\"\u003e\u003ccode\u003e806ed2d\u003c/code\u003e\u003c/a\u003e\nfix inconsistent transaction state on failed Commit\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/e124c3ee4426555f752f41266d70e580aedc5619\"\u003e\u003ccode\u003ee124c3e\u003c/code\u003e\u003c/a\u003e\nCHANGELOG.md: document v1.46.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/commit/ba0b20fc091f1720a103bafb77be77738811cc3c\"\u003e\u003ccode\u003eba0b20f\u003c/code\u003e\u003c/a\u003e\nmanually merge \u003ca\nhref\u003d\"https://redirect.github.com/modernc-org/sqlite/pull/1\"\u003emodernc-org/sqlite#1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://gitlab.com/cznic/sqlite/compare/v1.45.0...v1.46.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull\nRequest\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| modernc.org/sqlite | [\u003e\u003d 1.34.a, \u003c 1.35] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dmodernc.org/sqlite\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.45.0\u0026new-version\u003d1.46.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "287a6010ef0441a7853c86fdef8ce378c98920d7",
      "tree": "dcbccc02df0700a52c6303b31e3464b5f5a93353",
      "parents": [
        "24c66fa8bb79bd311be821627da0723a6428c84a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Feb 23 16:46:15 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 16:46:15 2026 -0500"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-protobuf/go from 0.80.0 to 0.81.0 (#671)\n\nBumps\n[github.com/substrait-io/substrait-protobuf/go](https://github.com/substrait-io/substrait-protobuf)\nfrom 0.80.0 to 0.81.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-protobuf/commit/68d8dc633e54199babaa44d14fc91acc058172c2\"\u003e\u003ccode\u003e68d8dc6\u003c/code\u003e\u003c/a\u003e\ngenerated go/substraitpb for v0.81.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-protobuf/compare/go/v0.80.0...go/v0.81.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-protobuf/go\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.80.0\u0026new-version\u003d0.81.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "24c66fa8bb79bd311be821627da0723a6428c84a",
      "tree": "3c77e205799d5c52e31473f61511283e3b4504d5",
      "parents": [
        "a886a5722b872823c2a8f46445901908a7ce5254"
      ],
      "author": {
        "name": "Rusty Conover",
        "email": "rusty@conover.me",
        "time": "Mon Feb 23 10:57:30 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 10:57:30 2026 -0500"
      },
      "message": "feat(arrow/ipc): support custom_metadata on RecordBatch messages (#669)\n\n### Rationale for this change\n\nArrow IPC Messages wrap RecordBatch data in a Message flatbuffer which\nhas a custom_metadata field (vector of KeyValue pairs). PyArrow and\nother implementations use this to attach per-batch metadata, but the Go\nimplementation previously ignored it on both read and write paths.\n\n### What changes are included in this PR?\n\nAdd a RecordBatchWithMetadata optional interface to avoid breaking the\nexisting RecordBatch interface. The simpleRecord implementation carries\nmetadata through NewSlice, SetColumn, and IPC round-trips. Includes\nPyArrow-generated test fixtures for interoperability validation.\n\n### Are these changes tested?\n\nYes tests are included.\n\n### Are there any user-facing changes?\n\nYes custom_metadata is now supported on RecordBatches.\n\nThis change was developed with AI assistance and manually reviewed."
    },
    {
      "commit": "a886a5722b872823c2a8f46445901908a7ce5254",
      "tree": "e335b1357edfde805548cfae0bb58ffcc29bc7f2",
      "parents": [
        "dcb85bfa48c025bae8d8f8e271965a7cc387adc1"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Feb 19 20:50:23 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 20:50:23 2026 -0500"
      },
      "message": "fix(parquet/pqarrow): selective column reading of complex map column (#668)\n\n### Rationale for this change\nUpstream fix for the issue identified in\nhttps://github.com/apache/iceberg-go/issues/737. When reading maps with\nnested values using column indices for selective column reading, if the\nchild fields of the map weren\u0027t in the list of indices there was a\nproblem:\n\n- Maps are represented in Parquet as a list of key-value structs\n(`list\u003cstruct\u003ckey, value\u003e\u003e`\n- The struct *MUST* have exactly 2 fields (key and value) to be\nconverted into a proper Arrow typed Map column\n- When applying the column filtering, if only the key *OR* value field\n(but not both) were in the list of columns, the resulting child struct\nwould only have 1 field\n- As a result, the `Map.validateData()` method would fail with a panic\nof `arrow/array: map array child array should have two fields`.\n\n### What changes are included in this PR?\nIn pqarrow/file_reader.go leaf filtering is disabled when reading a\nmap\u0027s key-value struct. This will ensure both the key and value columns\nare always read together, maintaining the required 2-field structure for\nmap array.\n\n### Are these changes tested?\nYes a test case is added for the change.\n\n### Are there any user-facing changes?\nThis only affects map type reading with column filter selection ensuring\ncorrectness. The only change is that a failure mode has been eliminated."
    },
    {
      "commit": "dcb85bfa48c025bae8d8f8e271965a7cc387adc1",
      "tree": "646304091631abd3f341eaa712dd1405374a01f6",
      "parents": [
        "f7d74a6cdc09c82aa2728021bbe9cea408b572d5"
      ],
      "author": {
        "name": "daniel-adam-tfs",
        "email": "daniel.adam1@thermofisher.com",
        "time": "Thu Feb 19 22:26:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 16:26:50 2026 -0500"
      },
      "message": "fix(parquet): bss encoding and tests on big endian systems (#663)\n\n### Rationale for this change\n\nTo ensure the Arrow and Parquet Go libraries work correctly on\nbig-endian architectures.\n\n### What changes are included in this PR?\n\nAdded endianness-aware BYTE_STREAM_SPLIT decoding in the\nparquet/encoding package.\nFixed tests in the parquet package to handle byte order correctly on\nbig-endian systems.\n\n### Are these changes tested?\n\nYes, all affected unit tests now pass on both little-endian and\nbig-endian machines. The changes specifically address some of the\npreviously failing tests on big-endian systems.\n\n### Are there any user-facing changes?\n\nNo user-facing API changes. The changes are internal and ensure correct\nbehavior on supported architectures."
    },
    {
      "commit": "f7d74a6cdc09c82aa2728021bbe9cea408b572d5",
      "tree": "57408e01ca0f92d395078706adcf2cd466f439b1",
      "parents": [
        "2df0e6f3ebc118e30878b4083412fccc15a336d3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Feb 19 14:40:27 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 14:40:27 2026 -0500"
      },
      "message": "chore: Bump google.golang.org/grpc from 1.78.0 to 1.79.1 (#665)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.78.0 to 1.79.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.79.1\u003c/h2\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003egrpc: Remove the \u003ccode\u003e-dev\u003c/code\u003e suffix from the User-Agent\nheader. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/pull/8902\"\u003egrpc/grpc-go#8902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.79.0\u003c/h2\u003e\n\u003ch1\u003eAPI Changes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003emem: Add experimental API \u003ccode\u003eSetDefaultBufferPool\u003c/code\u003e to\nchange the default buffer pool. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8806\"\u003e#8806\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/vanja-p\"\u003e\u003ccode\u003e@​vanja-p\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eexperimental/stats: Update \u003ccode\u003eMetricsRecorder\u003c/code\u003e to require\nembedding the new \u003ccode\u003eUnimplementedMetricsRecorder\u003c/code\u003e (a no-op\nstruct) in all implementations for forward compatibility. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8780\"\u003e#8780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBehavior Changes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ebalancer/weightedtarget: Remove handling of \u003ccode\u003eAddresses\u003c/code\u003e\nand only handle \u003ccode\u003eEndpoints\u003c/code\u003e in resolver updates. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8841\"\u003e#8841\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew Features\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eexperimental/stats: Add support for asynchronous gauge metrics\nthrough the new \u003ccode\u003eAsyncMetricReporter\u003c/code\u003e and\n\u003ccode\u003eRegisterAsyncReporter\u003c/code\u003e APIs. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8780\"\u003e#8780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epickfirst: Add support for weighted random shuffling of endpoints,\nas described in \u003ca\nhref\u003d\"https://redirect.github.com/grpc/proposal/pull/535\"\u003egRFC A113\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis is enabled by default, and can be turned off using the\nenvironment variable\n\u003ccode\u003eGRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003exds: Implement \u003ccode\u003e:authority\u003c/code\u003e rewriting, as specified in \u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A81-xds-authority-rewriting.md\"\u003egRFC\nA81\u003c/a\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8779\"\u003e#8779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebalancer/randomsubsetting: Implement the\n\u003ccode\u003erandom_subsetting\u003c/code\u003e LB policy, as specified in \u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A68-random-subsetting.md\"\u003egRFC\nA68\u003c/a\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8650\"\u003e#8650\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/marek-szews\"\u003e\u003ccode\u003e@​marek-szews\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ecredentials/tls: Fix a bug where the port was not stripped from the\nauthority override before validation. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8726\"\u003e#8726\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/Atul1710\"\u003e\u003ccode\u003e@​Atul1710\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003exds/priority: Fix a bug causing delayed failover to lower-priority\nclusters when a higher-priority cluster is stuck in\n\u003ccode\u003eCONNECTING\u003c/code\u003e state. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8813\"\u003e#8813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehealth: Fix a bug where health checks failed for clients using\nlegacy compression options (\u003ccode\u003eWithDecompressor\u003c/code\u003e or\n\u003ccode\u003eRPCDecompressor\u003c/code\u003e). (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8765\"\u003e#8765\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/sanki92\"\u003e\u003ccode\u003e@​sanki92\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003etransport: Fix an issue where the HTTP/2 server could skip header\nsize checks when terminating a stream early. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8769\"\u003e#8769\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/joybestourous\"\u003e\u003ccode\u003e@​joybestourous\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eserver: Propagate status detail headers, if available, when\nterminating a stream during request header processing. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8754\"\u003e#8754\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/joybestourous\"\u003e\u003ccode\u003e@​joybestourous\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePerformance Improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ecredentials/alts: Optimize read buffer alignment to reduce copies.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8791\"\u003e#8791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emem: Optimize pooling and creation of \u003ccode\u003ebuffer\u003c/code\u003e objects.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8784\"\u003e#8784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etransport: Reduce slice re-allocations by reserving slice capacity.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8797\"\u003e#8797\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/782f2de44f597af18a120527e7682a6670d84289\"\u003e\u003ccode\u003e782f2de\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.1 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8902\"\u003e#8902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/850eccbb2257bd2de6ac28ee88a7172ab6175629\"\u003e\u003ccode\u003e850eccb\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.1-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/765ff056b6890f6c8341894df4e9668e9bfc18ef\"\u003e\u003ccode\u003e765ff05\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.0 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/68804be0e78ed0365bb5a576dedc12e2168ed63e\"\u003e\u003ccode\u003e68804be\u003c/code\u003e\u003c/a\u003e\nCherry pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8864\"\u003e#8864\u003c/a\u003e to\nv1.79.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8896\"\u003e#8896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/0381eb650acdae8e423473e64eef07693fe36305\"\u003e\u003ccode\u003e0381eb6\u003c/code\u003e\u003c/a\u003e\nxds: Support \u003ccode\u003e:authority\u003c/code\u003e header rewriting for LOGICAL_DNS\nclusters (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8822\"\u003e#8822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/90f571db95a0ec223ec45187f7399a06ccdc10cf\"\u003e\u003ccode\u003e90f571d\u003c/code\u003e\u003c/a\u003e\nxds: remove references to ResolverState.Addresses (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8841\"\u003e#8841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/679565f9ae655079807f5ab10e07f41acd2af943\"\u003e\u003ccode\u003e679565f\u003c/code\u003e\u003c/a\u003e\nxds: remove \u003ccode\u003eHashKey\u003c/code\u003e field from\n\u003ccode\u003exdsresource.Endpoint\u003c/code\u003e struct (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8844\"\u003e#8844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/bb2073d1e5551b900763979e08e1c11a47a8f150\"\u003e\u003ccode\u003ebb2073d\u003c/code\u003e\u003c/a\u003e\nmem: Allow overriding the default buffer pool. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8806\"\u003e#8806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/bd4444a0a2fdd66245f9e0f0d140aafb5b49044c\"\u003e\u003ccode\u003ebd4444a\u003c/code\u003e\u003c/a\u003e\nFix flaky \u003ccode\u003eTestServer_RedundantUpdateSuppression\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8839\"\u003e#8839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/623b3f000b3625aa4a1413f90add1ea367db17c2\"\u003e\u003ccode\u003e623b3f0\u003c/code\u003e\u003c/a\u003e\ntest: add regression test for RecvMsg() error shadowing \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/7510\"\u003e#7510\u003c/a\u003e\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8820\"\u003e#8820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.78.0...v1.79.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.78.0\u0026new-version\u003d1.79.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "2df0e6f3ebc118e30878b4083412fccc15a336d3",
      "tree": "98fb1ed06303a8154355831806f5762b6e4a8bd9",
      "parents": [
        "b3689e47aa6e7d2ffddffec436d8a3b40897874c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Feb 19 14:40:15 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 14:40:15 2026 -0500"
      },
      "message": "chore: Bump github.com/substrait-io/substrait-protobuf/go from 0.79.0 to 0.80.0 (#664)\n\nBumps\n[github.com/substrait-io/substrait-protobuf/go](https://github.com/substrait-io/substrait-protobuf)\nfrom 0.79.0 to 0.80.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-protobuf/commit/75659f87ba04f7214723f39950db38f48d938d0c\"\u003e\u003ccode\u003e75659f8\u003c/code\u003e\u003c/a\u003e\ngenerated go/substraitpb for v0.80.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/substrait-io/substrait-protobuf/compare/go/v0.79.0...go/v0.80.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub.com/substrait-io/substrait-protobuf/go\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.79.0\u0026new-version\u003d0.80.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\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 this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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"
    }
  ],
  "next": "b3689e47aa6e7d2ffddffec436d8a3b40897874c"
}
