You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2012/08/29 19:07:29 UTC

svn commit: r1378649 - /empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java

Author: doebele
Date: Wed Aug 29 17:07:29 2012
New Revision: 1378649

URL: http://svn.apache.org/viewvc?rev=1378649&view=rev
Log:
EMPIREDB-166
add and remove command params when replacing set expressions.

Modified:
    empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java

Modified: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java?rev=1378649&r1=1378648&r2=1378649&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java (original)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java Wed Aug 29 17:07:29 2012
@@ -293,14 +293,20 @@ public abstract class DBCommand extends 
             DBSetExpr chk = set.get(i);
             if (chk.column.equals(expr.column))
             { // Overwrite existing value
-                if (useCmdParam(expr.column, expr.value) && chk.value instanceof DBCmdParam)
+                if (useCmdParam(expr.column, expr.value))
                 {   // replace parameter value
                     // int index = ((DBCommandParam) chk.value).index;
                     // this.setCmdParam(index, getCmdParamValue(expr.column, expr.value));
-                    ((DBCmdParam)chk.value).setValue(expr.value);
+                    if (chk.value instanceof DBCmdParam)
+                        ((DBCmdParam)chk.value).setValue(expr.value);
+                    else
+                        chk.value = addParam(expr.column.getDataType(), expr.value);
                 } 
                 else
-                { // replace value
+                {   // remove from parameter list (if necessary)
+                    if (cmdParams!=null && chk.value instanceof DBCmdParam)
+                        cmdParams.remove(chk.value);
+                    // replace value
                     chk.value = expr.value;
                 }
                 return;