oxide explain's placement notes list != as implemented and say nothing about joins and aggregates left on the CPU
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 86/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust
- Domain
- backend, performance
Research direction
Read rule.rs around comparison() and the lower_join, lower_sort_merge_join, and lower_aggregate early returns; then find the explain test that covers placement notes. Update the comparison list and record a skip reason for each early return. Done when both example queries print accurate placement notes and the explain test pins those notes.
Written by the indexing model from the issue text.
Description
Today — two gaps in the notes #32 added (CHANGELOG 0.2.0: "every node that was skipped and why"):
$ oxide explain --target cuda -q "SELECT id FROM t WHERE k != 3" --table t=…
placement notes (target cuda):
FilterExec: `!=` is not one of the comparisons the device kernels implement (=, !=, <, <=, >, >=)
The message lists != although comparison() (rule.rs ~450-459) has no NotEq. And joins left on the CPU for their join type, filter or key shape print no note at all (SELECT … FROM t a LEFT JOIN t b ON … shows no "placement notes" section): the early returns in lower_join, lower_sort_merge_join and lower_aggregate return Ok(None) without self.skip(...).
Fix — drop != from the list; record a reason on every early return.
Done when — both commands print an accurate note, pinned in the explain test.
Found in the 0.3.0 review; published 0.2.0 has the same code.
- Dominant language
- Rust
- Stars
- 1
- Forks
- 2
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 4
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from vyncint/oxidelake
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
bug github_actions
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug github_actions
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
bug github_actions
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
All issues in vyncint/oxidelake
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
enhancement feature review: low Sonnet ui
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
MMFoundation/WallpaperMachine#190 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
servo/rust-smallvec#877 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
cloudflare/workers-rs#1140 ·
Maintainers usually reply within 7 days
-
A-documentation S-needs-triage
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Quantinuum/hugr#3344 ·
Maintainers usually reply within 1 day