Projet

Général

Profil

Development #55528

Le critère ILike n'échappe pas correctement les chaînes de recherche

Ajouté par Benjamin Dauvergne il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
12 juillet 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Notamment les % et les \, c'est un poil le bordel parait-il sur ce sujet avec psycopg2 (https://stackoverflow.com/questions/2106207/escape-sql-like-value-for-postgres-with-psycopg2).

Cf. #55528

wcs_demarches_montoulouse_cutm_publik_preprod_nfrance_com=> select digest from carddata_7_nomenclature_at where digest ilike '%astreinte\%'
;
 digest 
--------
(0 ligne)

wcs_demarches_montoulouse_cutm_publik_preprod_nfrance_com=> select digest from carddata_7_nomenclature_at where digest ilike '%astreinte\\%'
;
                       digest                        
-----------------------------------------------------
 Astreinte\Direction du Numérique
 Astreinte\DEA - bâtiments communaux
 Astreinte\Eclairage
 Astreinte\Alarme dans bâtiment public télésurveillé
 Astreinte\Cabinet du Maire
 Astreinte\Eau de Toulouse Métropole
 Astreinte\Sports
 Astreinte\Droits de place - Marchés
 Astreinte\Tags - affiches
 Astreinte\Pôles (hors Toulouse)
 Astreinte\Parcs et jardins
 Astreinte\Pôles (dans Toulouse)
 Astreinte\Sécurité civile et risques majeurs
 Astreinte\Circulation - Feux tricolores
 Astreinte\Divers
 Astreinte\Animaux - SACPA - Insectes
 Astreinte\Location de salles
(17 lignes)

quand on recherche 'astreinte\' dans une champ avec autocomplétion, w.c.s. émet la première requête, pas la seconde (le problème n'existerait plus en pg 12.x d'après stackoverflow, le flag standard_conforming_string semblant respecté même pour LIKE/ILIKE).


Fichiers

0001-sql-escape-ILike-value-55528.patch (3,04 ko) 0001-sql-escape-ILike-value-55528.patch Benjamin Dauvergne, 12 juillet 2021 16:18
v1-to-v2.patch (1,78 ko) v1-to-v2.patch Benjamin Dauvergne, 13 juillet 2021 10:56
0001-sql-escape-ILike-ElementILike-value-55528.patch (3,33 ko) 0001-sql-escape-ILike-ElementILike-value-55528.patch Benjamin Dauvergne, 13 juillet 2021 14:07

Révisions associées

Révision 549e513b (diff)
Ajouté par Benjamin Dauvergne il y a presque 3 ans

sql: escape ILike/ElementILike value (#55528)

\, _ and % must be escaped.

Historique

#2

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Description mis à jour (diff)
#3

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

Ça ne devrait pas changer en 12.x, https://www.postgresql.org/docs/12/functions-matching.html#id-1.5.8.12.7.2 ils ont déjà cassé toutes les chaînes en 9.1 si j'ai bien compris; je ne pense pas qu'ils veuillent recommencer. Ça n'est compatible qu'avec postgresql >= 9.1 (avant et sans mettre standard_conforming_string à on, il faut mettre 4 backslash pour en chopper un).

#4

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée

Il y un print() en trop; il faudrait le retirer, et gérer les conflits de rebase.

#5

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution validée à En cours

(je vois le patch dans la branche tout différent, introduction d'une fonction like_escape, du coup je préfère repasser par une relecture).

#6

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

C'est le même patch, j'ai juste pris en compte le changement ILike/ElementILike et factorisé le code commun.

#7

Mis à jour par Frédéric Péters il y a presque 3 ans

Ok mais on n'est pas sur marmiton; entre ce qui a été validé hier et ce que j'ai vu dans la branche, il y a une différence, et de là je me dis préférer prendre le temps de regarder à nouveau.

#8

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Fichier v1-to-v2.patch ajouté
  • Statut changé de En cours à Solution proposée

Le diff entre les deux, si ça peut aider.

#9

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

#10

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Fichier v1-to-v2.patch supprimé
#11

Mis à jour par Frédéric Péters il y a presque 3 ans

(je ne sais pas ce qui s'est joué sur les commentaires précédents mais tu peux attacher le patch proposé ?).

#13

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée
#14

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 549e513bf6656c06c13fb055dcf1937fe57e1157
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Jul 12 16:01:32 2021 +0200

    sql: escape ILike/ElementILike value (#55528)

    \, _ and % must be escaped.
#15

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF