En fait ce qui est dit c'est qu'il vaut mieux créer une table temporaire que de faire une
sous-requête.
select * from (select a, b, c ...)
En particulier dans le cas de SQLite, qui crée de toute façon une table temporaire dans ce cas.
Ce n'est lié au bug que dans la mesure où si la requête a été construite « manuellement » (bon, c'est au moins un sprintf et pas une simple concaténation de chaînes) c'est justement pour pouvoir faire cette sous-requête. L'auteur du commentaire suppose qu'en se débarrassant de la sous-requête il n'y aura plus besoin de faire cette manipulation et que la liaison des paramètres pourra être faire du côté de SQLite.
Après, pour comprendre le but de la manœuvre je suppose qu'il faut acheter « The art of SQL » dont ils parlent dans le message lié
C'est une histoire d'union de requêtes qui renvoient 0 ou 1 résultat chacune.