[rt-devel] Generated SQL hanging

Jesse Vincent jesse at bestpractical.com
Wed Jul 17 18:32:36 EDT 2002


Short version:
	The entire watchers subsystem has been gutted for 3.0 and no longer
requires such complex queries to find tickets by requestor address.


On Thu, Jul 18, 2002 at 07:48:55AM +1000, Matthew Watson wrote:
> I have problems with this query too, Although it takes along time on my 
> system for any limit-requestor query.. about 10 seconds when there 
> are no other users connected (much longer when other users are connected
> due to mysql locking).
> 
> Haven't got any solution... but would love to see what comes of this :)
> 
> Mat.
> 
> 
> > -----Original Message-----
> > From: rt-devel-admin at lists.fsck.com
> > [mailto:rt-devel-admin at lists.fsck.com]On Behalf Of Rich Lafferty
> > Sent: Wednesday, 17 July 2002 6:21 AM
> > To: RT Development mailing list
> > Subject: [rt-devel] Generated SQL hanging
> > 
> > 
> > I'm having trouble figuring out why this:
> > 
> >   rt --limit-requestor=foo at bar.com \
> >      --limit-requestor=xyzzy at quux.net  --summary
> > 
> > is hanging (or running longer than a couple of minutes, at least).
> > 
> > It generates this SQL:
> > 
> > SELECT DISTINCT main.* 
> >     FROM Tickets main, Watchers Watchers_1, Watchers Watchers_3  
> >     LEFT JOIN Users as Users_2 ON Watchers_1.Owner = Users_2.id 
> >     LEFT JOIN Users as Users_4 ON Watchers_3.Owner = Users_4.id  
> >     WHERE ((Watchers_3.Type = 'Requestor')) 
> >       AND ((Watchers_3.Scope = 'Ticket')) 
> >       AND ((main.EffectiveId = main.id))
> >       AND ((Watchers_1.Scope = 'Ticket')) 
> >       AND ((Watchers_1.Type = 'Requestor')) 
> >       AND (  (Watchers_1.Email ='foo at bar.com') 
> >           OR (Users_2.EmailAddress = 'foo at bar.com') 
> >           OR (Watchers_3.Email = 'xyzzy at quux.net') 
> >           OR (Users_4.EmailAddress = 'xyzzy at quux.net') )
> >       AND main.id = Watchers_1.Value
> >       AND main.id = Watchers_3.Value  ;
> > 
> > which strikes me as unnecessarily complex, but it's not immediately
> > apparent *where*, because this
> > 
> >   rt --limit-requestor=foo at bar.com --summary
> > 
> > generates
> > 
> > SELECT DISTINCT main.* 
> >     FROM Tickets main, Watchers Watchers_1 
> >     LEFT JOIN Users as Users_2 ON Watchers_1.Owner = Users_2.id  
> >     WHERE ((main.EffectiveId = main.id)) 
> >       AND ((Watchers_1.Scope = 'Ticket'))
> >       AND ((Watchers_1.Type = 'Requestor')) 
> >       AND (  (Watchers_1.Email = 'foo at bar.com') 
> >           OR (Users_2.EmailAddress = 'foo at bar.com') )
> >       AND main.id = Watchers_1.Value
> > 
> > which runs instantly. 
> > 
> > Does anything in there jump out as obviously wrong? The two left joins
> > strike me as odd, but I'm having trouble figuring out why.
> > 
> >   -Rich
> > 
> > -- 
> > Rich Lafferty 
> > --------------+-----------------------------------------------
> >  Ottawa, Ontario, Canada    |  Save the Pacific Northwest Tree Octopus!
> >  http://www.lafferty.ca/    |    http://zapatopi.net/treeoctopus.html
> > rich at lafferty.ca 
> > -----------+-----------------------------------------------
> > 
> > _______________________________________________
> > rt-devel mailing list
> > rt-devel at lists.fsck.com
> > http://lists.fsck.com/mailman/listinfo/rt-devel
> 
> _______________________________________________
> rt-devel mailing list
> rt-devel at lists.fsck.com
> http://lists.fsck.com/mailman/listinfo/rt-devel
> 

-- 
»|« http://www.bestpractical.com/rt  -- Trouble Ticketing. Free.




More information about the Rt-devel mailing list