From 609cd181b6c50b4894b47731bd683e18519ff4e0 Mon Sep 17 00:00:00 2001 From: Farzad FARID Date: Thu, 22 Jan 2009 06:34:29 +0800 Subject: [PATCH] Rewrite tag search SQL to use JOIN instead of WHERE when appropriate. Signed-off-by: Reinier Balt --- app/controllers/search_controller.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index b7711ec4..0c604533 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -13,12 +13,11 @@ class SearchController < ApplicationController # TODO: limit search to tags on todos @found_tags = Tagging.find_by_sql([ "SELECT DISTINCT tags.name as name "+ - "FROM tags, taggings, todos "+ + "FROM tags "+ + "LEFT JOIN taggings ON tags.id = taggings.tag_id "+ + "LEFT JOIN todos ON taggings.taggable_id = todos.id "+ "WHERE todos.user_id=? "+ - "AND tags.name LIKE ? " + - "AND tags.id = taggings.tag_id " + - "AND taggings.taggable_id = todos.id ", current_user.id, terms]) - #current_user.tags.find(:all, :conditions => ["name LIKE ?", terms]) + "AND tags.name LIKE ? ", current_user.id, terms]) @count = @found_todos.size + @found_projects.size + @found_notes.size + @found_contexts.size + @found_tags.size