You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2019/05/23 06:39:14 UTC
[incubator-pinot] branch master updated: add more types parsing for
string coerceValueIntoField (#4133)
This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push:
new cb7dab4 add more types parsing for string coerceValueIntoField (#4133)
cb7dab4 is described below
commit cb7dab4be3a5d1425c9ceb1875f5417193b3f2fb
Author: Kate Wang <ka...@gmail.com>
AuthorDate: Wed May 22 23:39:09 2019 -0700
add more types parsing for string coerceValueIntoField (#4133)
---
.../apache/pinot/common/config/Deserializer.java | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/config/Deserializer.java b/pinot-common/src/main/java/org/apache/pinot/common/config/Deserializer.java
index 93c4d84..794874f 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/config/Deserializer.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/config/Deserializer.java
@@ -349,17 +349,26 @@ public class Deserializer {
} else if (value instanceof String) {
String stringValue = (String) value;
try {
- if (Integer.class.isAssignableFrom(fieldType) || int.class
- .isAssignableFrom(fieldType)) { // field instanceof int/Integer
+ if (fieldType.isAssignableFrom(Integer.class) || fieldType.isAssignableFrom(int.class)) {
destinationValue = Integer.parseInt(stringValue);
- } else if (Long.class.isAssignableFrom(fieldType)) { // field instanceof long/Long
+ } else if (fieldType.isAssignableFrom(Long.class) || fieldType.isAssignableFrom(long.class)) {
destinationValue = Long.parseLong(stringValue);
- } else if (Boolean.class.isAssignableFrom(fieldType) || boolean.class.isAssignableFrom(fieldType)) {
+ } else if (fieldType.isAssignableFrom(Boolean.class) || fieldType.isAssignableFrom(boolean.class)) {
destinationValue = Boolean.parseBoolean(stringValue);
} else if (Enum.class.isAssignableFrom(fieldType)) {
destinationValue = Enum.valueOf(fieldType.asSubclass(Enum.class), stringValue.toUpperCase());
- } else {
- // TODO Add float/double/short/char
+ } else if (fieldType.isAssignableFrom(Float.class) || fieldType.isAssignableFrom(float.class)) {
+ destinationValue = Float.parseFloat(stringValue);
+ } else if (fieldType.isAssignableFrom(Double.class) || fieldType.isAssignableFrom(double.class)) {
+ destinationValue = Double.parseDouble(stringValue);
+ } else if (fieldType.isAssignableFrom(Short.class) || fieldType.isAssignableFrom(short.class)) {
+ destinationValue = Short.parseShort(stringValue);
+ } else if (fieldType.isAssignableFrom(Byte.class) || fieldType.isAssignableFrom(byte.class)) {
+ destinationValue = Byte.parseByte(stringValue);
+ } else if (fieldType.isAssignableFrom(Character.class) || fieldType.isAssignableFrom(char.class)) {
+ destinationValue = stringValue.charAt(0);
+ }
+ else {
throw new RuntimeException("Unsupported conversion from " + objectType + " -> " + fieldType);
}
} catch (Exception e) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org