Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
Le projet source a une visibilité limitée.
  • esj's avatar
    7cb4d5ec
    Le débusqueur donne à présent aussi pour les requêtes fabriquées par le... · 7cb4d5ec
    esj a rédigé
    Le débusqueur donne à présent aussi pour les requêtes fabriquées par le compilateur la ligne où l'erreur intervient dans le squelette (cas assez rares où l'utilisateur écrit mal des opérandes de fonctions SQL comme REGEXP). Occasion de voir que les portages SQL n'étaient pas toujours cohérents> de l'un à l'autre mais aussi en interne:
    
    	* sql_countsel ne contrôlait pas bien une éventuelle erreur de sql_select, 
    	* sql_errno ne retournait pas toujours un code numérique.
    
    On rajoute dans le code compilé l'envoi du contexte de compil (toujours la même fonction {{{denoncer_inclure_dynamique}}} qui n'est donc toujours pas bien nommée), et un test de requête fautive pour éviter une cascade d'erreur ensuite.
    
    La fonction {{{sql_select}}} voit son dernier argument légèrement modifié: il peut être le contexte de compil, et s'interprète alors comme True (ça devrait être transparent). Les instances dans les différents portage ne retourne plus un tableau en cas d'erreur, mais seulement le texte brut de la requête, ça permet
    de ne plus dupliquer du code dans les portages.
    
    Il faudrait revoir trace_query, il y a des redondance quant au contexte de compil à présent.
    
    7cb4d5ec
    Historique
    Le débusqueur donne à présent aussi pour les requêtes fabriquées par le...
    esj a rédigé
    Le débusqueur donne à présent aussi pour les requêtes fabriquées par le compilateur la ligne où l'erreur intervient dans le squelette (cas assez rares où l'utilisateur écrit mal des opérandes de fonctions SQL comme REGEXP). Occasion de voir que les portages SQL n'étaient pas toujours cohérents> de l'un à l'autre mais aussi en interne:
    
    	* sql_countsel ne contrôlait pas bien une éventuelle erreur de sql_select, 
    	* sql_errno ne retournait pas toujours un code numérique.
    
    On rajoute dans le code compilé l'envoi du contexte de compil (toujours la même fonction {{{denoncer_inclure_dynamique}}} qui n'est donc toujours pas bien nommée), et un test de requête fautive pour éviter une cascade d'erreur ensuite.
    
    La fonction {{{sql_select}}} voit son dernier argument légèrement modifié: il peut être le contexte de compil, et s'interprète alors comme True (ça devrait être transparent). Les instances dans les différents portage ne retourne plus un tableau en cas d'erreur, mais seulement le texte brut de la requête, ça permet
    de ne plus dupliquer du code dans les portages.
    
    Il faudrait revoir trace_query, il y a des redondance quant au contexte de compil à présent.