From 7613134515146e5bfe2d34b05c41a7ba1cb23759 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 22 Mar 2011 12:37:05 +0000 Subject: [PATCH] it was a real pain in the ass to have SELECT COUNT(*) for all rows (it was processed by a limit logic) --- lib/techniques/error/use.py | 3 ++- lib/techniques/inband/union/use.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/techniques/error/use.py b/lib/techniques/error/use.py index b50f2f263..44ff7834f 100644 --- a/lib/techniques/error/use.py +++ b/lib/techniques/error/use.py @@ -194,7 +194,8 @@ def errorUse(expression, expected=None, resumeValue=True, dump=False): expression.upper() and ((Backend.getIdentifiedDbms() not in FROM_TABLE) \ or (Backend.getIdentifiedDbms() in FROM_TABLE and not \ expression.upper().endswith(FROM_TABLE[Backend.getIdentifiedDbms()]))) \ - and "EXISTS(" not in expression.upper() and ("(CASE" not in expression.upper() or ("(CASE" in expression.upper() and "WHEN use" in expression))): + and "EXISTS(" not in expression.upper() and "COUNT(*)" not in expression.upper() \ + and ("(CASE" not in expression.upper() or ("(CASE" in expression.upper() and "WHEN use" in expression))): limitRegExp = re.search(queries[Backend.getIdentifiedDbms()].limitregexp.query, expression, re.I) topLimit = re.search("TOP\s+([\d]+)\s+", expression, re.I) diff --git a/lib/techniques/inband/union/use.py b/lib/techniques/inband/union/use.py index 6004b4f1d..b30601224 100644 --- a/lib/techniques/inband/union/use.py +++ b/lib/techniques/inband/union/use.py @@ -137,7 +137,8 @@ def unionUse(expression, unpack=True, dump=False): " FROM " in expression.upper() and ((Backend.getIdentifiedDbms() \ not in FROM_TABLE) or (Backend.getIdentifiedDbms() in FROM_TABLE \ and not expression.upper().endswith(FROM_TABLE[Backend.getIdentifiedDbms()]))) \ - and "EXISTS(" not in expression.upper() and "(CASE" not in expression.upper(): + and "EXISTS(" not in expression.upper() and "COUNT(*)" not in expression.upper() \ + and "(CASE" not in expression.upper(): limitRegExp = re.search(queries[Backend.getIdentifiedDbms()].limitregexp.query, expression, re.I) topLimit = re.search("TOP\s+([\d]+)\s+", expression, re.I)