diff --git a/lib/core/agent.py b/lib/core/agent.py
index 9fa48e8aa..1a34f0299 100644
--- a/lib/core/agent.py
+++ b/lib/core/agent.py
@@ -385,7 +385,8 @@ class Agent:
elif fieldsNoSelect:
fieldsToCastStr = fieldsNoSelect
- if re.search("\A\w+\(.*\)", fieldsToCastStr, re.I): # Function
+ # Function
+ if re.search("\A\w+\(.*\)", fieldsToCastStr, re.I) or fieldsSelectCase:
fieldsToCastList = [fieldsToCastStr]
else:
fieldsToCastList = fieldsToCastStr.replace(", ", ",")
@@ -700,10 +701,15 @@ class Agent:
@rtype: C{str}
"""
+ caseExpression = expression
+
if Backend.getIdentifiedDbms() is not None and hasattr(queries[Backend.getIdentifiedDbms()], "case"):
- return queries[Backend.getIdentifiedDbms()].case.query % expression
- else:
- return expression
+ caseExpression = queries[Backend.getIdentifiedDbms()].case.query % expression
+
+ if Backend.getIdentifiedDbms() in FROM_TABLE and not caseExpression.upper().endswith(FROM_TABLE[Backend.getIdentifiedDbms()]):
+ caseExpression += FROM_TABLE[Backend.getIdentifiedDbms()]
+
+ return caseExpression
def addPayloadDelimiters(self, inpStr):
"""
diff --git a/xml/queries.xml b/xml/queries.xml
index a25a43e8a..d1bc05b1b 100644
--- a/xml/queries.xml
+++ b/xml/queries.xml
@@ -225,7 +225,7 @@
-
+
@@ -386,7 +386,7 @@
-
+