)]}'
{
  "commit": "f3bbdb912f8c2ad7d9ea24d5e7e6f0a08331bca4",
  "tree": "4a58ff45d543add349ababdefd2bc23754c31e65",
  "parents": [
    "bcdba040e094248d9f1c91ba02dfc4628cb86067"
  ],
  "author": {
    "name": "Copilot",
    "email": "223556219+Copilot@users.noreply.github.com",
    "time": "Mon Apr 27 16:08:25 2026 +0800"
  },
  "committer": {
    "name": "Copilot",
    "email": "223556219+Copilot@users.noreply.github.com",
    "time": "Mon Apr 27 18:32:28 2026 +0800"
  },
  "message": "[feature](runtime-filter) Add runtime filter partition pruning\n\n### What problem does this PR solve?\n\nIssue Number: None\n\nRelated PR: None\n\nProblem Summary: Add runtime filter partition pruning support and cover planner/runtime handling for partition boundaries. Preserve partition-pruning monotonicity for grouped runtime filters with multiple scan targets, and run partition pruning for runtime filters acquired before scanner construction.\n\n### Release note\n\nAdd runtime filter partition pruning support.\n\n### Check List (For Author)\n\n- Test: BE build, FE build, BE format, and FE checkstyle\n    - Manual test: ./build.sh --be\n    - Manual test: ./build.sh --fe\n    - Manual test: build-support/check-format.sh\n    - Manual test: cd fe \u0026\u0026 mvn checkstyle:check -pl fe-core\n    - Regression test: Added rf_partition_pruning coverage for grouped runtime filters; not run locally because the running cluster was not restarted with the patched build.\n- Behavior changed: Yes (adds runtime filter partition pruning when enabled)\n- Does this need documentation: No\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3cde3c91c106420462cc6d578469b55ca8f9d1a1",
      "old_mode": 33188,
      "old_path": "be/src/exec/operator/olap_scan_operator.cpp",
      "new_id": "ac056488631681c8716b8e0a22072ce0e0ad58c6",
      "new_mode": 33188,
      "new_path": "be/src/exec/operator/olap_scan_operator.cpp"
    },
    {
      "type": "modify",
      "old_id": "e86b3c6d9a6df02b2dac5e0d14d259a0d30522db",
      "old_mode": 33188,
      "old_path": "be/src/exec/operator/olap_scan_operator.h",
      "new_id": "e6f42eb05e032039fb19b4b8571898b21352e81c",
      "new_mode": 33188,
      "new_path": "be/src/exec/operator/olap_scan_operator.h"
    },
    {
      "type": "modify",
      "old_id": "0d500caa423890c43482257b4557d599a9de34fd",
      "old_mode": 33188,
      "old_path": "be/src/exec/operator/operator.h",
      "new_id": "3dc4b8942b2f4bfbea187d342183a27dd2392a59",
      "new_mode": 33188,
      "new_path": "be/src/exec/operator/operator.h"
    },
    {
      "type": "modify",
      "old_id": "5a731ae580b64e2e92a13de31835d2b757503015",
      "old_mode": 33188,
      "old_path": "be/src/exec/operator/scan_operator.cpp",
      "new_id": "a2b517810fc8ced4a75f92a7b3a9d4dad78bc094",
      "new_mode": 33188,
      "new_path": "be/src/exec/operator/scan_operator.cpp"
    },
    {
      "type": "modify",
      "old_id": "2551f76d56ff9c1d4944771f777034e1d4692dc8",
      "old_mode": 33188,
      "old_path": "be/src/exec/operator/scan_operator.h",
      "new_id": "39ba6304c133691e8787529fa7618d5687e3036b",
      "new_mode": 33188,
      "new_path": "be/src/exec/operator/scan_operator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "527a2a5e13a0e89344bfa5124f08191dec49f59c",
      "new_mode": 33188,
      "new_path": "be/src/exec/runtime_filter/runtime_filter_partition_pruner.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "31712aec2bb679a185cafc120bb0a92d4b11fde3",
      "new_mode": 33188,
      "new_path": "be/src/exec/runtime_filter/runtime_filter_partition_pruner.h"
    },
    {
      "type": "modify",
      "old_id": "96e3e122eefc66dcb27bf029d97202d1257b0941",
      "old_mode": 33188,
      "old_path": "be/src/exec/scan/olap_scanner.cpp",
      "new_id": "57af3eefe7031571e56893e36c57f2a22766ab8f",
      "new_mode": 33188,
      "new_path": "be/src/exec/scan/olap_scanner.cpp"
    },
    {
      "type": "modify",
      "old_id": "2187be4ce45bddfabf44e2b8200a1de9c6a9485b",
      "old_mode": 33188,
      "old_path": "be/src/exec/scan/olap_scanner.h",
      "new_id": "ab8452524a445f189996c41aa0b91e690e63568e",
      "new_mode": 33188,
      "new_path": "be/src/exec/scan/olap_scanner.h"
    },
    {
      "type": "modify",
      "old_id": "14d1b9e734c3a79dab2644b15075aabdce66c591",
      "old_mode": 33188,
      "old_path": "be/src/exec/scan/scanner.h",
      "new_id": "bf38dda5ff7b8ec150eb8614a0130fe2e3fd95eb",
      "new_mode": 33188,
      "new_path": "be/src/exec/scan/scanner.h"
    },
    {
      "type": "modify",
      "old_id": "7abe1929b1f3f68ee26ff447e572457d364868bf",
      "old_mode": 33188,
      "old_path": "be/src/exec/scan/scanner_scheduler.cpp",
      "new_id": "5296fa4681c842aa88b73f77479a298cf5f1bbb0",
      "new_mode": 33188,
      "new_path": "be/src/exec/scan/scanner_scheduler.cpp"
    },
    {
      "type": "modify",
      "old_id": "5192df1550828fe42655a81981ba25e465dab1bf",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java",
      "new_id": "9807ce53befb7fdbf39bd606c53b7a3e492c9d77",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java"
    },
    {
      "type": "modify",
      "old_id": "8a656875d348ac32d69335b0dc98158c18d11537",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java",
      "new_id": "d60a29c3236ed56a6a5956413e17be9b68de1712",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java"
    },
    {
      "type": "modify",
      "old_id": "f4ea16c9360dce69e286b3105589ab064f7d043b",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilter.java",
      "new_id": "4eb152f7a475a5f19c511bfc4e1bd5a816bbab60",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilter.java"
    },
    {
      "type": "modify",
      "old_id": "843087ff45a4c8338f70a2a998a27cad80c55394",
      "old_mode": 33188,
      "old_path": "gensrc/thrift/PlanNodes.thrift",
      "new_id": "91ad5554defac9cc7ae1316befbe12fcd944b513",
      "new_mode": 33188,
      "new_path": "gensrc/thrift/PlanNodes.thrift"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e4801bc5a342fba2a2e46741597b80f2dde2aece",
      "new_mode": 33188,
      "new_path": "regression-test/data/query_p0/runtime_filter/rf_partition_pruning.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8d3955e3c3f93118bc70a911f97d0b550f3807f7",
      "new_mode": 33188,
      "new_path": "regression-test/suites/query_p0/runtime_filter/rf_partition_pruning.groovy"
    }
  ]
}
