Development #77911
gérer les nombres décimaux dans les filtres de requêtes
Début:
25 mai 2023
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
On gère le cas des entiers,
... value_is_int = isinstance(self.value, int) or value_is_list_of_int ... if self.field.key in ['item', 'string'] and value_is_int: # integer cast of db values attribute = "(CASE WHEN %s~E'^\\\\d{1,9}$' THEN (%s)::int ELSE NULL END)" % (
+ dans wcs/variables.py,
def format_value(self, op, value, field): def check_int(val): try: # cast to integer so it can be used with numerical operators # (limit to 32bits to match postgresql integer range) int_value = int(val) if -(2**31) <= int_value < 2**31 and (int_value == 0 or str(value)[0] != '0'): return int_value except (ValueError, TypeError): return str(val) return val
mais si on reçoit decimal ou float en entrée, 1/ on ne détectera pas qu'il s'agit de nombres, 2/ on ne fera pas le cast approprié dans la db.
Demandes liées
Historique
Mis à jour par Frédéric Péters il y a 10 mois
- Lié à Autre #77908: Le filtre greater_than_or_equal ne fonctionne pas toujours OU problème sur multiply ajouté
Mis à jour par Robot Gitea il y a 8 mois
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/602
- Titre : WIP: sql: add support for basic decimal queries (#77911)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/602/files
Mis à jour par Frédéric Péters il y a 7 mois
- Lié à Development #81185: champ de type nombre ajouté
Mis à jour par Frédéric Péters il y a 5 mois
- Statut changé de Solution proposée à Rejeté
Plutôt que partie complexifier des requêtes, il va y avoir un champ de type numérique, #81185, qui permettra ça.
Mis à jour par Robot Gitea il y a 5 mois
Frédéric Péters (fpeters) a fermé une pull request sur Gitea concernant cette demande.