concernant ce commit je pense qu’il y a erreur, les requêtes étaient bonne et la bonne pratique est bien l’utilisation de sql_quote.
Ici les dates ne sont plus échappées et c’est une erreur en SQLite notamment !
--
Cédric
On 18 janv. 2018 à 10:47 +0100, spip-zone-commit@rezo.net, wrote:
Author: peetdu@gmail.com
Date: 2018-01-18 10:47:38 +0100 (Thu, 18 Jan 2018)
New Revision: 108552
Modified:
_plugins_/mailsubscribers/trunk/mailsubscribers_administrations.php
_plugins_/mailsubscribers/trunk/mailsubscribers_autorisations.php
_plugins_/mailsubscribers/trunk/mailsubscribers_fonctions.php
_plugins_/mailsubscribers/trunk/mailsubscribers_pipelines.php
_plugins_/mailsubscribers/trunk/paquet.xml
Log:
bugfix sur les requêtes d’optimisation de base : les inscriptions et les listes mises à la poubelle n’étaient pas supprimées
Le 18/01/2018 à 16:10, cedric@yterium.com a écrit :
concernant ce commit je pense qu’il y a erreur, les requêtes étaient bonne et la bonne pratique est bien l’utilisation de sql_quote.
Ici les dates ne sont plus échappées et c’est une erreur en SQLite notamment !
Yop,
Je suis tombé sur ce problème par hasard, en constatant que des listes supprimées par un utilisateur depuis belle lurette étaient toujours en place.
Du coup, j'ai fait quelques tests (sous MySQL)
pré-requis : J'ai bien en base une liste à la poubelle
En faisant un dump de la requête (avec sql_quote) j'obtiens ceci :
DELETE FROM spip_mailsubscribinglists WHERE statut='poubelle' AND date < '\'2018-01-17 10:30:52\'' AND maj < '\'2018-01-17 10:30:52\''
et sous MySQL il ne se passe rien
Le dump avec la requête que j'ai commité (inspiré directement de ce que propose la Fabrique) :
DELETE FROM `arlea`.spip_mailsubscribinglists WHERE statut='poubelle' AND maj < '2018-01-17 10:30:52'
OK my bad, la date venant du pipeline est deja quotee, donc tu as raison.
J’ai juste complete en remettant une condition qui avait sautee.
--
Cédric
On 18 janv. 2018 à 18:20 +0100, Peetdu <peetdu@gmail.com>, wrote:
Le 18/01/2018 à 16:10, cedric@yterium.com a écrit :
> concernant ce commit je pense qu’il y a erreur, les requêtes étaient
> bonne et la bonne pratique est bien l’utilisation de sql_quote.
> Ici les dates ne sont plus échappées et c’est une erreur en SQLite
> notamment !
Yop,
Je suis tombé sur ce problème par hasard, en constatant que des listes
supprimées par un utilisateur depuis belle lurette étaient toujours en
place.
Du coup, j'ai fait quelques tests (sous MySQL)
pré-requis : J'ai bien en base une liste à la poubelle
En faisant un dump de la requête (avec sql_quote) j'obtiens ceci :
DELETE FROM spip_mailsubscribinglists WHERE statut='poubelle' AND date <
'\'2018-01-17 10:30:52\'' AND maj < '\'2018-01-17 10:30:52\''
et sous MySQL il ne se passe rien
Le dump avec la requête que j'ai commité (inspiré directement de ce que
propose la Fabrique) :
DELETE FROM `arlea`.spip_mailsubscribinglists WHERE statut='poubelle'
AND maj < '2018-01-17 10:30:52'