You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/07/14 09:49:38 UTC

[kylin] branch master updated: Avoid repeatedly calling "string.toLowerCase" in TimedJsonStreamParser#parse

This is an automated email from the ASF dual-hosted git repository.

nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new 7466b79  Avoid repeatedly calling "string.toLowerCase" in TimedJsonStreamParser#parse
7466b79 is described below

commit 7466b7913a9623d6f54fae3c8b8806f9a03b2d56
Author: yaqian.zhang <59...@qq.com>
AuthorDate: Fri Jul 5 10:01:41 2019 +0800

    Avoid repeatedly calling "string.toLowerCase" in TimedJsonStreamParser#parse
---
 .../java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java b/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java
index affa6f3..4920b12 100644
--- a/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java
+++ b/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java
@@ -70,6 +70,7 @@ public final class TimedJsonStreamParser extends StreamingParser {
     private boolean strictCheck = true;
     private final Map<String, Object> root = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
     private final Map<String, Object> tempMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+    private final Map<String, String> colLowerCaseMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
     private final Map<String, String[]> nameMap = new HashMap<>();
     public static final String EMBEDDED_PROPERTY_SEPARATOR = "|";
 
@@ -105,6 +106,10 @@ public final class TimedJsonStreamParser extends StreamingParser {
         mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         mapper.disable(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE);
         mapper.enable(DeserializationFeature.USE_JAVA_ARRAY_FOR_JSON_ARRAY);
+
+        for (TblColRef col : allColumns) {
+            colLowerCaseMap.put(col.getName(), col.getName().toLowerCase(Locale.ROOT));
+        }
     }
 
     @Override
@@ -118,7 +123,7 @@ public final class TimedJsonStreamParser extends StreamingParser {
             ArrayList<String> result = Lists.newArrayList();
 
             for (TblColRef column : allColumns) {
-                final String columnName = column.getName().toLowerCase(Locale.ROOT);
+                final String columnName = colLowerCaseMap.get(column.getName());
                 if (populateDerivedTimeColumns(columnName, result, t) == false) {
                     result.add(getValueByKey(column, root));
                 }