Enhance partition pruning to support NOT BETWEEN and NOT IN expressions
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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).
- Langage dominant
- Python
- Étoiles
- 142
- Forks
- 19
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 9
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de xqlsystems/xarray-sql
-
documentation
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
xqlsystems/xarray-sql#268 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
xqlsystems/xarray-sql#267 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 74/100
xqlsystems/xarray-sql#243 ·
Les mainteneurs répondent en général sous 1 jour
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
xqlsystems/xarray-sql#242 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
xqlsystems/xarray-sql#237 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de xqlsystems/xarray-sql
Issues similaires
-
debt
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
microsoft/vscode-flake8#601 ·
Les mainteneurs répondent en général sous 1 jour
-
nonews refactor
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Uninett/nav#4255 · 1 commentaire · 1 réaction ·
Les mainteneurs répondent en général sous 3 jours
-
Claiming namespace `codearcade`Ouvertenamespace operations
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
EclipseFdn/open-vsx.org#14421 ·
Les mainteneurs répondent en général sous 1 jour
-
untriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
ubuntu/ubuntu-project-docs#850 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour