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 2021/04/29 11:47:20 UTC
[empire-db] branch master updated: EMPIREDB-346 another fix
This is an automated email from the ASF dual-hosted git repository.
doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git
The following commit(s) were added to refs/heads/master by this push:
new 9f67731 EMPIREDB-346 another fix
9f67731 is described below
commit 9f677312d68da6953d15a8fcfd1d358877319f72
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Thu Apr 29 13:47:16 2021 +0200
EMPIREDB-346
another fix
---
.../src/main/java/org/apache/empire/db/DBDatabaseDriver.java | 1 +
.../main/java/org/apache/empire/db/expr/column/DBValueExpr.java | 8 ++++++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java b/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
index bd23db7..934e72a 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
@@ -715,6 +715,7 @@ public abstract class DBDatabaseDriver implements Serializable
{
if (value instanceof Enum<?>)
{ // convert enum
+ log.warn("Enum of type {} supplied for getValueString. Converting value...", value.getClass().getName());
value = ObjectUtils.getEnumValue((Enum<?>)value, type.isNumeric());
}
if (ObjectUtils.isEmpty(value))
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
index 214a503..9161fa9 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
@@ -192,10 +192,14 @@ public class DBValueExpr extends DBColumnExpr
((DBExpr)value).addSQL(buf, context);
}
else
- { DataType dataType = getDataType();
+ { // unpack
+ DataType dataType = getDataType();
+ Object dataValue = value;
+ if (dataValue instanceof Enum<?>)
+ dataValue = ObjectUtils.getEnumValue((Enum<?>)dataValue, dataType.isNumeric());
// convert value to sql literal
DBDatabaseDriver driver = db.getDriver();
- String text = (driver!=null) ? driver.getValueString(value, dataType) : ObjectUtils.getString(value);
+ String text = (driver!=null) ? driver.getValueString(dataValue, dataType) : ObjectUtils.getString(dataValue);
buf.append(text);
}
}