[rt-devel] Limit with IN operator and empty VALUES results in invalid SQL queries

Christian Loos cloos at netcologne.de
Wed Dec 3 03:39:08 EST 2014


Hi,

yesterday I saw some invalid MySQL queries in my logs:
SELECT ObjectCustomFieldValues_1.Content AS col0, COUNT(main.id) AS id
FROM Tickets main
LEFT JOIN ObjectCustomFieldValues ObjectCustomFieldValues_1
ON ( ObjectCustomFieldValues_1.CustomField = '90' )
AND ( ObjectCustomFieldValues_1.Disabled = '0' )
AND ( ObjectCustomFieldValues_1.ObjectType = 'RT::Ticket' )
AND ( ObjectCustomFieldValues_1.ObjectId = main.id )
WHERE (main.Id IN ())
GROUP BY ObjectCustomFieldValues_1.Content

I think this comes from [1].
Recently there was also a branch merged [2] where you switched from
looping over value lists to using the IN operator.

May there need to be a check that the VALUE list is not empty to avoid
invalid SQL queries?


Chris

[1]
https://github.com/bestpractical/rt/blob/stable/lib/RT/Report/Tickets.pm#L490
[2] https://github.com/bestpractical/rt/commit/b14df0e


More information about the rt-devel mailing list