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;
