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;