Langage de requête
--where filtre les enregistrements touchés par read, update et delete. C’est un petit langage d’expression, pas du SQL : pas de jointures, pas de sous-requêtes, pas de parenthèses, pas d’agrégation. Tout est une expression booléenne sur les colonnes d’un seul fichier GTFS.
Grammaire
Section intitulée « Grammaire »expression := filter | filter " OR " expressionfilter := term | term " AND " filterterm := champ opérateur valeur
opérateur := "=" | "!=" | ">" | ">=" | "<" | "<=" | " LIKE "AND est prioritaire sur OR. Aucun moyen de surcharger la précédence — les parenthèses ne sont pas supportées.
Opérateurs
Section intitulée « Opérateurs »| Opérateur | Sens | Exemple |
|---|---|---|
= | Égal | stop_id=S01 |
!= | Différent | route_type!=3 |
> | Supérieur (comparaison chaîne) | stop_sequence>10 |
>= | Supérieur ou égal | arrival_time>=06:00:00 |
< | Inférieur | date<20260101 |
<= | Inférieur ou égal | route_type<=4 |
LIKE | Match style SQL | stop_name LIKE Gare% |
Les opérateurs de comparaison font une comparaison de chaînes. Pour les champs numériques (comme stop_sequence ou route_type), cela correspond à l’ordre intuitif à condition que les valeurs soient paddées ou non signées ; vérifiez vos données avant d’utiliser < / > sur un champ libre.
Patterns LIKE
Section intitulée « Patterns LIKE »LIKE matche un pattern où :
%représente n’importe quelle séquence de caractères (y compris vide)._représente exactement un caractère.
| Pattern | Matche |
|---|---|
Gare% | Gare Centrale, Gare du Nord, Gare |
%Nord | Gare du Nord, Nord |
%bus% | Toute valeur contenant bus |
stop___ | stop001, stopABC — exactement 4+3 = 7 chars |
Les espaces autour des opérateurs sont optionnels et n’affectent pas le sens :
stop_id=S01stop_id = S01stop_id = S01Valeurs entre backticks
Section intitulée « Valeurs entre backticks »Quand une valeur contient AND, OR, ou des espaces qu’on pourrait confondre avec des mots-clés, entourez-la de backticks :
stop_name=`Gare du Nord AND Est`route_long_name=`Express 747 OR 748`Dans les backticks, le contenu est pris tel quel. Les backticks ne sont pas requis pour les valeurs simples.
Combiner des expressions
Section intitulée « Combiner des expressions »AND et OR permettent de composer. AND est prioritaire, donc
a=1 AND b=2 OR c=3se parse en (a=1 AND b=2) OR c=3.
Comme les parenthèses ne sont pas supportées, exprimez a=1 AND (b=2 OR c=3) en découpant en plusieurs commandes, ou en passant par un OR de AND équivalent :
a=1 AND b=2 OR a=1 AND c=3Exemples
Section intitulée « Exemples »Filtres simples
Section intitulée « Filtres simples »gapline read stops --where "stop_id=S01"gapline read routes --where "route_type!=3"Intervalle sur un champ numérique
Section intitulée « Intervalle sur un champ numérique »gapline read stop-times --where "stop_sequence>10 AND stop_sequence<20"Match de pattern
Section intitulée « Match de pattern »gapline read stops --where "stop_name LIKE Gare%"gapline read stops --where "stop_name LIKE %Nord"Combinaison avec OR
Section intitulée « Combinaison avec OR »gapline read routes --where "route_type=3 OR route_type=1"Valeur contenant un mot-clé
Section intitulée « Valeur contenant un mot-clé »gapline read stops --where 'stop_name=`Gare du Nord AND Est`'Les guillemets simples autour de l’expression complète (côté shell) protègent les backticks de l’expansion d’historique ou de la substitution de commandes propre à votre shell.
Erreurs fréquentes du parser et leur cause :
| Erreur | Cause |
|---|---|
invalid expression: '' | --where "". Passez une expression ou retirez le flag. |
unexpected logical operator without expressions | AND …, … OR, ou un … AND AND … ballant. |
empty field name | =value. Le côté gauche d’un opérateur est manquant. |
empty value for field 'stop_id' | stop_id=. Le côté droit d’un opérateur est manquant. |
unknown operator in '…' | Faute de frappe type stop_id == S01 ou stop_id LIKES Gare%. |
unknown field 'stop_naem' | Le nom de champ n’est pas une colonne du fichier cible. L’erreur liste les noms valides. |
Voir aussi
Section intitulée « Voir aussi »gapline read—--whereest optionnel ; omettez pour tout lire.gapline updateetgapline delete—--whereest requis.- Concepts / Intégrité référentielle — ce qui se passe après le calcul du match.