Merge lp:~lifeless/launchpad/bug-716774 into lp:launchpad

Proposed by Robert Collins
Status: Merged
Approved by: Tim Penhey
Approved revision: no longer in the source branch.
Merged at revision: 12582
Proposed branch: lp:~lifeless/launchpad/bug-716774
Merge into: lp:launchpad
Diff against target: 71 lines (+3/-15)
2 files modified
lib/lp/bugs/model/bugtask.py (+2/-5)
lib/lp/bugs/tests/test_bugtask_search.py (+1/-10)
To merge this branch: bzr merge lp:~lifeless/launchpad/bug-716774
Reviewer Review Type Date Requested Status
Tim Penhey (community) code Approve
William Grant code* Approve
Review via email: mp+52966@code.launchpad.net

Commit message

[r=thumper,wgrant][bug=716774] Stop querying on BugTask.fti - it has no useful things for fti searching.

Description of the change

Stop querying on BugTask.fti - it pessimises bug searches search a deprecated column and the targetname cache (which we need substring searching on anyway - we don't usefully find things in it with fti AFAICT)

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code*)
Revision history for this message
Tim Penhey (thumper) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/bugs/model/bugtask.py'
--- lib/lp/bugs/model/bugtask.py 2011-03-09 23:10:10 +0000
+++ lib/lp/bugs/model/bugtask.py 2011-03-11 03:13:58 +0000
@@ -2260,8 +2260,7 @@
2260 # instead.2260 # instead.
2261 params.orderby = [2261 params.orderby = [
2262 SQLConstant("-rank(Bug.fti, ftq(%s))" % searchtext_quoted),2262 SQLConstant("-rank(Bug.fti, ftq(%s))" % searchtext_quoted),
2263 SQLConstant(2263 ]
2264 "-rank(BugTask.fti, ftq(%s))" % searchtext_quoted)]
22652264
2266 comment_clause = """BugTask.id IN (2265 comment_clause = """BugTask.id IN (
2267 SELECT BugTask.id2266 SELECT BugTask.id
@@ -2272,7 +2271,6 @@
2272 AND MessageChunk.fti @@ ftq(%s))""" % searchtext_quoted2271 AND MessageChunk.fti @@ ftq(%s))""" % searchtext_quoted
2273 text_search_clauses = [2272 text_search_clauses = [
2274 "Bug.fti @@ ftq(%s)" % searchtext_quoted,2273 "Bug.fti @@ ftq(%s)" % searchtext_quoted,
2275 "BugTask.fti @@ ftq(%s)" % searchtext_quoted,
2276 ]2274 ]
2277 no_targetnamesearch = bool(features.getFeatureFlag(2275 no_targetnamesearch = bool(features.getFeatureFlag(
2278 'malone.disable_targetnamesearch'))2276 'malone.disable_targetnamesearch'))
@@ -2458,8 +2456,7 @@
2458 return DecoratedResultSet(resultset, result_decorator=decorator,2456 return DecoratedResultSet(resultset, result_decorator=decorator,
2459 pre_iter_hook=pre_iter_hook)2457 pre_iter_hook=pre_iter_hook)
24602458
2461 bugtask_fti = SQL('BugTask.fti')2459 inner_resultrow = (BugTask,)
2462 inner_resultrow = (BugTask, bugtask_fti)
2463 origin = self.buildOrigin(join_tables, [], clauseTables)2460 origin = self.buildOrigin(join_tables, [], clauseTables)
2464 resultset = store.using(*origin).find(inner_resultrow, query)2461 resultset = store.using(*origin).find(inner_resultrow, query)
24652462
24662463
=== modified file 'lib/lp/bugs/tests/test_bugtask_search.py'
--- lib/lp/bugs/tests/test_bugtask_search.py 2011-03-03 05:18:26 +0000
+++ lib/lp/bugs/tests/test_bugtask_search.py 2011-03-11 03:13:58 +0000
@@ -265,12 +265,11 @@
265 self.assertSearchFinds(params, self.bugtasks[:2])265 self.assertSearchFinds(params, self.bugtasks[:2])
266266
267 def setUpFullTextSearchTests(self):267 def setUpFullTextSearchTests(self):
268 # Set text fields indexed by Bug.fti, BugTask.fti or268 # Set text fields indexed by Bug.fti, or
269 # MessageChunk.fti to values we can search for.269 # MessageChunk.fti to values we can search for.
270 for bugtask, number in zip(self.bugtasks, ('one', 'two', 'three')):270 for bugtask, number in zip(self.bugtasks, ('one', 'two', 'three')):
271 commenter = self.bugtasks[0].bug.owner271 commenter = self.bugtasks[0].bug.owner
272 with person_logged_in(commenter):272 with person_logged_in(commenter):
273 bugtask.statusexplanation = 'status explanation %s' % number
274 bugtask.bug.title = 'bug title %s' % number273 bugtask.bug.title = 'bug title %s' % number
275 bugtask.bug.newMessage(274 bugtask.bug.newMessage(
276 owner=commenter, content='comment %s' % number)275 owner=commenter, content='comment %s' % number)
@@ -281,10 +280,6 @@
281 params = self.getBugTaskSearchParams(280 params = self.getBugTaskSearchParams(
282 user=None, searchtext='one title')281 user=None, searchtext='one title')
283 self.assertSearchFinds(params, self.bugtasks[:1])282 self.assertSearchFinds(params, self.bugtasks[:1])
284 # ... by BugTask.fti ...
285 params = self.getBugTaskSearchParams(
286 user=None, searchtext='two explanation')
287 self.assertSearchFinds(params, self.bugtasks[1:2])
288 # ...and by MessageChunk.fti283 # ...and by MessageChunk.fti
289 params = self.getBugTaskSearchParams(284 params = self.getBugTaskSearchParams(
290 user=None, searchtext='three comment')285 user=None, searchtext='three comment')
@@ -296,10 +291,6 @@
296 params = self.getBugTaskSearchParams(291 params = self.getBugTaskSearchParams(
297 user=None, fast_searchtext='one title')292 user=None, fast_searchtext='one title')
298 self.assertSearchFinds(params, self.bugtasks[:1])293 self.assertSearchFinds(params, self.bugtasks[:1])
299 # ... but not text indexed by BugTask.fti ...
300 params = self.getBugTaskSearchParams(
301 user=None, fast_searchtext='two explanation')
302 self.assertSearchFinds(params, [])
303 # ..or by MessageChunk.fti294 # ..or by MessageChunk.fti
304 params = self.getBugTaskSearchParams(295 params = self.getBugTaskSearchParams(
305 user=None, fast_searchtext='three comment')296 user=None, fast_searchtext='three comment')