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);
         }
     }