Repository: incubator-kylin
Updated Branches:
  refs/heads/0.8 6de11d36f -> a5f6744b4


minor bug fix, ensure FunctionDesc.returnDataType is updated in sync with 
returnType


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/a5f6744b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/a5f6744b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/a5f6744b

Branch: refs/heads/0.8
Commit: a5f6744b43e7bfe5e912c35cc52b7e1c9e230c0a
Parents: 6de11d3
Author: Li, Yang <[email protected]>
Authored: Mon Jul 6 11:12:06 2015 +0800
Committer: Li, Yang <[email protected]>
Committed: Mon Jul 6 11:17:56 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/cube/model/CubeDesc.java   | 17 ++++++-----
 .../apache/kylin/cube/model/v1/CubeDesc.java    | 17 ++++++-----
 .../kylin/invertedindex/model/IIDesc.java       | 29 +++++++++++++------
 .../kylin/metadata/model/FunctionDesc.java      | 18 ++++++------
 .../endpoint/EndpointTupleIterator.java         | 30 +++++++++++++-------
 5 files changed, 65 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/a5f6744b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java 
b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index a335ea7..24f9db4 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -36,13 +36,6 @@ import java.util.Set;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.net.util.Base64;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
@@ -53,7 +46,6 @@ import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.DataModelDesc;
-import org.apache.kylin.metadata.model.DataType;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
@@ -61,6 +53,13 @@ import org.apache.kylin.metadata.model.ParameterDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
 /**
  */
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = 
Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE)
@@ -632,7 +631,7 @@ public class CubeDesc extends RootPersistentEntity {
 
             FunctionDesc f = m.getFunction();
             f.setExpression(f.getExpression().toUpperCase());
-            f.setReturnDataType(DataType.getInstance(f.getReturnType()));
+            f.initReturnDataType();
 
             ParameterDesc p = f.getParameter();
             p.normalizeColumnValue();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/a5f6744b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeDesc.java 
b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeDesc.java
index 82cc2cd..1c2d63e 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeDesc.java
@@ -35,13 +35,6 @@ import java.util.Set;
 
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.net.util.Base64;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
@@ -55,7 +48,6 @@ import org.apache.kylin.cube.model.RowKeyDesc;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
-import org.apache.kylin.metadata.model.DataType;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
@@ -63,6 +55,13 @@ import org.apache.kylin.metadata.model.ParameterDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
 /**
  */
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = 
Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE)
@@ -714,7 +713,7 @@ public class CubeDesc extends RootPersistentEntity {
 
             FunctionDesc f = m.getFunction();
             f.setExpression(f.getExpression().toUpperCase());
-            f.setReturnDataType(DataType.getInstance(f.getReturnType()));
+            f.initReturnDataType();
 
             ParameterDesc p = f.getParameter();
             p.normalizeColumnValue();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/a5f6744b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
----------------------------------------------------------------------
diff --git 
a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java 
b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
index 9bd9234..367471c 100644
--- 
a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
+++ 
b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
@@ -20,10 +20,29 @@ package org.apache.kylin.invertedindex.model;
 
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
 
 import org.apache.commons.net.util.Base64;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.StringUtil;
+import org.apache.kylin.metadata.MetadataConstants;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.DimensionDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.metadata.model.ParameterDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
@@ -33,14 +52,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.MetadataConstants;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.*;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/a5f6744b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
----------------------------------------------------------------------
diff --git 
a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java 
b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
index 806874d..af125e2 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
@@ -137,14 +137,6 @@ public class FunctionDesc {
         this.parameter = parameter;
     }
 
-    public DataType getReturnDataType() {
-        return returnDataType;
-    }
-
-    public void setReturnDataType(DataType returnDataType) {
-        this.returnDataType = returnDataType;
-    }
-
     public DataType getSQLType() {
         if (isCountDistinct())
             return DataType.ANY;
@@ -158,8 +150,18 @@ public class FunctionDesc {
         return returnType;
     }
 
+    public DataType getReturnDataType() {
+        return returnDataType;
+    }
+
     public void setReturnType(String returnType) {
         this.returnType = returnType;
+        this.initReturnDataType();
+    }
+    
+    // Jackson does not provide object post-processing currently
+    public void initReturnDataType() {
+        this.returnDataType = DataType.getInstance(returnType);
     }
 
     public TblColRef selectTblColRef(Collection<TblColRef> metricColumns, 
String factTableName) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/a5f6744b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
----------------------------------------------------------------------
diff --git 
a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
 
b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
index 9cb5f36..c33f2e4 100644
--- 
a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
+++ 
b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
@@ -18,10 +18,16 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.endpoint;
 
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.*;
-import com.google.protobuf.ByteString;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Nullable;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.hadoop.hbase.client.HConnection;
@@ -37,7 +43,6 @@ import org.apache.kylin.invertedindex.index.TableRecord;
 import org.apache.kylin.invertedindex.index.TableRecordInfo;
 import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
-import org.apache.kylin.metadata.model.DataType;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
@@ -53,9 +58,15 @@ import org.apache.kylin.storage.tuple.TupleInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.annotation.Nullable;
-import java.io.IOException;
-import java.util.*;
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Range;
+import com.google.common.collect.Ranges;
+import com.google.common.collect.Sets;
+import com.google.protobuf.ByteString;
 
 /**
  */
@@ -188,7 +199,6 @@ public class EndpointTupleIterator implements 
ITupleIterator {
         for (FunctionDesc functionDesc : measures) {
             if (functionDesc.isCount()) {
                 functionDesc.setReturnType("bigint");
-                
functionDesc.setReturnDataType(DataType.getInstance(functionDesc.getReturnType()));
             } else {
                 boolean updated = false;
                 for (TblColRef column : columns) {
@@ -197,10 +207,8 @@ public class EndpointTupleIterator implements 
ITupleIterator {
                             //TODO: default precision might need be 
configurable
                             String iiDefaultHLLC = "hllc10";
                             functionDesc.setReturnType(iiDefaultHLLC);
-                            
functionDesc.setReturnDataType(DataType.getInstance(iiDefaultHLLC));
                         } else {
                             
functionDesc.setReturnType(column.getColumnDesc().getType().toString());
-                            
functionDesc.setReturnDataType(DataType.getInstance(functionDesc.getReturnType()));
                         }
                         
functionDesc.getParameter().setColRefs(ImmutableList.of(column));
                         updated = true;

Reply via email to