Cumulus/Cumulus — pull request #46 by dinosaure (2014-01-08 01:23:32+00:00)
Title: Fix bug with Db_feed (tags, duplicate and user)

La première modification consiste à supprimer `f.id = t.id_feed`. Ensuite, il fallait pouvoir filtrer les feeds selon un tag ce qui a impliqué la modification de `filter_feed_tag` en rajoutant un paramètre et de son utilisation avec `get_feed_aux`. Enfin, il existait des doublons dans la réception de la requêtes qui étaient dû à cause de la lecture des colonnes `u.name` et `u.email`. Le problème, c'est quand supprimant ces deux colonnes et le prédicat `f.author = u.id`, on avait des doublons à cause de la table `users` et la table `feeds_tags` (et aussi `votes` peut être mais bon). Ce qui nous amène à un `group ... by` pour grouper les feeds et éviter les doublons.

La conclusion de tout ce bordel c'est: À quand le LEFT JOIN en Macaque ?

Si on regarde bien, la clause `GROUP BY` ne peut pas (sémantiquement) remplacer le `LEFT JOIN`. Pourtant, c'est ce qu'on essaye de faire depuis qu'on a fait la branche `optimization`. Ce remplacement est par contre effectif avec la fonction `reduce`. On déporte donc le `LEFT JOIN` côté Cumulus avec cette fonction mais le `GROUP BY` peut difficilement faire ce que `reduce` fait.

Je mets en pull-request pour valider le travail. Malheureusement, j'ai l'intime conviction à ce que cela soit la seule solution.