Repository: incubator-kylin Updated Branches: refs/heads/0.7-staging 5cc130d3c -> cc1ab7b9d
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/cc1ab7b9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/cc1ab7b9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/cc1ab7b9 Branch: refs/heads/0.7-staging Commit: cc1ab7b9dad6cf63f54a9c3c29ca89c6c528a22b Parents: 5cc130d Author: Li, Yang <[email protected]> Authored: Mon Jul 6 11:12:06 2015 +0800 Committer: Li, Yang <[email protected]> Committed: Mon Jul 6 11:12:06 2015 +0800 ---------------------------------------------------------------------- .../org/apache/kylin/cube/model/CubeDesc.java | 17 +++++----- .../apache/kylin/cube/model/v1/CubeDesc.java | 17 +++++----- .../kylin/invertedindex/model/IIDesc.java | 23 +++++++------ .../kylin/metadata/model/FunctionDesc.java | 18 ++++++----- .../endpoint/EndpointTupleIterator.java | 34 +++++++++----------- 5 files changed, 56 insertions(+), 53 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/cc1ab7b9/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 cae9c01..771c989 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; + /** * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:40 AM To * change this template use File | Settings | File Templates. @@ -625,7 +624,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/cc1ab7b9/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 1564899..0103523 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; + /** * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:40 AM To * change this template use File | Settings | File Templates. @@ -716,7 +715,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/cc1ab7b9/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 75cea57..6db6082 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 @@ -26,8 +26,21 @@ import java.util.HashSet; import java.util.List; import org.apache.commons.net.util.Base64; -import org.apache.hadoop.hbase.protobuf.generated.ClientProtos; +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.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; @@ -37,14 +50,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/cc1ab7b9/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 eda31a1..3a9fde6 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 @@ -130,14 +130,6 @@ public class FunctionDesc { this.parameter = parameter; } - public DataType getReturnDataType() { - return returnDataType; - } - - public void setReturnDataType(DataType returnDataType) { - this.returnDataType = returnDataType; - } - public String getSQLType() { if (isCountDistinct()) return "any"; @@ -151,8 +143,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/cc1ab7b9/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 8b4d8cf..1d2a355 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 @@ -19,9 +19,11 @@ package org.apache.kylin.storage.hbase.coprocessor.endpoint; import java.io.IOException; -import java.util.*; - -import com.google.common.collect.Sets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import org.apache.commons.io.IOUtils; import org.apache.hadoop.hbase.client.HConnection; @@ -29,7 +31,17 @@ import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.coprocessor.Batch; import org.apache.hadoop.hbase.ipc.BlockingRpcCallback; import org.apache.hadoop.hbase.ipc.ServerRpcController; +import org.apache.kylin.invertedindex.IISegment; +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.FunctionDesc; +import org.apache.kylin.metadata.model.TblColRef; +import org.apache.kylin.metadata.tuple.ITuple; +import org.apache.kylin.metadata.tuple.ITupleIterator; import org.apache.kylin.storage.StorageContext; +import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter; import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector; import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType; import org.apache.kylin.storage.hbase.coprocessor.endpoint.generated.IIProtos; @@ -40,20 +52,9 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import com.google.protobuf.ByteString; -import org.apache.kylin.invertedindex.IISegment; -import org.apache.kylin.invertedindex.index.TableRecord; -import org.apache.kylin.invertedindex.index.TableRecordInfo; -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.filter.ConstantTupleFilter; -import org.apache.kylin.metadata.filter.TupleFilter; -import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter; -import org.apache.kylin.metadata.tuple.ITuple; -import org.apache.kylin.metadata.tuple.ITupleIterator; - /** * Created by Hongbin Ma(Binmahone) on 12/2/14. @@ -144,7 +145,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) { @@ -153,10 +153,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.getColumn().getType().toString()); - functionDesc.setReturnDataType(DataType.getInstance(functionDesc.getReturnType())); } functionDesc.getParameter().setColRefs(ImmutableList.of(column)); updated = true;
