EMPIREDB-382 small fix
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java
index 706837c..3976c17 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java
@@ -26,6 +26,7 @@
import org.apache.empire.db.DBColumn;
import org.apache.empire.db.DBColumnExpr;
import org.apache.empire.db.DBDatabase;
+import org.apache.empire.db.DBExpr;
import org.apache.empire.db.exceptions.DatabaseNotOpenException;
import org.apache.empire.dbms.DBMSHandler;
import org.apache.empire.exceptions.InvalidArgumentException;
@@ -227,8 +228,10 @@
String typeName = ((end>=idx) ? template.substring(idx+1, end) : null);
if (StringUtils.isNotEmpty(typeName) && !typeName.equals("*"))
paramDataType = DataType.valueOf(typeName);
- else
+ else if (typeName.equals("*") || params[i]==null || (params[i] instanceof DBExpr))
paramDataType = DataType.UNKNOWN; /* use as literal */
+ else
+ paramDataType = DataType.fromJavaType(params[i].getClass());
}
// complete placeholder
ph += template.substring(idx, end+1);