Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Enhance partition pruning to support NOT BETWEEN and NOT IN expressions

Ouverte
#123 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python, rust
Domaine
databases

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

enhancement

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::Not bug 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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de xqlsystems/xarray-sql

Toutes les issues de xqlsystems/xarray-sql

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.