Limit with IN operator and empty VALUES results in invalid SQL queries
Christian Loos <[email protected]> Wed, 03 Dec 2014 09:39:08 +0100
| Newsgroups | gmane.comp.bug-tracking.request-tracker.devel |
|---|---|
| Message-ID | <[email protected]> |
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