http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawSerializer.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawSerializer.java b/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawSerializer.java index c23d649..021c146 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawSerializer.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/raw/RawSerializer.java @@ -18,15 +18,15 @@ package org.apache.kylin.measure.raw; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; + import org.apache.kylin.common.util.ByteArray; import org.apache.kylin.common.util.BytesUtil; import org.apache.kylin.metadata.datatype.DataType; import org.apache.kylin.metadata.datatype.DataTypeSerializer; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.List; - @SuppressWarnings("unused") public class RawSerializer extends DataTypeSerializer<List<ByteArray>> { @@ -98,7 +98,7 @@ public class RawSerializer extends DataTypeSerializer<List<ByteArray>> { if (size >= 0) { for (int i = 0; i < size; i++) { ByteArray ba = new ByteArray(BytesUtil.readByteArray(in)); - if (ba.length() != 0){ + if (ba.length() != 0) { values.add(ba); } }
http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/topn/Counter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/Counter.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/Counter.java index 8dc9e7e..041ea2b 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/Counter.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/Counter.java @@ -18,7 +18,6 @@ package org.apache.kylin.measure.topn; - import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; @@ -33,7 +32,7 @@ public class Counter<T> implements Externalizable { protected T item; protected double count; -// protected double error; + // protected double error; /** * For de-serialization @@ -43,25 +42,25 @@ public class Counter<T> implements Externalizable { public Counter(T item) { this.count = 0; -// this.error = 0; + // this.error = 0; this.item = item; } public T getItem() { return item; } - + public double getCount() { return count; } -// public double getError() { -// return error; -// } + // public double getError() { + // return error; + // } @Override public String toString() { -// return item + ":" + count + ':' + error; + // return item + ":" + count + ':' + error; return item + ":" + count; } @@ -80,4 +79,3 @@ public class Counter<T> implements Externalizable { //out.writeDouble(error); } } - http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoubleDeltaSerializer.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoubleDeltaSerializer.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoubleDeltaSerializer.java index 2d9e3ee..38d5b20 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoubleDeltaSerializer.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoubleDeltaSerializer.java @@ -30,7 +30,7 @@ public class DoubleDeltaSerializer { static final int PRECISION_BITS = 3; static final int DELTA_SIZE_BITS = 6; static final int LENGTH_BITS = 23; - + static final long[] MASKS = new long[64]; { for (int i = 0; i < MASKS.length; i++) { @@ -41,7 +41,6 @@ public class DoubleDeltaSerializer { final private int precision; final private int multiplier; - transient ThreadLocal<long[]> deltasThreadLocal; public DoubleDeltaSerializer() { @@ -59,7 +58,7 @@ public class DoubleDeltaSerializer { this.deltasThreadLocal = new ThreadLocal<long[]>(); } - public void serialize(double values[], ByteBuffer buf) { + public void serialize(double[] values, ByteBuffer buf) { long[] deltas = calculateDeltas(values); int deltaSize = maxDeltaSize(deltas, values.length - 1); @@ -118,7 +117,7 @@ public class DoubleDeltaSerializer { deltas = new long[len]; deltasThreadLocal.set(deltas); } - + if (len == 0) return deltas; @@ -144,17 +143,17 @@ public class DoubleDeltaSerializer { public double[] deserialize(ByteBuffer buf) { int meta = buf.getInt(); int len = meta & ((1 << LENGTH_BITS) - 1); - + double[] result = new double[len]; deserialize(buf, meta, result); - + return result; } - + public int deserialize(ByteBuffer buf, double[] result) { return deserialize(buf, buf.getInt(), result); } - + private int deserialize(ByteBuffer buf, int meta, double[] result) { int precision = meta >>> (DELTA_SIZE_BITS + LENGTH_BITS); assert precision == this.precision; @@ -172,7 +171,7 @@ public class DoubleDeltaSerializer { int left = 0; for (int i = 1; i < len; i++) { long delta = 0; - + if (left >= deltaSize) { delta = (bits >> (left - deltaSize)) & MASKS[deltaSize]; left -= deltaSize; @@ -184,7 +183,7 @@ public class DoubleDeltaSerializer { delta |= (bits >> (left - more)) & MASKS[more]; left -= more; } - + current += delta; result[i] = (double) current / multiplier; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoublyLinkedList.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoublyLinkedList.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoublyLinkedList.java index 03e4066..bb4fa6d 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoublyLinkedList.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/DoublyLinkedList.java @@ -18,7 +18,6 @@ package org.apache.kylin.measure.topn; - /** * Modified from DoublyLinkedList.java in https://github.com/addthis/stream-lib * @@ -45,7 +44,7 @@ public class DoublyLinkedList<T> { */ public ListNode2<T> enqueue(T value) { ListNode2<T> node = new ListNode2<T>(value); - + return enqueue(node); } @@ -93,7 +92,6 @@ public class DoublyLinkedList<T> { size++; } - public void addBefore(ListNode2<T> node, ListNode2<T> newNode) { newNode.prev = node.prev; newNode.next = node; @@ -124,7 +122,6 @@ public class DoublyLinkedList<T> { public int size() { return size; } - public ListNode2<T> head() { return head; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounter.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounter.java index fd35309..ab4b40e 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounter.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounter.java @@ -18,11 +18,17 @@ package org.apache.kylin.measure.topn; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + import org.apache.kylin.common.util.Pair; -import java.util.*; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; /** * Modified from the StreamSummary.java in https://github.com/addthis/stream-lib @@ -115,8 +121,8 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { Counter<T> counter = counterNode.getValue(); counter.count += incrementCount; - ListNode2<Counter<T>> nodeNext; - + ListNode2<Counter<T>> nodeNext; + if (incrementCount > 0) { nodeNext = counterNode.getNext(); } else { @@ -135,7 +141,7 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { } else { counterList.add(counterNode); } - + } else { while (nodeNext != null && counter.count < nodeNext.getValue().count) { nodeNext = nodeNext.getPrev(); @@ -147,8 +153,6 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { } } - - } public List<T> peek(int k) { @@ -227,10 +231,10 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { if (another.size() >= another.capacity) { m2 = another.counterList.tail().getValue().count; } - - Set<T> duplicateItems = Sets.newHashSet(); + + Set<T> duplicateItems = Sets.newHashSet(); List<T> notDuplicateItems = Lists.newArrayList(); - + for (Map.Entry<T, ListNode2<Counter<T>>> entry : this.counterMap.entrySet()) { T item = entry.getKey(); ListNode2<Counter<T>> existing = another.counterMap.get(item); @@ -241,11 +245,11 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { } } - for(T item : duplicateItems) { + for (T item : duplicateItems) { this.offer(item, another.counterMap.get(item).getValue().count); } - - for(T item : notDuplicateItems) { + + for (T item : notDuplicateItems) { this.offer(item, m2); } @@ -301,7 +305,7 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { public Iterator<Counter<T>> iterator() { return new TopNCounterIterator(); } - + /** * Iterator from the tail (smallest) to head (biggest); */ @@ -331,5 +335,5 @@ public class TopNCounter<T> implements Iterable<Counter<T>> { throw new UnsupportedOperationException(); } } - + } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java index e2eaf22..ad42824 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java @@ -18,10 +18,14 @@ package org.apache.kylin.measure.topn; -import java.util.*; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import org.apache.commons.lang3.StringUtils; -import org.apache.kylin.common.util.*; +import org.apache.kylin.common.util.ByteArray; +import org.apache.kylin.common.util.Bytes; import org.apache.kylin.common.util.Dictionary; import org.apache.kylin.dimension.DictionaryDimEnc; import org.apache.kylin.dimension.DimensionEncoding; @@ -32,7 +36,9 @@ import org.apache.kylin.measure.MeasureType; import org.apache.kylin.measure.MeasureTypeFactory; import org.apache.kylin.metadata.datatype.DataType; import org.apache.kylin.metadata.datatype.DataTypeSerializer; -import org.apache.kylin.metadata.model.*; +import org.apache.kylin.metadata.model.FunctionDesc; +import org.apache.kylin.metadata.model.MeasureDesc; +import org.apache.kylin.metadata.model.TblColRef; import org.apache.kylin.metadata.realization.CapabilityResult.CapabilityInfluence; import org.apache.kylin.metadata.realization.SQLDigest; import org.apache.kylin.metadata.tuple.Tuple; @@ -206,13 +212,13 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> { @Override public List<TblColRef> getColumnsNeedDictionary(FunctionDesc functionDesc) { - List <TblColRef> columnsNeedDict = Lists.newArrayList(); - List <TblColRef> allCols = functionDesc.getParameter().getColRefs(); + List<TblColRef> columnsNeedDict = Lists.newArrayList(); + List<TblColRef> allCols = functionDesc.getParameter().getColRefs(); int start = (functionDesc.getParameter().isColumnType() == true) ? 1 : 0; for (int i = start; i < allCols.size(); i++) { TblColRef tblColRef = allCols.get(i); String encoding = functionDesc.getConfiguration().get(CONFIG_ENCODING_PREFIX + tblColRef.getName()); - if(StringUtils.isEmpty(encoding) || DictionaryDimEnc.ENCODING_NAME.equals(encoding)) { + if (StringUtils.isEmpty(encoding) || DictionaryDimEnc.ENCODING_NAME.equals(encoding)) { columnsNeedDict.add(tblColRef); } } @@ -324,14 +330,14 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> { final TblColRef numericCol = getTopNNumericColumn(function); final int[] literalTupleIdx = new int[literalCols.size()]; final DimensionEncoding[] dimensionEncodings = getDimensionEncodings(function, literalCols, dictionaryMap); - for (int i=0; i< literalCols.size(); i++) { + for (int i = 0; i < literalCols.size(); i++) { TblColRef colRef = literalCols.get(i); literalTupleIdx[i] = tupleInfo.hasColumn(colRef) ? tupleInfo.getColumnIndex(colRef) : -1; } // for TopN, the aggr must be SUM, so the number fill into the column position (without rewrite) final int numericTupleIdx; - if (numericCol != null ) { + if (numericCol != null) { numericTupleIdx = tupleInfo.hasColumn(numericCol) ? tupleInfo.getColumnIndex(numericCol) : -1; } else { numericTupleIdx = tupleInfo.getFieldIndex("COUNT__"); @@ -361,7 +367,7 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> { Counter<ByteArray> counter = topNCounterIterator.next(); int offset = counter.getItem().offset(); - for (int i = 0; i< dimensionEncodings.length; i++) { + for (int i = 0; i < dimensionEncodings.length; i++) { String colValue = dimensionEncodings[i].decode(counter.getItem().array(), offset, dimensionEncodings[i].getLengthOfEncoding()); tuple.setDimensionValue(literalTupleIdx[i], colValue); offset += dimensionEncodings[i].getLengthOfEncoding(); @@ -373,10 +379,10 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> { private static DimensionEncoding[] getDimensionEncodings(FunctionDesc function, List<TblColRef> literalCols, Map<TblColRef, Dictionary<String>> dictionaryMap) { final DimensionEncoding[] dimensionEncodings = new DimensionEncoding[literalCols.size()]; - for (int i=0; i< literalCols.size(); i++) { + for (int i = 0; i < literalCols.size(); i++) { TblColRef colRef = literalCols.get(i); String encoding = function.getConfiguration().get(TopNMeasureType.CONFIG_ENCODING_PREFIX + colRef.getName()); - if(StringUtils.isEmpty(encoding) || DictionaryDimEnc.ENCODING_NAME.equals(encoding)) { + if (StringUtils.isEmpty(encoding) || DictionaryDimEnc.ENCODING_NAME.equals(encoding)) { dimensionEncodings[i] = new DictionaryDimEnc(dictionaryMap.get(colRef)); } else { Object[] encodingConf = DimensionEncoding.parseEncodingConf(encoding); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataConstants.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataConstants.java b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataConstants.java index a45a20f..0fc96c3 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataConstants.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataConstants.java @@ -21,8 +21,6 @@ package org.apache.kylin.metadata; /** * Constances to describe metadata and it's change. * - * @author jianliu - * */ public interface MetadataConstants { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryEntry.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryEntry.java b/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryEntry.java index 02ea6ef..c78215d 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryEntry.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryEntry.java @@ -18,6 +18,8 @@ package org.apache.kylin.metadata.badquery; +import java.util.Objects; + import org.apache.kylin.common.persistence.RootPersistentEntity; import org.apache.kylin.common.util.DateFormat; @@ -113,6 +115,11 @@ public class BadQueryEntry extends RootPersistentEntity implements Comparable<Ba } @Override + public int hashCode() { + return Objects.hash(sql, startTime); + } + + @Override public boolean equals(Object o) { if (this == o) return true; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java b/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java index 3706e77..032fba2 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java @@ -52,9 +52,10 @@ public class DataType implements Serializable { VALID_TYPES.add(typeName); } - TYPE_PATTERN = Pattern.compile( // + TYPE_PATTERN = Pattern.compile(// "(" + StringUtils.join(VALID_TYPES, "|") + ")" // - + TYPE_PATTEN_TAIL, Pattern.CASE_INSENSITIVE); + + TYPE_PATTEN_TAIL, + Pattern.CASE_INSENSITIVE); } // standard sql types, ref: http://www.w3schools.com/sql/sql_datatypes_general.asp http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataTypeSerializer.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataTypeSerializer.java b/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataTypeSerializer.java index 51c33c2..a739377 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataTypeSerializer.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataTypeSerializer.java @@ -50,7 +50,7 @@ abstract public class DataTypeSerializer<T> implements BytesSerializer<T> { implementations.put("datetime", DateTimeSerializer.class); implementations.put("timestamp", DateTimeSerializer.class); } - + public static void register(String dataTypeName, Class<? extends DataTypeSerializer<?>> impl) { implementations.put(dataTypeName, impl); } @@ -70,7 +70,7 @@ abstract public class DataTypeSerializer<T> implements BytesSerializer<T> { throw new RuntimeException(e); // never happen } } - + /** Peek into buffer and return the length of serialization which is previously written by this.serialize(). * The current position of input buffer is guaranteed to be at the beginning of the serialization. * The implementation must not alter the buffer position by its return. */ @@ -81,7 +81,7 @@ abstract public class DataTypeSerializer<T> implements BytesSerializer<T> { /** Get an estimate of the average size in bytes of this kind of serialized data */ abstract public int getStorageBytesEstimate(); - + /** An optional convenient method that converts a string to this data type (for dimensions) */ public T valueOf(String str) { throw new UnsupportedOperationException(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DateTimeSerializer.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DateTimeSerializer.java b/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DateTimeSerializer.java index b7156b4..07f98b3 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DateTimeSerializer.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DateTimeSerializer.java @@ -70,5 +70,5 @@ public class DateTimeSerializer extends DataTypeSerializer<LongMutable> { public LongMutable valueOf(String str) { return new LongMutable(DateFormat.stringToMillis(str)); } - + } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/filter/BuildInFunctionTupleFilter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/BuildInFunctionTupleFilter.java b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/BuildInFunctionTupleFilter.java index 9d283fd..004a3ff 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/BuildInFunctionTupleFilter.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/BuildInFunctionTupleFilter.java @@ -45,7 +45,6 @@ public class BuildInFunctionTupleFilter extends FunctionTupleFilter { private Method method; private List<Serializable> methodParams; private boolean isValid = false; - public BuildInFunctionTupleFilter(String name) { super(Lists.<TupleFilter> newArrayList(), FilterOperatorEnum.FUNCTION); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java index aed5702..8c5e989 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java @@ -84,7 +84,7 @@ public class ColumnTupleFilter extends TupleFilter { } @Override - public void serialize(IFilterCodeSystem<?> cs,ByteBuffer buffer) { + public void serialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) { String table = columnRef.getTable(); BytesUtil.writeUTFString(table, buffer); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java index 7124fed..fe51710 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.Set; import org.apache.kylin.common.util.BytesUtil; -import org.apache.kylin.metadata.model.FunctionDesc; import org.apache.kylin.metadata.model.TblColRef; import org.apache.kylin.metadata.tuple.IEvaluatableTuple; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java index bc5a284..4647c51 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java @@ -38,7 +38,7 @@ import com.google.common.collect.Maps; public abstract class TupleFilter { public enum FilterOperatorEnum { - EQ(1), NEQ(2), GT(3), LT(4), GTE(5), LTE(6), ISNULL(7), ISNOTNULL(8), IN(9), NOTIN(10), AND(20), OR(21), NOT(22), COLUMN(30), CONSTANT(31), DYNAMIC(32), EXTRACT(33), CASE(34), FUNCTION(35),MASSIN(36); + EQ(1), NEQ(2), GT(3), LT(4), GTE(5), LTE(6), ISNULL(7), ISNOTNULL(8), IN(9), NOTIN(10), AND(20), OR(21), NOT(22), COLUMN(30), CONSTANT(31), DYNAMIC(32), EXTRACT(33), CASE(34), FUNCTION(35), MASSIN(36); private final int value; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Functions.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Functions.java b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Functions.java index 7931437..401c90b 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Functions.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Functions.java @@ -53,7 +53,7 @@ public class Functions { throw new RuntimeException("Failed to on constructing FunctionTupleFilter for " + name); } } - + return new BuildInFunctionTupleFilter(name); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Like.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Like.java b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Like.java index 5908d3d..a97244e 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Like.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/Like.java @@ -27,22 +27,7 @@ package org.apache.kylin.metadata.filter.function; public class Like { private static final String JAVA_REGEX_SPECIALS = "[]()|^-+*?{}$\\"; private static final String SQL_SIMILAR_SPECIALS = "[]()|^-+*_%?{}"; - private static final String [] REG_CHAR_CLASSES = { - "[:ALPHA:]", "\\p{Alpha}", - "[:alpha:]", "\\p{Alpha}", - "[:UPPER:]", "\\p{Upper}", - "[:upper:]", "\\p{Upper}", - "[:LOWER:]", "\\p{Lower}", - "[:lower:]", "\\p{Lower}", - "[:DIGIT:]", "\\d", - "[:digit:]", "\\d", - "[:SPACE:]", " ", - "[:space:]", " ", - "[:WHITESPACE:]", "\\s", - "[:whitespace:]", "\\s", - "[:ALNUM:]", "\\p{Alnum}", - "[:alnum:]", "\\p{Alnum}" - }; + private static final String[] REG_CHAR_CLASSES = { "[:ALPHA:]", "\\p{Alpha}", "[:alpha:]", "\\p{Alpha}", "[:UPPER:]", "\\p{Upper}", "[:upper:]", "\\p{Upper}", "[:LOWER:]", "\\p{Lower}", "[:lower:]", "\\p{Lower}", "[:DIGIT:]", "\\d", "[:digit:]", "\\d", "[:SPACE:]", " ", "[:space:]", " ", "[:WHITESPACE:]", "\\s", "[:whitespace:]", "\\s", "[:ALNUM:]", "\\p{Alnum}", "[:alnum:]", "\\p{Alnum}" }; private Like() { } @@ -51,9 +36,7 @@ public class Like { * Translates a SQL LIKE pattern to Java regex pattern, with optional * escape string. */ - static String sqlToRegexLike( - String sqlPattern, - CharSequence escapeStr) { + static String sqlToRegexLike(String sqlPattern, CharSequence escapeStr) { final char escapeChar; if (escapeStr != null) { if (escapeStr.length() != 1) { @@ -69,9 +52,7 @@ public class Like { /** * Translates a SQL LIKE pattern to Java regex pattern. */ - static String sqlToRegexLike( - String sqlPattern, - char escapeChar) { + static String sqlToRegexLike(String sqlPattern, char escapeChar) { int i; final int len = sqlPattern.length(); final StringBuilder javaPattern = new StringBuilder(len + len); @@ -85,9 +66,7 @@ public class Like { throw invalidEscapeSequence(sqlPattern, i); } char nextChar = sqlPattern.charAt(i + 1); - if ((nextChar == '_') - || (nextChar == '%') - || (nextChar == escapeChar)) { + if ((nextChar == '_') || (nextChar == '%') || (nextChar == escapeChar)) { javaPattern.append(nextChar); i++; } else { @@ -106,18 +85,14 @@ public class Like { } private static RuntimeException invalidEscapeCharacter(String s) { - return new RuntimeException( - "Invalid escape character '" + s + "'"); + return new RuntimeException("Invalid escape character '" + s + "'"); } private static RuntimeException invalidEscapeSequence(String s, int i) { - return new RuntimeException( - "Invalid escape sequence '" + s + "', " + i); + return new RuntimeException("Invalid escape sequence '" + s + "', " + i); } - private static void similarEscapeRuleChecking( - String sqlPattern, - char escapeChar) { + private static void similarEscapeRuleChecking(String sqlPattern, char escapeChar) { if (escapeChar == 0) { return; } @@ -130,8 +105,7 @@ public class Like { throw invalidEscapeSequence(sqlPattern, i); } char c = sqlPattern.charAt(i + 1); - if ((SQL_SIMILAR_SPECIALS.indexOf(c) < 0) - && (c != escapeChar)) { + if ((SQL_SIMILAR_SPECIALS.indexOf(c) < 0) && (c != escapeChar)) { throw invalidEscapeSequence(sqlPattern, i); } } @@ -151,17 +125,11 @@ public class Like { } } - private static RuntimeException invalidRegularExpression( - String pattern, int i) { - return new RuntimeException( - "Invalid regular expression '" + pattern + "'"); + private static RuntimeException invalidRegularExpression(String pattern, int i) { + return new RuntimeException("Invalid regular expression '" + pattern + "'"); } - private static int sqlSimilarRewriteCharEnumeration( - String sqlPattern, - StringBuilder javaPattern, - int pos, - char escapeChar) { + private static int sqlSimilarRewriteCharEnumeration(String sqlPattern, StringBuilder javaPattern, int pos, char escapeChar) { int i; for (i = pos + 1; i < sqlPattern.length(); i++) { char c = sqlPattern.charAt(i); @@ -212,9 +180,7 @@ public class Like { * Translates a SQL SIMILAR pattern to Java regex pattern, with optional * escape string. */ - static String sqlToRegexSimilar( - String sqlPattern, - CharSequence escapeStr) { + static String sqlToRegexSimilar(String sqlPattern, CharSequence escapeStr) { final char escapeChar; if (escapeStr != null) { if (escapeStr.length() != 1) { @@ -230,14 +196,11 @@ public class Like { /** * Translates SQL SIMILAR pattern to Java regex pattern. */ - static String sqlToRegexSimilar( - String sqlPattern, - char escapeChar) { + static String sqlToRegexSimilar(String sqlPattern, char escapeChar) { similarEscapeRuleChecking(sqlPattern, escapeChar); boolean insideCharacterEnumeration = false; - final StringBuilder javaPattern = - new StringBuilder(sqlPattern.length() * 2); + final StringBuilder javaPattern = new StringBuilder(sqlPattern.length() * 2); final int len = sqlPattern.length(); for (int i = 0; i < len; i++) { char c = sqlPattern.charAt(i); @@ -264,40 +227,36 @@ public class Like { i++; // we already process the next char. } else { switch (c) { - case '_': - javaPattern.append('.'); - break; - case '%': - javaPattern.append('.'); - javaPattern.append('*'); - break; - case '[': - javaPattern.append('['); - insideCharacterEnumeration = true; - i = sqlSimilarRewriteCharEnumeration( - sqlPattern, - javaPattern, - i, - escapeChar); - break; - case ']': - if (!insideCharacterEnumeration) { - throw invalidRegularExpression(sqlPattern, i); - } - insideCharacterEnumeration = false; - javaPattern.append(']'); - break; - case '\\': - javaPattern.append("\\\\"); - break; - case '$': + case '_': + javaPattern.append('.'); + break; + case '%': + javaPattern.append('.'); + javaPattern.append('*'); + break; + case '[': + javaPattern.append('['); + insideCharacterEnumeration = true; + i = sqlSimilarRewriteCharEnumeration(sqlPattern, javaPattern, i, escapeChar); + break; + case ']': + if (!insideCharacterEnumeration) { + throw invalidRegularExpression(sqlPattern, i); + } + insideCharacterEnumeration = false; + javaPattern.append(']'); + break; + case '\\': + javaPattern.append("\\\\"); + break; + case '$': - // $ is special character in java regex, but regular in - // SQL regex. - javaPattern.append("\\$"); - break; - default: - javaPattern.append(c); + // $ is special character in java regex, but regular in + // SQL regex. + javaPattern.append("\\$"); + break; + default: + javaPattern.append(c); } } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java index 27cb6b6..73cad1f 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java @@ -58,12 +58,12 @@ public class ColumnDesc implements Serializable { private TableDesc table; private int zeroBasedIndex = -1; private boolean isNullable = true; - + private TblColRef ref; public ColumnDesc() { // default constructor for Jackson } - + public TblColRef getRef() { if (ref == null) { ref = new TblColRef(this); @@ -154,7 +154,7 @@ public class ColumnDesc implements Serializable { return StringUtils.equalsIgnoreCase(table.getIdentity(), tableName) && // StringUtils.equalsIgnoreCase(name, columnName); } - + @Override public int hashCode() { final int prime = 31; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java index 13ed011..c6fa1bc 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java @@ -25,7 +25,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; -import com.google.common.collect.Lists; import org.apache.commons.lang.ArrayUtils; import org.apache.kylin.common.persistence.ResourceStore; import org.apache.kylin.common.persistence.RootPersistentEntity; @@ -35,6 +34,8 @@ import org.apache.kylin.metadata.MetadataConstants; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; + +import com.google.common.collect.Lists; import com.google.common.collect.Sets; @SuppressWarnings("serial") @@ -65,7 +66,7 @@ public class DataModelDesc extends RootPersistentEntity { @JsonProperty("filter_condition") private String filterCondition; - + @JsonProperty("partition_desc") PartitionDesc partitionDesc; @@ -73,7 +74,7 @@ public class DataModelDesc extends RootPersistentEntity { private RealizationCapacity capacity = RealizationCapacity.MEDIUM; private TableDesc factTableDesc; - + private List<TableDesc> lookupTableDescs = Lists.newArrayList(); /** @@ -181,11 +182,11 @@ public class DataModelDesc extends RootPersistentEntity { } return candidate; } - + // TODO let this replace CubeDesc.buildColumnNameAbbreviation() public ColumnDesc findColumn(String column) { ColumnDesc colDesc = null; - + int cut = column.lastIndexOf('.'); if (cut > 0) { // table specified @@ -203,25 +204,25 @@ public class DataModelDesc extends RootPersistentEntity { } } } - + if (colDesc == null) throw new IllegalArgumentException("Column not found by " + column); - + return colDesc; } - + public TableDesc findTable(String table) { if (factTableDesc.getName().equalsIgnoreCase(table) || factTableDesc.getIdentity().equalsIgnoreCase(table)) return factTableDesc; - + for (TableDesc desc : lookupTableDescs) { if (desc.getName().equalsIgnoreCase(table) || desc.getIdentity().equalsIgnoreCase(table)) return desc; } - + throw new IllegalArgumentException("Table not found by " + table); } - + public void init(Map<String, TableDesc> tables) { this.factTable = this.factTable.toUpperCase(); this.factTableDesc = tables.get(this.factTable.toUpperCase()); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/ExternalFilterDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ExternalFilterDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ExternalFilterDesc.java index 0110aa0..115b154 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ExternalFilterDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ExternalFilterDesc.java @@ -58,7 +58,6 @@ public class ExternalFilterDesc extends RootPersistentEntity implements ISourceA // ============================================================================ - public String getFilterResourceIdentifier() { return filterResourceIdentifier; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java index c8d6ab2..9fb9164 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java @@ -18,9 +18,13 @@ package org.apache.kylin.metadata.model; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Set; -import com.fasterxml.jackson.annotation.JsonInclude; import org.apache.kylin.measure.MeasureType; import org.apache.kylin.measure.MeasureTypeFactory; import org.apache.kylin.measure.basic.BasicMeasureType; @@ -28,7 +32,9 @@ import org.apache.kylin.metadata.datatype.DataType; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -275,7 +281,6 @@ public class FunctionDesc { this.configuration = configurations; } - @Override public int hashCode() { final int prime = 31; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/IEngineAware.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/IEngineAware.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IEngineAware.java index a9fb491..882b2e3 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/IEngineAware.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IEngineAware.java @@ -24,6 +24,6 @@ public interface IEngineAware { public static final int ID_MR_V2 = 2; public static final int ID_MR_II = 3; public static final int ID_SPARK = 5; - + int getEngineType(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/IStorageAware.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/IStorageAware.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IStorageAware.java index 9f9edca..e552574 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/IStorageAware.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IStorageAware.java @@ -23,6 +23,6 @@ public interface IStorageAware { public static final int ID_HBASE = 0; public static final int ID_HYBRID = 1; public static final int ID_SHARDED_HBASE = 2; - + int getStorageType(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java index 19792cb..7abfad1 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java @@ -18,9 +18,10 @@ package org.apache.kylin.metadata.model; +import java.util.Objects; + import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; /** @@ -29,7 +30,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) public class MeasureDesc { - @JsonProperty("name") private String name; @JsonProperty("function") @@ -62,6 +62,11 @@ public class MeasureDesc { } @Override + public int hashCode() { + return Objects.hash(function, dependentMeasureRef.toLowerCase()); + } + + @Override public boolean equals(Object o) { if (this == o) return true; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/ParameterDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ParameterDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ParameterDesc.java index 2cf4374..329799f 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ParameterDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ParameterDesc.java @@ -34,7 +34,7 @@ public class ParameterDesc { private String type; @JsonProperty("value") private String value; - + @JsonProperty("next_parameter") private ParameterDesc nextParameter; @@ -67,7 +67,7 @@ public class ParameterDesc { public void setColRefs(List<TblColRef> colRefs) { this.colRefs = colRefs; } - + public ParameterDesc getNextParameter() { return nextParameter; } @@ -82,14 +82,19 @@ public class ParameterDesc { @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; ParameterDesc that = (ParameterDesc) o; - if (nextParameter != null ? !nextParameter.equals(that.nextParameter) : that.nextParameter != null) return false; - if (type != null ? !type.equals(that.type) : that.type != null) return false; - if (value != null ? !value.equals(that.value) : that.value != null) return false; + if (nextParameter != null ? !nextParameter.equals(that.nextParameter) : that.nextParameter != null) + return false; + if (type != null ? !type.equals(that.type) : that.type != null) + return false; + if (value != null ? !value.equals(that.value) : that.value != null) + return false; return true; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java index f1339cd..3f265e2 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java @@ -49,7 +49,7 @@ public class PartitionDesc { @JsonProperty("partition_date_start") private long partitionDateStart = 0L;//Deprecated - + @JsonProperty("partition_date_format") private String partitionDateFormat = DateFormat.DEFAULT_DATE_PATTERN; @@ -58,7 +58,7 @@ public class PartitionDesc { @JsonProperty("partition_type") private PartitionType partitionType = PartitionType.APPEND; - + @JsonProperty("partition_condition_builder") private String partitionConditionBuilderClz = DefaultPartitionConditionBuilder.class.getName(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java index c5d2290..f3d5318 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java @@ -178,7 +178,7 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware { } } } - + @Override public int hashCode() { return getIdentity().hashCode(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java index 74f843f..8dff7c9 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java @@ -33,6 +33,7 @@ import org.apache.kylin.metadata.realization.RealizationType; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -210,8 +211,8 @@ public class ProjectInstance extends RootPersistentEntity { public void removeTable(String tableName) { tables.remove(tableName.toUpperCase()); } - - public void addExtFilter(String extFilterName){ + + public void addExtFilter(String extFilterName) { this.getExtFilters().add(extFilterName); } @@ -231,8 +232,7 @@ public class ProjectInstance extends RootPersistentEntity { return tables; } - - public Set<String> getExtFilters(){ + public Set<String> getExtFilters() { return extFilters; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/realization/CapabilityResult.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/CapabilityResult.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/CapabilityResult.java index 2241e6a..3699b09 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/CapabilityResult.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/CapabilityResult.java @@ -25,13 +25,13 @@ import org.apache.kylin.metadata.model.FunctionDesc; import com.google.common.collect.Lists; public class CapabilityResult { - + /** Is capable or not */ public boolean capable; /** The smaller the cost, the more capable the realization */ public int cost; - + /** * Marker objects to indicate all special features * (dimension-as-measure, topN etc.) that have influenced the capability check. @@ -42,11 +42,11 @@ public class CapabilityResult { /** Suggest a multiplier to influence query cost */ double suggestCostMultiplier(); } - + public static class DimensionAsMeasure implements CapabilityInfluence { - + final FunctionDesc function; - + public DimensionAsMeasure(FunctionDesc function) { this.function = function; } @@ -55,7 +55,7 @@ public class CapabilityResult { public double suggestCostMultiplier() { return 1; } - + public FunctionDesc getMeasureFunction() { return function; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java index 1857c85..10a810b 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java @@ -26,7 +26,7 @@ import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TblColRef; public interface IRealization extends IStorageAware { - + /** * Given the features of a query, check how capable the realization is to answer the query. */ http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java index f5c6428..2a3b01e 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java @@ -31,9 +31,9 @@ public class IRealizationConstants { * which kylin server(represented by its kylin_metadata prefix) owns this htable */ public final static String HTableTag = "KYLIN_HOST"; - + public final static String HTableOwner = "OWNER"; - + public final static String HTableUser = "USER"; public final static String HTableCreationTime = "CREATION_TIME"; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationSegment.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationSegment.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationSegment.java index 0df1be7..3a1a2e7 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationSegment.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationSegment.java @@ -27,14 +27,14 @@ import org.apache.kylin.metadata.model.IJoinedFlatTableDesc; public interface IRealizationSegment extends IBuildable { public KylinConfig getConfig(); - + public String getUuid(); - + public String getName(); public String getStorageLocationIdentifier(); - + public IRealization getRealization(); - + public IJoinedFlatTableDesc getJoinedFlatTableDesc(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java b/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java index a0cbbb6..14d717e 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java @@ -115,14 +115,14 @@ public class Tuple implements ITuple { } else if ("float".equals(dataType) && fieldValue instanceof BigDecimal) { fieldValue = ((BigDecimal) fieldValue).floatValue(); } else if ("date".equals(dataType) && fieldValue instanceof Long) { - long millis = ((Long)fieldValue).longValue(); + long millis = ((Long) fieldValue).longValue(); fieldValue = (int) (millis / (1000 * 3600 * 24)); } else if ("smallint".equals(dataType) && fieldValue instanceof Long) { - fieldValue = ((Long)fieldValue).shortValue(); + fieldValue = ((Long) fieldValue).shortValue(); } else if ((!"varchar".equals(dataType) || !"char".equals(dataType)) && fieldValue instanceof String) { - fieldValue = convertOptiqCellValue((String)fieldValue, dataType); + fieldValue = convertOptiqCellValue((String) fieldValue, dataType); } else if ("bigint".equals(dataType) && fieldValue instanceof Double) { - fieldValue = ((Double)fieldValue).longValue(); + fieldValue = ((Double) fieldValue).longValue(); } values[idx] = fieldValue; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/dimension/DateDimEncTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/dimension/DateDimEncTest.java b/core-metadata/src/test/java/org/apache/kylin/dimension/DateDimEncTest.java index 6a583ae..0183b5f 100644 --- a/core-metadata/src/test/java/org/apache/kylin/dimension/DateDimEncTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/dimension/DateDimEncTest.java @@ -46,7 +46,7 @@ public class DateDimEncTest { enc.encode(value, buf, 0); return BytesUtil.readLong(buf, 0, buf.length); } - + private String decode(long code) { BytesUtil.writeLong(code, buf, 0, buf.length); return enc.decode(buf, 0, buf.length); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/dimension/TimeDimEncTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/dimension/TimeDimEncTest.java b/core-metadata/src/test/java/org/apache/kylin/dimension/TimeDimEncTest.java index d5a69c3..2ccb0ef 100644 --- a/core-metadata/src/test/java/org/apache/kylin/dimension/TimeDimEncTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/dimension/TimeDimEncTest.java @@ -18,7 +18,7 @@ package org.apache.kylin.dimension; -import static org.junit.Assert.*; +import static org.junit.Assert.fail; import org.apache.kylin.common.util.BytesUtil; import org.apache.kylin.common.util.DateFormat; @@ -44,7 +44,7 @@ public class TimeDimEncTest { enc.encode(value, buf, 0); return BytesUtil.readLong(buf, 0, buf.length); } - + private String decode(long code) { BytesUtil.writeLong(code, buf, 0, buf.length); return enc.decode(buf, 0, buf.length); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapAggregatorTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapAggregatorTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapAggregatorTest.java index 1114801..a930db7 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapAggregatorTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapAggregatorTest.java @@ -18,11 +18,11 @@ package org.apache.kylin.measure.bitmap; -import org.junit.Test; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import org.junit.Test; + /** * Created by sunyerui on 15/12/31. */ http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapCounterTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapCounterTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapCounterTest.java index b416ec0..f0e21cf 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapCounterTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapCounterTest.java @@ -18,12 +18,12 @@ package org.apache.kylin.measure.bitmap; -import org.junit.Test; +import static org.junit.Assert.assertEquals; import java.io.IOException; import java.nio.ByteBuffer; -import static org.junit.Assert.assertEquals; +import org.junit.Test; /** * Created by sunyerui on 15/12/31. http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapSerializerTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapSerializerTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapSerializerTest.java index b9d846b..97b86ed 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapSerializerTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/bitmap/BitmapSerializerTest.java @@ -18,7 +18,7 @@ package org.apache.kylin.measure.bitmap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.nio.ByteBuffer; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java index be93f8a..5b7c565 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java @@ -18,7 +18,8 @@ package org.apache.kylin.measure.hll; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.io.IOException; import java.nio.ByteBuffer; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawAggregatorTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawAggregatorTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawAggregatorTest.java index a94a55c..ebdb7ef 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawAggregatorTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawAggregatorTest.java @@ -18,7 +18,7 @@ package org.apache.kylin.measure.raw; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawSerializerTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawSerializerTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawSerializerTest.java index 5bb83b0..14049d0 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawSerializerTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/raw/RawSerializerTest.java @@ -18,7 +18,7 @@ package org.apache.kylin.measure.raw; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.nio.ByteBuffer; import java.util.ArrayList; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/topn/DoubleDeltaSerializerTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/topn/DoubleDeltaSerializerTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/topn/DoubleDeltaSerializerTest.java index 3c742a9..e979791 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/topn/DoubleDeltaSerializerTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/topn/DoubleDeltaSerializerTest.java @@ -17,7 +17,8 @@ */ package org.apache.kylin.measure.topn; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.nio.ByteBuffer; import java.util.Arrays; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterBasicTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterBasicTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterBasicTest.java index a55b493..cb92338 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterBasicTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterBasicTest.java @@ -16,13 +16,13 @@ package org.apache.kylin.measure.topn; -import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import org.junit.Test; public class TopNCounterBasicTest { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterCombinationTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterCombinationTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterCombinationTest.java index bf51112..282f648 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterCombinationTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterCombinationTest.java @@ -16,13 +16,13 @@ package org.apache.kylin.measure.topn; +import java.util.Arrays; +import java.util.Collection; + import org.junit.Ignore; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import java.util.Arrays; -import java.util.Collection; - @RunWith(Parameterized.class) @Ignore("For collecting accuracy statistics, not for functional test") public class TopNCounterCombinationTest extends TopNCounterTest { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterTest.java index 7b7031b..aa8b2fe 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterTest.java @@ -16,8 +16,16 @@ package org.apache.kylin.measure.topn; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + import org.apache.commons.io.FileUtils; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.math3.distribution.ZipfDistribution; @@ -25,11 +33,8 @@ import org.apache.kylin.common.util.Pair; import org.junit.Ignore; import org.junit.Test; -import java.io.*; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; @Ignore("For collecting accuracy statistics, not for functional test") public class TopNCounterTest { @@ -43,7 +48,7 @@ public class TopNCounterTest { protected static int SPACE_SAVING_ROOM; protected static int PARALLEL = 10; - + protected static boolean verbose = true; public TopNCounterTest() { @@ -72,7 +77,7 @@ public class TopNCounterTest { FileWriter fw = new FileWriter(tempFile); try { for (int i = 0; i < TOTAL_RECORDS; i++) { - keyIndex = zipf.sample() -1; + keyIndex = zipf.sample() - 1; fw.write(allKeys[keyIndex]); fw.write('\n'); } @@ -124,12 +129,12 @@ public class TopNCounterTest { org.junit.Assert.assertEquals(0, error); } - + private boolean isClose(double value1, double value2) { - - if(Math.abs(value1 - value2) < 5.0) + + if (Math.abs(value1 - value2) < 5.0) return true; - + return false; } @@ -166,14 +171,14 @@ public class TopNCounterTest { return consumers; TopNCounterTest.SpaceSavingConsumer merged = new TopNCounterTest.SpaceSavingConsumer(TOP_K * SPACE_SAVING_ROOM); - - for (int i=0, n=consumers.length; i<n; i++) { + + for (int i = 0, n = consumers.length; i < n; i++) { merged.vs.merge(consumers[i].vs); } merged.vs.retain(TOP_K * SPACE_SAVING_ROOM); // remove extra elements; - return new TopNCounterTest.SpaceSavingConsumer[] {merged}; - + return new TopNCounterTest.SpaceSavingConsumer[] { merged }; + } private TopNCounterTest.SpaceSavingConsumer[] binaryMerge(TopNCounterTest.SpaceSavingConsumer[] consumers) throws IOException, ClassNotFoundException { @@ -181,7 +186,6 @@ public class TopNCounterTest { if (consumers.length == 1) return consumers; - for (int i = 0, n = consumers.length; i < n; i = i + 2) { if (i + 1 < n) { consumers[i].vs.merge(consumers[i + 1].vs); @@ -192,7 +196,6 @@ public class TopNCounterTest { return binaryMerge(list.toArray(new TopNCounterTest.SpaceSavingConsumer[list.size()])); } - private void feedDataToConsumer(String dataFile, TopNCounterTest.TestDataConsumer consumer, int startLine, int endLine) throws IOException { long startTime = System.currentTimeMillis(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java b/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java index d2ff496..a4977c4 100644 --- a/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java @@ -18,7 +18,7 @@ package org.apache.kylin.metadata; -import static org.apache.kylin.metadata.MetadataManager.*; +import static org.apache.kylin.metadata.MetadataManager.getInstance; import java.util.List; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java b/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java index 562f356..0e0df70 100644 --- a/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java @@ -18,7 +18,8 @@ package org.apache.kylin.metadata.badquery; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.NavigableSet; @@ -96,7 +97,7 @@ public class BadQueryHistoryManagerTest extends LocalFileMetadataTestCase { assertEquals("adj2", newEntry.getAdj()); assertEquals("server2", newEntry.getServer()); assertEquals("t-1", newEntry.getThread()); - assertEquals(120, (int)newEntry.getRunningSec()); + assertEquals(120, (int) newEntry.getRunningSec()); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-metadata/src/test/java/org/apache/kylin/metadata/datatype/BigDecimalSerializerTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/metadata/datatype/BigDecimalSerializerTest.java b/core-metadata/src/test/java/org/apache/kylin/metadata/datatype/BigDecimalSerializerTest.java index c6a0de0..5be5806 100644 --- a/core-metadata/src/test/java/org/apache/kylin/metadata/datatype/BigDecimalSerializerTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/metadata/datatype/BigDecimalSerializerTest.java @@ -18,7 +18,7 @@ package org.apache.kylin.metadata.datatype; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.math.BigDecimal; import java.nio.ByteBuffer; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeSegmentScanner.java ---------------------------------------------------------------------- diff --git a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeSegmentScanner.java b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeSegmentScanner.java index c12159d..15e3272 100644 --- a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeSegmentScanner.java +++ b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeSegmentScanner.java @@ -52,7 +52,7 @@ public class CubeSegmentScanner implements IGTScanner { final GTScanRequest scanRequest; public CubeSegmentScanner(CubeSegment cubeSeg, Cuboid cuboid, Set<TblColRef> dimensions, Set<TblColRef> groups, // - Collection<FunctionDesc> metrics, TupleFilter filter, StorageContext context,String gtStorage) { + Collection<FunctionDesc> metrics, TupleFilter filter, StorageContext context, String gtStorage) { this.cuboid = cuboid; this.cubeSeg = cubeSeg; @@ -74,7 +74,7 @@ public class CubeSegmentScanner implements IGTScanner { if (context.isLimitEnabled()) scanRequest.setRowLimit(context.getLimit()); } - scanner = new ScannerWorker(cubeSeg, cuboid, scanRequest,gtStorage); + scanner = new ScannerWorker(cubeSeg, cuboid, scanRequest, gtStorage); } @Override http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeTupleConverter.java ---------------------------------------------------------------------- diff --git a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeTupleConverter.java b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeTupleConverter.java index d6917e1..7b442b4 100644 --- a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeTupleConverter.java +++ b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/CubeTupleConverter.java @@ -56,10 +56,10 @@ public class CubeTupleConverter { final int[] tupleIdx; final Object[] gtValues; final MeasureType<?>[] measureTypes; - + final List<IAdvMeasureFiller> advMeasureFillers; final List<Integer> advMeasureIndexInGTValues; - + final int nSelectedDims; public CubeTupleConverter(CubeSegment cubeSeg, Cuboid cuboid, // @@ -79,10 +79,10 @@ public class CubeTupleConverter { // measure types don't have this many, but aligned length make programming easier measureTypes = new MeasureType[selectedDimensions.size() + selectedMetrics.size()]; - + advMeasureFillers = Lists.newArrayListWithCapacity(1); advMeasureIndexInGTValues = Lists.newArrayListWithCapacity(1); - + int iii = 0; // pre-calculate dimension index mapping to tuple @@ -96,7 +96,7 @@ public class CubeTupleConverter { for (FunctionDesc metric : selectedMetrics) { int i = mapping.getIndexOf(metric); gtColIdx[iii] = i; - + if (metric.needRewrite()) { String rewriteFieldName = metric.getRewriteFieldName(); tupleIdx[iii] = tupleInfo.hasField(rewriteFieldName) ? tupleInfo.getFieldIndex(rewriteFieldName) : -1; @@ -106,7 +106,7 @@ public class CubeTupleConverter { TblColRef col = metric.getParameter().getColRefs().get(0); tupleIdx[iii] = tupleInfo.hasColumn(col) ? tupleInfo.getColumnIndex(col) : -1; } - + MeasureType<?> measureType = metric.getMeasureType(); if (measureType.needAdvancedTupleFilling()) { Map<TblColRef, Dictionary<String>> dictionaryMap = buildDictionaryMap(measureType.getColumnsNeedDictionary(metric)); @@ -115,7 +115,7 @@ public class CubeTupleConverter { } else { measureTypes[iii] = measureType; } - + iii++; } @@ -165,7 +165,7 @@ public class CubeTupleConverter { for (IDerivedColumnFiller filler : derivedColFillers) { filler.fillDerivedColumns(gtValues, tuple); } - + // advanced measure filling, due to possible row split, will complete at caller side if (advMeasureFillers.isEmpty()) { return null; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SequentialCubeTupleIterator.java ---------------------------------------------------------------------- diff --git a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SequentialCubeTupleIterator.java b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SequentialCubeTupleIterator.java index 3681e5e..3c992d2 100644 --- a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SequentialCubeTupleIterator.java +++ b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SequentialCubeTupleIterator.java @@ -54,7 +54,7 @@ public class SequentialCubeTupleIterator implements ITupleIterator { protected Iterator<GTRecord> curRecordIterator; protected CubeTupleConverter curTupleConverter; protected Tuple next; - + private List<IAdvMeasureFiller> advMeasureFillers; private int advMeasureRowsRemaining; private int advMeasureRowIndex; @@ -77,10 +77,10 @@ public class SequentialCubeTupleIterator implements ITupleIterator { public boolean hasNext() { if (next != null) return true; - + if (hitLimitAndThreshold()) return false; - + // consume any left rows from advanced measure filler if (advMeasureRowsRemaining > 0) { for (IAdvMeasureFiller filler : advMeasureFillers) { @@ -115,7 +115,7 @@ public class SequentialCubeTupleIterator implements ITupleIterator { // now we have a GTRecord GTRecord curRecord = curRecordIterator.next(); - + // translate into tuple advMeasureFillers = curTupleConverter.translateResult(curRecord, tuple); @@ -124,7 +124,7 @@ public class SequentialCubeTupleIterator implements ITupleIterator { next = tuple; return true; } - + // advanced measure filling, like TopN, will produce multiple tuples out of one record advMeasureRowsRemaining = -1; for (IAdvMeasureFiller filler : advMeasureFillers) { @@ -135,11 +135,10 @@ public class SequentialCubeTupleIterator implements ITupleIterator { } if (advMeasureRowsRemaining < 0) throw new IllegalStateException(); - + advMeasureRowIndex = 0; return hasNext(); } - private boolean hitLimitAndThreshold() { // check limit http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java ---------------------------------------------------------------------- diff --git a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java index 5b4682b..4009f7d 100644 --- a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java +++ b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java @@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.collect.Lists; /** @@ -169,7 +170,7 @@ public class HybridInstance extends RootPersistentEntity implements IRealization public CapabilityResult isCapable(SQLDigest digest) { CapabilityResult result = new CapabilityResult(); result.cost = Integer.MAX_VALUE; - + for (IRealization realization : getRealizations()) { CapabilityResult child = realization.isCapable(digest); if (child.capable) { @@ -178,10 +179,10 @@ public class HybridInstance extends RootPersistentEntity implements IRealization result.influences.addAll(child.influences); } } - + if (result.cost > 0) result.cost--; // let hybrid win its children - + return result; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java ---------------------------------------------------------------------- diff --git a/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java b/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java index a203c6c..6e54899 100644 --- a/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java +++ b/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java @@ -89,7 +89,6 @@ public class StorageMockUtils { f1.setReturnType("decimal(19,4)"); functions.add(f1); - return functions; } @@ -168,7 +167,6 @@ public class StorageMockUtils { return compareFilter; } - public static TupleFilter buildAndFilter(List<TblColRef> columns) { CompareTupleFilter compareFilter1 = buildFilter1(columns.get(0)); CompareTupleFilter compareFilter2 = buildFilter2(columns.get(1)); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/test/java/org/apache/kylin/storage/cache/EhcacheTest.java ---------------------------------------------------------------------- diff --git a/core-storage/src/test/java/org/apache/kylin/storage/cache/EhcacheTest.java b/core-storage/src/test/java/org/apache/kylin/storage/cache/EhcacheTest.java index b069979..e089387 100644 --- a/core-storage/src/test/java/org/apache/kylin/storage/cache/EhcacheTest.java +++ b/core-storage/src/test/java/org/apache/kylin/storage/cache/EhcacheTest.java @@ -20,6 +20,9 @@ package org.apache.kylin.storage.cache; import java.util.Random; +import org.junit.Ignore; +import org.junit.Test; + import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; @@ -28,9 +31,6 @@ import net.sf.ehcache.config.Configuration; import net.sf.ehcache.config.PersistenceConfiguration; import net.sf.ehcache.store.MemoryStoreEvictionPolicy; -import org.junit.Ignore; -import org.junit.Test; - @Ignore("trial for dev") public class EhcacheTest { @@ -50,7 +50,7 @@ public class EhcacheTest { timeToIdleSeconds(86400).// diskExpiryThreadIntervalSeconds(0).// //maxBytesLocalHeap(1000, MemoryUnit.MEGABYTES).// - persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.NONE))); + persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.NONE))); cacheManager.addCache(testCache); @@ -61,12 +61,11 @@ public class EhcacheTest { blob[i] = (byte) random.nextInt(); } - -// List<String> manyObjects = Lists.newArrayList(); -// for (int i = 0; i < 10000; i++) { -// manyObjects.add(new String("" + i)); -// } -// testCache.put(new Element("0", manyObjects)); + // List<String> manyObjects = Lists.newArrayList(); + // for (int i = 0; i < 10000; i++) { + // manyObjects.add(new String("" + i)); + // } + // testCache.put(new Element("0", manyObjects)); testCache.put(new Element("1", blob)); System.out.println(testCache.get("1") == null); @@ -78,7 +77,7 @@ public class EhcacheTest { for (int i = 0; i < blob.length; i++) { blob[i] = (byte) random.nextInt(); } - + testCache.put(new Element("2", blob)); System.out.println(testCache.get("1") == null); System.out.println(testCache.get("2") == null); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java ---------------------------------------------------------------------- diff --git a/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java b/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java index 8c8a3e6..36d9ea6 100644 --- a/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java +++ b/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java @@ -18,7 +18,8 @@ package org.apache.kylin.storage.translate; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.HashSet;