fix for that 'Subquery returns more than 1 row'

This commit is contained in:
Miroslav Stampar 2010-10-20 08:50:05 +00:00
parent 82f44989ce
commit dabbcf9e23

View File

@ -349,16 +349,15 @@ def __goError(expression, resumeValue=True):
if output and ( expected is None or ( expected == "int" and output.isdigit() ) ): if output and ( expected is None or ( expected == "int" and output.isdigit() ) ):
return output return output
if kb.misc.testedDbms != "MySQL": if kb.dbmsDetected:
if kb.dbmsDetected: _, _, _, _, _, _, fieldToCastStr = agent.getFields(expression)
_, _, _, _, _, _, fieldToCastStr = agent.getFields(expression) nulledCastedField = agent.nullAndCastField(fieldToCastStr)
nulledCastedField = agent.nullAndCastField(fieldToCastStr) if kb.dbms == "MySQL":
expressionReplaced = expression.replace(fieldToCastStr, nulledCastedField, 1) nulledCastedField = nulledCastedField.replace("CHAR(10000)", "CHAR(255)") #fix for that 'Subquery returns more than 1 row'
expressionUnescaped = unescaper.unescape(expressionReplaced) expressionReplaced = expression.replace(fieldToCastStr, nulledCastedField, 1)
else: expressionUnescaped = unescaper.unescape(expressionReplaced)
expressionUnescaped = unescaper.unescape(expression) else:
else: #temporary (have to find out what's wrong with that "Subquery with more than 1 row") expressionUnescaped = unescaper.unescape(expression)
expressionUnescaped = unescaper.unescape(expression)
debugMsg = "query: %s" % expressionUnescaped debugMsg = "query: %s" % expressionUnescaped
logger.debug(debugMsg) logger.debug(debugMsg)