From fd2ba2a290f32c054889c487a675c892f921f80e Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 1 Dec 2017 22:56:40 +0800 Subject: [PATCH] bug fixed for issue #2114 --- .../druid/sql/ast/expr/SQLVariantRefExpr.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLVariantRefExpr.java b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLVariantRefExpr.java index d1c5e4d275..1e6928b022 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLVariantRefExpr.java +++ b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLVariantRefExpr.java @@ -20,7 +20,9 @@ import com.alibaba.druid.sql.ast.SQLObject; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class SQLVariantRefExpr extends SQLExprImpl { @@ -128,6 +130,21 @@ public class SQLVariantRefExpr extends SQLExprImpl { public SQLVariantRefExpr clone() { SQLVariantRefExpr var = new SQLVariantRefExpr(name, global); var.index = index; + + if (attributes != null) { + var.attributes = new HashMap(attributes.size()); + for (Map.Entry entry : attributes.entrySet()) { + String k = entry.getKey(); + Object v = entry.getValue(); + + if (v instanceof SQLObject) { + var.attributes.put(k, ((SQLObject) v).clone()); + } else { + var.attributes.put(k, v); + } + } + } + return var; }