Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8397c52

Browse files
committed
Minor adjustment
1 parent e3a3ae1 commit 8397c52

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

lib/core/agent.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,8 @@ def getFields(self, query):
385385
elif fieldsNoSelect:
386386
fieldsToCastStr = fieldsNoSelect
387387

388-
if re.search("\A\w+\(.*\)", fieldsToCastStr, re.I): # Function
388+
# Function
389+
if re.search("\A\w+\(.*\)", fieldsToCastStr, re.I) or fieldsSelectCase:
389390
fieldsToCastList = [fieldsToCastStr]
390391
else:
391392
fieldsToCastList = fieldsToCastStr.replace(", ", ",")
@@ -700,10 +701,15 @@ def forgeCaseStatement(self, expression):
700701
@rtype: C{str}
701702
"""
702703

704+
caseExpression = expression
705+
703706
if Backend.getIdentifiedDbms() is not None and hasattr(queries[Backend.getIdentifiedDbms()], "case"):
704-
return queries[Backend.getIdentifiedDbms()].case.query % expression
705-
else:
706-
return expression
707+
caseExpression = queries[Backend.getIdentifiedDbms()].case.query % expression
708+
709+
if Backend.getIdentifiedDbms() in FROM_TABLE and not caseExpression.upper().endswith(FROM_TABLE[Backend.getIdentifiedDbms()]):
710+
caseExpression += FROM_TABLE[Backend.getIdentifiedDbms()]
711+
712+
return caseExpression
707713

708714
def addPayloadDelimiters(self, inpStr):
709715
"""

xml/queries.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@
225225
<comment query="--"/>
226226
<timedelay query="BEGIN DBMS_LOCK.SLEEP(%d); END" query2="EXEC DBMS_LOCK.SLEEP(%d.00)" query3="EXEC USER_LOCK.SLEEP(%d.00)"/>
227227
<substring query="SUBSTR((%s), %d, %d)"/>
228-
<case query="SELECT (CASE WHEN (%s) THEN 1 ELSE 0 END) FROM DUAL"/>
228+
<case query="SELECT (CASE WHEN (%s) THEN 1 ELSE 0 END)"/>
229229
<inference query="ASCII(SUBSTR((%s), %d, 1)) > %d"/>
230230
<banner query="SELECT banner FROM v$version WHERE ROWNUM=1"/>
231231
<current_user query="SELECT USER FROM DUAL"/>
@@ -386,7 +386,7 @@
386386
<count query="COUNT(%s)"/>
387387
<timedelay query="SELECT COUNT(*) FROM RDB$DATABASE AS T1, RDB$FIELDS AS T2, RDB$FUNCTIONS AS T3, RDB$TYPES AS T4, RDB$FORMATS AS T5, RDB$COLLATIONS AS T6"/>
388388
<substring query="SUBSTRING((%s) FROM %d FOR %d)"/>
389-
<case query="SELECT IIF(%s,1,0) FROM RDB$DATABASE"/>
389+
<case query="SELECT IIF(%s,1,0)"/>
390390
<banner query="SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE" dbms_version="&gt;=2.1"/>
391391
<current_user query="SELECT CURRENT_USER FROM RDB$DATABASE"/>
392392
<current_db query="SELECT RDB$GET_CONTEXT('SYSTEM', 'DB_NAME') FROM RDB$DATABASE"/>

0 commit comments

Comments
 (0)