)]}'
{
  "commit": "b7091c0d2f7ee915bd6d1d213bc2a27d8802ae63",
  "tree": "4c191599d10334374ad780fa66e583c3c1880697",
  "parents": [
    "c98fa5616e70ab70579d320bdd68d9b5ca1ead3e"
  ],
  "author": {
    "name": "Daniël Heres",
    "email": "danielheres@gmail.com",
    "time": "Fri Jan 09 11:28:32 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jan 09 10:28:32 2026 +0000"
  },
  "message": "Optimize `Nullstate` / accumulators (#19625)\n\n## Which issue does this PR close?\n\n\u003c!--\nWe generally require a GitHub issue to be filed for all bug fixes and\nenhancements and this helps us generate change logs for our releases.\nYou can link an issue to this PR using the GitHub syntax. For example\n`Closes #123` indicates that this PR will close issue #123.\n--\u003e\n\n- Closes #19636\n\n## Rationale for this change\n\nSpeedup accumulator code (sum, avg, count) by specializing on non-null\ncases.\n\n## What changes are included in this PR?\n\n* Specialize `Nullstate` to non-null values.\n* Use unchecked indexing\n\n\n## Are these changes tested?\n\n\u003c!--\nWe typically require tests for all PRs in order to:\n1. Prevent the code from being accidentally broken by subsequent changes\n2. Serve as another way to document the expected behavior of the code\n\nIf tests are not included in your PR, please explain why (for example,\nare they covered by existing tests)?\n--\u003e\n\n## Are there any user-facing changes?\n\n\u003c!--\nIf there are user-facing changes then we may require documentation to be\nupdated before approving the PR.\n--\u003e\n\n\u003c!--\nIf there are any breaking changes to public APIs, please add the `api\nchange` label.\n--\u003e\n\n---------\n\nCo-authored-by: Andrew Lamb \u003candrew@nerdnetworks.org\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "16d9a9f7cbdf7a453a75b7d877bd19d3e2df7ed1",
      "old_mode": 33188,
      "old_path": "datafusion-examples/examples/udf/advanced_udaf.rs",
      "new_id": "89f621d30e18d0b8ce81e4f14c471120e8777113",
      "new_mode": 33188,
      "new_path": "datafusion-examples/examples/udf/advanced_udaf.rs"
    },
    {
      "type": "modify",
      "old_id": "29b8752048c3eed0e7ac8d82275de8c7c9fcf637",
      "old_mode": 33188,
      "old_path": "datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/accumulate.rs",
      "new_id": "25f52df61136fe227d415cfdfdb41618a4a0a775",
      "new_mode": 33188,
      "new_path": "datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/accumulate.rs"
    },
    {
      "type": "modify",
      "old_id": "149312e5a9c0fc57f1df0cd17734f9f443693e48",
      "old_mode": 33188,
      "old_path": "datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/bool_op.rs",
      "new_id": "f716b48f0ccccf6ce1bc40d7b529036d2bc64cea",
      "new_mode": 33188,
      "new_path": "datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/bool_op.rs"
    },
    {
      "type": "modify",
      "old_id": "656b95d140ddeef995ca8c39e0c24256d0f64ee5",
      "old_mode": 33188,
      "old_path": "datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs",
      "new_id": "acf875b6861390a0431f1c743f1fb403caa49119",
      "new_mode": 33188,
      "new_path": "datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs"
    },
    {
      "type": "modify",
      "old_id": "46a8dbf9540b621be0b048635cac6c0e3dd22c51",
      "old_mode": 33188,
      "old_path": "datafusion/functions-aggregate/src/average.rs",
      "new_id": "543116db1ddb667ef641fb55061a99323104d1f8",
      "new_mode": 33188,
      "new_path": "datafusion/functions-aggregate/src/average.rs"
    },
    {
      "type": "modify",
      "old_id": "a7c819acafea8191a37fb813d5b0de88686ae832",
      "old_mode": 33188,
      "old_path": "datafusion/functions-aggregate/src/count.rs",
      "new_id": "10cc2ad33f5634986652fce3f0abc2f6d2ffe111",
      "new_mode": 33188,
      "new_path": "datafusion/functions-aggregate/src/count.rs"
    }
  ]
}
