From 4b2724d11826b2e8878b5472dc712b252fa3a7df Mon Sep 17 00:00:00 2001 From: kiki Date: Fri, 7 Jun 2013 18:46:17 +0800 Subject: [PATCH] add list judge --- .../druid/sql/visitor/SQLEvalVisitorUtils.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java index 49fe43564d..9d2ac6a147 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java @@ -797,6 +797,9 @@ public class SQLEvalVisitorUtils { wallConditionContext.setConstArithmetic(true); } + leftValue = processValue(leftValue); + rightValue = processValue(rightValue); + if (leftValue == null || rightValue == null) { return false; } @@ -890,6 +893,17 @@ public class SQLEvalVisitorUtils { return false; } + @SuppressWarnings("rawtypes") + private static Object processValue(Object value) { + if (value instanceof List) { + List list = (List) value; + if (list.size() == 1) { + return processValue(list.get(0)); + } + } + return value; + } + private static boolean isAlwayTrueLikePattern(SQLExpr x) { if (x instanceof SQLCharExpr) { String text = ((SQLCharExpr) x).getText();