Skip to content

Rule 11: Skip PROBE-only bitmap filter predicates#358

Merged
erikdarlingdata merged 1 commit intodevfrom
feature/rule11-probe-filter
Feb 27, 2026
Merged

Rule 11: Skip PROBE-only bitmap filter predicates#358
erikdarlingdata merged 1 commit intodevfrom
feature/rule11-probe-filter

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • PROBE() expressions pushed down from hash joins are bitmap filters, not real residual predicates
  • Rule 11 (Scan With Predicate) now skips scans where the predicate is exclusively PROBE()
  • When a real predicate exists alongside PROBE (e.g. [col]=(0) AND PROBE(...)), the rule still fires
  • Adds IsProbeOnly() helper to both Dashboard and Lite PlanAnalyzers

Test plan

  • Tested against plan with PROBE + real residual — Rule 11 fires correctly
  • Tested against plan with pure residual (no PROBE) — Rule 11 fires correctly
  • PROBE-only predicates are now skipped
  • Dashboard builds clean
  • Lite builds clean
  • plan-b 32/32 tests pass

🤖 Generated with Claude Code

PROBE() expressions pushed down from hash joins are bitmap filters,
not real residual predicates. Rule 11 now ignores scans where the
predicate is exclusively PROBE(). When a real predicate exists
alongside PROBE (e.g. [col]=(0) AND PROBE(...)), the rule still fires.

Adds IsProbeOnly() helper to both Dashboard and Lite PlanAnalyzers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit ea5d8f2 into dev Feb 27, 2026
3 checks passed
@erikdarlingdata erikdarlingdata deleted the feature/rule11-probe-filter branch February 27, 2026 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant