From c25b49e80e308b0ba913c6f3132d3d16b598d537 Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Mon, 19 Jan 2009 21:27:51 +0000 Subject: [PATCH] Major bugfix to avoid "IFNULL and CAST" on CASE --- lib/core/agent.py | 7 +++++-- lib/core/settings.py | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/core/agent.py b/lib/core/agent.py index dd03186df..8f678af87 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -184,8 +184,11 @@ class Agent: @rtype: C{str} """ - nulledCastedField = queries[kb.dbms].cast % field - nulledCastedField = queries[kb.dbms].isnull % nulledCastedField + if field.startswith("(CASE"): + nulledCastedField = field + else: + nulledCastedField = queries[kb.dbms].cast % field + nulledCastedField = queries[kb.dbms].isnull % nulledCastedField return nulledCastedField diff --git a/lib/core/settings.py b/lib/core/settings.py index 363c2a5a2..0b7841353 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -83,7 +83,8 @@ SQL_STATEMENTS = { " limit ", " offset ", " union all ", - " rownum as ", ), + " rownum as ", + "(case ", ), "SQL data definition": ( "create ",