From 600f729139ac6f2034cba17206b615d927ad92cf Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Wed, 9 Feb 2011 12:43:09 +0000 Subject: [PATCH] fix for a bug reported by skysbsb@gmail.com (double ORDER BY) --- lib/core/agent.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/core/agent.py b/lib/core/agent.py index dc8afd339..a24343845 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -671,13 +671,22 @@ class Agent: if forgeNotIn: limitedQuery = limitedQuery.replace("SELECT ", (limitStr % 1), 1) - if " WHERE " in limitedQuery: - limitedQuery = "%s AND %s " % (limitedQuery, field if not uniqueField else uniqueField) - else: - limitedQuery = "%s WHERE %s " % (limitedQuery, field if not uniqueField else uniqueField) + if uniqueField and " ORDER BY " not in fromFrom: + if " WHERE " in limitedQuery: + limitedQuery = "%s AND %s " % (limitedQuery, uniqueField) + else: + limitedQuery = "%s WHERE %s " % (limitedQuery, uniqueField) - limitedQuery += "NOT IN (%s" % (limitStr % num) - limitedQuery += "%s %s%s)" % (field if not uniqueField else uniqueField, fromFrom, (" ORDER BY %s" % uniqueField) if uniqueField else "") + limitedQuery += "NOT IN (%s" % (limitStr % num) + limitedQuery += "%s %s%s)" % (uniqueField, fromFrom, (" ORDER BY %s" % uniqueField)) + else: + if " WHERE " in limitedQuery: + limitedQuery = "%s AND %s " % (limitedQuery, field) + else: + limitedQuery = "%s WHERE %s " % (limitedQuery, field) + + limitedQuery += "NOT IN (%s" % (limitStr % num) + limitedQuery += "%s %s)" % (field, fromFrom) if orderBy: