Enhance partition pruning to support NOT BETWEEN and NOT IN expressions
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
The issue identifies src/lib.rs and the between_excludes and in_list_excludes functions. First confirm the Expr::Not bug is fixed and covered by the tests for IN-list and NOT filters, as the issue requires. Then add pruning for the stated NOT BETWEEN and single-point NOT IN cases; done means those cases prune safely while existing conservative behavior remains safe.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Background
In src/lib.rs, between_excludes and in_list_excludes return false immediately for negated forms:
// NOT BETWEEN is complex, be conservative
if between.negated { return false; }
// NOT IN is complex, be conservative
if in_list.negated { return false; }
The current conservative behavior (never prune) is always safe. These are opportunities to prune more aggressively.
NOT BETWEEN
NOT BETWEEN low AND high is equivalent to col < low OR col > high.
A partition [min, max] can be excluded if it falls entirely within [low, high] — i.e., min >= low AND max <= high. In that case ALL rows satisfy col BETWEEN low AND high, so NONE satisfy NOT BETWEEN.
NOT IN
A simpler conservative improvement: if the partition has a single point (min == max) and that exact value appears in the NOT IN list, the partition can be pruned.
Notes
- These are enhancements and are not critical for correctness — the current behavior is always safe.
- Implement after the
Expr::Notbug is confirmed fixed and covered by tests (see issue about IN-list and NOT filter test coverage).
- Vorherrschende Sprache
- Python
- Sterne
- 142
- Forks
- 19
- Ø Merge
- 1 T. 9 Std.
- Gemergte PRs (30 T.)
- 9
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus xqlsystems/xarray-sql
-
documentation
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 85/100
xqlsystems/xarray-sql#268 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
xqlsystems/xarray-sql#267 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 74/100
xqlsystems/xarray-sql#243 ·
Maintainer antworten meist innerhalb von 1 Tag
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
xqlsystems/xarray-sql#242 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
xqlsystems/xarray-sql#237 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in xqlsystems/xarray-sql
Ähnliche Issues
-
Use mhctools predictor_required=False for saved-result rescoringEvtl. vergeben @iskandr hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
521xueweihan/HelloGitHub#4051 · 1 Kommentar ·
-
bug documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
awslabs/visual-asset-management-system#514 ·
Maintainer antworten meist innerhalb von 1 Tag
-
backend bug spec:REQ-053
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
nolte/kamerplanter#2547 ·
Maintainer antworten meist innerhalb von 1 Tag