8000 feat(query): magic sets rewriting for demand-driven recursive rule evaluation (#289) by adityamukho · Pull Request #291 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c2c907d
docs: add per-query limits implementation plan (#288)
adityamukho Jun 4, 2026
a809971
Merge branch 'main' of github.com:project-minigraf/minigraf
adityamukho Jun 4, 2026
0ca9c85
docs: add magic sets rewriting design spec (#289)
adityamukho Jun 4, 2026
90e5a71
docs: fix magic sets seed fact entity encoding for keyword aliases (#…
adityamukho Jun 4, 2026
56b87f1
docs: add magic sets implementation plan (#289)
adityamukho Jun 4, 2026
2a959b5
feat(magic-sets): scaffold module (#289)
adityamukho Jun 4, 2026
5a70e71
fix(magic-sets): clean up unused imports and add dead_code allow
adityamukho Jun 4, 2026
2f496d7
feat(magic-sets): adornment classification (#289)
adityamukho Jun 4, 2026
f8c9861
feat(magic-sets): seed fact generation (#289)
adityamukho Jun 4, 2026
0248ec7
feat(magic-sets): magic guard injection into positive rules (#289)
adityamukho Jun 4, 2026
b3fee52
fix(magic-sets): use adornment-driven bound-arg extraction in inject_…
adityamukho Jun 4, 2026
93e434c
fix(magic-sets): address code quality issues in inject_magic_guard (#…
adityamukho Jun 4, 2026
8920d7c
feat(magic-sets): magic propagation rule generation (#289)
adityamukho Jun 4, 2026
e818ab4
fix(magic-sets): correct multi-bound propagation rule heads in build_…
adityamukho Jun 4, 2026
c0111b2
feat(magic-sets): SCC propagation and complete rewrite() (#289)
adityamukho Jun 4, 2026
e078cda
fix(magic-sets): address clippy and documentation issues in magic_set…
adityamukho Jun 4, 2026
a8bb47b
feat(magic-sets): wire rewrite() into execute_query_with_rules (#289)
adityamukho Jun 4, 2026
a55d8f5
fix(magic-sets): clarify seed fact tx_id and any_free guard comments …
adityamukho Jun 4, 2026
594000f
test(magic-sets): integration tests for result correctness (#289)
adityamukho Jun 4, 2026
1403903
fix(magic-sets): fix CodeQL violation and strengthen mutual-recursion…
adityamukho Jun 4, 2026
2fa43c6
docs: add magic sets negation limitation note to ROADMAP §9.6 (#289)
adityamukho Jun 4, 2026
656fb80
style: cargo fmt (#289)
adityamukho Jun 4, 2026
c5d98f9
style: fix clippy type_complexity and manual_contains (#289)
adityamukho Jun 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -1401,6 +1401,14 @@ branched_db.execute("(transact [[:x :y 1]])")?;

---

### 9.6 Magic Sets with Stratified Negation (Exploratory)

Magic sets rewriting (#289) is not applied to mixed rules containing `not`/`not-join` — those continue to use full semi-naive evaluation. Extending to negation is well-studied (Beeri & Ramakrishnan 1991, §5) but adds significant complexity: negated subgoals require care to avoid unsound propagation across stratification boundaries.

**Only worth pursuing if**: profiling shows that negation-heavy recursive rules are a bottleneck in a real workload. No issue is tracked — investigate if and when the need arises.

---

## Performance Backlog

Known O(N²) hotspots discovered during benchmarking (v0.13.0). The first post-1.0 performance batch (#208, #202, #203, #204) eliminated four of them.
Expand Down Expand Up @@ -1717,4 +1725,4 @@ See [GitHub Issues](https://github.com/project-minigraf/minigraf/issues) for spe

---

**Last Updated**: May 2026 — 962 tests passing, v1.1.1; all post-1.0 work complete; #185 deferred to 2.0; ecosystem, developer tools, and integration examples fully transferred to external repos
**Last Updated**: June 2026 — magic sets rewriting (#289) implemented (967 tests passing); #185 deferred to 2.0; ecosystem, developer tools, and integration examples fully transferred to external repos
Loading
Loading
0