You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2015/08/04 05:46:42 UTC
[01/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Repository: incubator-kylin
Updated Branches:
refs/heads/0.7-staging 388488be8 -> 3deec0d82
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
index 158b08f..c82e510 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
@@ -18,6 +18,10 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.regionserver.RegionScanner;
@@ -27,10 +31,6 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author yangli9
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
index 28feda7..543ae8c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
@@ -18,6 +18,12 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
@@ -28,12 +34,6 @@ import org.apache.kylin.metadata.measure.MeasureAggregator;
import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
import org.apache.kylin.storage.hbase.coprocessor.AggregationCache;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
index 0610ea5..beee93f 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
@@ -24,19 +24,17 @@ import java.util.Collection;
import java.util.Comparator;
import java.util.List;
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorConstants;
-
import org.apache.hadoop.hbase.Cell;
import org.apache.kylin.common.util.Bytes;
-
import org.apache.kylin.common.util.BytesSerializer;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.cube.kv.RowConstants;
import org.apache.kylin.cube.kv.RowValueDecoder;
+import org.apache.kylin.cube.model.HBaseColumnDesc;
import org.apache.kylin.metadata.measure.MeasureAggregator;
import org.apache.kylin.metadata.measure.MeasureCodec;
-import org.apache.kylin.cube.model.HBaseColumnDesc;
import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorConstants;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
index 84688a1..6ee68bb 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
@@ -18,8 +18,10 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.ResultScanner;
@@ -42,10 +44,8 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
/**
* @author yangli9
@@ -68,7 +68,7 @@ public class ObserverEnabler {
CoprocessorFilter filter = CoprocessorFilter.fromFilter(segment, tupleFiler);
CoprocessorProjector projector = CoprocessorProjector.makeForObserver(segment, cuboid, groupBy);
ObserverAggregators aggrs = ObserverAggregators.fromValueDecoders(rowValueDecoders);
-
+
boolean localCoprocessor = KylinConfig.getInstanceFromEnv().getQueryRunLocalCoprocessor() || BackdoorToggles.getRunLocalCoprocessor();
if (localCoprocessor) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
index 72ae5de..63ae9e3 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
@@ -20,12 +20,11 @@ package org.apache.kylin.storage.hbase.coprocessor.observer;
import java.util.List;
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
/**
* A special kind of tuple that exposes column value (dictionary ID) directly on
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
index 2769b58..9cd7f08 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
@@ -17,10 +17,11 @@
*/
package org.apache.kylin.storage.hybrid;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.collect.Lists;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedHashSet;
+import java.util.List;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.RootPersistentEntity;
@@ -34,10 +35,10 @@ import org.apache.kylin.metadata.realization.SQLDigest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedHashSet;
-import java.util.List;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.collect.Lists;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
index 6b4f7b9..d8b4b16 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
@@ -17,6 +17,10 @@
*/
package org.apache.kylin.storage.hybrid;
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
@@ -30,10 +34,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
/**
*/
public class HybridManager implements IRealizationProvider {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
index 8b503fb..2001f3d 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
@@ -17,7 +17,8 @@
*/
package org.apache.kylin.storage.hybrid;
-import com.google.common.collect.Lists;
+import java.util.List;
+
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.CompoundTupleIterator;
@@ -26,7 +27,7 @@ import org.apache.kylin.storage.IStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.StorageEngineFactory;
-import java.util.List;
+import com.google.common.collect.Lists;
/**
*/
@@ -56,5 +57,4 @@ public class HybridStorageEngine implements IStorageEngine {
return new CompoundTupleIterator(tupleIterators);
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java b/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
index 0bfbabb..44ea572 100644
--- a/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
+++ b/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
@@ -18,6 +18,10 @@
package org.apache.kylin.storage.tuple;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
import org.apache.kylin.common.util.Array;
import org.apache.kylin.common.util.DateFormat;
import org.apache.kylin.cube.CubeManager;
@@ -27,10 +31,6 @@ import org.apache.kylin.dict.lookup.LookupStringTable;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-
/**
* @author xjiang
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java b/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
index f433254..9ee6e94 100644
--- a/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
@@ -24,7 +24,6 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.MiniHBaseCluster;
-
import org.apache.kylin.common.util.AbstractKylinTestCase;
public class MiniClusterTest {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
index 47b519f..ce30bad 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
@@ -18,21 +18,25 @@
package org.apache.kylin.storage.filter;
+import static org.junit.Assert.assertEquals;
+
import java.util.ArrayList;
import org.apache.kylin.dict.Dictionary;
-import org.apache.kylin.metadata.filter.*;
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
-
-import com.google.common.collect.Lists;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.storage.filter.BitMapFilterEvaluator.BitMapProvider;
-import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
public class BitMapFilterEvaluatorTest {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
index 412bab6..1b45e9b 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
@@ -23,11 +23,16 @@ import java.util.Collection;
import java.util.List;
import java.util.Random;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.CaseTupleFilter;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
import org.apache.kylin.storage.tuple.Tuple;
import org.apache.kylin.storage.tuple.TupleInfo;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
index feaf98a..fc43c65 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
@@ -18,18 +18,17 @@
package org.apache.kylin.storage.filter;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.util.Collection;
import java.util.List;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilterSerializer;
+import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.storage.tuple.Tuple;
import org.junit.Test;
-import org.apache.kylin.metadata.model.TblColRef;
-
/**
* @author xjiang
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
index 7457b49..c697dcf 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
@@ -17,13 +17,20 @@
*/
package org.apache.kylin.storage.filter;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
@@ -33,11 +40,9 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.Iterator;
-import java.util.List;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
index 07dfc8e..240aea2 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
@@ -23,13 +23,12 @@ import java.util.List;
import org.apache.kylin.metadata.filter.LogicalTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
import org.apache.kylin.metadata.filter.TupleFilterSerializer;
-import org.junit.Test;
-
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.junit.Test;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
index 47b81d3..50e7eb4 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.storage.hbase;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.HashSet;
@@ -66,12 +66,12 @@ public class ColumnValueRangeTest {
r2.preEvaluateWithDict(dict);
assertEquals("CN", r2.getBeginValue());
assertEquals(null, r2.getEndValue());
-
+
ColumnValueRange r3 = new ColumnValueRange(col, set("Other"), FilterOperatorEnum.GTE);
r3.preEvaluateWithDict(dict);
assertEquals("CN", r3.getBeginValue());
assertEquals(null, r3.getEndValue());
-
+
ColumnValueRange r4 = new ColumnValueRange(col, set("CI"), FilterOperatorEnum.GTE);
r4.preEvaluateWithDict(dict);
assertEquals(null, r4.getBeginValue());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
index 77ef8b6..7aba97c 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.storage.hbase;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.HashSet;
@@ -26,12 +26,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.junit.Test;
-
-import com.google.common.collect.Maps;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
+import org.junit.Test;
+
+import com.google.common.collect.Maps;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
index 91bb7f1..5088f91 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
@@ -20,17 +20,11 @@ package org.apache.kylin.storage.hbase;
import java.util.List;
-import org.apache.kylin.common.util.BytesUtil;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.*;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.invertedindex.IIInstance;
@@ -42,6 +36,11 @@ import org.apache.kylin.invertedindex.index.TableRecord;
import org.apache.kylin.invertedindex.index.TableRecordInfo;
import org.apache.kylin.invertedindex.model.IIDesc;
import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
index f597c7e..d92dab6 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
@@ -18,17 +18,18 @@
package org.apache.kylin.storage.hbase.coprocessor;
-import com.google.common.collect.Lists;
-import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.KeyValue;
-import org.apache.kylin.common.util.Bytes;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertTrue;
+import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.kylin.common.util.Bytes;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
index b98b09b..09b1a84 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
@@ -18,6 +18,15 @@
package org.apache.kylin.storage.hbase.coprocessor.endpoint;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
import org.apache.hadoop.io.LongWritable;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.invertedindex.IIInstance;
@@ -30,20 +39,18 @@ import org.apache.kylin.metadata.filter.CompareTupleFilter;
import org.apache.kylin.metadata.filter.ConstantTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.measure.MeasureAggregator;
-import org.apache.kylin.metadata.model.*;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.ParameterDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
-import java.io.IOException;
-import java.util.*;
-
-import static org.junit.Assert.assertEquals;
-
/**
* Created by Hongbin Ma(Binmahone) on 11/27/14.
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
index 6ec9385..2a4b597 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
@@ -18,6 +18,10 @@
package org.apache.kylin.storage.hbase.coprocessor.endpoint;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IIManager;
@@ -25,13 +29,8 @@ import org.apache.kylin.invertedindex.index.TableRecordInfo;
import org.apache.kylin.invertedindex.index.TableRecordInfoDigest;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-
/**
* Created by Hongbin Ma(Binmahone) on 12/3/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
index 9bed0ca..4d065c7 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
@@ -18,7 +18,17 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
@@ -38,16 +48,7 @@ import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverAggregators.H
import org.junit.Before;
import org.junit.Test;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import com.google.common.collect.Lists;
/**
* @author yangli9
@@ -171,7 +172,7 @@ public class AggregateRegionObserverTest {
MockupRegionScanner innerScanner = new MockupRegionScanner(cellsInput);
- RegionScanner aggrScanner = new AggregationScanner(rowType, filter, projector, aggregators, innerScanner,ObserverBehavior.SCAN_FILTER_AGGR);
+ RegionScanner aggrScanner = new AggregationScanner(rowType, filter, projector, aggregators, innerScanner, ObserverBehavior.SCAN_FILTER_AGGR);
ArrayList<Cell> result = Lists.newArrayList();
boolean hasMore = true;
while (hasMore) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
index 9458014..94e05a3 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.util.Arrays;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
index c991006..0e66436 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
@@ -18,20 +18,19 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.util.Arrays;
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java b/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
index 110c49f..afb54dd 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
@@ -54,7 +54,6 @@ public class HybridManagerTest extends LocalFileMetadataTestCase {
}
-
public HybridManager getHybridManager() {
return HybridManager.getInstance(getTestConfig());
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java b/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
index aedec21..ec0898a 100644
--- a/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
@@ -18,43 +18,41 @@
package org.apache.kylin.storage.test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.kylin.metadata.realization.SQLDigest;
-
-import org.apache.kylin.storage.IStorageEngine;
-import org.apache.kylin.storage.StorageContext;
-import org.apache.kylin.storage.StorageEngineFactory;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.metadata.model.ColumnDesc;
-import org.apache.kylin.metadata.model.FunctionDesc;
-import org.apache.kylin.metadata.model.ParameterDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.filter.ColumnTupleFilter;
import org.apache.kylin.metadata.filter.CompareTupleFilter;
import org.apache.kylin.metadata.filter.ConstantTupleFilter;
import org.apache.kylin.metadata.filter.LogicalTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
-import org.apache.kylin.storage.hbase.ScanOutOfLimitException;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.ParameterDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITuple;
import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.StorageContext;
+import org.apache.kylin.storage.StorageEngineFactory;
+import org.apache.kylin.storage.hbase.ScanOutOfLimitException;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
public class StorageTest extends HBaseMetadataTestCase {
[13/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
KYLIN-922 Enforce same code style for both intellij and eclipse user
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/40a744be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/40a744be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/40a744be
Branch: refs/heads/0.7-staging
Commit: 40a744be9570b8b492a9126ab9bc115324098cfa
Parents: 07db225
Author: honma <ho...@ebay.com>
Authored: Mon Aug 3 16:12:27 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue Aug 4 11:45:54 2015 +0800
----------------------------------------------------------------------
.../adapter/enumerable/EnumerableJoin.java | 228 +-
.../apache/calcite/runtime/SqlFunctions.java | 2559 +++---
.../calcite/sql2rel/SqlToRelConverter.java | 8476 ++++++++----------
.../org/apache/kylin/common/KylinConfig.java | 23 +-
.../kylin/common/debug/BackdoorToggles.java | 10 +-
.../kylin/common/lock/ZookeeperJobLock.java | 4 +-
.../org/apache/kylin/common/mr/KylinMapper.java | 3 +-
.../apache/kylin/common/mr/KylinReducer.java | 2 +-
.../common/persistence/FileResourceStore.java | 11 +-
.../common/persistence/HBaseConnection.java | 3 +-
.../common/persistence/HBaseResourceStore.java | 22 +-
.../kylin/common/persistence/ResourceStore.java | 1 -
.../kylin/common/persistence/ResourceTool.java | 40 +-
.../persistence/RootPersistentEntity.java | 6 +-
.../kylin/common/restclient/Broadcaster.java | 15 +-
.../restclient/CaseInsensitiveStringCache.java | 2 +-
.../org/apache/kylin/common/util/ByteArray.java | 2 -
.../org/apache/kylin/common/util/Bytes.java | 313 +-
.../apache/kylin/common/util/BytesSplitter.java | 3 +-
.../org/apache/kylin/common/util/BytesUtil.java | 8 +-
.../kylin/common/util/CliCommandExecutor.java | 1 -
.../common/util/HBaseRegionSizeCalculator.java | 1 -
.../apache/kylin/common/util/HadoopUtil.java | 4 +-
.../apache/kylin/common/util/HiveClient.java | 5 +-
.../apache/kylin/common/util/MailService.java | 3 +-
.../java/org/apache/kylin/common/util/Pair.java | 42 +-
.../apache/kylin/common/util/PartialSorter.java | 4 +-
.../org/apache/kylin/common/util/SSHClient.java | 1 +
.../apache/kylin/common/util/ThreadUtil.java | 1 -
.../persistence/HBaseResourceStoreTest.java | 5 +-
.../persistence/LocalFileResourceStoreTest.java | 10 +-
.../common/persistence/ResourceToolTest.java | 3 +-
.../kylin/common/restclient/RestClientTest.java | 4 +-
.../kylin/common/util/BasicHadoopTest.java | 6 +-
.../org/apache/kylin/common/util/BasicTest.java | 9 +-
.../apache/kylin/common/util/BytesUtilTest.java | 10 +-
.../common/util/HBaseMetadataTestCase.java | 2 +-
.../common/util/HyperLogLogCounterTest.java | 3 +-
.../common/util/LocalFileMetadataTestCase.java | 3 +-
.../kylin/common/util/PartialSorterTest.java | 9 +-
.../kylin/common/util/RandomSamplerTest.java | 2 +-
.../apache/kylin/common/util/SSHClientTest.java | 2 +-
.../kylin/cube/CubeCapabilityChecker.java | 5 +-
.../org/apache/kylin/cube/CubeDescManager.java | 18 +-
.../org/apache/kylin/cube/CubeDescUpgrader.java | 35 +-
.../apache/kylin/cube/CubeDimensionDeriver.java | 4 +-
.../org/apache/kylin/cube/CubeInstance.java | 4 +-
.../java/org/apache/kylin/cube/CubeManager.java | 31 +-
.../java/org/apache/kylin/cube/CubeSegment.java | 15 +-
.../kylin/cube/cli/DictionaryGeneratorCLI.java | 7 +-
.../kylin/cube/common/RowKeySplitter.java | 3 +-
.../org/apache/kylin/cube/cuboid/Cuboid.java | 1 -
.../kylin/cube/cuboid/CuboidScheduler.java | 1 +
.../cube/estimation/CubeSizeEstimationCLI.java | 2 +-
.../kylin/cube/kv/AbstractRowKeyEncoder.java | 5 +-
.../apache/kylin/cube/kv/RowKeyColumnIO.java | 7 +-
.../org/apache/kylin/cube/kv/RowKeyDecoder.java | 2 +-
.../org/apache/kylin/cube/kv/RowKeyEncoder.java | 1 -
.../apache/kylin/cube/kv/RowValueDecoder.java | 3 +-
.../org/apache/kylin/cube/model/CubeDesc.java | 8 +-
.../apache/kylin/cube/model/DimensionDesc.java | 11 +-
.../kylin/cube/model/HBaseColumnDesc.java | 5 +-
.../kylin/cube/model/HBaseMappingDesc.java | 7 +-
.../apache/kylin/cube/model/HierarchyDesc.java | 3 +-
.../apache/kylin/cube/model/RowKeyColDesc.java | 3 +-
.../org/apache/kylin/cube/model/RowKeyDesc.java | 4 +-
.../kylin/cube/model/v1/CubeInstance.java | 116 +-
.../kylin/cube/model/v1/CubePartitionDesc.java | 5 +-
.../apache/kylin/cube/model/v1/CubeSegment.java | 18 +-
.../kylin/cube/model/v1/DimensionDesc.java | 7 +-
.../kylin/cube/model/v1/ProjectInstance.java | 10 +-
.../model/validation/rule/FunctionRule.java | 7 +-
.../validation/rule/MandatoryColumnRule.java | 1 -
.../model/validation/rule/RowKeyAttrRule.java | 9 +-
.../cube/AggregationGroupSizeRuleTest.java | 8 +-
.../org/apache/kylin/cube/CubeDescTest.java | 18 +-
.../apache/kylin/cube/CubeManagerCacheTest.java | 9 +-
.../org/apache/kylin/cube/CubeManagerTest.java | 3 +-
.../org/apache/kylin/cube/CubeSegmentsTest.java | 21 +-
.../kylin/cube/CubeSizeEstimationCLITest.java | 7 +-
.../kylin/cube/DictionaryManagerTest.java | 12 +-
.../kylin/cube/MandatoryColumnRuleTest.java | 9 +-
.../apache/kylin/cube/RowKeyAttrRuleTest.java | 9 +-
.../kylin/cube/common/BytesSplitterTest.java | 2 +-
.../kylin/cube/common/RowKeySplitterTest.java | 9 +-
.../kylin/cube/cuboid/CombinationTest.java | 2 +-
.../kylin/cube/cuboid/CuboidSchedulerTest.java | 11 +-
.../apache/kylin/cube/cuboid/CuboidTest.java | 8 +-
.../apache/kylin/cube/kv/RowKeyDecoderTest.java | 9 +-
.../apache/kylin/cube/kv/RowKeyEncoderTest.java | 11 +-
.../kylin/cube/kv/RowValueDecoderTest.java | 13 +-
.../kylin/cube/project/ProjectManagerTest.java | 18 +-
.../kylin/metadata/MetadataUpgradeTest.java | 33 +-
.../metadata/measure/MeasureCodecTest.java | 7 +-
.../java/org/apache/kylin/dict/Dictionary.java | 1 -
.../apache/kylin/dict/DictionaryManager.java | 2 +-
.../java/org/apache/kylin/dict/ISegment.java | 4 +-
.../kylin/dict/lookup/FileTableReader.java | 6 +-
.../org/apache/kylin/dict/lookup/HiveTable.java | 4 +-
.../kylin/dict/lookup/LookupBytesTable.java | 3 +-
.../apache/kylin/dict/lookup/LookupTable.java | 7 +-
.../apache/kylin/dict/lookup/ReadableTable.java | 9 +-
.../kylin/dict/lookup/SnapshotManager.java | 4 +-
.../apache/kylin/dict/lookup/SnapshotTable.java | 19 +-
.../kylin/dict/DateStrDictionaryTest.java | 8 +-
.../apache/kylin/dict/HiveTableReaderTest.java | 3 +-
.../org/apache/kylin/dict/LookupTableTest.java | 11 +-
.../apache/kylin/dict/NumberDictionaryTest.java | 5 +-
.../apache/kylin/dict/SnapshotManagerTest.java | 3 +-
.../org/apache/kylin/dict/TableReaderTest.java | 2 +-
.../apache/kylin/dict/TrieDictionaryTest.java | 5 +-
.../kylin/dict/lookup/LookupTableTest.java | 20 +-
.../kylin/invertedindex/IIDescManager.java | 10 +-
.../apache/kylin/invertedindex/IIInstance.java | 22 +-
.../apache/kylin/invertedindex/IIManager.java | 12 +-
.../apache/kylin/invertedindex/IISegment.java | 24 +-
.../invertedindex/index/BitMapContainer.java | 5 +-
.../index/ColumnValueContainer.java | 17 +-
.../index/CompressedValueContainer.java | 4 +-
.../invertedindex/index/RawTableRecord.java | 10 +-
.../kylin/invertedindex/index/ShardingHash.java | 8 +-
.../index/ShardingSliceBuilder.java | 50 +-
.../apache/kylin/invertedindex/index/Slice.java | 3 +-
.../kylin/invertedindex/index/SliceBuilder.java | 184 +-
.../index/TableRecordInfoDigest.java | 271 +-
.../kylin/invertedindex/model/IIDesc.java | 1 -
.../kylin/invertedindex/model/IIDimension.java | 5 +-
.../invertedindex/model/IIKeyValueCodec.java | 450 +-
.../apache/kylin/invertedindex/tools/IICLI.java | 111 +-
.../invertedindex/IIDescManagerTest.java | 12 +-
.../invertedindex/invertedindex/IIDescTest.java | 7 +-
.../invertedindex/IIInstanceTest.java | 11 +-
.../invertedindex/InvertedIndexLocalTest.java | 397 +-
.../main/java/org/apache/kylin/jdbc/Driver.java | 62 +-
.../java/org/apache/kylin/jdbc/KylinClient.java | 4 +-
.../org/apache/kylin/jdbc/KylinConnection.java | 18 +-
.../java/org/apache/kylin/jdbc/KylinMeta.java | 2 +-
.../org/apache/kylin/jdbc/KylinResultSet.java | 12 +-
.../java/org/apache/kylin/jdbc/DriverTest.java | 7 +-
.../java/org/apache/kylin/jdbc/DummyClient.java | 10 +-
.../java/org/apache/kylin/jdbc/DummyDriver.java | 2 -
.../org/apache/kylin/jdbc/DummyJdbcFactory.java | 7 +-
.../apache/kylin/job/AbstractJobBuilder.java | 4 +-
.../apache/kylin/job/CubeMetadataUpgrade.java | 242 +-
.../java/org/apache/kylin/job/JobInstance.java | 107 +-
.../org/apache/kylin/job/JoinedFlatTable.java | 2 +-
.../java/org/apache/kylin/job/cmd/ShellCmd.java | 10 +-
.../apache/kylin/job/cmd/ShellCmdOutput.java | 3 +-
.../kylin/job/common/HadoopCmdOutput.java | 8 +-
.../kylin/job/common/HadoopShellExecutable.java | 9 +-
.../apache/kylin/job/common/HqlExecutable.java | 19 +-
.../kylin/job/common/ShellExecutable.java | 8 +-
.../kylin/job/constant/ExecutableConstants.java | 8 +-
.../org/apache/kylin/job/cube/CubingJob.java | 31 +-
.../apache/kylin/job/cube/CubingJobBuilder.java | 39 +-
.../kylin/job/cube/GarbageCollectionStep.java | 17 +-
.../kylin/job/cube/MergeDictionaryStep.java | 16 +-
.../job/cube/UpdateCubeInfoAfterBuildStep.java | 4 +-
.../job/cube/UpdateCubeInfoAfterMergeStep.java | 14 +-
.../org/apache/kylin/job/dao/ExecutableDao.java | 19 +-
.../kylin/job/dao/ExecutableOutputPO.java | 3 +-
.../org/apache/kylin/job/dao/ExecutablePO.java | 3 +-
.../job/deployment/HbaseConfigPrinterCLI.java | 1 -
.../kylin/job/engine/JobEngineConfig.java | 9 +-
.../kylin/job/execution/AbstractExecutable.java | 21 +-
.../kylin/job/execution/ChainedExecutable.java | 2 +-
.../job/execution/DefaultChainedExecutable.java | 9 +-
.../kylin/job/execution/DefaultOutput.java | 4 +-
.../apache/kylin/job/execution/Executable.java | 4 +-
.../kylin/job/execution/ExecutableState.java | 10 +-
.../kylin/job/execution/ExecuteResult.java | 5 +-
.../kylin/job/hadoop/AbstractHadoopJob.java | 21 +-
.../cardinality/ColumnCardinalityMapper.java | 9 +-
.../cardinality/ColumnCardinalityReducer.java | 8 +-
.../cardinality/HiveColumnCardinalityJob.java | 5 +-
.../HiveColumnCardinalityUpdateJob.java | 1 -
.../kylin/job/hadoop/cube/BaseCuboidJob.java | 2 +-
.../kylin/job/hadoop/cube/BaseCuboidMapper.java | 18 +-
.../kylin/job/hadoop/cube/CubeHFileJob.java | 9 +-
.../kylin/job/hadoop/cube/CubeHFileMapper.java | 12 +-
.../apache/kylin/job/hadoop/cube/CuboidJob.java | 6 +-
.../kylin/job/hadoop/cube/CuboidReducer.java | 13 +-
.../cube/FactDistinctColumnsCombiner.java | 5 +-
.../job/hadoop/cube/FactDistinctColumnsJob.java | 88 +-
.../hadoop/cube/FactDistinctColumnsMapper.java | 3 +-
.../hadoop/cube/FactDistinctColumnsReducer.java | 10 +-
.../kylin/job/hadoop/cube/MergeCuboidJob.java | 3 -
.../job/hadoop/cube/MergeCuboidMapper.java | 3 +-
.../job/hadoop/cube/MetadataCleanupJob.java | 16 +-
.../kylin/job/hadoop/cube/NDCuboidMapper.java | 13 +-
.../job/hadoop/cube/NewBaseCuboidMapper.java | 13 +-
.../hadoop/cube/RangeKeyDistributionJob.java | 7 +-
.../hadoop/cube/RangeKeyDistributionMapper.java | 2 +-
.../cube/RangeKeyDistributionReducer.java | 19 +-
.../cube/RowKeyDistributionCheckerJob.java | 1 -
.../cube/RowKeyDistributionCheckerMapper.java | 7 +-
.../cube/RowKeyDistributionCheckerReducer.java | 1 -
.../job/hadoop/cube/StorageCleanupJob.java | 34 +-
.../job/hadoop/dict/CreateDictionaryJob.java | 1 -
.../kylin/job/hadoop/hbase/BulkLoadJob.java | 4 +-
.../kylin/job/hadoop/hbase/CreateHTableJob.java | 22 +-
.../hadoop/hive/CubeJoinedFlatTableDesc.java | 2 +-
.../job/hadoop/hive/IIJoinedFlatTableDesc.java | 7 +-
.../job/hadoop/invertedindex/IIBulkLoadJob.java | 12 +-
.../hadoop/invertedindex/IICreateHTableJob.java | 10 +-
.../IIDistinctColumnsCombiner.java | 3 +-
.../invertedindex/IIDistinctColumnsJob.java | 5 +-
.../invertedindex/IIDistinctColumnsMapper.java | 3 +-
.../invertedindex/IIDistinctColumnsReducer.java | 3 +-
.../hadoop/invertedindex/IIFlattenHiveJob.java | 10 +-
.../hadoop/invertedindex/InvertedIndexJob.java | 7 +-
.../invertedindex/InvertedIndexMapper.java | 6 +-
.../invertedindex/InvertedIndexPartitioner.java | 2 +-
.../invertedindex/InvertedIndexReducer.java | 2 +-
.../invertedindex/RandomKeyDistributionJob.java | 5 +-
.../RandomKeyDistributionMapper.java | 1 -
.../RandomKeyDistributionReducer.java | 2 -
.../job/impl/threadpool/DefaultContext.java | 9 +-
.../job/impl/threadpool/DefaultScheduler.java | 12 +-
.../apache/kylin/job/invertedindex/IIJob.java | 1 -
.../kylin/job/invertedindex/IIJobBuilder.java | 4 +-
.../kylin/job/manager/ExecutableManager.java | 24 +-
.../apache/kylin/job/tools/CleanHtableCLI.java | 3 +-
.../kylin/job/tools/CubeMigrationCLI.java | 28 +-
.../kylin/job/tools/DeployCoprocessorCLI.java | 14 +-
.../job/tools/GridTableHBaseBenchmark.java | 6 +-
.../kylin/job/tools/HadoopStatusChecker.java | 8 +-
.../kylin/job/tools/HadoopStatusGetter.java | 6 +-
.../kylin/job/tools/HtableAlterMetadataCLI.java | 6 +-
.../kylin/job/tools/LZOSupportnessChecker.java | 4 +-
.../apache/kylin/job/tools/RowCounterCLI.java | 12 +-
.../apache/kylin/job/BaseTestExecutable.java | 1 -
.../kylin/job/BuildCubeWithEngineTest.java | 51 +-
.../apache/kylin/job/BuildIIWithEngineTest.java | 25 +-
.../java/org/apache/kylin/job/DataGenTest.java | 9 +-
.../java/org/apache/kylin/job/DeployUtil.java | 17 +-
.../org/apache/kylin/job/ExportHBaseData.java | 5 +-
.../org/apache/kylin/job/ImportHBaseData.java | 5 +-
.../apache/kylin/job/SampleCubeSetupTest.java | 7 +-
.../kylin/job/dataGen/FactTableGenerator.java | 15 +-
.../org/apache/kylin/job/dataGen/GenConfig.java | 3 +-
.../job/hadoop/cube/BaseCuboidJobTest.java | 5 +-
.../job/hadoop/cube/BaseCuboidMapperTest.java | 14 +-
.../job/hadoop/cube/CubeHFileMapper2Test.java | 13 +-
.../job/hadoop/cube/CubeHFileMapperTest.java | 5 +-
.../kylin/job/hadoop/cube/CubeReducerTest.java | 14 +-
.../job/hadoop/cube/MergeCuboidJobTest.java | 5 +-
.../job/hadoop/cube/MergeCuboidMapperTest.java | 40 +-
.../kylin/job/hadoop/cube/MockupMapContext.java | 1 -
.../kylin/job/hadoop/cube/NDCuboidJobTest.java | 5 +-
.../job/hadoop/cube/NDCuboidMapperTest.java | 11 +-
.../cube/RandomKeyDistributionMapperTest.java | 7 +-
.../cube/RandomKeyDistributionReducerTest.java | 2 +-
.../cube/RangeKeyDistributionJobTest.java | 5 +-
.../cube/RangeKeyDistributionMapperTest.java | 3 +-
.../job/hadoop/hbase/CreateHTableTest.java | 6 +-
.../job/hadoop/hive/JoinedFlatTableTest.java | 13 +-
.../job/impl/threadpool/BaseSchedulerTest.java | 6 +-
.../impl/threadpool/DefaultSchedulerTest.java | 9 +-
.../job/manager/ExecutableManagerTest.java | 20 +-
.../job/tools/ColumnCardinalityJobTest.java | 5 +-
.../job/tools/ColumnCardinalityMapperTest.java | 6 +-
.../job/tools/ColumnCardinalityReducerTest.java | 10 +-
.../kylin/job/tools/CubeMigrationTests.java | 7 +-
.../apache/kylin/metadata/MetadataManager.java | 14 +-
.../kylin/metadata/filter/CaseTupleFilter.java | 3 +-
.../metadata/filter/ExtractTupleFilter.java | 3 +-
.../metadata/filter/LogicalTupleFilter.java | 3 +-
.../kylin/metadata/filter/TupleFilter.java | 3 +-
.../metadata/measure/BigDecimalSerializer.java | 1 -
.../metadata/measure/DoubleSerializer.java | 2 +-
.../kylin/metadata/measure/LongSerializer.java | 3 +-
.../metadata/measure/MeasureAggregators.java | 2 +-
.../kylin/metadata/measure/MeasureCodec.java | 1 -
.../measure/fixedlen/FixedPointLongCodec.java | 7 +-
.../apache/kylin/metadata/model/ColumnDesc.java | 3 +-
.../kylin/metadata/model/DataModelDesc.java | 16 +-
.../apache/kylin/metadata/model/DataType.java | 3 +-
.../kylin/metadata/model/FunctionDesc.java | 6 +-
.../apache/kylin/metadata/model/LookupDesc.java | 2 +-
.../kylin/metadata/model/PartitionDesc.java | 5 +-
.../apache/kylin/metadata/model/TableDesc.java | 18 +-
.../kylin/metadata/project/ProjectInstance.java | 22 +-
.../kylin/metadata/project/ProjectL2Cache.java | 7 +-
.../kylin/metadata/project/ProjectManager.java | 16 +-
.../kylin/metadata/project/ProjectTable.java | 3 +-
.../metadata/project/RealizationEntry.java | 15 +-
.../metadata/realization/IRealization.java | 4 +-
.../realization/IRealizationProvider.java | 1 -
.../realization/RealizationRegistry.java | 17 +-
.../metadata/realization/SQLDigestUtil.java | 13 +-
.../metadata/tool/HiveSourceTableLoader.java | 17 +-
.../metadata/tuple/CompoundTupleIterator.java | 9 +-
.../kylin/metadata/tuple/ITupleIterator.java | 2 +-
.../kylin/metadata/MetadataManagerTest.java | 3 +-
.../kylin/metadata/model/TableDescTest.java | 1 -
.../tool/HiveSourceTableLoaderTest.java | 7 +-
.../metadata/tool/SandboxMetastoreCLI.java | 5 +-
.../metadata/tuple/EmptyTupleIteratorTest.java | 3 +-
.../.settings/org.eclipse.core.resources.prefs | 6 +
monitor/.settings/org.eclipse.jdt.core.prefs | 379 +
monitor/.settings/org.eclipse.jdt.ui.prefs | 7 +
.../apache/kylin/monitor/ApiRequestParser.java | 53 +-
.../java/org/apache/kylin/monitor/Client.java | 21 +-
.../org/apache/kylin/monitor/ConfigUtils.java | 58 +-
.../org/apache/kylin/monitor/DebugClient.java | 9 +-
.../org/apache/kylin/monitor/FileUtils.java | 13 +-
.../apache/kylin/monitor/HiveJdbcClient.java | 39 +-
.../kylin/monitor/MonitorMetaManager.java | 55 +-
.../org/apache/kylin/monitor/QueryParser.java | 45 +-
.../org/apache/kylin/monitor/ParseLogTest.java | 16 +-
.../kylin/query/enumerator/CubeEnumerator.java | 12 +-
.../query/enumerator/LookupTableEnumerator.java | 4 +-
.../kylin/query/optrule/OLAPAggregateRule.java | 2 +-
.../kylin/query/optrule/OLAPFilterRule.java | 2 +-
.../kylin/query/optrule/OLAPLimitRule.java | 2 +-
.../kylin/query/relnode/OLAPAggregateRel.java | 7 +-
.../apache/kylin/query/relnode/OLAPContext.java | 6 +-
.../relnode/OLAPToEnumerableConverter.java | 2 +-
.../apache/kylin/query/routing/QueryRouter.java | 6 +-
.../apache/kylin/query/routing/RoutingRule.java | 10 +-
.../AdjustForWeeklyMatchedRealization.java | 8 +-
.../RoutingRules/RealizationPriorityRule.java | 8 +-
.../RoutingRules/RealizationSortRule.java | 9 +-
.../query/sqlfunc/HLLDistinctCountAggFunc.java | 3 +-
.../kylin/query/test/CombinationTest.java | 3 +-
.../org/apache/kylin/query/test/H2Database.java | 5 +-
.../apache/kylin/query/test/IIQueryTest.java | 1 -
.../apache/kylin/query/test/KylinQueryTest.java | 18 +-
.../apache/kylin/query/test/KylinTestBase.java | 2 +-
.../java/org/apache/kylin/rest/DebugTomcat.java | 20 +-
.../kylin/rest/controller/AccessController.java | 3 +-
.../kylin/rest/controller/AdminController.java | 5 +-
.../kylin/rest/controller/BasicController.java | 7 +-
.../kylin/rest/controller/CacheController.java | 4 +-
.../kylin/rest/controller/CubeController.java | 32 +-
.../rest/controller/CubeDescController.java | 7 +-
.../kylin/rest/controller/JobController.java | 17 +-
.../kylin/rest/controller/ModelController.java | 11 +-
.../rest/controller/PerformanceController.java | 28 +-
.../rest/controller/ProjectController.java | 2 +-
.../kylin/rest/controller/QueryController.java | 30 +-
.../kylin/rest/controller/TableController.java | 32 +-
.../kylin/rest/controller/UserController.java | 3 +-
.../kylin/rest/filter/KylinApiFilter.java | 68 +-
.../apache/kylin/rest/request/CubeRequest.java | 6 +-
.../apache/kylin/rest/request/SQLRequest.java | 3 +-
.../kylin/rest/response/HBaseResponse.java | 12 +-
.../kylin/rest/response/TableDescResponse.java | 3 +-
.../rest/security/AuthoritiesPopulator.java | 3 +-
.../security/PasswordPlaceholderConfigurer.java | 3 +-
.../kylin/rest/service/AccessService.java | 11 +-
.../apache/kylin/rest/service/AclService.java | 6 +-
.../apache/kylin/rest/service/AdminService.java | 7 +-
.../apache/kylin/rest/service/BasicService.java | 45 +-
.../apache/kylin/rest/service/CacheService.java | 9 +-
.../apache/kylin/rest/service/CubeService.java | 27 +-
.../apache/kylin/rest/service/JobService.java | 99 +-
.../kylin/rest/service/PerformService.java | 52 +-
.../kylin/rest/service/ProjectService.java | 11 +-
.../apache/kylin/rest/service/UserService.java | 8 +-
.../org/apache/kylin/rest/util/QueryUtil.java | 6 +-
.../org/apache/kylin/rest/util/Serializer.java | 3 +-
.../org/apache/kylin/jdbc/JDBCDriverTest.java | 32 +-
.../org/apache/kylin/rest/bean/BeanTest.java | 5 +-
.../broadcaster/BroadcasterReceiveServlet.java | 1 +
.../rest/controller/AccessControllerTest.java | 5 +-
.../rest/controller/AdminControllerTest.java | 5 +-
.../rest/controller/BaseControllerTest.java | 5 +-
.../rest/controller/CacheControllerTest.java | 9 +-
.../rest/controller/CubeControllerTest.java | 12 +-
.../rest/controller/JobControllerTest.java | 13 +-
.../rest/controller/ProjectControllerTest.java | 5 +-
.../rest/controller/QueryControllerTest.java | 5 +-
.../rest/controller/TableControllerTest.java | 11 +-
.../kylin/rest/service/AccessServiceTest.java | 8 +-
.../kylin/rest/service/CacheServiceTest.java | 53 +-
.../kylin/rest/service/CubeServiceTest.java | 6 +-
.../kylin/rest/service/JobServiceTest.java | 5 +-
.../kylin/rest/service/QueryServiceTest.java | 5 +-
.../kylin/rest/service/ServiceTestBase.java | 8 +-
.../kylin/storage/StorageEngineFactory.java | 2 +-
.../kylin/storage/hbase/ColumnValueRange.java | 12 +-
.../storage/hbase/CubeSegmentTupleIterator.java | 25 +-
.../kylin/storage/hbase/CubeStorageEngine.java | 49 +-
.../storage/hbase/DerivedFilterTranslator.java | 10 +-
.../storage/hbase/FuzzyValueCombination.java | 3 +-
.../kylin/storage/hbase/HBaseKeyRange.java | 11 +-
.../kylin/storage/hbase/PingHBaseCLI.java | 3 +-
.../hbase/SerializedHBaseTupleIterator.java | 10 +-
.../storage/hbase/coprocessor/AggrKey.java | 12 +-
.../hbase/coprocessor/AggregationCache.java | 5 +-
.../hbase/coprocessor/CoprocessorFilter.java | 10 +-
.../hbase/coprocessor/CoprocessorProjector.java | 10 +-
.../hbase/coprocessor/CoprocessorRowType.java | 4 +-
.../endpoint/EndpointAggregationCache.java | 6 +-
.../endpoint/EndpointTupleIterator.java | 1 -
.../endpoint/HbaseServerKVIterator.java | 12 +-
.../hbase/coprocessor/endpoint/IIEndpoint.java | 23 +-
.../endpoint/SliceBitMapProvider.java | 3 +-
.../observer/AggregateRegionObserver.java | 4 +-
.../observer/AggregationScanner.java | 8 +-
.../observer/ObserverAggregationCache.java | 12 +-
.../observer/ObserverAggregators.java | 6 +-
.../coprocessor/observer/ObserverEnabler.java | 14 +-
.../coprocessor/observer/ObserverTuple.java | 3 +-
.../kylin/storage/hybrid/HybridInstance.java | 17 +-
.../kylin/storage/hybrid/HybridManager.java | 8 +-
.../storage/hybrid/HybridStorageEngine.java | 6 +-
.../org/apache/kylin/storage/tuple/Tuple.java | 8 +-
.../apache/kylin/storage/MiniClusterTest.java | 1 -
.../filter/BitMapFilterEvaluatorTest.java | 20 +-
.../kylin/storage/filter/FilterBaseTest.java | 9 +-
.../storage/filter/FilterEvaluateTest.java | 5 +-
.../kylin/storage/filter/FilterPerfTest.java | 23 +-
.../storage/filter/FilterSerializeTest.java | 5 +-
.../storage/hbase/ColumnValueRangeTest.java | 6 +-
.../hbase/FuzzyValueCombinationTest.java | 8 +-
.../storage/hbase/InvertedIndexHBaseTest.java | 17 +-
.../hbase/coprocessor/RowProjectorTest.java | 13 +-
.../endpoint/EndpointAggregationTest.java | 21 +-
.../endpoint/TableRecordInfoTest.java | 9 +-
.../observer/AggregateRegionObserverTest.java | 25 +-
.../observer/RowAggregatorsTest.java | 2 +-
.../hbase/coprocessor/observer/RowTypeTest.java | 11 +-
.../kylin/storage/hybrid/HybridManagerTest.java | 1 -
.../apache/kylin/storage/test/StorageTest.java | 38 +-
427 files changed, 8785 insertions(+), 9399 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java b/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
index 5de9f1c..a506231 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
@@ -17,6 +17,8 @@
*/
package org.apache.calcite.adapter.enumerable;
+import java.util.Set;
+
import org.apache.calcite.linq4j.tree.BlockBuilder;
import org.apache.calcite.linq4j.tree.Expression;
import org.apache.calcite.linq4j.tree.Expressions;
@@ -38,8 +40,6 @@ import org.apache.calcite.util.Util;
import com.google.common.collect.ImmutableList;
-import java.util.Set;
-
/*
* OVERRIDE POINT:
* - constructor was private instead of protected
@@ -48,160 +48,98 @@ import java.util.Set;
/** Implementation of {@link org.apache.calcite.rel.core.Join} in
* {@link org.apache.calcite.adapter.enumerable.EnumerableConvention enumerable calling convention}. */
public class EnumerableJoin extends EquiJoin implements EnumerableRel {
- /** Creates an EnumerableJoin.
- *
- * <p>Use {@link #create} unless you know what you're doing. */
- public EnumerableJoin(
- RelOptCluster cluster,
- RelTraitSet traits,
- RelNode left,
- RelNode right,
- RexNode condition,
- ImmutableIntList leftKeys,
- ImmutableIntList rightKeys,
- JoinRelType joinType,
- Set<String> variablesStopped)
- throws InvalidRelException {
- super(
- cluster,
- traits,
- left,
- right,
- condition,
- leftKeys,
- rightKeys,
- joinType,
- variablesStopped);
- }
+ /** Creates an EnumerableJoin.
+ *
+ * <p>Use {@link #create} unless you know what you're doing. */
+ public EnumerableJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys, JoinRelType joinType, Set<String> variablesStopped) throws InvalidRelException {
+ super(cluster, traits, left, right, condition, leftKeys, rightKeys, joinType, variablesStopped);
+ }
- /** Creates an EnumerableJoin. */
- public static EnumerableJoin create(
- RelNode left,
- RelNode right,
- RexNode condition,
- ImmutableIntList leftKeys,
- ImmutableIntList rightKeys,
- JoinRelType joinType,
- Set<String> variablesStopped)
- throws InvalidRelException {
- final RelOptCluster cluster = left.getCluster();
- final RelTraitSet traitSet =
- cluster.traitSetOf(EnumerableConvention.INSTANCE);
- return new EnumerableJoin(cluster, traitSet, left, right, condition,
- leftKeys, rightKeys, joinType, variablesStopped);
- }
+ /** Creates an EnumerableJoin. */
+ public static EnumerableJoin create(RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys, JoinRelType joinType, Set<String> variablesStopped) throws InvalidRelException {
+ final RelOptCluster cluster = left.getCluster();
+ final RelTraitSet traitSet = cluster.traitSetOf(EnumerableConvention.INSTANCE);
+ return new EnumerableJoin(cluster, traitSet, left, right, condition, leftKeys, rightKeys, joinType, variablesStopped);
+ }
- @Override public EnumerableJoin copy(RelTraitSet traitSet, RexNode condition,
- RelNode left, RelNode right, JoinRelType joinType,
- boolean semiJoinDone) {
- final JoinInfo joinInfo = JoinInfo.of(left, right, condition);
- assert joinInfo.isEqui();
- try {
- return new EnumerableJoin(getCluster(), traitSet, left, right,
- condition, joinInfo.leftKeys, joinInfo.rightKeys, joinType,
- variablesStopped);
- } catch (InvalidRelException e) {
- // Semantic error not possible. Must be a bug. Convert to
- // internal error.
- throw new AssertionError(e);
+ @Override
+ public EnumerableJoin copy(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
+ final JoinInfo joinInfo = JoinInfo.of(left, right, condition);
+ assert joinInfo.isEqui();
+ try {
+ return new EnumerableJoin(getCluster(), traitSet, left, right, condition, joinInfo.leftKeys, joinInfo.rightKeys, joinType, variablesStopped);
+ } catch (InvalidRelException e) {
+ // Semantic error not possible. Must be a bug. Convert to
+ // internal error.
+ throw new AssertionError(e);
+ }
}
- }
- @Override public RelOptCost computeSelfCost(RelOptPlanner planner) {
- double rowCount = RelMetadataQuery.getRowCount(this);
+ @Override
+ public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ double rowCount = RelMetadataQuery.getRowCount(this);
- // Joins can be flipped, and for many algorithms, both versions are viable
- // and have the same cost. To make the results stable between versions of
- // the planner, make one of the versions slightly more expensive.
- switch (joinType) {
- case RIGHT:
- rowCount = addEpsilon(rowCount);
- break;
- default:
- if (RelNodes.COMPARATOR.compare(left, right) > 0) {
- rowCount = addEpsilon(rowCount);
- }
- }
+ // Joins can be flipped, and for many algorithms, both versions are viable
+ // and have the same cost. To make the results stable between versions of
+ // the planner, make one of the versions slightly more expensive.
+ switch (joinType) {
+ case RIGHT:
+ rowCount = addEpsilon(rowCount);
+ break;
+ default:
+ if (RelNodes.COMPARATOR.compare(left, right) > 0) {
+ rowCount = addEpsilon(rowCount);
+ }
+ }
- // Cheaper if the smaller number of rows is coming from the LHS.
- // Model this by adding L log L to the cost.
- final double rightRowCount = right.getRows();
- final double leftRowCount = left.getRows();
- if (Double.isInfinite(leftRowCount)) {
- rowCount = leftRowCount;
- } else {
- rowCount += Util.nLogN(leftRowCount);
- }
- if (Double.isInfinite(rightRowCount)) {
- rowCount = rightRowCount;
- } else {
- rowCount += rightRowCount;
+ // Cheaper if the smaller number of rows is coming from the LHS.
+ // Model this by adding L log L to the cost.
+ final double rightRowCount = right.getRows();
+ final double leftRowCount = left.getRows();
+ if (Double.isInfinite(leftRowCount)) {
+ rowCount = leftRowCount;
+ } else {
+ rowCount += Util.nLogN(leftRowCount);
+ }
+ if (Double.isInfinite(rightRowCount)) {
+ rowCount = rightRowCount;
+ } else {
+ rowCount += rightRowCount;
+ }
+ return planner.getCostFactory().makeCost(rowCount, 0, 0);
}
- return planner.getCostFactory().makeCost(rowCount, 0, 0);
- }
- private double addEpsilon(double d) {
- assert d >= 0d;
- final double d0 = d;
- if (d < 10) {
- // For small d, adding 1 would change the value significantly.
- d *= 1.001d;
- if (d != d0) {
+ private double addEpsilon(double d) {
+ assert d >= 0d;
+ final double d0 = d;
+ if (d < 10) {
+ // For small d, adding 1 would change the value significantly.
+ d *= 1.001d;
+ if (d != d0) {
+ return d;
+ }
+ }
+ // For medium d, add 1. Keeps integral values integral.
+ ++d;
+ if (d != d0) {
+ return d;
+ }
+ // For large d, adding 1 might not change the value. Add .1%.
+ // If d is NaN, this still will probably not change the value. That's OK.
+ d *= 1.001d;
return d;
- }
}
- // For medium d, add 1. Keeps integral values integral.
- ++d;
- if (d != d0) {
- return d;
- }
- // For large d, adding 1 might not change the value. Add .1%.
- // If d is NaN, this still will probably not change the value. That's OK.
- d *= 1.001d;
- return d;
- }
- public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
- BlockBuilder builder = new BlockBuilder();
- final Result leftResult =
- implementor.visitChild(this, 0, (EnumerableRel) left, pref);
- Expression leftExpression =
- builder.append(
- "left", leftResult.block);
- final Result rightResult =
- implementor.visitChild(this, 1, (EnumerableRel) right, pref);
- Expression rightExpression =
- builder.append(
- "right", rightResult.block);
- final PhysType physType =
- PhysTypeImpl.of(
- implementor.getTypeFactory(), getRowType(), pref.preferArray());
- final PhysType keyPhysType =
- leftResult.physType.project(
- leftKeys, JavaRowFormat.LIST);
- return implementor.result(
- physType,
- builder.append(
- Expressions.call(
- leftExpression,
- BuiltInMethod.JOIN.method,
- Expressions.list(
- rightExpression,
- leftResult.physType.generateAccessor(leftKeys),
- rightResult.physType.generateAccessor(rightKeys),
- EnumUtils.joinSelector(joinType,
- physType,
- ImmutableList.of(
- leftResult.physType, rightResult.physType)))
- .append(
- Util.first(keyPhysType.comparer(),
- Expressions.constant(null)))
- .append(
- Expressions.constant(joinType.generatesNullsOnLeft()))
- .append(
- Expressions.constant(
- joinType.generatesNullsOnRight())))).toBlock());
- }
+ public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
+ BlockBuilder builder = new BlockBuilder();
+ final Result leftResult = implementor.visitChild(this, 0, (EnumerableRel) left, pref);
+ Expression leftExpression = builder.append("left", leftResult.block);
+ final Result rightResult = implementor.visitChild(this, 1, (EnumerableRel) right, pref);
+ Expression rightExpression = builder.append("right", rightResult.block);
+ final PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), pref.preferArray());
+ final PhysType keyPhysType = leftResult.physType.project(leftKeys, JavaRowFormat.LIST);
+ return implementor.result(physType, builder.append(Expressions.call(leftExpression, BuiltInMethod.JOIN.method, Expressions.list(rightExpression, leftResult.physType.generateAccessor(leftKeys), rightResult.physType.generateAccessor(rightKeys), EnumUtils.joinSelector(joinType, physType, ImmutableList.of(leftResult.physType, rightResult.physType))).append(Util.first(keyPhysType.comparer(), Expressions.constant(null))).append(Expressions.constant(joinType.generatesNullsOnLeft())).append(Expressions.constant(joinType.generatesNullsOnRight())))).toBlock());
+ }
}
[05/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
index d69e74d..5fceab3 100644
--- a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
+++ b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
@@ -26,24 +26,17 @@ import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
-import org.apache.kylin.common.lock.JobLock;
-import org.apache.kylin.job.execution.AbstractExecutable;
-import org.apache.commons.lang.StringUtils;
-import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.framework.imps.CuratorFrameworkState;
import org.apache.curator.framework.recipes.locks.InterProcessMutex;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.curator.framework.state.ConnectionStateListener;
-import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HConstants;
+import org.apache.kylin.common.lock.JobLock;
import org.apache.kylin.job.Scheduler;
import org.apache.kylin.job.constant.ExecutableConstants;
import org.apache.kylin.job.engine.JobEngineConfig;
import org.apache.kylin.job.exception.ExecuteException;
import org.apache.kylin.job.exception.SchedulerException;
+import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.Executable;
import org.apache.kylin.job.execution.ExecutableState;
import org.apache.kylin.job.execution.Output;
@@ -52,7 +45,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Maps;
-import org.apache.kylin.common.util.HadoopUtil;
/**
* Created by qianzhou on 12/15/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
index 7382bbf..906dc22 100644
--- a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
+++ b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
@@ -32,7 +32,6 @@ public class IIJob extends DefaultChainedExecutable {
private static final String II_INSTANCE_NAME = "iiName";
private static final String SEGMENT_ID = "segmentId";
-
void setIIName(String name) {
setParam(II_INSTANCE_NAME, name);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
index 83384f9..5c6efae 100644
--- a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
@@ -23,8 +23,6 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
-import com.google.common.base.Preconditions;
-
import org.apache.kylin.invertedindex.IISegment;
import org.apache.kylin.job.AbstractJobBuilder;
import org.apache.kylin.job.common.HadoopShellExecutable;
@@ -41,6 +39,8 @@ import org.apache.kylin.job.hadoop.invertedindex.IIDistinctColumnsJob;
import org.apache.kylin.job.hadoop.invertedindex.InvertedIndexJob;
import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
+import com.google.common.base.Preconditions;
+
/**
* Created by shaoshi on 1/15/15.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java b/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
index 85f4e0a..ea46d56 100644
--- a/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
+++ b/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
@@ -18,9 +18,12 @@
package org.apache.kylin.job.manager;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.lang.reflect.Constructor;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.ClassUtil;
import org.apache.kylin.job.dao.ExecutableDao;
@@ -28,15 +31,18 @@ import org.apache.kylin.job.dao.ExecutableOutputPO;
import org.apache.kylin.job.dao.ExecutablePO;
import org.apache.kylin.job.exception.IllegalStateTranferException;
import org.apache.kylin.job.exception.PersistentException;
-import org.apache.kylin.job.execution.*;
+import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ChainedExecutable;
+import org.apache.kylin.job.execution.DefaultChainedExecutable;
+import org.apache.kylin.job.execution.DefaultOutput;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.execution.Output;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java b/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
index 65e645d..667ef92 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
@@ -26,11 +26,10 @@ import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-
/**
* Created by honma on 11/11/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java b/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
index b71725d..d9bf6c0 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
@@ -18,6 +18,19 @@
package org.apache.kylin.job.tools;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -35,27 +48,12 @@ import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.apache.kylin.metadata.realization.RealizationStatusEnum;
import org.apache.kylin.metadata.realization.RealizationType;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
/**
* Created by honma on 9/3/14.
* <p/>
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java b/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
index ae6cd81..e488f43 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
@@ -28,10 +28,6 @@ import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.IISegment;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
@@ -45,14 +41,18 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java b/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
index 4e84bf3..122be15 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
@@ -36,9 +36,9 @@ import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
+import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.common.persistence.HBaseConnection;
import com.google.common.collect.Lists;
@@ -100,7 +100,7 @@ public class GridTableHBaseBenchmark {
int nLogicCols = colScans.size();
int nLogicRows = colScans.get(0).getSecond() - colScans.get(0).getFirst();
-
+
Scan[] scans = new Scan[nLogicCols];
ResultScanner[] scanners = new ResultScanner[nLogicCols];
for (int i = 0; i < nLogicCols; i++) {
@@ -115,7 +115,7 @@ public class GridTableHBaseBenchmark {
}
dot(i, nLogicRows);
}
-
+
stats.markEnd();
} finally {
IOUtils.closeQuietly(table);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
index 31cff50..ea7822c 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
@@ -18,16 +18,16 @@
package org.apache.kylin.job.tools;
-import org.apache.kylin.job.constant.JobStepStatusEnum;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState;
+import org.apache.kylin.job.constant.JobStepStatusEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
index b9ceee0..a56e652 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
@@ -18,6 +18,8 @@
package org.apache.kylin.job.tools;
+import java.io.IOException;
+
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
@@ -32,8 +34,6 @@ import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-
/**
* Created by qianzhou on 1/20/15.
*/
@@ -102,8 +102,6 @@ public class HadoopStatusGetter {
return response;
}
-
-
private static Protocol EASY_HTTPS = null;
private static void registerEasyHttps() {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java b/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
index 80b9fa7..6e7834a 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
@@ -18,7 +18,8 @@
package org.apache.kylin.job.tools;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import java.io.IOException;
+
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
@@ -28,11 +29,10 @@ import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-
/**
* Created by honma on 11/11/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java b/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
index 585ab17..a082b0a 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
@@ -18,12 +18,12 @@
package org.apache.kylin.job.tools;
+import java.io.File;
+
import org.apache.hadoop.hbase.util.CompressionTest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-
/**
* Created by honma on 10/21/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java b/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
index c586d4f..3553eb3 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
@@ -17,17 +17,21 @@
*/
package org.apache.kylin.job.tools;
+import java.io.IOException;
+import java.util.Iterator;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.client.*;
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.Scan;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.BytesUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.Iterator;
-
/**
*/
public class RowCounterCLI {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java b/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
index a83b87c..1131d35 100644
--- a/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
+++ b/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
@@ -25,7 +25,6 @@ import org.apache.kylin.job.execution.AbstractExecutable;
*/
public abstract class BaseTestExecutable extends AbstractExecutable {
-
public BaseTestExecutable() {
super();
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java b/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
index cf3138b..b7cf7f5 100644
--- a/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
+++ b/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
@@ -18,7 +18,19 @@
package org.apache.kylin.job;
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.TimeZone;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.kylin.common.KylinConfig;
@@ -41,14 +53,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.lang.reflect.Method;
-import java.text.SimpleDateFormat;
-import java.util.List;
-import java.util.TimeZone;
-import java.util.concurrent.*;
-
-import static org.junit.Assert.assertEquals;
+import com.google.common.collect.Lists;
public class BuildCubeWithEngineTest {
@@ -93,7 +98,6 @@ public class BuildCubeWithEngineTest {
DeployUtil.deployMetadata();
DeployUtil.overrideJobJarLocations();
-
final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
jobService = ExecutableManager.getInstance(kylinConfig);
scheduler = DefaultScheduler.getInstance();
@@ -104,7 +108,7 @@ public class BuildCubeWithEngineTest {
cubeManager = CubeManager.getInstance(kylinConfig);
jobEngineConfig = new JobEngineConfig(kylinConfig);
for (String jobId : jobService.getAllJobIds()) {
- if(jobService.getJob(jobId) instanceof CubingJob){
+ if (jobService.getJob(jobId) instanceof CubingJob) {
jobService.deleteJob(jobId);
}
}
@@ -124,19 +128,13 @@ public class BuildCubeWithEngineTest {
private void testInner() throws Exception {
DeployUtil.prepareTestData("inner", "test_kylin_cube_with_slr_empty");
- String[] testCase = new String[]{
- "testInnerJoinCube",
- "testInnerJoinCube2",
- };
+ String[] testCase = new String[] { "testInnerJoinCube", "testInnerJoinCube2", };
runTestAndAssertSucceed(testCase);
}
private void testLeft() throws Exception {
DeployUtil.prepareTestData("left", "test_kylin_cube_with_slr_left_join_empty");
- String[] testCase = new String[]{
- "testLeftJoinCube",
- "testLeftJoinCube2",
- };
+ String[] testCase = new String[] { "testLeftJoinCube", "testLeftJoinCube2", };
runTestAndAssertSucceed(testCase);
}
@@ -189,7 +187,8 @@ public class BuildCubeWithEngineTest {
}
}
- @SuppressWarnings("unused") // called by reflection
+ @SuppressWarnings("unused")
+ // called by reflection
private List<String> testInnerJoinCube2() throws Exception {
clearSegment("test_kylin_cube_with_slr_empty");
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
@@ -207,11 +206,11 @@ public class BuildCubeWithEngineTest {
return result;
}
- @SuppressWarnings("unused") // called by reflection
+ @SuppressWarnings("unused")
+ // called by reflection
private List<String> testInnerJoinCube() throws Exception {
clearSegment("test_kylin_cube_without_slr_empty");
-
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
f.setTimeZone(TimeZone.getTimeZone("GMT"));
@@ -219,7 +218,6 @@ public class BuildCubeWithEngineTest {
long date1 = 0;
long date2 = f.parse("2022-01-01").getTime();
-
// this cube doesn't support incremental build, always do full build
List<String> result = Lists.newArrayList();
@@ -227,7 +225,8 @@ public class BuildCubeWithEngineTest {
return result;
}
- @SuppressWarnings("unused") // called by reflection
+ @SuppressWarnings("unused")
+ // called by reflection
private List<String> testLeftJoinCube2() throws Exception {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
f.setTimeZone(TimeZone.getTimeZone("GMT"));
@@ -249,7 +248,8 @@ public class BuildCubeWithEngineTest {
}
- @SuppressWarnings("unused") // called by reflection
+ @SuppressWarnings("unused")
+ // called by reflection
private List<String> testLeftJoinCube() throws Exception {
String cubeName = "test_kylin_cube_with_slr_left_join_empty";
clearSegment(cubeName);
@@ -272,7 +272,6 @@ public class BuildCubeWithEngineTest {
cubeManager.updateCube(cube);
}
-
private String buildSegment(String cubeName, long startDate, long endDate) throws Exception {
CubeSegment segment = cubeManager.appendSegments(cubeManager.getCube(cubeName), endDate);
CubingJobBuilder cubingJobBuilder = new CubingJobBuilder(jobEngineConfig);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java b/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
index b0bf818..6570ad3 100644
--- a/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
+++ b/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
@@ -35,16 +35,8 @@ import java.util.concurrent.Future;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.util.ToolRunner;
-import org.apache.kylin.common.lock.ZookeeperJobLock;
-import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.lock.ZookeeperJobLock;
import org.apache.kylin.common.util.AbstractKylinTestCase;
import org.apache.kylin.common.util.ClassUtil;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
@@ -52,13 +44,20 @@ import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.invertedindex.IISegment;
import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.execution.ExecutableState;
import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
import org.apache.kylin.job.invertedindex.IIJob;
import org.apache.kylin.job.invertedindex.IIJobBuilder;
import org.apache.kylin.job.manager.ExecutableManager;
import org.apache.kylin.metadata.realization.RealizationStatusEnum;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
/**
*
@@ -116,7 +115,7 @@ public class BuildIIWithEngineTest {
iiManager = IIManager.getInstance(kylinConfig);
jobEngineConfig = new JobEngineConfig(kylinConfig);
for (String jobId : jobService.getAllJobIds()) {
- if(jobService.getJob(jobId) instanceof IIJob){
+ if (jobService.getJob(jobId) instanceof IIJob) {
jobService.deleteJob(jobId);
}
}
@@ -135,7 +134,7 @@ public class BuildIIWithEngineTest {
ii.setStatus(RealizationStatusEnum.READY);
iiManager.updateII(ii);
}
- backup();
+ backup();
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/DataGenTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/DataGenTest.java b/job/src/test/java/org/apache/kylin/job/DataGenTest.java
index 89e964e..264e9e6 100644
--- a/job/src/test/java/org/apache/kylin/job/DataGenTest.java
+++ b/job/src/test/java/org/apache/kylin/job/DataGenTest.java
@@ -18,16 +18,15 @@
package org.apache.kylin.job;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.job.dataGen.FactTableGenerator;
+import org.apache.kylin.metadata.MetadataManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-
-import static org.junit.Assert.*;
-
/**
* Created by honma on 6/19/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/DeployUtil.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/DeployUtil.java b/job/src/test/java/org/apache/kylin/job/DeployUtil.java
index 329eef1..133e2c1 100644
--- a/job/src/test/java/org/apache/kylin/job/DeployUtil.java
+++ b/job/src/test/java/org/apache/kylin/job/DeployUtil.java
@@ -26,27 +26,26 @@ import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.job.dataGen.FactTableGenerator;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.tools.ant.filters.StringInputStream;
-import org.codehaus.plexus.util.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.ResourceTool;
import org.apache.kylin.common.util.AbstractKylinTestCase;
import org.apache.kylin.common.util.CliCommandExecutor;
import org.apache.kylin.common.util.HiveClient;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.job.dataGen.FactTableGenerator;
import org.apache.kylin.job.hadoop.hive.SqlHiveDataTypeMapping;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.tools.ant.filters.StringInputStream;
+import org.codehaus.plexus.util.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class DeployUtil {
@SuppressWarnings("unused")
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java b/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
index 919adeb..c4d52ce 100644
--- a/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
+++ b/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
@@ -25,14 +25,13 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.kylin.common.util.HBaseMiniclusterHelper;
-import org.codehaus.plexus.util.FileUtils;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.common.util.AbstractKylinTestCase;
import org.apache.kylin.common.util.CliCommandExecutor;
+import org.apache.kylin.common.util.HBaseMiniclusterHelper;
import org.apache.kylin.common.util.SSHClient;
+import org.codehaus.plexus.util.FileUtils;
public class ExportHBaseData {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java b/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
index 0f77a20..100ef54 100644
--- a/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
+++ b/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
@@ -27,7 +27,6 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HConnection;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.common.persistence.HBaseResourceStore;
@@ -96,11 +95,11 @@ public class ImportHBaseData {
List<String> tablelocations = getTablesBackupLocations(importFolder);
for (String tableLocation : tablelocations) {
String table = tableLocation.substring(tableLocation.lastIndexOf("/") + 1);
-
+
if (!(table.equalsIgnoreCase(tableNameBase) || table.startsWith(HBaseMiniclusterHelper.SHARED_STORAGE_PREFIX))) {
continue;
}
-
+
if (table.startsWith(HBaseMiniclusterHelper.SHARED_STORAGE_PREFIX)) {
// create the cube table; otherwise the import will fail.
HBaseConnection.createHTableIfNeeded(KylinConfig.getInstanceFromEnv().getStorageUrl(), table, "F1", "F2");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java b/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
index c643863..aeb327f 100644
--- a/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
+++ b/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
@@ -22,16 +22,15 @@ import java.io.File;
import java.io.IOException;
import org.apache.commons.lang3.StringUtils;
-import org.codehaus.plexus.util.FileUtils;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.ClassUtil;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.job.engine.JobEngineConfig;
+import org.codehaus.plexus.util.FileUtils;
+import org.junit.Before;
+import org.junit.Test;
/**
* Created by honma on 9/24/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java b/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
index e3ca33b..5550f0f 100644
--- a/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
+++ b/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
@@ -23,7 +23,18 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.TreeMap;
+import java.util.TreeSet;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -32,11 +43,11 @@ import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.DimensionDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
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.JoinDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.metadata.model.TblColRef;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java b/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
index b51ddf7..4468787 100644
--- a/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
+++ b/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
@@ -23,11 +23,12 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
+import org.apache.kylin.common.util.JsonUtil;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
-import org.apache.kylin.common.util.JsonUtil;
/**
* Created by honma on 5/29/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
index a1d3569..771849f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
@@ -18,19 +18,18 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
index 5110041..dde0afa 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
@@ -18,28 +18,28 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.math.BigDecimal;
import java.util.List;
import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.apache.hadoop.mrunit.types.Pair;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.kv.RowKeyDecoder;
+import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.metadata.model.MeasureDesc;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
index 5262936..1c902b7 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.nio.ByteBuffer;
@@ -27,18 +27,17 @@ import org.apache.commons.io.FileUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper.Context;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.measure.MeasureCodec;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
index 7b86f1b..eff46a7 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.List;
@@ -28,12 +28,11 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.job.constant.BatchConstants;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.job.constant.BatchConstants;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
index 75e49da..96b4a5f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.math.BigDecimal;
@@ -31,16 +32,15 @@ import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.ReduceDriver;
import org.apache.hadoop.mrunit.types.Pair;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.metadata.measure.MeasureCodec;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
index aae54b4..182310b 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
@@ -26,12 +26,11 @@ import org.apache.commons.io.FileUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* @author ysong1
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
index d903008..9786665 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
@@ -161,26 +161,26 @@ public class MergeCuboidMapperTest extends LocalFileMetadataTestCase {
final Dictionary<?> dictionary = cubeManager.getDictionary(newSeg, lfn);
assertTrue(dictionary == null);
-// ((TrieDictionary) dictionary).dump(System.out);
+ // ((TrieDictionary) dictionary).dump(System.out);
// hack for distributed cache
-// File metaDir = new File("../job/meta");
-// FileUtils.copyDirectory(new File(getTestConfig().getMetadataUrl()), metaDir);
-//
-// mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_NAME, cubeName);
-// mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_SEGMENT_NAME, segmentName);
-// // mapDriver.getConfiguration().set(KylinConfig.KYLIN_METADATA_URL,
-// // "../job/meta");
-//
-// byte[] key = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 1 };
-// byte[] value = new byte[] { 1, 2, 3 };
-// byte[] newkey = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 2 };
-// byte[] newvalue = new byte[] { 1, 2, 3 };
-//
-// mapDriver.withInput(new Text(key), new Text(value));
-// mapDriver.withOutput(new Text(newkey), new Text(newvalue));
-// mapDriver.setMapInputPath(new Path("/apps/hdmi-prod/b_kylin/prod/kylin-f24668f6-dcff-4cb6-a89b-77f1119df8fa/vac_sw_cube_v4/cuboid/15d_cuboid"));
-//
-// mapDriver.runTest();
+ // File metaDir = new File("../job/meta");
+ // FileUtils.copyDirectory(new File(getTestConfig().getMetadataUrl()), metaDir);
+ //
+ // mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_NAME, cubeName);
+ // mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_SEGMENT_NAME, segmentName);
+ // // mapDriver.getConfiguration().set(KylinConfig.KYLIN_METADATA_URL,
+ // // "../job/meta");
+ //
+ // byte[] key = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 1 };
+ // byte[] value = new byte[] { 1, 2, 3 };
+ // byte[] newkey = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 2 };
+ // byte[] newvalue = new byte[] { 1, 2, 3 };
+ //
+ // mapDriver.withInput(new Text(key), new Text(value));
+ // mapDriver.withOutput(new Text(newkey), new Text(newvalue));
+ // mapDriver.setMapInputPath(new Path("/apps/hdmi-prod/b_kylin/prod/kylin-f24668f6-dcff-4cb6-a89b-77f1119df8fa/vac_sw_cube_v4/cuboid/15d_cuboid"));
+ //
+ // mapDriver.runTest();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
index debcf3e..d6f0849 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
@@ -40,7 +40,6 @@ import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.TaskAttemptID;
import org.apache.hadoop.mapreduce.lib.map.WrappedMapper;
import org.apache.hadoop.security.Credentials;
-
import org.apache.kylin.job.constant.BatchConstants;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
index c8a3d51..e77a820 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
@@ -18,19 +18,18 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
index 4e362b3..c4920db 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
@@ -18,24 +18,25 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.MapReduceDriver;
import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.job.constant.BatchConstants;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.job.constant.BatchConstants;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
index 4aae185..dcfb1ab 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.ArrayList;
@@ -28,11 +28,10 @@ import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.apache.hadoop.mrunit.types.Pair;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.invertedindex.RandomKeyDistributionMapper;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author ysong1
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
index 8e85a27..c8b5c6f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.ArrayList;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
index b3bcc30..271000e 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
@@ -18,19 +18,18 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* @author ysong1
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
index 550fd6b..ba44487 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.job.hadoop.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
index 5f43c2a..0f8442a 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
@@ -18,16 +18,16 @@
package org.apache.kylin.job.hadoop.hbase;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
index cc14825..ad50e4f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
@@ -18,10 +18,15 @@
package org.apache.kylin.job.hadoop.hive;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.job.JoinedFlatTable;
import org.apache.kylin.job.engine.JobEngineConfig;
import org.junit.After;
@@ -29,12 +34,6 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.CubeSegment;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java b/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
index 29ef7ad..ed33558 100644
--- a/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
@@ -18,6 +18,9 @@
package org.apache.kylin.job.impl.threadpool;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.lock.ZookeeperJobLock;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
@@ -29,9 +32,6 @@ import org.apache.kylin.job.manager.ExecutableManager;
import org.junit.After;
import org.junit.Before;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
/**
* Created by qianzhou on 12/26/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java b/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
index a0ec671..da99bb3 100644
--- a/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
@@ -18,17 +18,16 @@
package org.apache.kylin.job.impl.threadpool;
-import static org.junit.Assert.*;
-
-import org.apache.kylin.job.SelfStopExecutable;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
import org.apache.kylin.job.BaseTestExecutable;
import org.apache.kylin.job.ErrorTestExecutable;
import org.apache.kylin.job.FailedTestExecutable;
+import org.apache.kylin.job.SelfStopExecutable;
import org.apache.kylin.job.SucceedTestExecutable;
import org.apache.kylin.job.execution.DefaultChainedExecutable;
import org.apache.kylin.job.execution.ExecutableState;
+import org.junit.Test;
/**
* Created by qianzhou on 12/19/14.
@@ -59,6 +58,7 @@ public class DefaultSchedulerTest extends BaseSchedulerTest {
assertEquals(ExecutableState.SUCCEED, jobService.getOutput(task1.getId()).getState());
assertEquals(ExecutableState.SUCCEED, jobService.getOutput(task2.getId()).getState());
}
+
@Test
public void testSucceedAndFailed() throws Exception {
DefaultChainedExecutable job = new DefaultChainedExecutable();
@@ -72,6 +72,7 @@ public class DefaultSchedulerTest extends BaseSchedulerTest {
assertEquals(ExecutableState.SUCCEED, jobService.getOutput(task1.getId()).getState());
assertEquals(ExecutableState.ERROR, jobService.getOutput(task2.getId()).getState());
}
+
@Test
public void testSucceedAndError() throws Exception {
DefaultChainedExecutable job = new DefaultChainedExecutable();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java b/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
index 11af88e..c1e39eb 100644
--- a/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
@@ -18,24 +18,26 @@
package org.apache.kylin.job.manager;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.job.BaseTestExecutable;
import org.apache.kylin.job.SucceedTestExecutable;
import org.apache.kylin.job.exception.IllegalStateTranferException;
+import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.ChainedExecutable;
+import org.apache.kylin.job.execution.DefaultChainedExecutable;
import org.apache.kylin.job.execution.Executable;
import org.apache.kylin.job.execution.ExecutableState;
-import org.apache.kylin.job.execution.AbstractExecutable;
-import org.apache.kylin.job.execution.DefaultChainedExecutable;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import java.util.List;
-
-import static org.junit.Assert.*;
-
/**
* Created by qianzhou on 12/16/14.
*/
@@ -48,7 +50,7 @@ public class ExecutableManagerTest extends LocalFileMetadataTestCase {
createTestMetadata();
service = ExecutableManager.getInstance(KylinConfig.getInstanceFromEnv());
- for (String jobId: service.getAllJobIds()) {
+ for (String jobId : service.getAllJobIds()) {
System.out.println("deleting " + jobId);
service.deleteJob(jobId);
}
@@ -106,15 +108,13 @@ public class ExecutableManagerTest extends LocalFileMetadataTestCase {
}
@Test(expected = IllegalStateTranferException.class)
- public void testInvalidStateTransfer(){
+ public void testInvalidStateTransfer() {
SucceedTestExecutable job = new SucceedTestExecutable();
service.addJob(job);
service.updateJobOutput(job.getId(), ExecutableState.RUNNING, null, null);
service.updateJobOutput(job.getId(), ExecutableState.STOPPED, null, null);
}
-
-
private static void assertJobEqual(Executable one, Executable another) {
assertEquals(one.getClass(), another.getClass());
assertEquals(one.getId(), another.getId());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
index c9ef366..bb971d2 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.job.tools;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
@@ -26,12 +26,11 @@ import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.hadoop.cardinality.HiveColumnCardinalityJob;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.job.hadoop.cardinality.HiveColumnCardinalityJob;
-
/**
* @author ysong1
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
index e13289a..2385a53 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.job.tools;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
import java.io.File;
@@ -33,13 +34,12 @@ import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
import org.apache.kylin.job.hadoop.cardinality.ColumnCardinalityMapper;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
-
/**
* @author ysong1
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
index 2c01fb6..5e0d59d 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.job.tools;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
@@ -27,20 +28,19 @@ import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.mrunit.mapreduce.ReduceDriver;
import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.cube.kv.RowConstants;
import org.apache.kylin.job.hadoop.cardinality.ColumnCardinalityMapper;
import org.apache.kylin.job.hadoop.cardinality.ColumnCardinalityReducer;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
-import org.apache.kylin.cube.kv.RowConstants;
-
/**
* @author ysong1
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java b/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
index 0f204e6..f09b5f6 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
@@ -21,16 +21,15 @@ package org.apache.kylin.job.tools;
import java.io.File;
import java.io.IOException;
+import org.apache.kylin.common.util.AbstractKylinTestCase;
+import org.apache.kylin.common.util.ClassUtil;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.codehaus.jettison.json.JSONException;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.common.util.AbstractKylinTestCase;
-import org.apache.kylin.common.util.ClassUtil;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* Created by honma on 9/17/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java b/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
index b5a3e96..f769110 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
@@ -30,12 +30,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -44,6 +38,12 @@ import org.apache.kylin.common.restclient.Broadcaster;
import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
/**
* Serves (and caches) metadata for Kylin instance.
@@ -148,7 +148,7 @@ public class MetadataManager {
public TableDesc getTableDesc(String tableName) {
if (tableName != null && tableName.indexOf(".") < 0)
tableName = "DEFAULT." + tableName;
-
+
TableDesc result = srcTableMap.get(tableName.toUpperCase());
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
index 1b1d979..0164956 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
@@ -18,13 +18,12 @@
package org.apache.kylin.metadata.filter;
-import org.apache.kylin.metadata.tuple.ITuple;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.apache.kylin.metadata.tuple.ITuple;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
index d96da2e..0f5aa8f 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
@@ -18,12 +18,11 @@
package org.apache.kylin.metadata.filter;
-import org.apache.kylin.metadata.tuple.ITuple;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.kylin.metadata.tuple.ITuple;
/**
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
index 5d4f642..9c92ef1 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
@@ -18,14 +18,13 @@
package org.apache.kylin.metadata.filter;
-import org.apache.kylin.metadata.tuple.ITuple;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
+import org.apache.kylin.metadata.tuple.ITuple;
public class LogicalTupleFilter extends TupleFilter {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
index d3e6873..e500932 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
@@ -24,10 +24,11 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.google.common.collect.Maps;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
+import com.google.common.collect.Maps;
+
/**
*
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
index 29f281a..d286888 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
@@ -23,7 +23,6 @@ import java.math.BigInteger;
import java.nio.ByteBuffer;
import org.apache.kylin.common.util.Bytes;
-
import org.apache.kylin.common.util.BytesUtil;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
index 754bf5c..6ec9a1f 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
@@ -20,8 +20,8 @@ package org.apache.kylin.metadata.measure;
import java.nio.ByteBuffer;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.DoubleWritable;
+import org.apache.kylin.common.util.Bytes;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
index cc2ba1d..1db7367 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
@@ -20,9 +20,8 @@ package org.apache.kylin.metadata.measure;
import java.nio.ByteBuffer;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.LongWritable;
-
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.BytesUtil;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
index aa58664..6d8658d 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
@@ -22,8 +22,8 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
index 6fd928f..398421e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
@@ -22,7 +22,6 @@ import java.nio.ByteBuffer;
import java.util.Collection;
import org.apache.hadoop.io.Text;
-
import org.apache.kylin.metadata.model.MeasureDesc;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
index 9ccb479..e878d29 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
@@ -18,12 +18,11 @@
package org.apache.kylin.metadata.measure.fixedlen;
-import org.apache.kylin.metadata.model.DataType;
-import org.apache.hadoop.io.LongWritable;
+import java.math.BigDecimal;
+import org.apache.hadoop.io.LongWritable;
import org.apache.kylin.common.util.BytesUtil;
-
-import java.math.BigDecimal;
+import org.apache.kylin.metadata.model.DataType;
public class FixedPointLongCodec extends FixedLenMeasureCodec<LongWritable> {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
index 95b320c..04bc170 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
@@ -18,10 +18,11 @@
package org.apache.kylin.metadata.model;
+import org.apache.commons.lang.StringUtils;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.commons.lang.StringUtils;
/**
* Column Metadata from Source. All name should be uppercase.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
index 8a753f7..54098aa 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
@@ -24,15 +24,15 @@ import java.util.HashSet;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.common.util.StringUtil;
+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.Sets;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.MetadataConstants;
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class DataModelDesc extends RootPersistentEntity {
@@ -54,7 +54,7 @@ public class DataModelDesc extends RootPersistentEntity {
private String filterCondition;
@JsonProperty("partition_desc")
PartitionDesc partitionDesc;
-
+
@JsonProperty("capacity")
private RealizationCapacity capacity = RealizationCapacity.MEDIUM;
@@ -93,7 +93,6 @@ public class DataModelDesc extends RootPersistentEntity {
public boolean isFactTable(String factTable) {
return this.factTable.equalsIgnoreCase(factTable);
}
-
public String getFilterCondition() {
return filterCondition;
@@ -129,7 +128,7 @@ public class DataModelDesc extends RootPersistentEntity {
if (join == null)
continue;
- if(joinType != null && !joinType.equals(join.getType()))
+ if (joinType != null && !joinType.equals(join.getType()))
continue;
int find = ArrayUtils.indexOf(join.getForeignKeyColumns(), fk);
@@ -150,9 +149,10 @@ public class DataModelDesc extends RootPersistentEntity {
}
private void initPartitionDesc(Map<String, TableDesc> tables) {
- if(this.partitionDesc != null)
+ if (this.partitionDesc != null)
this.partitionDesc.init(tables);
}
+
private void initJoinColumns(Map<String, TableDesc> tables) {
// join columns may or may not present in cube;
// here we don't modify 'allColumns' and 'dimensionColumns';
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java b/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
index 9f6d38a..5d1c1e6 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
@@ -32,7 +32,7 @@ import java.util.regex.Pattern;
*
*/
public class DataType {
-
+
public static final String VALID_TYPES_STRING = "any|char|varchar|boolean|binary" //
+ "|integer|tinyint|smallint|bigint|decimal|numeric|float|real|double" //
+ "|date|time|datetime|timestamp|byte|int|short|long|string|hllc" //
@@ -145,7 +145,6 @@ public class DataType {
}
}
-
// FIXME 256 for unknown string precision
if ((name.equals("char") || name.equals("varchar")) && precision == -1) {
precision = 256; // to save memory at frontend, e.g. tableau will
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/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 3c5409b..ff7c81d 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
@@ -18,12 +18,12 @@
package org.apache.kylin.metadata.model;
+import java.util.Collection;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.Collection;
-
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/26/13 Time: 1:30 PM To
* change this template use File | Settings | File Templates.
@@ -151,7 +151,7 @@ public class FunctionDesc {
this.returnType = returnType;
this.initReturnDataType();
}
-
+
// Jackson does not provide object post-processing currently
public void initReturnDataType() {
this.returnDataType = DataType.getInstance(returnType);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
index 1904c0a..057a1e4 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
@@ -19,8 +19,8 @@
package org.apache.kylin.metadata.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class LookupDesc {
[08/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
index 7303c6a7..980a2c8 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
@@ -18,9 +18,13 @@
package org.apache.kylin.dict.lookup;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.commons.lang.ArrayUtils;
import org.apache.hadoop.fs.Path;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -31,12 +35,9 @@ import org.apache.kylin.dict.TrieDictionary;
import org.apache.kylin.dict.TrieDictionaryBuilder;
import org.apache.kylin.metadata.model.TableDesc;
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java b/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
index 81db5df..b7b9338 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
@@ -18,7 +18,9 @@
package org.apache.kylin.dict;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
import org.junit.Before;
import org.junit.Test;
@@ -43,14 +45,14 @@ public class DateStrDictionaryTest {
} catch (IllegalArgumentException e) {
// good
}
-
+
try {
dict.getValueFromId(DateStrDictionary.ID_9999_12_31 + 1);
fail("IllegalArgumentException expected");
} catch (IllegalArgumentException e) {
// good
}
-
+
try {
dict.getIdFromValue("10000-1-1");
fail("IllegalArgumentException expected");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java b/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
index c9ae716..bf8e4b3 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
@@ -21,12 +21,11 @@ package org.apache.kylin.dict;
import java.io.IOException;
import org.apache.commons.lang.ArrayUtils;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.apache.kylin.dict.lookup.HiveTableReader;
import org.junit.Assert;
import org.junit.Test;
-import org.apache.kylin.common.util.HBaseMetadataTestCase;
-
/**
* This test case need the hive runtime; Please run it with sandbox; It is in the exclude list of default profile in pom.xml
* @author shaoshi
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java b/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
index 86fa635..0cfe448 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
@@ -20,19 +20,18 @@ package org.apache.kylin.dict;
import java.io.File;
+import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.ByteArray;
import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.dict.lookup.FileTable;
import org.apache.kylin.dict.lookup.LookupBytesTable;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.TableDesc;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.Array;
-import org.apache.kylin.common.util.ByteArray;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.TableDesc;
-
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java b/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
index 1073496..3fbe9cc 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.dict;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
import java.math.BigDecimal;
import java.util.Collections;
@@ -94,7 +95,7 @@ public class NumberDictionaryTest {
String dictNum = dict.getValueFromId(i);
System.out.println(sorted.get(i) + "\t" + dictNum);
}
-
+
for (int i = 0; i < sorted.size(); i++) {
String dictNum = dict.getValueFromId(i);
assertEquals(sorted.get(i), new BigDecimal(dictNum));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java b/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
index 5176038..c6b515f 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.dict;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.apache.kylin.dict.lookup.HiveTable;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java b/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
index cfecaee..50bcf26 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.dict;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java b/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
index 74f5610..6b78435 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
@@ -18,7 +18,10 @@
package org.apache.kylin.dict;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java b/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
index b9327db..7af0b63 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
@@ -18,21 +18,21 @@
package org.apache.kylin.dict.lookup;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.common.util.Pair;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
/**
* Created by shaoshi on 2/3/15.
*/
@@ -76,13 +76,12 @@ public class LookupTableTest extends LocalFileMetadataTestCase {
values.add("2012-12-30");
Pair<String, String> results = lookupTable.mapRange("CAL_DT", "2012-01-24", "2012-12-30", "QTR_BEG_DT");
-
Assert.assertTrue(results != null);
System.out.println("The first qtr_beg_dt is " + results.getFirst());
System.out.println("The last qtr_beg_dt is " + results.getSecond());
Assert.assertEquals("2012-01-01", results.getFirst());
- Assert.assertEquals( "2012-10-01" , results.getSecond());
+ Assert.assertEquals("2012-10-01", results.getSecond());
}
@Test
@@ -102,12 +101,10 @@ public class LookupTableTest extends LocalFileMetadataTestCase {
public LookupTable initLookupTable() throws Exception {
-
MetadataManager metaMgr = MetadataManager.getInstance(config);
-
String tableName = "EDW.TEST_CAL_DT";
- String[] pkCols = new String[]{"CAL_DT"};
+ String[] pkCols = new String[] { "CAL_DT" };
String snapshotResPath = "/table_snapshot/TEST_CAL_DT.csv/4af48c94-86de-4e22-a4fd-c49b06cbaa4f.snapshot";
SnapshotTable snapshot = getSnapshotManager().getSnapshotTable(snapshotResPath);
TableDesc tableDesc = metaMgr.getTableDesc(tableName);
@@ -115,7 +112,6 @@ public class LookupTableTest extends LocalFileMetadataTestCase {
System.out.println(lt);
-
return lt;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
index e350764..119f1ad 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
@@ -18,6 +18,11 @@
package org.apache.kylin.invertedindex;
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -27,14 +32,9 @@ import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
import org.apache.kylin.invertedindex.model.IIDesc;
import org.apache.kylin.metadata.MetadataConstants;
import org.apache.kylin.metadata.MetadataManager;
-import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
/**
* copied from CubeDescManager
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
index 89ed059..9efb8e0 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
@@ -18,11 +18,10 @@
package org.apache.kylin.invertedindex;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonManagedReference;
-import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.RootPersistentEntity;
@@ -35,9 +34,11 @@ import org.apache.kylin.metadata.realization.RealizationStatusEnum;
import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.metadata.realization.SQLDigest;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
+import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author honma
@@ -83,7 +84,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
private String projectName;
-
public long getAllocatedEndDate() {
if (null == segments || segments.size() == 0) {
return 0;
@@ -104,7 +104,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
return segments.get(0).getDateRangeStart();
}
-
public IIDesc getDescriptor() {
return IIDescManager.getInstance(config).getIIDesc(descName);
}
@@ -243,7 +242,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
return result;
}
-
public IISegment getSegment(String name, SegmentStatusEnum status) {
for (IISegment segment : segments) {
if ((null != segment.getName() && segment.getName().equals(name)) && segment.getStatus() == status) {
@@ -258,7 +256,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
this.segments = segments;
}
-
public long getCreateTimeUTC() {
return createTimeUTC;
}
@@ -267,7 +264,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
this.createTimeUTC = createTimeUTC;
}
-
@Override
public boolean isCapable(SQLDigest digest) {
//TODO: currently II is nearly omnipotent
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
index 6ebfbf8..6350b66 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
@@ -18,6 +18,14 @@
package org.apache.kylin.invertedindex;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
@@ -38,10 +46,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
/**
* @author honma
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
index 064f65f..7b6e462 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
@@ -18,11 +18,13 @@
package org.apache.kylin.invertedindex;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonBackReference;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Objects;
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.dict.ISegment;
import org.apache.kylin.invertedindex.index.TableRecordInfo;
@@ -30,12 +32,11 @@ import org.apache.kylin.invertedindex.model.IIDesc;
import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TblColRef;
-import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-import java.util.concurrent.ConcurrentHashMap;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Objects;
/**
* @author honma
@@ -284,5 +285,4 @@ public class IISegment implements Comparable<IISegment>, ISegment {
this.createTimeUTC = createTimeUTC;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
index 066a3c8..4ad6ef4 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
@@ -18,8 +18,6 @@
package org.apache.kylin.invertedindex.index;
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
-
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
@@ -27,10 +25,11 @@ import java.util.Arrays;
import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.dict.Dictionary;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
+
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
index f83e472..ea35bb4 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
@@ -18,25 +18,26 @@
package org.apache.kylin.invertedindex.index;
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
+
/**
* @author yangli9
*/
public interface ColumnValueContainer {
- void append(ImmutableBytesWritable valueBytes);
+ void append(ImmutableBytesWritable valueBytes);
- void closeForChange();
+ void closeForChange();
- int getSize();
+ int getSize();
- // works only after closeForChange()
- void getValueAt(int i, ImmutableBytesWritable valueBytes);
+ // works only after closeForChange()
+ void getValueAt(int i, ImmutableBytesWritable valueBytes);
- ConciseSet getBitMap(Integer startId,Integer endId);
+ ConciseSet getBitMap(Integer startId, Integer endId);
- int getMaxValueId();
+ int getMaxValueId();
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
index c16172b..4dcd11b 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
@@ -23,12 +23,12 @@ import java.util.Arrays;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.kylin.common.util.Bytes;
-
import org.apache.kylin.common.util.BytesUtil;
+import org.apache.kylin.dict.Dictionary;
+
import com.ning.compress.lzf.LZFDecoder;
import com.ning.compress.lzf.LZFEncoder;
import it.uniroma3.mat.extendedset.intset.ConciseSet;
-import org.apache.kylin.dict.Dictionary;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
index 37b93fb..628a16b 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
@@ -18,14 +18,14 @@
package org.apache.kylin.invertedindex.index;
+import java.util.Arrays;
+
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.metadata.measure.fixedlen.FixedLenMeasureCodec;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
-import org.apache.hadoop.io.LongWritable;
-
-import java.util.Arrays;
/**
* Created by honma on 11/10/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
index 4510549..f16e9fe 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
@@ -23,10 +23,10 @@ import com.google.common.hash.Hashing;
public class ShardingHash {
- static HashFunction hashFunc = Hashing.murmur3_128();
+ static HashFunction hashFunc = Hashing.murmur3_128();
- public static long hashInt(int integer) {
- return hashFunc.newHasher().putInt(integer).hash().asLong();
- }
+ public static long hashInt(int integer) {
+ return hashFunc.newHasher().putInt(integer).hash().asLong();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
index ef2db19..5f20556 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
@@ -24,30 +24,30 @@ import com.google.common.collect.Lists;
public class ShardingSliceBuilder {
- SliceBuilder[] builders;
-
- public ShardingSliceBuilder(TableRecordInfo info) {
- int sharding = info.getDescriptor().getSharding();
- builders = new SliceBuilder[sharding];
- for (short i = 0; i < sharding; i++) {
- builders[i] = new SliceBuilder(info, i);
- }
- }
-
- // NOTE: record must be appended in time order
- public Slice append(TableRecord rec) {
- short shard = rec.getShard();
- return builders[shard].append(rec);
- }
-
- public List<Slice> close() {
- List<Slice> result = Lists.newArrayList();
- for (SliceBuilder builder : builders) {
- Slice slice = builder.close();
- if (slice != null)
- result.add(slice);
- }
- return result;
- }
+ SliceBuilder[] builders;
+
+ public ShardingSliceBuilder(TableRecordInfo info) {
+ int sharding = info.getDescriptor().getSharding();
+ builders = new SliceBuilder[sharding];
+ for (short i = 0; i < sharding; i++) {
+ builders[i] = new SliceBuilder(info, i);
+ }
+ }
+
+ // NOTE: record must be appended in time order
+ public Slice append(TableRecord rec) {
+ short shard = rec.getShard();
+ return builders[shard].append(rec);
+ }
+
+ public List<Slice> close() {
+ List<Slice> result = Lists.newArrayList();
+ for (SliceBuilder builder : builders) {
+ Slice slice = builder.close();
+ if (slice != null)
+ result.add(slice);
+ }
+ return result;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
index 59dd9cd..3ab8687 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
@@ -20,9 +20,10 @@ package org.apache.kylin.invertedindex.index;
import java.util.Iterator;
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
+
/**
* Within a partition (per timestampGranularity), records are further sliced
* (per sliceLength) to fit into HBASE cell.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
index 72050a1..3e90171 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
@@ -25,97 +25,95 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
*/
public class SliceBuilder {
- TableRecordInfo info;
- private int nColumns;
- int nRecordsCap;
-
- short shard;
- long sliceTimestamp;
- int nRecords;
- private ColumnValueContainer[] containers;
-
- transient ImmutableBytesWritable temp = new ImmutableBytesWritable();
-
- public SliceBuilder(TableRecordInfo info, short shard) {
- this.info = info;
- this.nColumns = info.getDigest().getColumnCount();
- this.nRecordsCap = Math.max(1, info.getDescriptor().getSliceSize());
-
- this.shard = shard;
- this.sliceTimestamp = Long.MIN_VALUE;
- this.nRecords = 0;
- this.containers = null;
-
- doneSlice(); // init containers
- }
-
- private Slice doneSlice() {
- Slice r = null;
- if (nRecords > 0) {
- for (int i = 0; i < nColumns; i++) {
- containers[i].closeForChange();
- }
- r = new Slice(info.getDigest(), shard, sliceTimestamp, containers);
- }
-
- // reset for next slice
- nRecords = 0;
- containers = new ColumnValueContainer[nColumns];
- for (int i : info.getDescriptor().getValueColumns()) {
- containers[i] = new CompressedValueContainer(info.getDigest(), i,
- nRecordsCap);
- }
- for (int i : info.getDescriptor().getMetricsColumns()) {
- containers[i] = new CompressedValueContainer(info.getDigest(), i,
- nRecordsCap);
- }
-
- return r;
-
- }
-
- // NOTE: record must be appended in time order
- public Slice append(TableRecord rec) {
- if (rec.getShard() != shard)
- throw new IllegalStateException();
-
- Slice doneSlice = null;
-
- if (isFull()) {
- doneSlice = doneSlice();
- }
-
- if (nRecords == 0) {
- sliceTimestamp = increaseSliceTimestamp(rec.getTimestamp());
- }
-
- nRecords++;
- for (int i = 0; i < nColumns; i++) {
- rec.getValueBytes(i, temp);
- containers[i].append(temp);
- }
-
- return doneSlice;
- }
-
- private long increaseSliceTimestamp(long timestamp) {
- if (timestamp < sliceTimestamp)
- throw new IllegalStateException();
-
- if (timestamp == sliceTimestamp)
- return ++timestamp; // ensure slice timestamp increases
- else
- return timestamp;
- }
-
- public Slice close() {
- Slice doneSlice = doneSlice();
- this.sliceTimestamp = Long.MIN_VALUE;
- this.nRecords = 0;
- return doneSlice;
- }
-
- private boolean isFull() {
- return nRecords >= nRecordsCap;
- }
+ TableRecordInfo info;
+ private int nColumns;
+ int nRecordsCap;
+
+ short shard;
+ long sliceTimestamp;
+ int nRecords;
+ private ColumnValueContainer[] containers;
+
+ transient ImmutableBytesWritable temp = new ImmutableBytesWritable();
+
+ public SliceBuilder(TableRecordInfo info, short shard) {
+ this.info = info;
+ this.nColumns = info.getDigest().getColumnCount();
+ this.nRecordsCap = Math.max(1, info.getDescriptor().getSliceSize());
+
+ this.shard = shard;
+ this.sliceTimestamp = Long.MIN_VALUE;
+ this.nRecords = 0;
+ this.containers = null;
+
+ doneSlice(); // init containers
+ }
+
+ private Slice doneSlice() {
+ Slice r = null;
+ if (nRecords > 0) {
+ for (int i = 0; i < nColumns; i++) {
+ containers[i].closeForChange();
+ }
+ r = new Slice(info.getDigest(), shard, sliceTimestamp, containers);
+ }
+
+ // reset for next slice
+ nRecords = 0;
+ containers = new ColumnValueContainer[nColumns];
+ for (int i : info.getDescriptor().getValueColumns()) {
+ containers[i] = new CompressedValueContainer(info.getDigest(), i, nRecordsCap);
+ }
+ for (int i : info.getDescriptor().getMetricsColumns()) {
+ containers[i] = new CompressedValueContainer(info.getDigest(), i, nRecordsCap);
+ }
+
+ return r;
+
+ }
+
+ // NOTE: record must be appended in time order
+ public Slice append(TableRecord rec) {
+ if (rec.getShard() != shard)
+ throw new IllegalStateException();
+
+ Slice doneSlice = null;
+
+ if (isFull()) {
+ doneSlice = doneSlice();
+ }
+
+ if (nRecords == 0) {
+ sliceTimestamp = increaseSliceTimestamp(rec.getTimestamp());
+ }
+
+ nRecords++;
+ for (int i = 0; i < nColumns; i++) {
+ rec.getValueBytes(i, temp);
+ containers[i].append(temp);
+ }
+
+ return doneSlice;
+ }
+
+ private long increaseSliceTimestamp(long timestamp) {
+ if (timestamp < sliceTimestamp)
+ throw new IllegalStateException();
+
+ if (timestamp == sliceTimestamp)
+ return ++timestamp; // ensure slice timestamp increases
+ else
+ return timestamp;
+ }
+
+ public Slice close() {
+ Slice doneSlice = doneSlice();
+ this.sliceTimestamp = Long.MIN_VALUE;
+ this.nRecords = 0;
+ return doneSlice;
+ }
+
+ private boolean isFull() {
+ return nRecords >= nRecordsCap;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
index 221bb24..54f1e3e 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
@@ -18,152 +18,147 @@
package org.apache.kylin.invertedindex.index;
+import java.nio.ByteBuffer;
+
+import org.apache.hadoop.io.LongWritable;
import org.apache.kylin.common.util.BytesSerializer;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.metadata.measure.fixedlen.FixedLenMeasureCodec;
import org.apache.kylin.metadata.model.DataType;
-import org.apache.hadoop.io.LongWritable;
-
-import java.nio.ByteBuffer;
/**
* Created by honma on 11/10/14.
*/
public class TableRecordInfoDigest {
- private int nColumns;
- private int byteFormLen;
-
- private int[] offsets;// column offset in byte form row
- private int[] dictMaxIds;// max id for each of the dict
- private int[] lengths;// length of each encoded dict
- private boolean[] isMetric;// whether it's metric or dict
-
- protected FixedLenMeasureCodec<?>[] measureSerializers;
-
- public TableRecordInfoDigest(int nColumns, int byteFormLen, int[] offsets,
- int[] dictMaxIds, int[] lengths, boolean[] isMetric,
- FixedLenMeasureCodec<?>[] measureSerializers) {
- this.nColumns = nColumns;
- this.byteFormLen = byteFormLen;
- this.offsets = offsets;
- this.dictMaxIds = dictMaxIds;
- this.lengths = lengths;
- this.isMetric = isMetric;
- this.measureSerializers = measureSerializers;
- }
-
- public TableRecordInfoDigest() {
- }
-
- public int getByteFormLen() {
- return byteFormLen;
- }
-
- public boolean isMetrics(int col) {
- return isMetric[col];
- }
-
- public int getColumnCount() {
- return nColumns;
- }
-
- public int offset(int col) {
- return offsets[col];
- }
-
- public int length(int col) {
- return lengths[col];
- }
-
- public int getMaxID(int col) {
- return dictMaxIds[col];
- }
-
- public int getMetricCount() {
- int ret = 0;
- for (int i = 0; i < nColumns; ++i) {
- if (isMetrics(i)) {
- ret++;
- }
- }
- return ret;
- }
-
- public RawTableRecord createTableRecordBytes() {
- return new RawTableRecord(this);
- }
-
- // metrics go with fixed-len codec
- @SuppressWarnings("unchecked")
- public FixedLenMeasureCodec<LongWritable> codec(int col) {
- // yes, all metrics are long currently
- return (FixedLenMeasureCodec<LongWritable>) measureSerializers[col];
- }
-
- public static byte[] serialize(TableRecordInfoDigest o) {
- ByteBuffer buf = ByteBuffer.allocate(Serializer.SERIALIZE_BUFFER_SIZE);
- serializer.serialize(o, buf);
- byte[] result = new byte[buf.position()];
- System.arraycopy(buf.array(), 0, result, 0, buf.position());
- return result;
- }
-
- public static TableRecordInfoDigest deserialize(byte[] bytes) {
- return serializer.deserialize(ByteBuffer.wrap(bytes));
- }
-
- public static TableRecordInfoDigest deserialize(ByteBuffer buffer) {
- return serializer.deserialize(buffer);
- }
-
- private static final Serializer serializer = new Serializer();
-
- private static class Serializer implements
- BytesSerializer<TableRecordInfoDigest> {
-
- @Override
- public void serialize(TableRecordInfoDigest value, ByteBuffer out) {
- BytesUtil.writeVInt(value.nColumns, out);
- BytesUtil.writeVInt(value.byteFormLen, out);
- BytesUtil.writeIntArray(value.offsets, out);
- BytesUtil.writeIntArray(value.dictMaxIds, out);
- BytesUtil.writeIntArray(value.lengths, out);
- BytesUtil.writeBooleanArray(value.isMetric, out);
-
- for (int i = 0; i < value.measureSerializers.length; ++i) {
- if (value.isMetrics(i)) {
- BytesUtil.writeAsciiString(value.measureSerializers[i]
- .getDataType().toString(), out);
- } else {
- BytesUtil.writeAsciiString(null, out);
- }
- }
- }
-
- @Override
- public TableRecordInfoDigest deserialize(ByteBuffer in) {
- TableRecordInfoDigest result = new TableRecordInfoDigest();
- result.nColumns = BytesUtil.readVInt(in);
- result.byteFormLen = BytesUtil.readVInt(in);
- result.offsets = BytesUtil.readIntArray(in);
- result.dictMaxIds = BytesUtil.readIntArray(in);
- result.lengths = BytesUtil.readIntArray(in);
- result.isMetric = BytesUtil.readBooleanArray(in);
-
- result.measureSerializers = new FixedLenMeasureCodec<?>[result.nColumns];
- for (int i = 0; i < result.nColumns; ++i) {
- String typeStr = BytesUtil.readAsciiString(in);
- if (typeStr == null) {
- result.measureSerializers[i] = null;
- } else {
- result.measureSerializers[i] = FixedLenMeasureCodec
- .get(DataType.getInstance(typeStr));
- }
- }
-
- return result;
- }
-
- }
+ private int nColumns;
+ private int byteFormLen;
+
+ private int[] offsets;// column offset in byte form row
+ private int[] dictMaxIds;// max id for each of the dict
+ private int[] lengths;// length of each encoded dict
+ private boolean[] isMetric;// whether it's metric or dict
+
+ protected FixedLenMeasureCodec<?>[] measureSerializers;
+
+ public TableRecordInfoDigest(int nColumns, int byteFormLen, int[] offsets, int[] dictMaxIds, int[] lengths, boolean[] isMetric, FixedLenMeasureCodec<?>[] measureSerializers) {
+ this.nColumns = nColumns;
+ this.byteFormLen = byteFormLen;
+ this.offsets = offsets;
+ this.dictMaxIds = dictMaxIds;
+ this.lengths = lengths;
+ this.isMetric = isMetric;
+ this.measureSerializers = measureSerializers;
+ }
+
+ public TableRecordInfoDigest() {
+ }
+
+ public int getByteFormLen() {
+ return byteFormLen;
+ }
+
+ public boolean isMetrics(int col) {
+ return isMetric[col];
+ }
+
+ public int getColumnCount() {
+ return nColumns;
+ }
+
+ public int offset(int col) {
+ return offsets[col];
+ }
+
+ public int length(int col) {
+ return lengths[col];
+ }
+
+ public int getMaxID(int col) {
+ return dictMaxIds[col];
+ }
+
+ public int getMetricCount() {
+ int ret = 0;
+ for (int i = 0; i < nColumns; ++i) {
+ if (isMetrics(i)) {
+ ret++;
+ }
+ }
+ return ret;
+ }
+
+ public RawTableRecord createTableRecordBytes() {
+ return new RawTableRecord(this);
+ }
+
+ // metrics go with fixed-len codec
+ @SuppressWarnings("unchecked")
+ public FixedLenMeasureCodec<LongWritable> codec(int col) {
+ // yes, all metrics are long currently
+ return (FixedLenMeasureCodec<LongWritable>) measureSerializers[col];
+ }
+
+ public static byte[] serialize(TableRecordInfoDigest o) {
+ ByteBuffer buf = ByteBuffer.allocate(Serializer.SERIALIZE_BUFFER_SIZE);
+ serializer.serialize(o, buf);
+ byte[] result = new byte[buf.position()];
+ System.arraycopy(buf.array(), 0, result, 0, buf.position());
+ return result;
+ }
+
+ public static TableRecordInfoDigest deserialize(byte[] bytes) {
+ return serializer.deserialize(ByteBuffer.wrap(bytes));
+ }
+
+ public static TableRecordInfoDigest deserialize(ByteBuffer buffer) {
+ return serializer.deserialize(buffer);
+ }
+
+ private static final Serializer serializer = new Serializer();
+
+ private static class Serializer implements BytesSerializer<TableRecordInfoDigest> {
+
+ @Override
+ public void serialize(TableRecordInfoDigest value, ByteBuffer out) {
+ BytesUtil.writeVInt(value.nColumns, out);
+ BytesUtil.writeVInt(value.byteFormLen, out);
+ BytesUtil.writeIntArray(value.offsets, out);
+ BytesUtil.writeIntArray(value.dictMaxIds, out);
+ BytesUtil.writeIntArray(value.lengths, out);
+ BytesUtil.writeBooleanArray(value.isMetric, out);
+
+ for (int i = 0; i < value.measureSerializers.length; ++i) {
+ if (value.isMetrics(i)) {
+ BytesUtil.writeAsciiString(value.measureSerializers[i].getDataType().toString(), out);
+ } else {
+ BytesUtil.writeAsciiString(null, out);
+ }
+ }
+ }
+
+ @Override
+ public TableRecordInfoDigest deserialize(ByteBuffer in) {
+ TableRecordInfoDigest result = new TableRecordInfoDigest();
+ result.nColumns = BytesUtil.readVInt(in);
+ result.byteFormLen = BytesUtil.readVInt(in);
+ result.offsets = BytesUtil.readIntArray(in);
+ result.dictMaxIds = BytesUtil.readIntArray(in);
+ result.lengths = BytesUtil.readIntArray(in);
+ result.isMetric = BytesUtil.readBooleanArray(in);
+
+ result.measureSerializers = new FixedLenMeasureCodec<?>[result.nColumns];
+ for (int i = 0; i < result.nColumns; ++i) {
+ String typeStr = BytesUtil.readAsciiString(in);
+ if (typeStr == null) {
+ result.measureSerializers[i] = null;
+ } else {
+ result.measureSerializers[i] = FixedLenMeasureCodec.get(DataType.getInstance(typeStr));
+ }
+ }
+
+ return result;
+ }
+
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/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 ab1438b..ac935b8 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
@@ -47,7 +47,6 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
index d2d377d..c89c61e 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
@@ -18,12 +18,12 @@
package org.apache.kylin.invertedindex.model;
-import java.util.Arrays;
import java.util.List;
+import org.apache.kylin.common.util.StringUtil;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.common.util.StringUtil;
/**
* Created by Hongbin Ma(Binmahone) on 12/26/14.
@@ -51,7 +51,6 @@ public class IIDimension {
this.columns = columns;
}
-
public static void capicalizeStrings(List<IIDimension> dimensions) {
if (dimensions != null) {
for (IIDimension iiDimension : dimensions) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
index 6d18186..d306eee 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
@@ -24,248 +24,230 @@ import java.util.Iterator;
import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.invertedindex.index.BitMapContainer;
+import org.apache.kylin.invertedindex.index.ColumnValueContainer;
+import org.apache.kylin.invertedindex.index.CompressedValueContainer;
+import org.apache.kylin.invertedindex.index.Slice;
+import org.apache.kylin.invertedindex.index.TableRecordInfoDigest;
import com.google.common.collect.Lists;
-import org.apache.kylin.common.util.BytesUtil;
-import org.apache.kylin.invertedindex.index.*;
-
/**
* @author yangli9
*/
public class IIKeyValueCodec {
- public static final int SHARD_LEN = 2;
- public static final int TIMEPART_LEN = 8;
- public static final int COLNO_LEN = 2;
-
- private TableRecordInfoDigest infoDigest;
-
- public IIKeyValueCodec(TableRecordInfoDigest digest) {
- this.infoDigest = digest;
- }
-
- public Collection<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKeyValue(
- Slice slice) {
- ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result = Lists
- .newArrayList();
- ColumnValueContainer[] containers = slice.getColumnValueContainers();
- for (int col = 0; col < containers.length; col++) {
- if (containers[col] instanceof BitMapContainer) {
- collectKeyValues(slice, col, (BitMapContainer) containers[col],
- result);
- } else if (containers[col] instanceof CompressedValueContainer) {
- collectKeyValues(slice, col,
- (CompressedValueContainer) containers[col], result);
- } else {
- throw new IllegalArgumentException("Unkown container class "
- + containers[col].getClass());
- }
- }
- return result;
- }
-
- private void collectKeyValues(Slice slice,
- int col,
- CompressedValueContainer container, //
- ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
- ImmutableBytesWritable key = encodeKey(slice.getShard(),
- slice.getTimestamp(), col, -1);
- ImmutableBytesWritable value = container.toBytes();
- result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(
- key, value));
- }
-
- private void collectKeyValues(Slice slice,
- int col,
- BitMapContainer container, //
- ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
- List<ImmutableBytesWritable> values = container.toBytes();
- for (int v = 0; v < values.size(); v++) {
- ImmutableBytesWritable key = encodeKey(slice.getShard(),
- slice.getTimestamp(), col, v);
- result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(
- key, values.get(v)));
- }
- }
-
- ImmutableBytesWritable encodeKey(short shard, long timestamp, int col,
- int colValue) {
- byte[] bytes = new byte[20];
- int len = encodeKey(shard, timestamp, col, colValue, bytes, 0);
- return new ImmutableBytesWritable(bytes, 0, len);
- }
-
- int encodeKey(short shard, long timestamp, int col, int colValue,
- byte[] buf, int offset) {
- int i = offset;
-
- BytesUtil.writeUnsigned(shard, buf, i, SHARD_LEN);
- i += SHARD_LEN;
- BytesUtil.writeLong(timestamp, buf, i, TIMEPART_LEN);
- i += TIMEPART_LEN;
-
- BytesUtil.writeUnsigned(col, buf, i, COLNO_LEN);
- i += COLNO_LEN;
-
- if (colValue >= 0) {
- int colLen = infoDigest.length(col);
- BytesUtil.writeUnsigned(colValue, buf, i, colLen);
- i += colLen;
- }
-
- return i - offset;
- }
-
- public Iterable<Slice> decodeKeyValue(
- Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
- return new Decoder(infoDigest, kvs);
- }
-
- private static class Decoder implements Iterable<Slice> {
-
- TableRecordInfoDigest info;
- Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator;
-
- Slice next = null;
- short curShard = Short.MIN_VALUE;
- long curSliceTimestamp = Long.MIN_VALUE;
- int curCol = -1;
- int curColValue = -1;
- short lastShard = Short.MIN_VALUE;
- long lastSliceTimestamp = Long.MIN_VALUE;
- int lastCol = -1;
- ColumnValueContainer[] containers = null;
- List<ImmutableBytesWritable> bitMapValues = Lists.newArrayList();
-
- Decoder(TableRecordInfoDigest info,
- Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
- this.info = info;
- this.iterator = kvs.iterator();
- }
-
- private void goToNext() {
- if (next != null) { // was not fetched
- return;
- }
-
- // NOTE the input keys are ordered
- while (next == null && iterator.hasNext()) {
- Pair<ImmutableBytesWritable, ImmutableBytesWritable> kv = iterator
- .next();
- ImmutableBytesWritable k = kv.getFirst();
- ImmutableBytesWritable v = kv.getSecond();
- decodeKey(k);
-
- if (curShard != lastShard
- || curSliceTimestamp != lastSliceTimestamp) {
- makeNext();
- }
- consumeCurrent(v);
- }
- if (next == null) {
- makeNext();
- }
- }
-
- private void decodeKey(ImmutableBytesWritable k) {
- byte[] buf = k.get();
- int i = k.getOffset();
-
- curShard = (short) BytesUtil.readUnsigned(buf, i, SHARD_LEN);
- i += SHARD_LEN;
- curSliceTimestamp = BytesUtil.readLong(buf, i, TIMEPART_LEN);
- i += TIMEPART_LEN;
-
- curCol = BytesUtil.readUnsigned(buf, i, COLNO_LEN);
- i += COLNO_LEN;
-
- if (i - k.getOffset() < k.getLength()) {
- // bitmap
- int colLen = info.length(curCol);
- curColValue = BytesUtil.readUnsigned(buf, i, colLen);
- i += colLen;
- } else {
- // value list
- curColValue = -1;
- }
- }
-
- private void consumeCurrent(ImmutableBytesWritable v) {
- if (curCol != lastCol && bitMapValues.size() > 0) { // end of a
- // bitmap
- // container
- addBitMapContainer(lastCol);
- }
- if (curColValue < 0) {
- CompressedValueContainer c = new CompressedValueContainer(info,
- curCol, 0);
- c.fromBytes(v);
- addContainer(curCol, c);
- } else {
- assert curColValue == bitMapValues.size();
- // make a copy, the value object from caller is typically reused
- // through iteration
- bitMapValues.add(new ImmutableBytesWritable(v));
- }
-
- lastShard = curShard;
- lastSliceTimestamp = curSliceTimestamp;
- lastCol = curCol;
- }
-
- private void makeNext() {
- if (bitMapValues.isEmpty() == false) {
- addBitMapContainer(lastCol);
- }
- if (containers != null) {
- next = new Slice(info, lastShard, lastSliceTimestamp,
- containers);
- }
- lastSliceTimestamp = Long.MIN_VALUE;
- lastCol = -1;
- containers = null;
- bitMapValues.clear();
- }
-
- private void addBitMapContainer(int col) {
- BitMapContainer c = new BitMapContainer(info, col);
- c.fromBytes(bitMapValues);
- addContainer(col, c);
- bitMapValues.clear();
- }
-
- private void addContainer(int col, ColumnValueContainer c) {
- if (containers == null) {
- containers = new ColumnValueContainer[info.getColumnCount()];
- }
- containers[col] = c;
- }
-
- @Override
- public Iterator<Slice> iterator() {
- return new Iterator<Slice>() {
- @Override
- public boolean hasNext() {
- goToNext();
- return next != null;
- }
-
- @Override
- public Slice next() {
- Slice result = next;
- next = null;
- return result;
- }
-
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- }
+ public static final int SHARD_LEN = 2;
+ public static final int TIMEPART_LEN = 8;
+ public static final int COLNO_LEN = 2;
+
+ private TableRecordInfoDigest infoDigest;
+
+ public IIKeyValueCodec(TableRecordInfoDigest digest) {
+ this.infoDigest = digest;
+ }
+
+ public Collection<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKeyValue(Slice slice) {
+ ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result = Lists.newArrayList();
+ ColumnValueContainer[] containers = slice.getColumnValueContainers();
+ for (int col = 0; col < containers.length; col++) {
+ if (containers[col] instanceof BitMapContainer) {
+ collectKeyValues(slice, col, (BitMapContainer) containers[col], result);
+ } else if (containers[col] instanceof CompressedValueContainer) {
+ collectKeyValues(slice, col, (CompressedValueContainer) containers[col], result);
+ } else {
+ throw new IllegalArgumentException("Unkown container class " + containers[col].getClass());
+ }
+ }
+ return result;
+ }
+
+ private void collectKeyValues(Slice slice, int col, CompressedValueContainer container, //
+ ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
+ ImmutableBytesWritable key = encodeKey(slice.getShard(), slice.getTimestamp(), col, -1);
+ ImmutableBytesWritable value = container.toBytes();
+ result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(key, value));
+ }
+
+ private void collectKeyValues(Slice slice, int col, BitMapContainer container, //
+ ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
+ List<ImmutableBytesWritable> values = container.toBytes();
+ for (int v = 0; v < values.size(); v++) {
+ ImmutableBytesWritable key = encodeKey(slice.getShard(), slice.getTimestamp(), col, v);
+ result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(key, values.get(v)));
+ }
+ }
+
+ ImmutableBytesWritable encodeKey(short shard, long timestamp, int col, int colValue) {
+ byte[] bytes = new byte[20];
+ int len = encodeKey(shard, timestamp, col, colValue, bytes, 0);
+ return new ImmutableBytesWritable(bytes, 0, len);
+ }
+
+ int encodeKey(short shard, long timestamp, int col, int colValue, byte[] buf, int offset) {
+ int i = offset;
+
+ BytesUtil.writeUnsigned(shard, buf, i, SHARD_LEN);
+ i += SHARD_LEN;
+ BytesUtil.writeLong(timestamp, buf, i, TIMEPART_LEN);
+ i += TIMEPART_LEN;
+
+ BytesUtil.writeUnsigned(col, buf, i, COLNO_LEN);
+ i += COLNO_LEN;
+
+ if (colValue >= 0) {
+ int colLen = infoDigest.length(col);
+ BytesUtil.writeUnsigned(colValue, buf, i, colLen);
+ i += colLen;
+ }
+
+ return i - offset;
+ }
+
+ public Iterable<Slice> decodeKeyValue(Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
+ return new Decoder(infoDigest, kvs);
+ }
+
+ private static class Decoder implements Iterable<Slice> {
+
+ TableRecordInfoDigest info;
+ Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator;
+
+ Slice next = null;
+ short curShard = Short.MIN_VALUE;
+ long curSliceTimestamp = Long.MIN_VALUE;
+ int curCol = -1;
+ int curColValue = -1;
+ short lastShard = Short.MIN_VALUE;
+ long lastSliceTimestamp = Long.MIN_VALUE;
+ int lastCol = -1;
+ ColumnValueContainer[] containers = null;
+ List<ImmutableBytesWritable> bitMapValues = Lists.newArrayList();
+
+ Decoder(TableRecordInfoDigest info, Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
+ this.info = info;
+ this.iterator = kvs.iterator();
+ }
+
+ private void goToNext() {
+ if (next != null) { // was not fetched
+ return;
+ }
+
+ // NOTE the input keys are ordered
+ while (next == null && iterator.hasNext()) {
+ Pair<ImmutableBytesWritable, ImmutableBytesWritable> kv = iterator.next();
+ ImmutableBytesWritable k = kv.getFirst();
+ ImmutableBytesWritable v = kv.getSecond();
+ decodeKey(k);
+
+ if (curShard != lastShard || curSliceTimestamp != lastSliceTimestamp) {
+ makeNext();
+ }
+ consumeCurrent(v);
+ }
+ if (next == null) {
+ makeNext();
+ }
+ }
+
+ private void decodeKey(ImmutableBytesWritable k) {
+ byte[] buf = k.get();
+ int i = k.getOffset();
+
+ curShard = (short) BytesUtil.readUnsigned(buf, i, SHARD_LEN);
+ i += SHARD_LEN;
+ curSliceTimestamp = BytesUtil.readLong(buf, i, TIMEPART_LEN);
+ i += TIMEPART_LEN;
+
+ curCol = BytesUtil.readUnsigned(buf, i, COLNO_LEN);
+ i += COLNO_LEN;
+
+ if (i - k.getOffset() < k.getLength()) {
+ // bitmap
+ int colLen = info.length(curCol);
+ curColValue = BytesUtil.readUnsigned(buf, i, colLen);
+ i += colLen;
+ } else {
+ // value list
+ curColValue = -1;
+ }
+ }
+
+ private void consumeCurrent(ImmutableBytesWritable v) {
+ if (curCol != lastCol && bitMapValues.size() > 0) { // end of a
+ // bitmap
+ // container
+ addBitMapContainer(lastCol);
+ }
+ if (curColValue < 0) {
+ CompressedValueContainer c = new CompressedValueContainer(info, curCol, 0);
+ c.fromBytes(v);
+ addContainer(curCol, c);
+ } else {
+ assert curColValue == bitMapValues.size();
+ // make a copy, the value object from caller is typically reused
+ // through iteration
+ bitMapValues.add(new ImmutableBytesWritable(v));
+ }
+
+ lastShard = curShard;
+ lastSliceTimestamp = curSliceTimestamp;
+ lastCol = curCol;
+ }
+
+ private void makeNext() {
+ if (bitMapValues.isEmpty() == false) {
+ addBitMapContainer(lastCol);
+ }
+ if (containers != null) {
+ next = new Slice(info, lastShard, lastSliceTimestamp, containers);
+ }
+ lastSliceTimestamp = Long.MIN_VALUE;
+ lastCol = -1;
+ containers = null;
+ bitMapValues.clear();
+ }
+
+ private void addBitMapContainer(int col) {
+ BitMapContainer c = new BitMapContainer(info, col);
+ c.fromBytes(bitMapValues);
+ addContainer(col, c);
+ bitMapValues.clear();
+ }
+
+ private void addContainer(int col, ColumnValueContainer c) {
+ if (containers == null) {
+ containers = new ColumnValueContainer[info.getColumnCount()];
+ }
+ containers[col] = c;
+ }
+
+ @Override
+ public Iterator<Slice> iterator() {
+ return new Iterator<Slice>() {
+ @Override
+ public boolean hasNext() {
+ goToNext();
+ return next != null;
+ }
+
+ @Override
+ public Slice next() {
+ Slice result = next;
+ next = null;
+ return result;
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
index 503a2f1..664efd5 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
@@ -25,11 +25,11 @@ import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Pair;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.Reader;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.invertedindex.index.RawTableRecord;
@@ -43,67 +43,64 @@ import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
*/
public class IICLI {
- public static void main(String[] args) throws IOException {
- Configuration hconf = HadoopUtil.getCurrentConfiguration();
- IIManager mgr = IIManager.getInstance(KylinConfig.getInstanceFromEnv());
+ public static void main(String[] args) throws IOException {
+ Configuration hconf = HadoopUtil.getCurrentConfiguration();
+ IIManager mgr = IIManager.getInstance(KylinConfig.getInstanceFromEnv());
- String iiName = args[0];
- IIInstance ii = mgr.getII(iiName);
+ String iiName = args[0];
+ IIInstance ii = mgr.getII(iiName);
- String path = args[1];
- System.out.println("Reading from " + path + " ...");
+ String path = args[1];
+ System.out.println("Reading from " + path + " ...");
- TableRecordInfo info = new TableRecordInfo(ii.getFirstSegment());
- IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
- int count = 0;
- for (Slice slice : codec.decodeKeyValue(readSequenceKVs(hconf, path))) {
- for (RawTableRecord rec : slice) {
- System.out.printf(new TableRecord(rec, info).toString());
- count++;
- }
- }
- System.out.println("Total " + count + " records");
- }
+ TableRecordInfo info = new TableRecordInfo(ii.getFirstSegment());
+ IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
+ int count = 0;
+ for (Slice slice : codec.decodeKeyValue(readSequenceKVs(hconf, path))) {
+ for (RawTableRecord rec : slice) {
+ System.out.printf(new TableRecord(rec, info).toString());
+ count++;
+ }
+ }
+ System.out.println("Total " + count + " records");
+ }
- public static Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> readSequenceKVs(
- Configuration hconf, String path) throws IOException {
- final Reader reader = new Reader(hconf,
- SequenceFile.Reader.file(new Path(path)));
- return new Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
- @Override
- public Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator() {
- return new Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
- ImmutableBytesWritable k = new ImmutableBytesWritable();
- ImmutableBytesWritable v = new ImmutableBytesWritable();
- Pair<ImmutableBytesWritable, ImmutableBytesWritable> pair = new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(
- k, v);
+ public static Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> readSequenceKVs(Configuration hconf, String path) throws IOException {
+ final Reader reader = new Reader(hconf, SequenceFile.Reader.file(new Path(path)));
+ return new Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
+ @Override
+ public Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator() {
+ return new Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
+ ImmutableBytesWritable k = new ImmutableBytesWritable();
+ ImmutableBytesWritable v = new ImmutableBytesWritable();
+ Pair<ImmutableBytesWritable, ImmutableBytesWritable> pair = new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(k, v);
- @Override
- public boolean hasNext() {
- boolean hasNext = false;
- try {
- hasNext = reader.next(k, v);
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- if (hasNext == false) {
- IOUtils.closeQuietly(reader);
- }
- }
- return hasNext;
- }
+ @Override
+ public boolean hasNext() {
+ boolean hasNext = false;
+ try {
+ hasNext = reader.next(k, v);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (hasNext == false) {
+ IOUtils.closeQuietly(reader);
+ }
+ }
+ return hasNext;
+ }
- @Override
- public Pair<ImmutableBytesWritable, ImmutableBytesWritable> next() {
- return pair;
- }
+ @Override
+ public Pair<ImmutableBytesWritable, ImmutableBytesWritable> next() {
+ return pair;
+ }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
- };
- }
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+ };
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
index bd01b2c..ddeef6e 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
@@ -18,21 +18,17 @@
package org.apache.kylin.invertedindex.invertedindex;
+import java.io.IOException;
+import java.util.UUID;
+
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.invertedindex.IIDescManager;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.invertedindex.model.IIDesc;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import java.io.IOException;
-import java.util.List;
-import java.util.UUID;
-
/**
* Created by shaoshi on 1/30/15.
*/
@@ -72,7 +68,6 @@ public class IIDescManagerTest extends LocalFileMetadataTestCase {
mgr.createIIDesc(desc);
-
desc = mgr.getIIDesc(newDescName);
Assert.assertNotNull(desc);
@@ -83,7 +78,6 @@ public class IIDescManagerTest extends LocalFileMetadataTestCase {
Assert.assertNull(mgr.getIIDesc(newDescName));
-
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
index 2bbda0a..b816eae 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
@@ -18,6 +18,8 @@
package org.apache.kylin.invertedindex.invertedindex;
+import java.io.IOException;
+
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.invertedindex.IIDescManager;
@@ -28,9 +30,6 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import java.io.IOException;
-
-
/**
* Created by shaoshi on 1/30/15.
*/
@@ -68,5 +67,3 @@ public class IIDescTest extends LocalFileMetadataTestCase {
Assert.assertEquals(iiDesc, desc2);
}
}
-
-
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
index 53ed70c..1a609d8 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
@@ -18,6 +18,9 @@
package org.apache.kylin.invertedindex.invertedindex;
+import java.io.IOException;
+import java.util.List;
+
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.invertedindex.IIDescManager;
@@ -29,9 +32,6 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import java.io.IOException;
-import java.util.List;
-
/**
* Created by shaoshi on 2/5/15.
*/
@@ -46,7 +46,6 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
cleanupTestMetadata();
}
-
@Test
public void testGetIIsByDesc() throws IOException {
IIManager mgr = IIManager.getInstance(getTestConfig());
@@ -55,7 +54,6 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
Assert.assertTrue(iiInstances.size() > 0);
-
IIInstance instance = iiInstances.get(0);
Dictionary dict = mgr.getDictionary(instance.getFirstSegment(), instance.getDescriptor().findColumnRef("DEFAULT.TEST_KYLIN_FACT", "LSTG_SITE_ID"));
@@ -63,11 +61,9 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
Assert.assertNotNull(dict);
}
-
@Test
public void testCreateIIInstance() throws IOException {
-
IIDesc iiDesc = IIDescManager.getInstance(getTestConfig()).getIIDesc("test_kylin_ii_desc");
IIInstance ii = IIInstance.create("new_ii", "default", iiDesc);
@@ -81,5 +77,4 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
Assert.assertNotNull(iiMgr.getII("new_ii"));
}
-
}
[03/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java b/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
index 9641ca3..45516c9 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
@@ -16,17 +16,23 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
+import java.io.IOException;
+
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.*;
-import org.apache.hadoop.hbase.client.*;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.log4j.Logger;
-import java.io.File;
-import java.io.IOException;
/**
* Created by jiazhong on 2015/5/25.
@@ -42,10 +48,8 @@ public class MonitorMetaManager {
final static String ROW_KEY_QUERY_READING_FILE = "/performance/query_log_file_reading";
final static String ROW_KEY_QUERY_READING_FILE_LINE = "/performance/query_log_file_reading";
-
final static String ROW_KEY_API_REQ_LOG_READ_FILES = "/performance/api_req_log_files_already_read";
-
final static Logger logger = Logger.getLogger(MonitorMetaManager.class);
static Configuration conf = null;
@@ -59,16 +63,15 @@ public class MonitorMetaManager {
conf = HBaseConfiguration.create();
}
-
/*
* meta data initialize
* @unused
*/
public static void init() throws Exception {
MonitorMetaManager.TABLE_NAME = monitorConfig.getMetadataUrlPrefix();
- logger.info("Monitor Metadata Table :"+MonitorMetaManager.TABLE_NAME);
+ logger.info("Monitor Metadata Table :" + MonitorMetaManager.TABLE_NAME);
logger.info("init monitor metadata,create table if not exist");
- MonitorMetaManager.creatTable(TABLE_NAME, new String[]{COLUMN_FAMILY});
+ MonitorMetaManager.creatTable(TABLE_NAME, new String[] { COLUMN_FAMILY });
}
/*
@@ -76,29 +79,28 @@ public class MonitorMetaManager {
*/
public static void markQueryFileAsRead(String filename) throws IOException {
String read_query_log_file = MonitorMetaManager.getReadQueryLogFiles();
- if(StringUtils.isEmpty(read_query_log_file)){
- read_query_log_file = filename;
- }else{
+ if (StringUtils.isEmpty(read_query_log_file)) {
+ read_query_log_file = filename;
+ } else {
read_query_log_file = read_query_log_file.concat(",").concat(filename);
}
- MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READ_FILES, COLUMN_FAMILY,COLUMN, read_query_log_file);
+ MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READ_FILES, COLUMN_FAMILY, COLUMN, read_query_log_file);
}
/*
* mark reading file for tracking
*/
public static void markQueryReadingFile(String query_reading_file) throws IOException {
- MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE, COLUMN_FAMILY,COLUMN, query_reading_file);
+ MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE, COLUMN_FAMILY, COLUMN, query_reading_file);
}
/*
* mark reading line for tracking
*/
public static void markQueryReadingLine(String line_num) throws IOException {
- MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE_LINE, COLUMN_FAMILY,COLUMN, line_num);
+ MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE_LINE, COLUMN_FAMILY, COLUMN, line_num);
}
-
/*
* get has been read file name list
*/
@@ -114,7 +116,6 @@ public class MonitorMetaManager {
return getListWithRowkey(TABLE_NAME, ROW_KEY_QUERY_READ_FILES);
}
-
/*
* get has been read file
*/
@@ -127,11 +128,10 @@ public class MonitorMetaManager {
}
}
- fileList = fileList==null?"":fileList;
+ fileList = fileList == null ? "" : fileList;
return fileList;
}
-
/*
* mark api req log file as read after parsing
*/
@@ -142,10 +142,9 @@ public class MonitorMetaManager {
} else {
read_api_req_log_files = read_api_req_log_files.concat(",").concat(filename);
}
- MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_API_REQ_LOG_READ_FILES, COLUMN_FAMILY,COLUMN, read_api_req_log_files);
+ MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_API_REQ_LOG_READ_FILES, COLUMN_FAMILY, COLUMN, read_api_req_log_files);
}
-
/*
* get has been read log file name list
*/
@@ -161,7 +160,6 @@ public class MonitorMetaManager {
return getListWithRowkey(TABLE_NAME, ROW_KEY_API_REQ_LOG_READ_FILES);
}
-
/*
* create table in hbase
*/
@@ -182,7 +180,7 @@ public class MonitorMetaManager {
/*
* update cell in hbase
*/
- public static void updateData(String tableName, String rowKey, String family,String column, String value) throws IOException {
+ public static void updateData(String tableName, String rowKey, String family, String column, String value) throws IOException {
HTable table = new HTable(conf, Bytes.toBytes(tableName));
Put put = new Put(rowKey.getBytes());
put.add(family.getBytes(), column.getBytes(), value.getBytes());
@@ -191,10 +189,10 @@ public class MonitorMetaManager {
} catch (IOException e) {
e.printStackTrace();
}
- logger.info("update table ["+tableName+"]");
- logger.info("rowKey ["+rowKey+"]");
- logger.info("column family ["+family+"]");
- logger.info("value ["+value+"]");
+ logger.info("update table [" + tableName + "]");
+ logger.info("rowKey [" + rowKey + "]");
+ logger.info("column family [" + family + "]");
+ logger.info("value [" + value + "]");
logger.info("end insert data ......");
}
@@ -208,5 +206,4 @@ public class MonitorMetaManager {
return result;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java b/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
index 5a1c8c8..31e1033 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
@@ -18,13 +18,11 @@
package org.apache.kylin.monitor;
-import au.com.bytecode.opencsv.CSVWriter;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.*;
-import org.apache.log4j.Logger;
-
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@@ -32,10 +30,21 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.log4j.Logger;
+
+import au.com.bytecode.opencsv.CSVWriter;
+
/**
* @author jiazhong
*/
@@ -46,9 +55,9 @@ public class QueryParser {
final static String QUERY_LOG_FILE_PATTERN = "kylin_query.log.(\\d{4}-\\d{2}-\\d{2})$";
final static String QUERY_LOG_PARSE_RESULT_FILENAME = "kylin_query_log.csv";
static String QUERY_PARSE_RESULT_PATH = null;
- static String DEPLOY_ENV;
+ static String DEPLOY_ENV;
- final static String[] KYLIN_QUERY_CSV_HEADER = {"REQ_TIME","REQ_DATE", "SQL", "USER", "IS_SUCCESS", "LATENCY", "PROJECT", "REALIZATION NAMES", "CUBOID IDS", "TOTAL SCAN COUNT", "RESULT ROW COUNT", "ACCEPT PARTIAL", "IS PARTIAL RESULT", "HIT CACHE", "MESSAGE","DEPLOY_ENV"};
+ final static String[] KYLIN_QUERY_CSV_HEADER = { "REQ_TIME", "REQ_DATE", "SQL", "USER", "IS_SUCCESS", "LATENCY", "PROJECT", "REALIZATION NAMES", "CUBOID IDS", "TOTAL SCAN COUNT", "RESULT ROW COUNT", "ACCEPT PARTIAL", "IS PARTIAL RESULT", "HIT CACHE", "MESSAGE", "DEPLOY_ENV" };
private ConfigUtils monitorConfig;
@@ -108,11 +117,11 @@ public class QueryParser {
logger.info("Start parsing file " + filePath + " !");
-// writer config init
+ // writer config init
FileSystem fs = this.getHdfsFileSystem();
org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
OutputStreamWriter writer = new OutputStreamWriter(fs.append(resultStorePath));
- CSVWriter cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+ CSVWriter cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
Pattern p_query_start = Pattern.compile("^\\[.*\\]:\\[(.*),.*\\]\\[.*\\]\\[.*QueryService.logQuery.*\\].*");
@@ -145,14 +154,14 @@ public class QueryParser {
m_query_body.reset(query_body);
logger.info("parsing query...");
logger.info(query_body);
-// skip group(8) and group(14)
+ // skip group(8) and group(14)
if (m_query_body.find()) {
ArrayList<String> groups = new ArrayList<String>();
int grp_count = m_query_body.groupCount();
for (int i = 1; i <= grp_count; i++) {
if (i != 8 && i != 14) {
String grp_item = m_query_body.group(i);
- grp_item = grp_item ==null?"":grp_item.trim();
+ grp_item = grp_item == null ? "" : grp_item.trim();
groups.add(grp_item);
}
}
@@ -161,7 +170,7 @@ public class QueryParser {
groups.set(0, format.format(new Date(start_time)));
groups.add(DEPLOY_ENV);
String[] recordArray = groups.toArray(new String[groups.size()]);
-// write to hdfs
+ // write to hdfs
cwriter.writeNext(recordArray);
}
@@ -192,7 +201,7 @@ public class QueryParser {
fs = this.getHdfsFileSystem();
org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
writer = new OutputStreamWriter(fs.append(resultStorePath));
- cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+ cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
cwriter.writeNext(record);
@@ -205,7 +214,6 @@ public class QueryParser {
}
}
-
/*
* get all query log files
*/
@@ -229,13 +237,12 @@ public class QueryParser {
return logFiles;
}
-
/*
* get hdfs fileSystem
*/
public FileSystem getHdfsFileSystem() throws IOException {
Configuration conf = new Configuration();
-// conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
+ // conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
FileSystem fs = null;
try {
fs = FileSystem.get(conf);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
----------------------------------------------------------------------
diff --git a/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java b/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
index 0b2d7a5..cb5892c 100644
--- a/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
+++ b/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
@@ -16,17 +16,16 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
/**
* Created by jiazhong on 2015/5/27.
*/
@@ -51,9 +50,8 @@ public class ParseLogTest {
}
-
@Before
- public void before(){
+ public void before() {
queryParser = new QueryParser();
apiReqParser = new ApiRequestParser();
}
@@ -68,10 +66,8 @@ public class ParseLogTest {
queryParser.getQueryLogFiles();
}
- private void testApiReqParsing(){
+ private void testApiReqParsing() {
apiReqParser.getRequestLogFiles();
}
-
-
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java b/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
index 011db30..b28b2cf 100644
--- a/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
+++ b/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
@@ -22,19 +22,19 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.calcite.DataContext;
import org.apache.calcite.jdbc.CalciteConnection;
import org.apache.calcite.linq4j.Enumerator;
import org.apache.calcite.rel.type.RelDataTypeField;
-import org.apache.kylin.query.relnode.OLAPContext;
-import org.apache.kylin.storage.IStorageEngine;
-import org.apache.kylin.storage.StorageEngineFactory;
import org.apache.kylin.metadata.filter.CompareTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.tuple.ITuple;
import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.query.relnode.OLAPContext;
+import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.StorageEngineFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
*/
@@ -46,7 +46,7 @@ public class CubeEnumerator implements Enumerator<Object[]> {
private final DataContext optiqContext;
private final Object[] current;
private ITupleIterator cursor;
- private int[] fieldIndexes;
+ private int[] fieldIndexes;
private List<String> tupleFieldsSnapshot;
public CubeEnumerator(OLAPContext olapContext, DataContext optiqContext) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java b/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
index c538080..1c1b412 100644
--- a/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
+++ b/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
@@ -48,7 +48,7 @@ public class LookupTableEnumerator implements Enumerator<Object[]> {
@SuppressWarnings("unused")
private final static Logger logger = LoggerFactory.getLogger(LookupTableEnumerator.class);
-
+
public LookupTableEnumerator(OLAPContext olapContext) {
//TODO: assuming LookupTableEnumerator is handled by a cube
@@ -57,7 +57,7 @@ public class LookupTableEnumerator implements Enumerator<Object[]> {
if (olapContext.realization instanceof CubeInstance)
cube = (CubeInstance) olapContext.realization;
else if (olapContext.realization instanceof HybridInstance) {
- final HybridInstance hybridInstance = (HybridInstance)olapContext.realization;
+ final HybridInstance hybridInstance = (HybridInstance) olapContext.realization;
final IRealization latestRealization = hybridInstance.getLatestRealization();
if (latestRealization instanceof CubeInstance) {
cube = (CubeInstance) latestRealization;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java b/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
index b80a483..6fa2731 100644
--- a/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
+++ b/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
@@ -24,8 +24,8 @@ import org.apache.calcite.rel.InvalidRelException;
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.rel.convert.ConverterRule;
import org.apache.calcite.rel.logical.LogicalAggregate;
-import org.apache.kylin.query.relnode.OLAPRel;
import org.apache.kylin.query.relnode.OLAPAggregateRel;
+import org.apache.kylin.query.relnode.OLAPRel;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java b/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
index 3dcbbd7..33f3ea8 100644
--- a/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
+++ b/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
@@ -41,7 +41,7 @@ public class OLAPFilterRule extends RelOptRule {
RelTraitSet origTraitSet = filter.getTraitSet();
RelTraitSet traitSet = origTraitSet.replace(OLAPRel.CONVENTION).simplify();
-
+
OLAPFilterRel olapFilter = new OLAPFilterRel(filter.getCluster(), traitSet, convert(filter.getInput(), traitSet), filter.getCondition());
call.transformTo(olapFilter);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java b/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
index 5eb1ff8..76c2baf 100644
--- a/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
+++ b/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
@@ -42,7 +42,7 @@ public class OLAPLimitRule extends RelOptRule {
if (sort.offset == null && sort.fetch == null) {
return;
}
-
+
RelTraitSet origTraitSet = sort.getTraitSet();
RelTraitSet traitSet = origTraitSet.replace(OLAPRel.CONVENTION).simplify();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
index 832d4c8..b9adb4a 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
@@ -18,7 +18,12 @@
package org.apache.kylin.query.relnode;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import org.apache.calcite.adapter.enumerable.EnumerableAggregate;
import org.apache.calcite.adapter.enumerable.EnumerableConvention;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
index 86473b5..73a91d8 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
@@ -27,14 +27,14 @@ import java.util.List;
import java.util.Map;
import org.apache.calcite.rel.type.RelDataType;
-import org.apache.kylin.metadata.realization.SQLDigest;
-import org.apache.kylin.query.schema.OLAPSchema;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.model.FunctionDesc;
import org.apache.kylin.metadata.model.JoinDesc;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.SQLDigest;
+import org.apache.kylin.query.schema.OLAPSchema;
import org.apache.kylin.storage.StorageContext;
-import org.apache.kylin.metadata.filter.TupleFilter;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
index af69ec5..21880ce 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
@@ -90,7 +90,7 @@ public class OLAPToEnumerableConverter extends ConverterImpl implements Enumerab
OLAPRel.JavaImplementor impl = new OLAPRel.JavaImplementor(enumImplementor);
EnumerableRel inputAsEnum = impl.createEnumerable((OLAPRel) getInput());
this.replaceInput(0, inputAsEnum);
-
+
if (System.getProperty("calcite.debug") != null) {
String dumpPlan = RelOptUtil.dumpPlan("", this, false, SqlExplainLevel.DIGEST_ATTRIBUTES);
System.out.println("EXECUTION PLAN AFTER REWRITE");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java b/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
index e9e7e7b..ad507dd 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
@@ -21,13 +21,13 @@ package org.apache.kylin.query.routing;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.metadata.project.ProjectManager;
+import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.query.relnode.OLAPContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
-import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.metadata.realization.IRealization;
-import org.apache.kylin.query.relnode.OLAPContext;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
index 04972fa..86d9318 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
@@ -21,14 +21,16 @@ package org.apache.kylin.query.routing;
import java.util.Iterator;
import java.util.List;
-import org.apache.kylin.query.routing.RoutingRules.*;
+import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.RealizationType;
+import org.apache.kylin.query.relnode.OLAPContext;
+import org.apache.kylin.query.routing.RoutingRules.AdjustForWeeklyMatchedRealization;
+import org.apache.kylin.query.routing.RoutingRules.RealizationSortRule;
+import org.apache.kylin.query.routing.RoutingRules.RemoveUncapableRealizationsRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
-import org.apache.kylin.metadata.realization.IRealization;
-import org.apache.kylin.metadata.realization.RealizationType;
-import org.apache.kylin.query.relnode.OLAPContext;
/**
* Created by Hongbin Ma(Binmahone) on 1/5/15.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
index 2c2ac4a..e00ae4f 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
@@ -18,6 +18,10 @@
package org.apache.kylin.query.routing.RoutingRules;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.kylin.cube.CubeCapabilityChecker;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.model.CubeDesc;
@@ -32,10 +36,6 @@ import org.apache.kylin.storage.hybrid.HybridInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
/**
*/
public class AdjustForWeeklyMatchedRealization extends RoutingRule {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
index 72995d6..734e7a6 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
@@ -18,14 +18,18 @@
package org.apache.kylin.query.routing.RoutingRules;
-import java.util.*;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
-import com.google.common.collect.Maps;
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.query.relnode.OLAPContext;
import org.apache.kylin.query.routing.RoutingRule;
+import com.google.common.collect.Maps;
+
/**
* Created by Hongbin Ma(Binmahone) on 1/5/15.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
index f9a250e..d101288 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
@@ -18,15 +18,15 @@
package org.apache.kylin.query.routing.RoutingRules;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.query.relnode.OLAPContext;
import org.apache.kylin.query.routing.RoutingRule;
import org.apache.kylin.storage.hybrid.HybridInstance;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
/**
*/
public class RealizationSortRule extends RoutingRule {
@@ -60,7 +60,6 @@ public class RealizationSortRule extends RoutingRule {
}
});
-
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java b/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
index 356c1e3..7881c42 100644
--- a/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
+++ b/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
@@ -21,11 +21,10 @@ package org.apache.kylin.query.sqlfunc;
import java.io.IOException;
import java.nio.ByteBuffer;
+import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
-
/**
* @author xjiang
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java b/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
index b85379a..71693f9 100644
--- a/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
@@ -22,13 +22,12 @@ import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
-
/**
* Created by honma on 7/2/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/H2Database.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/H2Database.java b/query/src/test/java/org/apache/kylin/query/test/H2Database.java
index ed0c13f..afe9f5b 100644
--- a/query/src/test/java/org/apache/kylin/query/test/H2Database.java
+++ b/query/src/test/java/org/apache/kylin/query/test/H2Database.java
@@ -28,13 +28,12 @@ import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class H2Database {
private static final Logger logger = LoggerFactory.getLogger(H2Database.class);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
index 864e3c1..fa40dd4 100644
--- a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
@@ -24,7 +24,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.query.routing.RoutingRules.RealizationPriorityRule;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import com.google.common.collect.Maps;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
index 415783a..a653db3 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.query.test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.sql.DriverManager;
@@ -27,7 +27,14 @@ import java.util.List;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.query.enumerator.OLAPQuery;
+import org.apache.kylin.query.relnode.OLAPContext;
+import org.apache.kylin.query.schema.OLAPSchemaFactory;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
import org.apache.kylin.storage.hybrid.HybridManager;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
@@ -36,14 +43,6 @@ import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.HBaseMetadataTestCase;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.query.relnode.OLAPContext;
-import org.apache.kylin.query.schema.OLAPSchemaFactory;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
-
@Ignore("KylinQueryTest is contained by CombinationTest")
public class KylinQueryTest extends KylinTestBase {
@@ -249,7 +248,6 @@ public class KylinQueryTest extends KylinTestBase {
}
}
-
@Test
public void testDynamicQuery() throws Exception {
execAndCompDynamicQuery("src/test/resources/query/sql_dynamic", null, true);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
index 819d2f9..450975a 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
@@ -43,6 +43,7 @@ import java.util.Set;
import java.util.logging.LogManager;
import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.KylinConfig;
import org.dbunit.Assertion;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
@@ -57,7 +58,6 @@ import org.dbunit.ext.h2.H2DataTypeFactory;
import org.junit.Assert;
import com.google.common.io.Files;
-import org.apache.kylin.common.KylinConfig;
/**
* Created by hongbin on 2/18/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
index 030c04e..e6f2f4f 100644
--- a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
+++ b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
@@ -18,6 +18,10 @@
package org.apache.kylin.rest;
+import java.io.File;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
import org.apache.catalina.Context;
import org.apache.catalina.core.AprLifecycleListener;
import org.apache.catalina.core.StandardServer;
@@ -27,10 +31,6 @@ import org.apache.hadoop.util.Shell;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.rest.util.ClasspathUtil;
-import java.io.File;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
public class DebugTomcat {
public static void setupDebugEnv() {
@@ -39,13 +39,13 @@ public class DebugTomcat {
ClasspathUtil.addClasspath(new File("../examples/test_case_data/sandbox").getAbsolutePath());
System.setProperty(KylinConfig.KYLIN_CONF, "../examples/test_case_data/sandbox");
overrideDevJobJarLocations();
-
+
System.setProperty("spring.profiles.active", "testing");
-
+
//avoid log permission issue
if (System.getProperty("catalina.home") == null)
- System.setProperty("catalina.home", ".");
-
+ System.setProperty("catalina.home", ".");
+
if (System.getProperty("hdp.version") == null)
System.setProperty("hdp.version", "2.2.4.2-2"); // mapred-site.xml ref this
@@ -98,12 +98,12 @@ public class DebugTomcat {
public static void main(String[] args) throws Exception {
setupDebugEnv();
-
+
int port = 7070;
if (args.length >= 1) {
port = Integer.parseInt(args[0]);
}
-
+
String webBase = new File("../webapp/app").getAbsolutePath();
if (new File(webBase, "WEB-INF").exists() == false) {
throw new RuntimeException("In order to launch Kylin web app from IDE, please copy server/src/main/webapp/WEB-INF to webapp/app/WEB-INF");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java b/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
index d0d2b66..461aa3f 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
@@ -21,6 +21,7 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
import java.util.List;
+import org.apache.kylin.common.persistence.AclEntity;
import org.apache.kylin.rest.request.AccessRequest;
import org.apache.kylin.rest.response.AccessEntryResponse;
import org.apache.kylin.rest.security.AclPermissionFactory;
@@ -36,8 +37,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.apache.kylin.common.persistence.AclEntity;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java b/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
index b855827..de3c4b4 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
@@ -18,6 +18,8 @@
package org.apache.kylin.rest.controller;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.rest.request.MetricsRequest;
import org.apache.kylin.rest.request.UpdateConfigRequest;
import org.apache.kylin.rest.response.GeneralResponse;
import org.apache.kylin.rest.response.MetricsResponse;
@@ -30,9 +32,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.rest.request.MetricsRequest;
-
/**
* Admin Controller is defined as Restful API entrance for UI.
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java b/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
index 9b75f1b..0a3b077 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
@@ -20,19 +20,17 @@ package org.apache.kylin.rest.controller;
import javax.servlet.http.HttpServletRequest;
+import org.apache.kylin.rest.exception.BadRequestException;
import org.apache.kylin.rest.exception.ForbiddenException;
+import org.apache.kylin.rest.exception.NotFoundException;
import org.apache.kylin.rest.response.ErrorResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
-import org.apache.kylin.rest.exception.BadRequestException;
-import org.apache.kylin.rest.exception.NotFoundException;
-
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/1/13 Time: 10:54 PM To
* change this template use File | Settings | File Templates.
@@ -48,7 +46,6 @@ public class BasicController {
logger.error("", ex);
return new ErrorResponse(req.getRequestURL().toString(), ex);
}
-
@ResponseStatus(HttpStatus.FORBIDDEN)
@ExceptionHandler(ForbiddenException.class)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java b/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
index 3ed30c5..74216f4 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
@@ -18,6 +18,8 @@
package org.apache.kylin.rest.controller;
+import java.io.IOException;
+
import org.apache.kylin.common.restclient.Broadcaster;
import org.apache.kylin.common.restclient.Broadcaster.EVENT;
import org.apache.kylin.rest.service.CacheService;
@@ -30,8 +32,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import java.io.IOException;
-
/**
* CubeController is defined as Restful API entrance for UI.
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
index 1c47a1e..b310086 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
@@ -85,7 +85,7 @@ public class CubeController extends BasicController {
@Autowired
private JobService jobService;
- @RequestMapping(value = "", method = {RequestMethod.GET})
+ @RequestMapping(value = "", method = { RequestMethod.GET })
@ResponseBody
public List<CubeInstance> getCubes(@RequestParam(value = "cubeName", required = false) String cubeName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam("limit") Integer limit, @RequestParam("offset") Integer offset) {
return cubeService.getCubes(cubeName, projectName, (null == limit) ? 20 : limit, offset);
@@ -99,7 +99,7 @@ public class CubeController extends BasicController {
* @throws UnknownHostException
* @throws IOException
*/
- @RequestMapping(value = "/{cubeName}/segs/{segmentName}/sql", method = {RequestMethod.GET})
+ @RequestMapping(value = "/{cubeName}/segs/{segmentName}/sql", method = { RequestMethod.GET })
@ResponseBody
public GeneralResponse getSql(@PathVariable String cubeName, @PathVariable String segmentName) {
CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
@@ -122,7 +122,7 @@ public class CubeController extends BasicController {
* @throws IOException
* @throws CubeIntegrityException
*/
- @RequestMapping(value = "/{cubeName}/notify_list", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/notify_list", method = { RequestMethod.PUT })
@ResponseBody
public void updateNotifyList(@PathVariable String cubeName, @RequestBody List<String> notifyList) {
CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
@@ -140,7 +140,7 @@ public class CubeController extends BasicController {
}
- @RequestMapping(value = "/{cubeName}/cost", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/cost", method = { RequestMethod.PUT })
@ResponseBody
public CubeInstance updateCubeCost(@PathVariable String cubeName, @RequestParam(value = "cost") int cost) {
try {
@@ -152,7 +152,7 @@ public class CubeController extends BasicController {
}
}
- @RequestMapping(value = "/{cubeName}/coprocessor", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/coprocessor", method = { RequestMethod.PUT })
@ResponseBody
public Map<String, Boolean> updateCubeCoprocessor(@PathVariable String cubeName, @RequestParam(value = "force") String force) {
try {
@@ -170,7 +170,7 @@ public class CubeController extends BasicController {
*
* @throws IOException
*/
- @RequestMapping(value = "/{cubeName}/segs/{segmentName}/refresh_lookup", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/segs/{segmentName}/refresh_lookup", method = { RequestMethod.PUT })
@ResponseBody
public CubeInstance rebuildLookupSnapshot(@PathVariable String cubeName, @PathVariable String segmentName, @RequestParam(value = "lookupTable") String lookupTable) {
try {
@@ -188,7 +188,7 @@ public class CubeController extends BasicController {
* @return
* @throws IOException
*/
- @RequestMapping(value = "/{cubeName}/rebuild", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/rebuild", method = { RequestMethod.PUT })
@ResponseBody
public JobInstance rebuild(@PathVariable String cubeName, @RequestBody JobBuildRequest jobBuildRequest) {
try {
@@ -205,7 +205,7 @@ public class CubeController extends BasicController {
}
}
- @RequestMapping(value = "/{cubeName}/disable", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/disable", method = { RequestMethod.PUT })
@ResponseBody
public CubeInstance disableCube(@PathVariable String cubeName) {
try {
@@ -223,7 +223,7 @@ public class CubeController extends BasicController {
}
}
- @RequestMapping(value = "/{cubeName}/purge", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/purge", method = { RequestMethod.PUT })
@ResponseBody
public CubeInstance purgeCube(@PathVariable String cubeName) {
try {
@@ -241,7 +241,7 @@ public class CubeController extends BasicController {
}
}
- @RequestMapping(value = "/{cubeName}/enable", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{cubeName}/enable", method = { RequestMethod.PUT })
@ResponseBody
public CubeInstance enableCube(@PathVariable String cubeName) {
try {
@@ -258,7 +258,7 @@ public class CubeController extends BasicController {
}
}
- @RequestMapping(value = "/{cubeName}", method = {RequestMethod.DELETE})
+ @RequestMapping(value = "/{cubeName}", method = { RequestMethod.DELETE })
@ResponseBody
public void deleteCube(@PathVariable String cubeName) {
CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
@@ -280,7 +280,7 @@ public class CubeController extends BasicController {
* @return Table metadata array
* @throws IOException
*/
- @RequestMapping(value = "", method = {RequestMethod.POST})
+ @RequestMapping(value = "", method = { RequestMethod.POST })
@ResponseBody
public CubeRequest saveCubeDesc(@RequestBody CubeRequest cubeRequest) {
//Update Model
@@ -336,7 +336,7 @@ public class CubeController extends BasicController {
* @throws JsonProcessingException
* @throws IOException
*/
- @RequestMapping(value = "", method = {RequestMethod.PUT})
+ @RequestMapping(value = "", method = { RequestMethod.PUT })
@ResponseBody
public CubeRequest updateCubeDesc(@RequestBody CubeRequest cubeRequest) throws JsonProcessingException {
@@ -409,7 +409,7 @@ public class CubeController extends BasicController {
* @return true
* @throws IOException
*/
- @RequestMapping(value = "/{cubeName}/hbase", method = {RequestMethod.GET})
+ @RequestMapping(value = "/{cubeName}/hbase", method = { RequestMethod.GET })
@ResponseBody
public List<HBaseResponse> getHBaseInfo(@PathVariable String cubeName) {
List<HBaseResponse> hbase = new ArrayList<HBaseResponse>();
@@ -451,7 +451,7 @@ public class CubeController extends BasicController {
try {
logger.debug("Saving cube " + cubeRequest.getCubeDescData());
desc = JsonUtil.readValue(cubeRequest.getCubeDescData(), CubeDesc.class);
-// desc.setRetentionRange(cubeRequest.getRetentionRange());
+ // desc.setRetentionRange(cubeRequest.getRetentionRange());
} catch (JsonParseException e) {
logger.error("The cube definition is not valid.", e);
updateRequest(cubeRequest, false, e.getMessage());
@@ -488,7 +488,7 @@ public class CubeController extends BasicController {
*/
private String omitMessage(List<String> errors) {
StringBuffer buffer = new StringBuffer();
- for (Iterator<String> iterator = errors.iterator(); iterator.hasNext(); ) {
+ for (Iterator<String> iterator = errors.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
buffer.append(string);
buffer.append("\n");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java b/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
index faec985..aaa3496 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
@@ -20,6 +20,8 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.rest.service.CubeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -28,9 +30,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.model.CubeDesc;
-
/**
* @author xduo
*
@@ -54,7 +53,7 @@ public class CubeDescController {
@ResponseBody
public CubeDesc[] getCube(@PathVariable String cubeName) {
CubeInstance cubeInstance = cubeService.getCubeManager().getCube(cubeName);
- if (cubeInstance == null){
+ if (cubeInstance == null) {
return null;
}
CubeDesc cSchema = cubeInstance.getDescriptor();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
index 0e0a0b1..26ba913 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
@@ -26,8 +26,16 @@ import java.util.List;
import java.util.Map;
import java.util.TimeZone;
+import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.lock.ZookeeperJobLock;
+import org.apache.kylin.job.JobInstance;
+import org.apache.kylin.job.constant.JobStatusEnum;
+import org.apache.kylin.job.engine.JobEngineConfig;
+import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
+import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.exception.InternalErrorException;
+import org.apache.kylin.rest.request.JobListRequest;
+import org.apache.kylin.rest.service.JobService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
@@ -38,15 +46,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.JobInstance;
-import org.apache.kylin.job.constant.JobStatusEnum;
-import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.request.JobListRequest;
-import org.apache.kylin.rest.service.JobService;
-
/**
* @author ysong1
* @author Jack
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
index 2499f59..85c5874 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
@@ -20,6 +20,9 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.rest.service.CubeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -28,10 +31,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.DataModelDesc;
-
/**
* @author jiazhong
*
@@ -54,10 +53,10 @@ public class ModelController {
@RequestMapping(value = "/{model_name}", method = { RequestMethod.GET })
@ResponseBody
public DataModelDesc getModel(@PathVariable String model_name) {
- MetadataManager metaManager= MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
+ MetadataManager metaManager = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
DataModelDesc modeDesc = metaManager.getDataModelDesc(model_name);
return modeDesc;
-
+
}
public void setCubeService(CubeService cubeService) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java b/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
index 7158916..156c782 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
@@ -18,7 +18,11 @@
package org.apache.kylin.rest.controller;
+import java.io.IOException;
+import java.util.List;
+
import net.sf.ehcache.CacheManager;
+
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.rest.service.CubeService;
import org.apache.kylin.rest.service.PerformService;
@@ -26,10 +30,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.List;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
/**
* Handle query requests.
@@ -42,7 +45,6 @@ public class PerformanceController extends BasicController {
private static final Logger logger = LoggerFactory.getLogger(PerformanceController.class);
-
@Autowired
private PerformService performService;
@@ -64,46 +66,42 @@ public class PerformanceController extends BasicController {
return performService.projectPercentile();
}
-
@RequestMapping(value = "/last30DayPercentile", method = RequestMethod.GET)
@ResponseBody
public List<String[]> last30DayPercentile() throws IOException {
return performService.last30DayPercentile();
}
- @RequestMapping(value = "/cubesStorage", method = {RequestMethod.GET})
+ @RequestMapping(value = "/cubesStorage", method = { RequestMethod.GET })
@ResponseBody
public List<CubeInstance> getCubeStorage() {
return cubeService.listAllCubes(null, null);
}
-
- @RequestMapping(value = "/totalQueryUser", method = {RequestMethod.GET})
+ @RequestMapping(value = "/totalQueryUser", method = { RequestMethod.GET })
@ResponseBody
public List<String[]> totalQueryUser() throws IOException {
return performService.getTotalQueryUser();
}
- @RequestMapping(value = "/dailyQueryCount", method = {RequestMethod.GET})
+ @RequestMapping(value = "/dailyQueryCount", method = { RequestMethod.GET })
@ResponseBody
public List<String[]> dailyQueryCount() throws IOException {
return performService.dailyQueryCount();
}
- @RequestMapping(value = "/avgDayQuery", method = {RequestMethod.GET})
+ @RequestMapping(value = "/avgDayQuery", method = { RequestMethod.GET })
@ResponseBody
public List<String[]> avgDayQuery() throws IOException {
return performService.avgDayQuery();
}
- @RequestMapping(value = "/listCubes", method = {RequestMethod.GET})
+ @RequestMapping(value = "/listCubes", method = { RequestMethod.GET })
@ResponseBody
public List<CubeInstance> getCubes() {
- return cubeService.listAllCubes(null,null);
+ return cubeService.listAllCubes(null, null);
}
-
-
public void setCubeService(CubeService cubeService) {
this.cubeService = cubeService;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java b/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
index d34b854..a2419d4 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
@@ -21,8 +21,8 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
import java.util.List;
-import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.rest.exception.InternalErrorException;
import org.apache.kylin.rest.request.CreateProjectRequest;
import org.apache.kylin.rest.request.UpdateProjectRequest;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java b/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
index 27ceadc..76b2deb 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
@@ -18,9 +18,19 @@
package org.apache.kylin.rest.controller;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
+
import org.apache.commons.io.IOUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.debug.BackdoorToggles;
@@ -43,19 +53,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
import org.supercsv.io.CsvListWriter;
import org.supercsv.io.ICsvListWriter;
import org.supercsv.prefs.CsvPreference;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
/**
* Handle query requests.
*
@@ -195,11 +201,11 @@ public class QueryController extends BasicController {
}
checkQueryAuth(sqlResponse);
-
+
} catch (Throwable e) { // calcite may throw AssertError
logger.error("Exception when execute sql", e);
String errMsg = QueryUtil.makeErrorMsgUserFriendly(e);
-
+
sqlResponse = new SQLResponse(null, null, 0, true, errMsg);
// Access exception is bind with each user, it will not be cached
@@ -208,7 +214,7 @@ public class QueryController extends BasicController {
exceptionCache.put(new Element(sqlRequest, sqlResponse));
}
}
-
+
if (sqlResponse.getIsException())
throw new InternalErrorException(sqlResponse.getExceptionMessage());
else
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/TableController.java b/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
index 631ac4e..133b5ad 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
@@ -18,6 +18,14 @@
package org.apache.kylin.rest.controller;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
import org.apache.commons.lang.StringUtils;
import org.apache.kylin.metadata.MetadataConstants;
import org.apache.kylin.metadata.model.ColumnDesc;
@@ -31,10 +39,12 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author xduo
@@ -53,7 +63,7 @@ public class TableController extends BasicController {
* @return Table metadata array
* @throws IOException
*/
- @RequestMapping(value = "", method = {RequestMethod.GET})
+ @RequestMapping(value = "", method = { RequestMethod.GET })
@ResponseBody
public List<TableDesc> getHiveTables(@RequestParam(value = "ext", required = false) boolean withExt, @RequestParam(value = "project", required = false) String project) {
long start = System.currentTimeMillis();
@@ -80,7 +90,7 @@ public class TableController extends BasicController {
* @return Table metadata array
* @throws IOException
*/
- @RequestMapping(value = "/{tableName}", method = {RequestMethod.GET})
+ @RequestMapping(value = "/{tableName}", method = { RequestMethod.GET })
@ResponseBody
public TableDesc getHiveTable(@PathVariable String tableName) {
return cubeMgmtService.getMetadataManager().getTableDesc(tableName);
@@ -92,21 +102,21 @@ public class TableController extends BasicController {
* @return Table metadata array
* @throws IOException
*/
- @RequestMapping(value = "/{tableName}/exd-map", method = {RequestMethod.GET})
+ @RequestMapping(value = "/{tableName}/exd-map", method = { RequestMethod.GET })
@ResponseBody
public Map<String, String> getHiveTableExd(@PathVariable String tableName) {
Map<String, String> tableExd = cubeMgmtService.getMetadataManager().getTableDescExd(tableName);
return tableExd;
}
- @RequestMapping(value = "/reload", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/reload", method = { RequestMethod.PUT })
@ResponseBody
public String reloadSourceTable() {
cubeMgmtService.getMetadataManager().reload();
return "ok";
}
- @RequestMapping(value = "/{tables}/{project}", method = {RequestMethod.POST})
+ @RequestMapping(value = "/{tables}/{project}", method = { RequestMethod.POST })
@ResponseBody
public Map<String, String[]> loadHiveTable(@PathVariable String tables, @PathVariable String project) throws IOException {
String submitter = SecurityContextHolder.getContext().getAuthentication().getName();
@@ -115,7 +125,7 @@ public class TableController extends BasicController {
cubeMgmtService.syncTableToProject(loaded, project);
Map<String, String[]> result = new HashMap<String, String[]>();
result.put("result.loaded", loaded);
- result.put("result.unloaded", new String[]{});
+ result.put("result.unloaded", new String[] {});
return result;
}
@@ -125,7 +135,7 @@ public class TableController extends BasicController {
* @return Table metadata array
* @throws IOException
*/
- @RequestMapping(value = "/{tableNames}/cardinality", method = {RequestMethod.PUT})
+ @RequestMapping(value = "/{tableNames}/cardinality", method = { RequestMethod.PUT })
@ResponseBody
public CardinalityRequest generateCardinality(@PathVariable String tableNames, @RequestBody CardinalityRequest request) {
String submitter = SecurityContextHolder.getContext().getAuthentication().getName();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/UserController.java b/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
index d093ff1..94a4808 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
@@ -20,6 +20,7 @@ package org.apache.kylin.rest.controller;
import java.util.List;
+import org.apache.kylin.rest.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -28,8 +29,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import org.apache.kylin.rest.service.UserService;
-
/**
* Handle user authentication request to protected kylin rest resources by
* spring security.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java b/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
index 257adfc..897804c 100644
--- a/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
+++ b/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
@@ -17,14 +17,12 @@
*/
package org.apache.kylin.rest.filter;
-import com.github.isrsal.logging.RequestWrapper;
-import com.github.isrsal.logging.ResponseWrapper;
-import com.sun.jersey.core.util.Base64;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContext;
-import org.springframework.web.filter.OncePerRequestFilter;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.concurrent.atomic.AtomicLong;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
@@ -33,12 +31,16 @@ import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.concurrent.atomic.AtomicLong;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import com.github.isrsal.logging.RequestWrapper;
+import com.github.isrsal.logging.ResponseWrapper;
+import com.sun.jersey.core.util.Base64;
/**
* Created by jiazhong on 2015/4/20.
@@ -54,38 +56,38 @@ public class KylinApiFilter extends OncePerRequestFilter {
}
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
- if(logger.isDebugEnabled()) {
+ if (logger.isDebugEnabled()) {
long requestId = this.id.incrementAndGet();
- request = new RequestWrapper(Long.valueOf(requestId), (HttpServletRequest)request);
- response = new ResponseWrapper(Long.valueOf(requestId), (HttpServletResponse)response);
+ request = new RequestWrapper(Long.valueOf(requestId), (HttpServletRequest) request);
+ response = new ResponseWrapper(Long.valueOf(requestId), (HttpServletResponse) response);
}
try {
- filterChain.doFilter((ServletRequest)request, (ServletResponse)response);
+ filterChain.doFilter((ServletRequest) request, (ServletResponse) response);
} finally {
- if(logger.isDebugEnabled()) {
- this.logRequest((HttpServletRequest)request,(ResponseWrapper)response);
-// this.logResponse((ResponseWrapper)response);
+ if (logger.isDebugEnabled()) {
+ this.logRequest((HttpServletRequest) request, (ResponseWrapper) response);
+ // this.logResponse((ResponseWrapper)response);
}
}
}
- private void logRequest(HttpServletRequest request,ResponseWrapper response) {
+ private void logRequest(HttpServletRequest request, ResponseWrapper response) {
StringBuilder msg = new StringBuilder();
msg.append("REQUEST: ");
HttpSession session = request.getSession(true);
- SecurityContext context = (SecurityContext)session.getAttribute("SPRING_SECURITY_CONTEXT");
+ SecurityContext context = (SecurityContext) session.getAttribute("SPRING_SECURITY_CONTEXT");
- String requester="";
- if(context!=null){
- Authentication authentication= context.getAuthentication();
- if(authentication!=null){
+ String requester = "";
+ if (context != null) {
+ Authentication authentication = context.getAuthentication();
+ if (authentication != null) {
requester = authentication.getName();
}
- }else {
+ } else {
final String authorization = request.getHeader("Authorization");
if (authorization != null && authorization.startsWith("Basic")) {
// Authorization: Basic base64credentials
@@ -96,24 +98,24 @@ public class KylinApiFilter extends OncePerRequestFilter {
requester = values[0];
}
}
- msg.append("REQUESTER="+requester);
+ msg.append("REQUESTER=" + requester);
SimpleDateFormat format = new SimpleDateFormat("z yyyy-MM-dd HH:mm:ss");
msg.append(";REQ_TIME=" + format.format(new Date()));
msg.append(";URI=").append(request.getRequestURI());
msg.append(";METHOD=").append(request.getMethod());
msg.append(";QUERY_STRING=").append(request.getQueryString());
- if(request instanceof RequestWrapper && !this.isMultipart(request)) {
- RequestWrapper requestWrapper = (RequestWrapper)request;
+ if (request instanceof RequestWrapper && !this.isMultipart(request)) {
+ RequestWrapper requestWrapper = (RequestWrapper) request;
try {
- String e = requestWrapper.getCharacterEncoding() != null?requestWrapper.getCharacterEncoding():"UTF-8";
+ String e = requestWrapper.getCharacterEncoding() != null ? requestWrapper.getCharacterEncoding() : "UTF-8";
msg.append(";PAYLOAD=").append(new String(requestWrapper.toByteArray(), e));
} catch (UnsupportedEncodingException var6) {
logger.warn("Failed to parse request payload", var6);
}
}
- msg.append(";RESP_STATUS="+response.getStatus()).append(";");
+ msg.append(";RESP_STATUS=" + response.getStatus()).append(";");
logger.debug(msg.toString());
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java b/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
index 58ee2bc..8ce4c72 100644
--- a/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
+++ b/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
@@ -86,7 +86,7 @@ public class CubeRequest {
public CubeRequest() {
}
- public CubeRequest(long id, String cubeName, String cubeDescData,String modelDescData) {
+ public CubeRequest(long id, String cubeName, String cubeDescData, String modelDescData) {
this.cubeName = cubeName;
this.cubeDescData = cubeDescData;
this.modelDescData = modelDescData;
@@ -99,9 +99,7 @@ public class CubeRequest {
public void setCubeDescData(String cubeDescData) {
this.cubeDescData = cubeDescData;
}
-
-
-
+
public String getModelDescData() {
return modelDescData;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java b/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
index 901badd..a1d17f9 100644
--- a/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
+++ b/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
@@ -28,7 +28,7 @@ public class SQLRequest {
private Integer limit = 0;
private boolean acceptPartial = true;
- private Map<String,String> backdoorToggles;
+ private Map<String, String> backdoorToggles;
public SQLRequest() {
}
@@ -41,7 +41,6 @@ public class SQLRequest {
this.backdoorToggles = backdoorToggles;
}
-
public String getProject() {
return project;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java b/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
index 302cb02..607d61a 100644
--- a/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
+++ b/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
@@ -87,16 +87,22 @@ public class HBaseResponse implements Serializable {
* @param segmentStartTime
* the segmentStartTime to set
*/
- public void setDateRangeStart(long dateRangeStart) { this.dateRangeStart = dateRangeStart; }
+ public void setDateRangeStart(long dateRangeStart) {
+ this.dateRangeStart = dateRangeStart;
+ }
/**
* @return the segmentEndTime
*/
- public long getDateRangeEnd() { return dateRangeEnd; }
+ public long getDateRangeEnd() {
+ return dateRangeEnd;
+ }
/**
* @param segmentEndTime
* the segmentEndTime to set
*/
- public void setDateRangeEnd(long dateRangeEnd) { this.dateRangeEnd = dateRangeEnd; }
+ public void setDateRangeEnd(long dateRangeEnd) {
+ this.dateRangeEnd = dateRangeEnd;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java b/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
index f65e42a..fc663dd 100644
--- a/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
+++ b/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
@@ -21,9 +21,10 @@ package org.apache.kylin.rest.response;
import java.util.HashMap;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.kylin.metadata.model.TableDesc;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
* A response class to wrap TableDesc
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java b/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
index 346b2fe..7983fc0 100644
--- a/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
+++ b/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
@@ -21,13 +21,12 @@ package org.apache.kylin.rest.security;
import java.util.HashSet;
import java.util.Set;
+import org.apache.kylin.rest.constant.Constant;
import org.springframework.ldap.core.ContextSource;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
-import org.apache.kylin.rest.constant.Constant;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
index d034eca..b8ccbeb 100644
--- a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
+++ b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
@@ -24,13 +24,12 @@ import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
+import org.apache.kylin.common.KylinConfig;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.apache.kylin.common.KylinConfig;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/AccessService.java b/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
index c04bfa7..cd93eba 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
@@ -22,7 +22,12 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.kylin.common.persistence.AclEntity;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.exception.ForbiddenException;
+import org.apache.kylin.rest.response.AccessEntryResponse;
+import org.apache.kylin.rest.security.AclEntityFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.acls.domain.BasePermission;
@@ -43,12 +48,6 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
-import org.apache.kylin.common.persistence.AclEntity;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.response.AccessEntryResponse;
-import org.apache.kylin.rest.security.AclEntityFactory;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/AclService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/AclService.java b/server/src/main/java/org/apache/kylin/rest/service/AclService.java
index 8413f47..7554011 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/AclService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/AclService.java
@@ -38,7 +38,10 @@ import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.rest.util.Serializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -68,9 +71,6 @@ import org.springframework.util.Assert;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.HBaseConnection;
-import org.apache.kylin.rest.util.Serializer;
/**
* @author xduo
[04/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
index 42a752f..b104454 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
@@ -72,8 +72,8 @@ public class PartitionDesc {
} else {
throw new IllegalStateException("The 'partition_date_column' format is invalid: " + partitionDateColumn + ", it should be {db}.{table}.{column}.");
}
-
- partitionConditionBuilder = (IPartitionConditionBuilder) ClassUtil.newInstance(partitionConditionBuilderClz);
+
+ partitionConditionBuilder = (IPartitionConditionBuilder) ClassUtil.newInstance(partitionConditionBuilderClz);
}
public boolean isPartitioned() {
@@ -178,7 +178,6 @@ public class PartitionDesc {
}
builder.append(concatField + " < '" + DateFormat.formatToDateStr(endExclusive) + "'");
-
return builder.toString();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
index 30c4d76..a0df206 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
@@ -18,15 +18,16 @@
package org.apache.kylin.metadata.model;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Arrays;
+import java.util.Comparator;
+
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.RootPersistentEntity;
import org.apache.kylin.common.util.StringSplitter;
-import java.util.Arrays;
-import java.util.Comparator;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
/**
* Table Metadata from Source. All name should be uppercase.
@@ -64,7 +65,6 @@ public class TableDesc extends RootPersistentEntity {
public String getResourcePath() {
return concatResourcePath(getIdentity());
}
-
/**
* @deprecated this is for compatible with data model v1;
@@ -73,14 +73,14 @@ public class TableDesc extends RootPersistentEntity {
public String getResourcePathV1() {
return concatResourcePath(name);
}
-
+
public String getIdentity() {
if (identity == null) {
identity = String.format("%s.%s", this.getDatabase().toUpperCase(), this.getName()).toUpperCase();
}
return identity;
}
-
+
public static String concatResourcePath(String tableIdentity) {
return ResourceStore.TABLE_RESOURCE_ROOT + "/" + tableIdentity + ".json";
}
@@ -88,7 +88,7 @@ public class TableDesc extends RootPersistentEntity {
public static String concatExdResourcePath(String tableIdentity) {
return ResourceStore.TABLE_EXD_RESOURCE_ROOT + "/" + tableIdentity + ".json";
}
-
+
// ============================================================================
public String getName() {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
index 6da490d..b5a6b3e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
@@ -18,6 +18,18 @@
package org.apache.kylin.metadata.project;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.annotation.Nullable;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+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;
@@ -25,16 +37,6 @@ import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.metadata.realization.RealizationType;
-
-import javax.annotation.Nullable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
/**
* Project is a concept in Kylin similar to schema in DBMS
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
index bc1b3a6..994bd3e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
@@ -24,7 +24,11 @@ import java.util.Map;
import java.util.Set;
import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.*;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.RealizationRegistry;
import org.slf4j.Logger;
@@ -90,7 +94,6 @@ class ProjectL2Cache {
if (tableCache == null)
return false;
-
for (ColumnDesc colDesc : tableCache.exposedColumns) {
if (colDesc.getName().equals(col))
return true;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
index ce93241..a0b3162 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
@@ -25,23 +25,23 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.JsonSerializer;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.Serializer;
+import org.apache.kylin.common.restclient.Broadcaster;
+import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
+import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.RealizationRegistry;
+import org.apache.kylin.metadata.realization.RealizationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.JsonSerializer;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.Serializer;
-import org.apache.kylin.common.restclient.Broadcaster;
-import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.realization.RealizationType;
public class ProjectManager {
private static final Logger logger = LoggerFactory.getLogger(ProjectManager.class);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
index 036fcc6..a453161 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
@@ -18,9 +18,10 @@
package org.apache.kylin.metadata.project;
+import org.apache.kylin.metadata.realization.IRealization;
+
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multiset;
-import org.apache.kylin.metadata.realization.IRealization;
/**
* @author xduo
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java b/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
index 73c899b..13195ec 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
@@ -18,9 +18,10 @@
package org.apache.kylin.metadata.project;
+import org.apache.kylin.metadata.realization.RealizationType;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.metadata.realization.RealizationType;
/**
* Created by qianzhou on 12/5/14.
@@ -52,13 +53,17 @@ public class RealizationEntry {
@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;
RealizationEntry entry = (RealizationEntry) o;
- if (realization != null ? !realization.equalsIgnoreCase(entry.realization) : entry.realization != null) return false;
- if (type != entry.type) return false;
+ if (realization != null ? !realization.equalsIgnoreCase(entry.realization) : entry.realization != null)
+ return false;
+ if (type != entry.type)
+ return false;
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
index 1f3837d..a446db0 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
@@ -60,9 +60,9 @@ public interface IRealization {
public String getName();
public String getCanonicalName();
-
+
public String getProjectName();
-
+
public void setProjectName(String prjName);
public long getDateRangeStart();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
index 802dfb3..8a9cb7a 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
@@ -24,5 +24,4 @@ public interface IRealizationProvider {
IRealization getRealization(String name);
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
index 2c7ba42..b4e0e40 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
@@ -18,14 +18,6 @@
package org.apache.kylin.metadata.realization;
-import com.google.common.collect.*;
-import org.apache.kylin.common.KylinConfig;
-
-import org.reflections.Reflections;
-import org.reflections.scanners.SubTypesScanner;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.IOException;
import java.util.Collections;
import java.util.List;
@@ -33,6 +25,15 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.kylin.common.KylinConfig;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
/**
* Created by Hongbin Ma(Binmahone) on 12/18/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
index 83052c0..066efe4 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
@@ -17,14 +17,19 @@
*/
package org.apache.kylin.metadata.realization;
-import com.google.common.base.Function;
-import com.google.common.collect.BoundType;
-import com.google.common.collect.Range;
import org.apache.kylin.common.util.DateFormat;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.model.DataType;
import org.apache.kylin.metadata.model.TblColRef;
+import com.google.common.base.Function;
+import com.google.common.collect.BoundType;
+import com.google.common.collect.Range;
+
/**
*/
public class SQLDigestUtil {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java b/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
index 5297188..2fc39ed 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
@@ -18,9 +18,13 @@
package org.apache.kylin.metadata.tool;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Table;
import org.apache.kylin.common.KylinConfig;
@@ -33,8 +37,9 @@ import org.apache.kylin.metadata.model.TableDesc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.*;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
/**
* Management class to sync hive table metadata with command See main method for
@@ -147,9 +152,7 @@ public class HiveSourceTableLoader {
loadedTables.add(tableDesc.getIdentity());
}
-
return loadedTables;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java b/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
index badc720..0fdb23e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
@@ -17,13 +17,14 @@
*/
package org.apache.kylin.metadata.tuple;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Iterators;
+import java.util.Iterator;
+import java.util.List;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Iterator;
-import java.util.List;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Iterators;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java b/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
index 5235387..52b3d21 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
@@ -23,7 +23,7 @@ import java.util.Iterator;
/**
* @author xjiang
*/
-public interface ITupleIterator extends Iterator<ITuple> {
+public interface ITupleIterator extends Iterator<ITuple> {
public static final ITupleIterator EMPTY_TUPLE_ITERATOR = new ITupleIterator() {
@Override
public boolean hasNext() {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java b/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
index e71294a..f0aaae5 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
@@ -20,14 +20,13 @@ package org.apache.kylin.metadata;
import java.util.List;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.metadata.model.TableDesc;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 2:38 PM To
* change this template use File | Settings | File Templates.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java b/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
index 78895c8..6a923fd 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
@@ -18,7 +18,6 @@
package org.apache.kylin.metadata.model;
-
/**
* Created by qianzhou on 12/3/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java b/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
index cd773ba..2da25b6 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
@@ -18,18 +18,17 @@
package org.apache.kylin.metadata.tool;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.Set;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.HBaseMetadataTestCase;
-
public class HiveSourceTableLoaderTest extends HBaseMetadataTestCase {
@BeforeClass
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java b/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
index 2c07530..d356fc4 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
@@ -16,9 +16,10 @@
* limitations under the License.
*/
-
package org.apache.kylin.metadata.tool;
+import java.io.File;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.kylin.common.KylinConfig;
@@ -26,8 +27,6 @@ import org.apache.kylin.common.persistence.ResourceTool;
import org.apache.kylin.common.util.ClassUtil;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
-import java.io.File;
-
/**
* This is a helper class for developer to directly manipulate the metadata store in sandbox
* This is designed to run in IDE(i.e. not on sandbox hadoop CLI)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java b/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
index b3083dc..2940486 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.metadata.tuple;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/monitor/.settings/org.eclipse.core.resources.prefs b/monitor/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..04cfa2c
--- /dev/null
+++ b/monitor/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/monitor/.settings/org.eclipse.jdt.core.prefs b/monitor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..a903301
--- /dev/null
+++ b/monitor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,379 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=999
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/monitor/.settings/org.eclipse.jdt.ui.prefs b/monitor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..dece0e6
--- /dev/null
+++ b/monitor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+formatter_profile=_Space Indent & Long Lines
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=1
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java b/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
index d634044..1125d07 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
@@ -18,13 +18,11 @@
package org.apache.kylin.monitor;
-import au.com.bytecode.opencsv.CSVWriter;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.*;
-import org.apache.log4j.Logger;
-
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@@ -38,6 +36,13 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.log4j.Logger;
+
+import au.com.bytecode.opencsv.CSVWriter;
+
/**
* @author jiazhong
*/
@@ -50,8 +55,7 @@ public class ApiRequestParser {
final static String REQUEST_LOG_PARSE_RESULT_FILENAME = "kylin_request_log.csv";
static String DEPLOY_ENV;
-
- final static String[] KYLIN_REQUEST_CSV_HEADER = {"REQUESTER", "REQ_TIME","REQ_DATE", "URI", "METHOD", "QUERY_STRING", "PAYLOAD", "RESP_STATUS", "TARGET", "ACTION","DEPLOY_ENV"};
+ final static String[] KYLIN_REQUEST_CSV_HEADER = { "REQUESTER", "REQ_TIME", "REQ_DATE", "URI", "METHOD", "QUERY_STRING", "PAYLOAD", "RESP_STATUS", "TARGET", "ACTION", "DEPLOY_ENV" };
private ConfigUtils monitorConfig;
@@ -106,11 +110,11 @@ public class ApiRequestParser {
logger.info("Start parsing kylin api request file " + filePath + " !");
-// writer config init
+ // writer config init
FileSystem fs = this.getHdfsFileSystem();
org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
OutputStreamWriter writer = new OutputStreamWriter(fs.append(resultStorePath));
- CSVWriter cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+ CSVWriter cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
Pattern p_available = Pattern.compile("/kylin/api/(cubes|user)+.*");
Pattern p_request = Pattern.compile("^.*\\[.*KylinApiFilter.logRequest.*\\].*REQUEST:.*REQUESTER=(.*);REQ_TIME=(\\w+ (\\d{4}-\\d{2}-\\d{2}).*);URI=(.*);METHOD=(.*);QUERY_STRING=(.*);PAYLOAD=(.*);RESP_STATUS=(.*);$");
@@ -148,16 +152,16 @@ public class ApiRequestParser {
//add action
if (m_uri.group(1).equals("cubes")) {
switch (m_request.group(5)) {
- case "DELETE":
- groups.add("drop");
- break;
- case "POST":
- groups.add("save");
- break;
- default:
- //add parse action
- groups.add(m_uri.group(3));
- break;
+ case "DELETE":
+ groups.add("drop");
+ break;
+ case "POST":
+ groups.add("save");
+ break;
+ default:
+ //add parse action
+ groups.add(m_uri.group(3));
+ break;
}
}
@@ -169,7 +173,6 @@ public class ApiRequestParser {
}
}
-
}
} catch (IOException ex) {
logger.info("Failed to write to hdfs:", ex);
@@ -191,7 +194,7 @@ public class ApiRequestParser {
fs = this.getHdfsFileSystem();
org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
writer = new OutputStreamWriter(fs.append(resultStorePath));
- cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+ cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
cwriter.writeNext(record);
} catch (IOException e) {
@@ -206,7 +209,7 @@ public class ApiRequestParser {
public List<File> getRequestLogFiles() {
List<File> logFiles = new ArrayList<File>();
-// String request_log_file_pattern = monitorConfig.getRequestLogFilePattern();
+ // String request_log_file_pattern = monitorConfig.getRequestLogFilePattern();
List<String> request_log_dir_list = monitorConfig.getLogBaseDir();
FileFilter filter = new RegexFileFilter(REQUEST_LOG_FILE_PATTERN);
@@ -227,7 +230,7 @@ public class ApiRequestParser {
public FileSystem getHdfsFileSystem() throws IOException {
Configuration conf = new Configuration();
-// conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
+ // conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
FileSystem fs = null;
try {
fs = FileSystem.get(conf);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/Client.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/Client.java b/monitor/src/main/java/org/apache/kylin/monitor/Client.java
index 41416b1..e0b5a83 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/Client.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/Client.java
@@ -16,39 +16,34 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-
import java.io.File;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
/**
* Created by jiazhong on 2015/5/7.
*/
public class Client {
-
static {
//set monitor log path
String KYLIN_HOME = ConfigUtils.getKylinHome();
String CATALINA_HOME = null;
- if(!StringUtils.isEmpty(KYLIN_HOME)){
- CATALINA_HOME = ConfigUtils.getKylinHome() + File.separator + "tomcat"+File.separator;
- System.out.println("will use "+CATALINA_HOME+"/logs to put monitor log");
- }else{
+ if (!StringUtils.isEmpty(KYLIN_HOME)) {
+ CATALINA_HOME = ConfigUtils.getKylinHome() + File.separator + "tomcat" + File.separator;
+ System.out.println("will use " + CATALINA_HOME + "/logs to put monitor log");
+ } else {
CATALINA_HOME = "";
System.out.println("will use default path to put monitor log");
}
//log4j config will use this
- System.setProperty("CATALINA_HOME",CATALINA_HOME);
+ System.setProperty("CATALINA_HOME", CATALINA_HOME);
}
final static Logger logger = Logger.getLogger(Client.class);
-
-
public static void main(String[] args) {
logger.info("monitor client start parsing...");
QueryParser queryParser = new QueryParser();
@@ -58,7 +53,7 @@ public class Client {
queryParser.start();
jdbcClient.start();
} catch (Exception e) {
- logger.info("Exception",e);
+ logger.info("Exception", e);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java b/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
index d33a02d..3c92b36 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
@@ -16,12 +16,13 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
@@ -29,6 +30,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+
/**
* Created by jiazhong on 2015/4/28.
*/
@@ -66,10 +70,8 @@ public class ConfigUtils {
public static final String DEPLOY_ENV = "deploy.env";
-
public static final String HIVE_JDBC_CON_URL = "kylin.hive.jdbc.connection.url";
-
public void loadMonitorParam() throws IOException {
Properties props = new Properties();
InputStream resourceStream = this.getKylinPropertiesAsInputSteam();
@@ -77,7 +79,6 @@ public class ConfigUtils {
this.monitorConfig = props;
}
-
public static InputStream getKylinPropertiesAsInputSteam() {
File propFile = getKylinMonitorProperties();
if (propFile == null || !propFile.exists()) {
@@ -93,7 +94,6 @@ public class ConfigUtils {
}
-
private static File getKylinMonitorProperties() {
String kylinConfHome = System.getProperty(KYLIN_CONF);
if (!StringUtils.isEmpty(kylinConfHome)) {
@@ -108,7 +108,7 @@ public class ConfigUtils {
throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME, please set one of them");
String path = kylinHome + File.separator + "conf";
- logger.info("load kylin.properties file from " + kylinHome+". (from KYLIN_HOME System.env)");
+ logger.info("load kylin.properties file from " + kylinHome + ". (from KYLIN_HOME System.env)");
return getKylinPropertiesFile(path);
}
@@ -119,7 +119,7 @@ public class ConfigUtils {
logger.warn("KYLIN_HOME was not set");
return kylinHome;
}
- logger.info("KYLIN_HOME is :"+kylinHome);
+ logger.info("KYLIN_HOME is :" + kylinHome);
return kylinHome;
}
@@ -130,7 +130,6 @@ public class ConfigUtils {
return new File(path, KYLIN_MONITOR_CONF_PROP_FILE);
}
-
/*
* get where to path log
*/
@@ -146,8 +145,8 @@ public class ConfigUtils {
String kylinExtLogBaseDir = getExtLogBaseDir();
if (!StringUtils.isEmpty(kylinExtLogBaseDir)) {
String[] extPaths = kylinExtLogBaseDir.split(",");
- for(String path:extPaths){
- if(!StringUtils.isEmpty(path)){
+ for (String path : extPaths) {
+ if (!StringUtils.isEmpty(path)) {
logger.info("Use ext log dir=" + path);
logDirList.add(path.trim());
}
@@ -156,23 +155,21 @@ public class ConfigUtils {
String kylinHome = getKylinHome();
if (!StringUtils.isEmpty(kylinHome))
- if(logDirList.isEmpty()){
- throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME or KYLIN_EXT_LOG_BASE_DIR, please set one of them");
+ if (logDirList.isEmpty()) {
+ throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME or KYLIN_EXT_LOG_BASE_DIR, please set one of them");
+ } else {
+ String path = kylinHome + File.separator + "tomcat" + File.separator + "logs";
+ logDirList.add(path);
}
- else{
- String path = kylinHome + File.separator + "tomcat" + File.separator + "logs";
- logDirList.add(path);
- }
return logDirList;
}
-
- public String getMetadataUrl(){
+ public String getMetadataUrl() {
return this.monitorConfig.getProperty(KYLIN_METADATA_URL);
}
- public String getMetadataUrlPrefix() {
+ public String getMetadataUrlPrefix() {
String hbaseMetadataUrl = getMetadataUrl();
String defaultPrefix = "kylin_metadata";
int cut = hbaseMetadataUrl.indexOf('@');
@@ -185,27 +182,28 @@ public class ConfigUtils {
}
public String getKylinHdfsWorkingDir() {
- String root = this.monitorConfig.getProperty(KYLIN_HDFS_WORKING_DIR);
+ String root = this.monitorConfig.getProperty(KYLIN_HDFS_WORKING_DIR);
if (!root.endsWith("/")) {
root += "/";
}
return root + getMetadataUrlPrefix();
}
+
public String getQueryLogParseResultDir() {
- return this.getKylinHdfsWorkingDir()+"/performance/query/";
+ return this.getKylinHdfsWorkingDir() + "/performance/query/";
}
public String getQueryLogResultTable() {
String query_log_parse_result_table = this.monitorConfig.getProperty(QUERY_LOG_PARSE_RESULT_TABLE);
- if(!StringUtils.isEmpty(query_log_parse_result_table)){
+ if (!StringUtils.isEmpty(query_log_parse_result_table)) {
return query_log_parse_result_table;
- }else{
+ } else {
return DEFAULT_QUERY_LOG_PARSE_RESULT_TABLE;
}
}
public String getRequestLogParseResultDir() {
- return this.getKylinHdfsWorkingDir()+"/performance/request/";
+ return this.getKylinHdfsWorkingDir() + "/performance/request/";
}
public String getHiveJdbcConUrl() {
@@ -213,14 +211,13 @@ public class ConfigUtils {
}
public String getLogParseResultMetaDir() {
- return this.getKylinHdfsWorkingDir()+"/performance/metadata/";
+ return this.getKylinHdfsWorkingDir() + "/performance/metadata/";
}
- public String getDeployEnv(){
+ public String getDeployEnv() {
return this.monitorConfig.getProperty(DEPLOY_ENV);
}
-
public String getHiveJdbcConUserName() {
return this.monitorConfig.getProperty(HIVE_JDBC_CON_USERNAME);
}
@@ -229,7 +226,6 @@ public class ConfigUtils {
return this.monitorConfig.getProperty(HIVE_JDBC_CON_PASSWD);
}
-
public static void addClasspath(String path) throws Exception {
File file = new File(path);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java b/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
index d939537..f0c3b7e 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
@@ -16,26 +16,24 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
-import org.apache.log4j.Logger;
import java.io.File;
+import org.apache.log4j.Logger;
/**
* Created by jiazhong on 2015/5/7
*/
public class DebugClient {
- static{
+ static {
//set catalina.home temp
System.setProperty(ConfigUtils.CATALINA_HOME, "../server/");
}
final static Logger logger = Logger.getLogger(DebugClient.class);
-
public static void main(String[] args) throws Exception {
// test_case_data/sandbox/ contains HDP 2.2 site xmls which is dev sandbox
@@ -47,7 +45,6 @@ public class DebugClient {
//get kylin.properties ,if not exist will get from $KYLIN_HOME/conf/
System.setProperty(ConfigUtils.KYLIN_CONF, "../examples/test_case_data/sandbox");
-
QueryParser queryParser = new QueryParser();
HiveJdbcClient jdbcClient = new HiveJdbcClient();
@@ -56,7 +53,7 @@ public class DebugClient {
queryParser.start();
jdbcClient.start();
} catch (Exception e) {
- logger.info("Exception ",e);
+ logger.info("Exception ", e);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java b/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
index c42bab7..2560203 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
@@ -16,16 +16,16 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
-import au.com.bytecode.opencsv.CSVWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.log4j.Logger;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
+import au.com.bytecode.opencsv.CSVWriter;
/**
* Created by jiazhong on 2015/6/18.
@@ -35,7 +35,7 @@ public class FileUtils {
final static Logger logger = Logger.getLogger(FileUtils.class);
public static boolean pathCheck(String filePath) throws IOException {
- logger.info("checking file:"+filePath);
+ logger.info("checking file:" + filePath);
FileSystem fs = null;
try {
Configuration conf = new Configuration();
@@ -53,7 +53,6 @@ public class FileUtils {
return true;
}
-
/*
* write parse result to hdfs
*/
@@ -102,7 +101,7 @@ public class FileUtils {
*/
public static FileSystem getHdfsFileSystem() throws IOException {
Configuration conf = new Configuration();
-// conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
+ // conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
FileSystem fs = null;
try {
fs = FileSystem.newInstance(conf);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java b/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
index ec919c4..a8c7fb9 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
@@ -16,17 +16,20 @@
* limitations under the License.
*/
-
package org.apache.kylin.monitor;
-import org.apache.log4j.Logger;
-import org.datanucleus.util.StringUtils;
-
import java.io.IOException;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import org.apache.log4j.Logger;
+import org.datanucleus.util.StringUtils;
+
/**
* Created by jiazhong on 2015/6/17.
*/
@@ -40,7 +43,6 @@ public class HiveJdbcClient {
static String SQL_LAST_30_DAYILY_QUERY_COUNT = "SELECT REQUEST_DATE, COUNT(*) FROM [QUERY_LOG_TABLE_NAME] WHERE REQUEST_DATE>=[START_DATE] AND REQUEST_DATE<[END_DATE] GROUP BY REQUEST_DATE";
-
//last 30 days
static String SQL_90_PERCENTTILE_LAST_30_DAY = "SELECT PERCENTILE_APPROX(LOG.QUERY_LATENCY,0.9) FROM (SELECT QUERY_LATENCY FROM [QUERY_LOG_TABLE_NAME] WHERE IS_SUCCESS='true' AND REQUEST_DATE>=[START_DATE] AND REQUEST_DATE<[END_DATE]) LOG";
@@ -50,13 +52,10 @@ public class HiveJdbcClient {
//0.9,0.95 [project] percentile in last 30 days
static String SQL_DAY_PERCENTILE_BY_PROJECT = "SELECT QUERY_PROJECT, PERCENTILE_APPROX(QUERY_LATENCY,ARRAY(0.9,0.95)) FROM [QUERY_LOG_TABLE_NAME] WHERE IS_SUCCESS='true' AND REQUEST_DATE>=[START_DATE] AND REQUEST_DATE<[END_DATE] GROUP BY QUERY_PROJECT";
-
-
static String QUERY_LOG_TABLE_NAME = "KYLIN_QUERY_LOG";
final static Logger logger = Logger.getLogger(HiveJdbcClient.class);
-
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
private static ConfigUtils monitorConfig = ConfigUtils.getInstance();
@@ -74,7 +73,6 @@ public class HiveJdbcClient {
}
}
-
/*
* will create external hive table for [query] log parse result csv file on hdfs
* and will generate metric data in csv file on hdfs for web dashboard
@@ -102,7 +100,7 @@ public class HiveJdbcClient {
FileUtils.pathCheck(total_query_user_path);
FileUtils.clearHdfsFile(total_query_user_path);
while (res.next()) {
- FileUtils.appendResultToHdfs(total_query_user_path, new String[]{res.getString(1)});
+ FileUtils.appendResultToHdfs(total_query_user_path, new String[] { res.getString(1) });
logger.info("Total User:" + res.getString(1));
}
@@ -114,11 +112,10 @@ public class HiveJdbcClient {
FileUtils.pathCheck(avg_day_query_path);
FileUtils.clearHdfsFile(avg_day_query_path);
while (res.next()) {
- FileUtils.appendResultToHdfs(avg_day_query_path, new String[]{res.getString(1)});
+ FileUtils.appendResultToHdfs(avg_day_query_path, new String[] { res.getString(1) });
logger.info("avg day query:" + res.getString(1));
}
-
SQL_LAST_30_DAYILY_QUERY_COUNT = generateLast30DayilyQueryCount();
logger.info("Running Sql (Daily Query Count):" + SQL_LAST_30_DAYILY_QUERY_COUNT);
res = stmt.executeQuery(SQL_LAST_30_DAYILY_QUERY_COUNT);
@@ -127,11 +124,10 @@ public class HiveJdbcClient {
FileUtils.pathCheck(last_30_daily_query_count_path);
FileUtils.clearHdfsFile(last_30_daily_query_count_path);
while (res.next()) {
- FileUtils.appendResultToHdfs(last_30_daily_query_count_path, new String[]{res.getString(1),res.getString(2)});
- logger.info("last 30 daily query count:" + res.getString(1)+","+res.getString(2));
+ FileUtils.appendResultToHdfs(last_30_daily_query_count_path, new String[] { res.getString(1), res.getString(2) });
+ logger.info("last 30 daily query count:" + res.getString(1) + "," + res.getString(2));
}
-
//90 percentile latency for all query in last 30 days
SQL_90_PERCENTTILE_LAST_30_DAY = generateNintyPercentileSql();
logger.info("Running Sql (last 30 days ,90 percentile query latency):" + SQL_90_PERCENTTILE_LAST_30_DAY);
@@ -141,7 +137,7 @@ public class HiveJdbcClient {
FileUtils.pathCheck(last_30_day_90_percentile_latency);
FileUtils.clearHdfsFile(last_30_day_90_percentile_latency);
while (res.next()) {
- FileUtils.appendResultToHdfs(last_30_day_90_percentile_latency, new String[]{res.getString(1)});
+ FileUtils.appendResultToHdfs(last_30_day_90_percentile_latency, new String[] { res.getString(1) });
logger.info("last 30 day 90 percentile latency:" + res.getString(1));
}
@@ -154,7 +150,7 @@ public class HiveJdbcClient {
FileUtils.pathCheck(last_30_day_project_percentile_latency_path);
FileUtils.clearHdfsFile(last_30_day_project_percentile_latency_path);
while (res.next() && res.getMetaData().getColumnCount() == 2) {
- FileUtils.appendResultToHdfs(last_30_day_project_percentile_latency_path, new String[]{res.getString(1), res.getString(2)});
+ FileUtils.appendResultToHdfs(last_30_day_project_percentile_latency_path, new String[] { res.getString(1), res.getString(2) });
logger.info(res.getString(1) + "," + res.getString(2));
}
@@ -167,8 +163,8 @@ public class HiveJdbcClient {
res = stmt.executeQuery(SQL_EACH_DAY_PERCENTILE);
while (res.next() && res.getMetaData().getColumnCount() == 3) {
- FileUtils.appendResultToHdfs(each_day_percentile_file, new String[]{res.getString(1), res.getString(2),res.getString(3)});
- logger.info(res.getString(1) + "," + res.getString(2)+ "," + res.getString(3));
+ FileUtils.appendResultToHdfs(each_day_percentile_file, new String[] { res.getString(1), res.getString(2), res.getString(3) });
+ logger.info(res.getString(1) + "," + res.getString(2) + "," + res.getString(3));
}
}
@@ -192,8 +188,6 @@ public class HiveJdbcClient {
return monthStasticSqlConvert(SQL_LAST_30_DAYILY_QUERY_COUNT);
}
-
-
//last 30 days
public String generateNintyPercentileSql() {
SQL_90_PERCENTTILE_LAST_30_DAY = SQL_90_PERCENTTILE_LAST_30_DAY.replace("[QUERY_LOG_TABLE_NAME]", QUERY_LOG_TABLE_NAME);
@@ -222,5 +216,4 @@ public class HiveJdbcClient {
return sql.replace("[START_DATE]", "'" + startDate + "'").replace("[END_DATE]", "'" + endDate + "'");
}
-
}
\ No newline at end of file
[09/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java b/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
index 9353cfc..cdc1e51 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
@@ -18,34 +18,35 @@
package org.apache.kylin.cube;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.UUID;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.Serializer;
+import org.apache.kylin.cube.model.DimensionDesc;
import org.apache.kylin.cube.model.HierarchyDesc;
import org.apache.kylin.cube.model.RowKeyColDesc;
import org.apache.kylin.cube.model.RowKeyDesc;
-import org.apache.kylin.cube.model.DimensionDesc;
import org.apache.kylin.cube.model.v1.CubeDesc;
import org.apache.kylin.cube.model.v1.CubePartitionDesc;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.metadata.model.JoinDesc;
import org.apache.kylin.metadata.model.LookupDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.kylin.metadata.model.PartitionDesc;
+import org.apache.kylin.metadata.model.TableDesc;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.UUID;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
public class CubeDescUpgrader {
@@ -84,7 +85,7 @@ public class CubeDescUpgrader {
for (LookupDesc lookupDesc : modelDesc.getLookups()) {
if (lookupDesc.getJoin() != null) {
JoinDesc join = lookupDesc.getJoin();
- for (int i=0; i< join.getForeignKey().length; i++) {
+ for (int i = 0; i < join.getForeignKey().length; i++) {
pkToFK.put(join.getPrimaryKey()[i], join.getForeignKey()[i]);
}
}
@@ -101,14 +102,13 @@ public class CubeDescUpgrader {
}
for (String[] aggregationGroup : rowKey.getAggregationGroups()) {
- for (int i=0; i< aggregationGroup.length; i++) {
+ for (int i = 0; i < aggregationGroup.length; i++) {
if (pkToFK.containsKey(aggregationGroup[i])) {
aggregationGroup[i] = pkToFK.get(aggregationGroup[i]);
}
}
}
-
}
private void copyUnChangedProperties(CubeDesc oldModel, org.apache.kylin.cube.model.CubeDesc newModel) {
@@ -155,7 +155,7 @@ public class CubeDescUpgrader {
//column on fact table
newDim = newDimensionDesc(dim, dimId++, dim.getName());
newDimensions.add(newDim);
- newDim.setColumn(new String[]{dim.getColumn()});
+ newDim.setColumn(new String[] { dim.getColumn() });
needNameSuffix = true;
} else if (ArrayUtils.isEmpty(dim.getDerived()) && ArrayUtils.isEmpty(dim.getHierarchy())) {
// user defines a lookup table, but didn't use any column other than the pk, in this case, convert to use fact table's fk
@@ -227,7 +227,6 @@ public class CubeDescUpgrader {
dm.setFilterCondition(oldModel.getFilterCondition());
updatePartitionDesc(oldModel, dm);
-
if (oldModel.getCapacity() == CubeDesc.CubeCapacity.SMALL) {
dm.setCapacity(DataModelDesc.RealizationCapacity.SMALL);
} else if (oldModel.getCapacity() == CubeDesc.CubeCapacity.MEDIUM) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java b/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
index dcdcfd5..f088767 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
@@ -18,11 +18,11 @@
package org.apache.kylin.cube;
-import org.apache.kylin.metadata.model.TblColRef;
-
import java.util.Collection;
import java.util.HashSet;
+import org.apache.kylin.metadata.model.TblColRef;
+
/**
* Created by Hongbin Ma(Binmahone) on 1/8/15.
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java b/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
index 7accada..ad0bb28 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
@@ -88,9 +88,9 @@ public class CubeInstance extends RootPersistentEntity implements IRealization {
@JsonProperty("retention_range")
private long retentionRange = 0;
-
+
private String projectName;
-
+
public List<CubeSegment> getBuildingSegments() {
List<CubeSegment> buildingSegments = new ArrayList<CubeSegment>();
if (null != segments) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeManager.java b/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
index 6994e02..df0d0d5 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -18,18 +18,25 @@
package org.apache.kylin.cube;
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.common.util.Pair;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.Serializer;
import org.apache.kylin.common.restclient.Broadcaster;
import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.DimensionDesc;
@@ -46,14 +53,17 @@ import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.metadata.realization.*;
+import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.IRealizationConstants;
+import org.apache.kylin.metadata.realization.IRealizationProvider;
+import org.apache.kylin.metadata.realization.RealizationStatusEnum;
+import org.apache.kylin.metadata.realization.RealizationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Multimap;
/**
* @author yangli9
@@ -286,7 +296,6 @@ public class CubeManager implements IRealizationProvider {
return newSegment;
}
-
public CubeSegment refreshSegment(CubeInstance cube, long startDate, long endDate) throws IOException {
checkNoBuildingSegment(cube);
@@ -550,7 +559,7 @@ public class CubeManager implements IRealizationProvider {
CubeSegment firstSeg = tobe.get(0);
firstSeg.validate();
- for (int i = 0, j = 1; j < tobe.size(); ) {
+ for (int i = 0, j = 1; j < tobe.size();) {
CubeSegment is = tobe.get(i);
CubeSegment js = tobe.get(j);
js.validate();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java b/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
index 00821a4..a3edcd9 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
@@ -24,17 +24,18 @@ import java.util.Map;
import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonBackReference;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Objects;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.dict.ISegment;
import org.apache.kylin.metadata.model.SegmentStatusEnum;
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.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Objects;
+
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class CubeSegment implements Comparable<CubeSegment>, ISegment {
@@ -176,7 +177,6 @@ public class CubeSegment implements Comparable<CubeSegment>, ISegment {
this.lastBuildJobID = lastBuildJobID;
}
-
public long getCreateTimeUTC() {
return createTimeUTC;
}
@@ -327,7 +327,6 @@ public class CubeSegment implements Comparable<CubeSegment>, ISegment {
return Objects.toStringHelper(this).add("uuid", uuid).add("create_time_utc:", createTimeUTC).add("name", name).add("last_build_job_id", lastBuildJobID).add("status", status).toString();
}
-
public void setDictionaries(ConcurrentHashMap<String, String> dictionaries) {
this.dictionaries = dictionaries;
}
@@ -335,5 +334,5 @@ public class CubeSegment implements Comparable<CubeSegment>, ISegment {
public void setSnapshots(ConcurrentHashMap<String, String> snapshots) {
this.snapshots = snapshots;
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java b/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
index feb0f1a..c8b58bf 100644
--- a/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
+++ b/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
@@ -20,16 +20,15 @@ package org.apache.kylin.cube.cli;
import java.io.IOException;
-import org.apache.kylin.cube.model.DimensionDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.cube.model.DimensionDesc;
import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class DictionaryGeneratorCLI {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java b/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
index 48db0d8..7e379dd 100644
--- a/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
+++ b/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
@@ -18,9 +18,8 @@
package org.apache.kylin.cube.common;
-import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.common.util.Bytes;
-
+import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.kv.RowConstants;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java b/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
index 488091a..8a2fb79 100644
--- a/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
+++ b/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
@@ -28,7 +28,6 @@ import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.kylin.common.util.Bytes;
-
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.RowKeyColDesc;
import org.apache.kylin.cube.model.RowKeyDesc;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java b/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
index 6f64116..ad0ca32 100644
--- a/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
+++ b/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
@@ -22,6 +22,7 @@ package org.apache.kylin.cube.cuboid;
* @author George Song (ysong1)
*
*/
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java b/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
index 9a654b7..4057c82 100644
--- a/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
+++ b/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
@@ -33,9 +33,9 @@ import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.DimensionDesc;
import org.apache.kylin.cube.model.HierarchyDesc;
import org.apache.kylin.cube.model.RowKeyColDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.cube.model.RowKeyDesc;
import org.apache.kylin.metadata.model.DataType;
+import org.apache.kylin.metadata.model.MeasureDesc;
/**
* Created by honma on 9/1/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
index ddfbab3..f566f5c 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
@@ -22,13 +22,12 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
index ccbc686..2bf101e 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
@@ -20,14 +20,13 @@ package org.apache.kylin.cube.kv;
import java.util.Arrays;
-import org.apache.kylin.dict.ISegment;
import org.apache.kylin.common.util.Bytes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.dict.Dictionary;
+import org.apache.kylin.dict.ISegment;
import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Read/Write column values from/into bytes
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
index b3bf7f2..f34e675 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
@@ -23,9 +23,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.common.RowKeySplitter;
-import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.metadata.model.TblColRef;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
index 5b6cd91..7f8bbd3 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import org.apache.kylin.common.util.Bytes;
-
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.metadata.model.TblColRef;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
index eeffdf5..9ec98f3 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
@@ -28,11 +28,10 @@ import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
-
import org.apache.kylin.cube.model.HBaseColumnDesc;
import org.apache.kylin.metadata.measure.MeasureCodec;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
/**
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/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 ff0ca04..172a924 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
@@ -33,7 +33,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.net.util.Base64;
@@ -56,6 +55,7 @@ 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.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.collect.Lists;
@@ -118,7 +118,7 @@ public class CubeDesc extends RootPersistentEntity {
/*
* this field will not be serialized ,can be deserialized to front javascript
*/
- private long retentionRange;
+ private long retentionRange;
private Map<String, Map<String, TblColRef>> columnMap = new HashMap<String, Map<String, TblColRef>>();
private LinkedHashSet<TblColRef> allColumns = new LinkedHashSet<TblColRef>();
@@ -626,7 +626,7 @@ public class CubeDesc extends RootPersistentEntity {
if (m.getDependentMeasureRef() != null) {
m.setDependentMeasureRef(m.getDependentMeasureRef().toUpperCase());
}
-
+
FunctionDesc f = m.getFunction();
f.setExpression(f.getExpression().toUpperCase());
f.initReturnDataType();
@@ -645,7 +645,7 @@ public class CubeDesc extends RootPersistentEntity {
if (colRefs.isEmpty() == false)
p.setColRefs(colRefs);
}
-
+
// verify holistic count distinct as a dependent measure
if (m.isHolisticCountDistinct() && StringUtils.isBlank(m.getDependentMeasureRef())) {
throw new IllegalStateException(m + " is a holistic count distinct but it has no DependentMeasureRef defined!");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
index 85fe45b..981fdc6 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
@@ -23,15 +23,16 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.metadata.model.JoinDesc;
import org.apache.kylin.metadata.model.LookupDesc;
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;
+
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:40 AM To
* change this template use File | Settings | File Templates.
@@ -107,7 +108,7 @@ public class DimensionDesc {
if (derived != null) {
StringUtil.toUpperCaseArray(derived, derived);
}
-
+
if (derived != null && join == null) {
throw new IllegalStateException("Derived can only be defined on lookup table, cube " + cubeDesc + ", " + this);
}
@@ -123,7 +124,7 @@ public class DimensionDesc {
}
return false;
}
-
+
public boolean isDerived() {
return derived != null;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
index f31c289..3e3481c 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
@@ -20,11 +20,12 @@ package org.apache.kylin.cube.model;
import java.util.Arrays;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.FunctionDesc;
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/30/13 Time: 10:57 AM To
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
index f7eb20e..6b46824 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
@@ -22,12 +22,13 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
+import org.apache.kylin.common.util.StringUtil;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.FunctionDesc;
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:44 AM To
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
index 588c2f3..81d2509 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
@@ -18,10 +18,11 @@
package org.apache.kylin.cube.model;
+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 org.apache.kylin.metadata.model.TblColRef;
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:46 AM To
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
index b3a2253..17c75b8 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
@@ -18,10 +18,11 @@
package org.apache.kylin.cube.model;
+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 org.apache.kylin.metadata.model.TblColRef;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
index 0d2c238..1ebe88d 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
@@ -27,12 +27,12 @@ import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.util.StringUtil;
+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 org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.model.TblColRef;
/**
* Created by lukhan on 1/2/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
index 65547e2..5ee6544 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
@@ -22,6 +22,10 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -29,9 +33,6 @@ import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Objects;
import com.google.common.collect.Lists;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class CubeInstance extends RootPersistentEntity {
@@ -163,10 +164,9 @@ public class CubeInstance extends RootPersistentEntity {
}
}
-// public CubeDesc getDescriptor() {
-// return CubeDescManager.getInstance(config).getCubeDesc(descName);
-// }
-
+ // public CubeDesc getDescriptor() {
+ // return CubeDescManager.getInstance(config).getCubeDesc(descName);
+ // }
public boolean isReady() {
return getStatus() == CubeStatusEnum.READY;
@@ -361,7 +361,7 @@ public class CubeInstance extends RootPersistentEntity {
public long[] getDateRange() {
List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
if (readySegments.isEmpty()) {
- return new long[]{0L, 0L};
+ return new long[] { 0L, 0L };
}
long start = Long.MAX_VALUE;
long end = Long.MIN_VALUE;
@@ -373,55 +373,55 @@ public class CubeInstance extends RootPersistentEntity {
end = segment.getDateRangeEnd();
}
}
- return new long[]{start, end};
- }
-
-// private boolean appendOnHll() {
-// CubePartitionDesc cubePartitionDesc = getDescriptor().getCubePartitionDesc();
-// if (cubePartitionDesc == null) {
-// return false;
-// }
-// if (cubePartitionDesc.getPartitionDateColumn() == null) {
-// return false;
-// }
-// if (cubePartitionDesc.getCubePartitionType() != CubePartitionDesc.CubePartitionType.APPEND) {
-// return false;
-// }
-// return getDescriptor().hasHolisticCountDistinctMeasures();
-// }
-
-// public boolean appendBuildOnHllMeasure(long startDate, long endDate) {
-// if (!appendOnHll()) {
-// return false;
-// }
-// List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
-// if (readySegments.isEmpty()) {
-// return false;
-// }
-// for (CubeSegment readySegment: readySegments) {
-// if (readySegment.getDateRangeStart() == startDate && readySegment.getDateRangeEnd() == endDate) {
-// //refresh build
-// return false;
-// }
-// }
-// return true;
-// }
-
-// public boolean needMergeImmediatelyAfterBuild(CubeSegment segment) {
-// if (!appendOnHll()) {
-// return false;
-// }
-// List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
-// if (readySegments.isEmpty()) {
-// return false;
-// }
-// for (CubeSegment readySegment: readySegments) {
-// if (readySegment.getDateRangeEnd() > segment.getDateRangeStart()) {
-// //has overlap and not refresh
-// return true;
-// }
-// }
-// return false;
-// }
+ return new long[] { start, end };
+ }
+
+ // private boolean appendOnHll() {
+ // CubePartitionDesc cubePartitionDesc = getDescriptor().getCubePartitionDesc();
+ // if (cubePartitionDesc == null) {
+ // return false;
+ // }
+ // if (cubePartitionDesc.getPartitionDateColumn() == null) {
+ // return false;
+ // }
+ // if (cubePartitionDesc.getCubePartitionType() != CubePartitionDesc.CubePartitionType.APPEND) {
+ // return false;
+ // }
+ // return getDescriptor().hasHolisticCountDistinctMeasures();
+ // }
+
+ // public boolean appendBuildOnHllMeasure(long startDate, long endDate) {
+ // if (!appendOnHll()) {
+ // return false;
+ // }
+ // List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
+ // if (readySegments.isEmpty()) {
+ // return false;
+ // }
+ // for (CubeSegment readySegment: readySegments) {
+ // if (readySegment.getDateRangeStart() == startDate && readySegment.getDateRangeEnd() == endDate) {
+ // //refresh build
+ // return false;
+ // }
+ // }
+ // return true;
+ // }
+
+ // public boolean needMergeImmediatelyAfterBuild(CubeSegment segment) {
+ // if (!appendOnHll()) {
+ // return false;
+ // }
+ // List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
+ // if (readySegments.isEmpty()) {
+ // return false;
+ // }
+ // for (CubeSegment readySegment: readySegments) {
+ // if (readySegment.getDateRangeEnd() > segment.getDateRangeStart()) {
+ // //has overlap and not refresh
+ // return true;
+ // }
+ // }
+ // return false;
+ // }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
index a5818ca..89bf70d 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
@@ -20,10 +20,11 @@ package org.apache.kylin.cube.model.v1;
import java.util.Map;
+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 org.apache.kylin.metadata.model.TblColRef;
/**
* @author xduo
@@ -57,7 +58,7 @@ public class CubePartitionDesc {
}
}
}
-
+
public boolean isPartitioned() {
return partitionDateColumnRef != null;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
index 392642b..aea429d 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
@@ -24,12 +24,13 @@ import java.util.Map;
import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
+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.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Objects;
-import org.apache.kylin.metadata.model.TblColRef;
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class CubeSegment implements Comparable<CubeSegment> {
@@ -70,9 +71,9 @@ public class CubeSegment implements Comparable<CubeSegment> {
@JsonProperty("snapshots")
private ConcurrentHashMap<String, String> snapshots; // table name ==> snapshot resource path
-// public CubeDesc getCubeDesc() {
-// return getCubeInstance().getDescriptor();
-// }
+ // public CubeDesc getCubeDesc() {
+ // return getCubeInstance().getDescriptor();
+ // }
/**
* @param startDate
@@ -93,7 +94,6 @@ public class CubeSegment implements Comparable<CubeSegment> {
// ============================================================================
-
public String getUuid() {
return uuid;
}
@@ -298,12 +298,6 @@ public class CubeSegment implements Comparable<CubeSegment> {
@Override
public String toString() {
- return Objects.toStringHelper(this)
- .add("uuid", uuid)
- .add("create_time:", createTime)
- .add("name", name)
- .add("last_build_job_id", lastBuildJobID)
- .add("status", status)
- .toString();
+ return Objects.toStringHelper(this).add("uuid", uuid).add("create_time:", createTime).add("name", name).add("last_build_job_id", lastBuildJobID).add("status", status).toString();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
index da0d0fa..de6233c 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
@@ -21,15 +21,16 @@ package org.apache.kylin.cube.model.v1;
import java.util.Arrays;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.model.HierarchyDesc;
import org.apache.kylin.metadata.model.JoinDesc;
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;
+
/**
* Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:40 AM To
* change this template use File | Settings | File Templates.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
index 16d193e..e8757b1 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
@@ -23,13 +23,14 @@ import java.util.List;
import java.util.Set;
import java.util.TreeSet;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.RootPersistentEntity;
import org.apache.kylin.metadata.project.ProjectStatusEnum;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
/**
* Project is a concept in Kylin similar to schema in DBMS
*/
@@ -47,7 +48,6 @@ public class ProjectInstance extends RootPersistentEntity {
@JsonProperty("tables")
private Set<String> tables;
-
@JsonProperty("owner")
private String owner;
@@ -162,7 +162,6 @@ public class ProjectInstance extends RootPersistentEntity {
return cubes;
}
-
public void setCubes(List<String> cubes) {
this.cubes = cubes;
}
@@ -216,7 +215,6 @@ public class ProjectInstance extends RootPersistentEntity {
this.lastUpdateTime = formatTime(timeMillis);
}
-
public void init() {
if (name == null)
name = ProjectInstance.DEFAULT_PROJECT_NAME;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
index 70f0b2f..80bd2f7 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
@@ -25,19 +25,18 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.IValidatorRule;
import org.apache.kylin.cube.model.validation.ResultLevel;
import org.apache.kylin.cube.model.validation.ValidateContext;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.cube.model.validation.IValidatorRule;
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.TableDesc;
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;
/**
* Validate function parameter. Ticket:
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
index 0057a7f..4585900 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
@@ -22,7 +22,6 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.ArrayUtils;
-
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.RowKeyColDesc;
import org.apache.kylin.cube.model.validation.IValidatorRule;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
index 5cd0343..e90f6cd 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
@@ -19,7 +19,6 @@
package org.apache.kylin.cube.model.validation.rule;
import org.apache.commons.lang.StringUtils;
-
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.RowKeyColDesc;
import org.apache.kylin.cube.model.RowKeyDesc;
@@ -55,17 +54,17 @@ public class RowKeyAttrRule implements IValidatorRule<CubeDesc> {
context.addResult(ResultLevel.ERROR, "Rowkey columns do not exist");
return;
}
- if(rcd.length == 0){
+ if (rcd.length == 0) {
context.addResult(ResultLevel.ERROR, "Rowkey columns is empty");
- return;
+ return;
}
for (int i = 0; i < rcd.length; i++) {
RowKeyColDesc rd = rcd[i];
- if (rd.getLength() != 0 && (!StringUtils.isEmpty(rd.getDictionary())&&!rd.getDictionary().equals("false"))) {
+ if (rd.getLength() != 0 && (!StringUtils.isEmpty(rd.getDictionary()) && !rd.getDictionary().equals("false"))) {
context.addResult(ResultLevel.ERROR, "Rowkey column " + rd.getColumn() + " must not have both 'length' and 'dictionary' attribute");
}
- if (rd.getLength() == 0 && (StringUtils.isEmpty(rd.getDictionary())||rd.getDictionary().equals("false"))) {
+ if (rd.getLength() == 0 && (StringUtils.isEmpty(rd.getDictionary()) || rd.getDictionary().equals("false"))) {
context.addResult(ResultLevel.ERROR, "Rowkey column " + rd.getColumn() + " must not have both 'length' and 'dictionary' empty");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java b/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
index 57d710c..e7914c7 100644
--- a/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
@@ -18,17 +18,17 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.IValidatorRule;
import org.apache.kylin.cube.model.validation.ValidateContext;
import org.apache.kylin.cube.model.validation.rule.AggregationGroupSizeRule;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.cube.model.validation.IValidatorRule;
-
/**
* @author jianliu
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
index c130337..13fcd4a 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
@@ -21,6 +21,8 @@ package org.apache.kylin.cube;
import java.util.HashMap;
import java.util.Map;
+import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.model.CubeDesc;
import org.junit.After;
import org.junit.Assert;
@@ -28,8 +30,6 @@ import org.junit.Before;
import org.junit.Test;
import com.google.common.collect.Maps;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
/**
* @author yangli9
@@ -60,22 +60,22 @@ public class CubeDescTest extends LocalFileMetadataTestCase {
CubeDesc cubeDesc = CubeDescManager.getInstance(getTestConfig()).getCubeDesc("test_kylin_cube_with_slr_desc");
Assert.assertNotNull(cubeDesc);
}
-
+
@Test
- public void testSerializeMap() throws Exception {
+ public void testSerializeMap() throws Exception {
Map<String, String> map = Maps.newHashMap();
map.put("key1", "value1");
map.put("key2", "value2");
-
+
String mapStr = JsonUtil.writeValueAsString(map);
-
+
System.out.println(mapStr);
-
+
Map<?, ?> map2 = JsonUtil.readValue(mapStr, HashMap.class);
-
+
Assert.assertEquals(map, map2);
-
+
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
index 5e64e01..ecdaada 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
@@ -18,19 +18,18 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.metadata.realization.RealizationStatusEnum;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-
/**
* @author yangli9
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
index 5c4d824..88f5e47 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
@@ -18,7 +18,8 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
index 7afd1e3..dbd7c4e 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
@@ -18,12 +18,13 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
import java.io.IOException;
-import org.apache.kylin.common.util.Pair;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.junit.After;
import org.junit.Before;
@@ -72,7 +73,7 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
assertEquals(0, seg2.getDateRangeStart());
assertEquals(Long.MAX_VALUE, seg2.getDateRangeEnd());
assertEquals(2, cube.getSegments().size());
-
+
// non-partitioned cannot merge, throw exception
mgr.mergeSegments(cube, 0, Long.MAX_VALUE, false);
}
@@ -97,7 +98,7 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
assertEquals(2000, seg2.getDateRangeEnd());
assertEquals(SegmentStatusEnum.NEW, seg2.getStatus());
seg2.setStatus(SegmentStatusEnum.READY);
-
+
// merge first and second
CubeSegment merge = mgr.mergeSegments(cube, 0, 2000, true);
@@ -105,15 +106,15 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
assertEquals(0, merge.getDateRangeStart());
assertEquals(2000, merge.getDateRangeEnd());
assertEquals(SegmentStatusEnum.NEW, merge.getStatus());
-
+
// segments are strictly ordered
assertEquals(seg1, cube.getSegments().get(0));
assertEquals(merge, cube.getSegments().get(1));
assertEquals(seg2, cube.getSegments().get(2));
-
+
// drop the merge
cube.getSegments().remove(merge);
-
+
// try merge at start/end at middle of segments
CubeSegment merge2 = mgr.mergeSegments(cube, 500, 1500, true);
assertEquals(3, cube.getSegments().size());
@@ -135,7 +136,7 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
} catch (IllegalStateException ex) {
// expected, append and merge requires at least one segment
}
-
+
// append first
CubeSegment seg1 = mgr.appendSegments(cube, 1000);
seg1.setStatus(SegmentStatusEnum.READY);
@@ -152,13 +153,13 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
assertEquals(2000, seg2.getDateRangeEnd());
assertEquals(0, merge.getDateRangeStart());
assertEquals(2000, merge.getDateRangeEnd());
-
+
// segments are strictly ordered
assertEquals(seg1, cube.getSegments().get(0));
assertEquals(merge, cube.getSegments().get(1));
assertEquals(seg2, cube.getSegments().get(2));
}
-
+
private void discard(Object o) {
// throw away input parameter
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java b/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
index 46773e7..04eb9b1 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
@@ -18,14 +18,13 @@
package org.apache.kylin.cube;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.estimation.CubeSizeEstimationCLI;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* Created by honma on 9/1/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java b/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
index 246cd74..d7feb56 100644
--- a/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
@@ -18,15 +18,11 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.util.HashSet;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.model.CubeDesc;
@@ -34,6 +30,10 @@ import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.dict.DictionaryInfo;
import org.apache.kylin.dict.DictionaryManager;
import org.apache.kylin.metadata.model.TblColRef;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
public class DictionaryManagerTest extends LocalFileMetadataTestCase {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java b/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
index 662694d..29b7183 100644
--- a/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
@@ -18,16 +18,15 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
-
-import org.apache.kylin.cube.model.validation.ValidateContext;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.validation.IValidatorRule;
+import org.apache.kylin.cube.model.validation.ValidateContext;
import org.apache.kylin.cube.model.validation.rule.MandatoryColumnRule;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author jianliu
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java b/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
index d07c72a..000fa1d 100644
--- a/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
@@ -18,17 +18,16 @@
package org.apache.kylin.cube;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
+import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.IValidatorRule;
import org.apache.kylin.cube.model.validation.ValidateContext;
import org.apache.kylin.cube.model.validation.rule.RowKeyAttrRule;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.validation.IValidatorRule;
-
/**
* @author jianliu
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java b/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
index 916d84d..074d973 100644
--- a/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.cube.common;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import org.apache.kylin.common.util.BytesSplitter;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java b/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
index 92a3e37..9a7970c 100644
--- a/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
@@ -18,16 +18,15 @@
package org.apache.kylin.cube.common;
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java b/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
index 198f104..a69f179 100644
--- a/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.cube.cuboid;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
index ad60caa..83e8d94 100644
--- a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
@@ -18,21 +18,22 @@
package org.apache.kylin.cube.cuboid;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
index 4914448..235edf2 100644
--- a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
@@ -18,17 +18,17 @@
package org.apache.kylin.cube.cuboid;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.MetadataManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
index 968e8ab..a8dd965 100644
--- a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
@@ -18,22 +18,21 @@
package org.apache.kylin.cube.kv;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.List;
import org.apache.kylin.common.util.Bytes;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
index c8164e4..c50b8c9 100644
--- a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
@@ -18,22 +18,23 @@
package org.apache.kylin.cube.kv;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.MetadataManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.cube.cuboid.Cuboid;
-import org.apache.kylin.metadata.MetadataManager;
-
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java b/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
index c61eb29..4e44d13 100644
--- a/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.cube.kv;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
@@ -26,18 +26,17 @@ import java.util.Arrays;
import java.util.List;
import org.apache.hadoop.io.LongWritable;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.HBaseColumnDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java b/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
index 20f976b..faea24f 100644
--- a/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
@@ -18,15 +18,12 @@
package org.apache.kylin.cube.project;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.Set;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
@@ -38,6 +35,9 @@ import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.RealizationType;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* @author xduo
@@ -69,7 +69,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
CubeDescManager cubeDescMgr = CubeDescManager.getInstance(getTestConfig());
-
+
int originalProjectCount = prjMgr.listAllProjects().size();
int originalCubeCount = cubeMgr.listAllCubes().size();
int originalCubeCountInDefault = prjMgr.listAllRealizations("default").size();
@@ -117,7 +117,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
CubeDescManager cubeDescMgr = CubeDescManager.getInstance(getTestConfig());
-
+
int originalProjectCount = prjMgr.listAllProjects().size();
int originalCubeCount = cubeMgr.listAllCubes().size();
ResourceStore store = getStore();
@@ -146,7 +146,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
public void testProjectsDrop() throws IOException {
ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
-
+
CubeInstance cube = cubeMgr.getCube("test_kylin_cube_with_slr_empty");
assertTrue(prjMgr.getRealizationsByTable("default", "default.test_kylin_fact").contains(cube));
assertTrue(prjMgr.listAllRealizations("default").contains(cube));
@@ -161,7 +161,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
public void testProjectsLoadAfterProjectChange() throws IOException {
ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
-
+
CubeInstance cube = cubeMgr.getCube("test_kylin_cube_with_slr_empty");
assertTrue(prjMgr.getRealizationsByTable("default", "default.test_kylin_fact").contains(cube));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java b/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
index e8feb87..6eff233 100644
--- a/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
+++ b/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
@@ -20,15 +20,6 @@ package org.apache.kylin.metadata;
import java.util.List;
-import org.apache.kylin.metadata.model.DataModelDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.metadata.project.ProjectManager;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
@@ -37,6 +28,13 @@ import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.DimensionDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
/**
* Test the data model upgrade
@@ -63,8 +61,8 @@ public class MetadataUpgradeTest extends LocalFileMetadataTestCase {
MetadataManager.getInstance(config).reload();
CubeDescManager.clearCache();
CubeDescManager.getInstance(config);
-// CubeManager cubeManager = CubeManager.getInstance(config);
-// ProjectManager.getInstance(config);
+ // CubeManager cubeManager = CubeManager.getInstance(config);
+ // ProjectManager.getInstance(config);
}
@@ -73,23 +71,22 @@ public class MetadataUpgradeTest extends LocalFileMetadataTestCase {
MetadataManager metaMgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
TableDesc fact = metaMgr.getTableDesc("default.test_kylin_fact");
-
+
@SuppressWarnings("deprecation")
String oldResLocation = fact.getResourcePathV1();
String newResLocation = fact.getResourcePath();
-
+
ResourceStore store = ResourceStore.getStore(KylinConfig.getInstanceFromEnv());
-
+
Assert.assertTrue(store.exists(newResLocation));
Assert.assertTrue(!store.exists(oldResLocation));
-
-
+
String oldExdResLocation = TableDesc.concatExdResourcePath("test_kylin_fact".toUpperCase());
String newExdResLocation = TableDesc.concatExdResourcePath("default.test_kylin_fact".toUpperCase());
-
+
Assert.assertTrue(store.exists(newExdResLocation));
Assert.assertTrue(!store.exists(oldExdResLocation));
-
+
}
private void checkCubeDesc(String descName) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java b/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
index ddb624e..be19c8e 100644
--- a/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
+++ b/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.metadata.measure;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
@@ -26,12 +26,11 @@ import java.util.Arrays;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.LongWritable;
-import org.junit.Test;
-
import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.junit.Test;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java b/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
index 3b5e88d..6476d68 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
@@ -22,7 +22,6 @@ import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import org.apache.hadoop.io.Writable;
-
import org.apache.kylin.common.util.BytesUtil;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index fc01b78..c2eb927 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -164,7 +164,7 @@ public class DictionaryManager {
logger.info("Use one of the merging dictionaries directly");
return dicts.get(0);
}
-
+
Dictionary<?> newDict = DictionaryGenerator.mergeDictionaries(newDictInfo, dicts);
return trySaveNewDict(newDict, newDictInfo);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java b/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
index 872ae2d..b48a321 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
@@ -28,8 +28,8 @@ public interface ISegment {
public abstract int getColumnLength(TblColRef col);
public abstract Dictionary<?> getDictionary(TblColRef col);
-
+
public String getName();
-
+
public String getUuid();
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
index 8674852..49cb6d3 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
@@ -29,17 +29,17 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.Reader;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.util.ReflectionUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.common.util.StringSplitter;
import org.apache.kylin.dict.lookup.ReadableTable.TableReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Tables are typically CSV or SEQ file.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
index 2941861..73fb4f6 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
@@ -57,14 +57,14 @@ public class HiveTable implements ReadableTable {
Pair<Long, Long> sizeAndLastModified = FileTable.getSizeAndLastModified(path);
long size = sizeAndLastModified.getFirst();
long lastModified = sizeAndLastModified.getSecond();
-
+
// for non-native hive table, cannot rely on size & last modified on HDFS
if (getHiveClient().isNativeTable(database, hiveTable) == false) {
lastModified = System.currentTimeMillis(); // assume table is ever changing
}
return new TableSignature(path, size, lastModified);
-
+
} catch (Exception e) {
if (e instanceof IOException)
throw (IOException) e;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
index 701c2dd..2004ac6 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
@@ -20,9 +20,8 @@ package org.apache.kylin.dict.lookup;
import java.io.IOException;
-import org.apache.kylin.common.util.Bytes;
-
import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.metadata.model.TableDesc;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
index 7e83197..192abdf 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
@@ -25,14 +25,13 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.kylin.common.util.Pair;
-
-import com.google.common.collect.Sets;
-
import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.dict.lookup.ReadableTable.TableReader;
import org.apache.kylin.metadata.model.TableDesc;
+import com.google.common.collect.Sets;
+
/**
* An in-memory lookup table, in which each cell is an object of type T. The
* table is indexed by specified PK for fast lookup.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
index fa4d9e3..03998a5 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
@@ -22,8 +22,8 @@ import java.io.Closeable;
import java.io.IOException;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
/**
*/
@@ -44,11 +44,11 @@ public interface ReadableTable {
/** Get the current row. */
public String[] getRow();
-
+
}
-
+
// ============================================================================
-
+
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class TableSignature {
@@ -94,7 +94,6 @@ public interface ReadableTable {
return lastModifiedTime;
}
-
@Override
public int hashCode() {
final int prime = 31;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
index af2d2a0..8a61d76 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
@@ -22,13 +22,13 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.dict.lookup.ReadableTable.TableSignature;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.TableDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author yangli9
[06/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java b/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
index cd81d64..c02b2bb 100644
--- a/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
+++ b/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
@@ -21,10 +21,11 @@ package org.apache.kylin.job.dao;
import java.util.List;
import java.util.Map;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Maps;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
/**
* Created by qianzhou on 12/15/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java b/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
index 7a73790..ed12cff 100644
--- a/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
@@ -27,7 +27,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HConstants;
-
import org.apache.kylin.job.tools.LZOSupportnessChecker;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
index 8cc44bf..34fe858 100644
--- a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
+++ b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
@@ -18,6 +18,12 @@
package org.apache.kylin.job.engine;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
import org.apache.commons.lang.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.job.tools.OptionsHelper;
@@ -25,8 +31,6 @@ import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.*;
-
/**
* @author ysong1
*/
@@ -108,7 +112,6 @@ public class JobEngineConfig {
return config.getHdfsWorkingDirectory();
}
-
/**
* @return the maxConcurrentJobLimit
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java b/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
index d5b801b..ea9afb9 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
@@ -18,10 +18,13 @@
package org.apache.kylin.job.execution;
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.kylin.common.KylinConfig;
@@ -33,12 +36,10 @@ import org.apache.kylin.job.manager.ExecutableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
/**
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java b/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
index 8ceb23e..0c49ec1 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
@@ -26,7 +26,7 @@ import java.util.List;
public interface ChainedExecutable extends Executable {
List<? extends AbstractExecutable> getTasks();
-
+
void addTask(AbstractExecutable executable);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java b/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
index e6b0d8e..557ce67 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
@@ -21,12 +21,13 @@ package org.apache.kylin.job.execution;
import java.util.List;
import java.util.Map;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.job.exception.ExecuteException;
import org.apache.kylin.job.manager.ExecutableManager;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
/**
* Created by qianzhou on 12/16/14.
*/
@@ -36,7 +37,7 @@ public class DefaultChainedExecutable extends AbstractExecutable implements Chai
protected final ExecutableManager jobService = ExecutableManager.getInstance(KylinConfig.getInstanceFromEnv());
- public DefaultChainedExecutable(){
+ public DefaultChainedExecutable() {
super();
}
@@ -74,7 +75,7 @@ public class DefaultChainedExecutable extends AbstractExecutable implements Chai
List<? extends Executable> jobs = getTasks();
boolean allSucceed = true;
boolean hasError = false;
- for (Executable task: jobs) {
+ for (Executable task : jobs) {
final ExecutableState status = task.getStatus();
if (status == ExecutableState.ERROR) {
hasError = true;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java b/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
index d6d2ddb..9e8afe1 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
@@ -18,10 +18,10 @@
package org.apache.kylin.job.execution;
-import org.apache.commons.lang3.StringUtils;
-
import java.util.Map;
+import org.apache.commons.lang3.StringUtils;
+
/**
* Created by qianzhou on 1/6/15.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/Executable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/Executable.java b/job/src/main/java/org/apache/kylin/job/execution/Executable.java
index 7bd2351..2a8d337 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/Executable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/Executable.java
@@ -18,10 +18,10 @@
package org.apache.kylin.job.execution;
-import org.apache.kylin.job.exception.ExecuteException;
-
import java.util.Map;
+import org.apache.kylin.job.exception.ExecuteException;
+
/**
* Created by qianzhou on 12/15/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java b/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
index 24d23ee..3a9aa4a 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
@@ -32,17 +32,12 @@ import com.google.common.collect.Multimaps;
*/
public enum ExecutableState {
- READY,
- RUNNING,
- ERROR,
- STOPPED,
- DISCARDED,
- SUCCEED;
+ READY, RUNNING, ERROR, STOPPED, DISCARDED, SUCCEED;
private static Multimap<ExecutableState, ExecutableState> VALID_STATE_TRANSFER;
static {
- VALID_STATE_TRANSFER = Multimaps.newSetMultimap(Maps.<ExecutableState, Collection<ExecutableState>>newEnumMap(ExecutableState.class), new Supplier<Set<ExecutableState>>() {
+ VALID_STATE_TRANSFER = Multimaps.newSetMultimap(Maps.<ExecutableState, Collection<ExecutableState>> newEnumMap(ExecutableState.class), new Supplier<Set<ExecutableState>>() {
@Override
public Set<ExecutableState> get() {
return new CopyOnWriteArraySet<ExecutableState>();
@@ -64,7 +59,6 @@ public enum ExecutableState {
//scheduler,job
VALID_STATE_TRANSFER.put(ExecutableState.RUNNING, ExecutableState.ERROR);
-
VALID_STATE_TRANSFER.put(ExecutableState.STOPPED, ExecutableState.DISCARDED);
VALID_STATE_TRANSFER.put(ExecutableState.STOPPED, ExecutableState.READY);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java b/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
index bc0137d..874c414 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
@@ -25,7 +25,9 @@ import com.google.common.base.Preconditions;
*/
public final class ExecuteResult {
- public static enum State {SUCCEED, FAILED, ERROR, DISCARDED, STOPPED}
+ public static enum State {
+ SUCCEED, FAILED, ERROR, DISCARDED, STOPPED
+ }
private final State state;
private final String output;
@@ -48,7 +50,6 @@ public final class ExecuteResult {
return state == State.SUCCEED;
}
-
public String output() {
return output;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
index 1d34f1f..b9413c0 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
@@ -23,6 +23,15 @@ package org.apache.kylin.job.hadoop;
*
*/
+import static org.apache.hadoop.util.StringUtils.formatTime;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
@@ -57,15 +66,6 @@ import org.apache.kylin.metadata.model.TableDesc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.hadoop.util.StringUtils.formatTime;
-
@SuppressWarnings("static-access")
public abstract class AbstractHadoopJob extends Configured implements Tool {
protected static final Logger logger = LoggerFactory.getLogger(AbstractHadoopJob.class);
@@ -163,7 +163,6 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
logger.info("The default mapred classpath is: " + classpath);
}
-
if (kylinHBaseDependency != null) {
// yarn classpath is comma separated
kylinHBaseDependency = kylinHBaseDependency.replace(":", ",");
@@ -180,7 +179,6 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
logger.info("Hadoop job classpath is: " + job.getConfiguration().get(MAP_REDUCE_CLASSPATH));
}
-
private String getDefaultMapRedClasspath() {
String classpath = "";
@@ -197,7 +195,6 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
return classpath;
}
-
public void addInputDirs(String input, Job job) throws IOException {
for (String inp : StringSplitter.split(input, ",")) {
inp = inp.trim();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
index 3e3c3fb..3bddae3 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
@@ -24,16 +24,15 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hive.hcatalog.data.HCatRecord;
import org.apache.hive.hcatalog.data.schema.HCatFieldSchema;
import org.apache.hive.hcatalog.data.schema.HCatSchema;
import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.cube.kv.RowConstants;
/**
@@ -46,10 +45,10 @@ public class ColumnCardinalityMapper<T> extends KylinMapper<T, HCatRecord, IntWr
public static final String DEFAULT_DELIM = ",";
private int counter = 0;
-
+
private HCatSchema schema = null;
private int columnSize = 0;
-
+
@Override
protected void setup(Context context) throws IOException {
super.publishConfiguration(context.getConfiguration());
@@ -67,7 +66,7 @@ public class ColumnCardinalityMapper<T> extends KylinMapper<T, HCatRecord, IntWr
fieldValue = value.get(field.getName(), schema);
if (fieldValue == null)
fieldValue = "NULL";
-
+
if (counter < 5 && m < 10) {
System.out.println("Get row " + counter + " column '" + field.getName() + "' value: " + fieldValue);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
index a9ac1a3..b0c3053 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
@@ -20,12 +20,16 @@ package org.apache.kylin.job.hadoop.cardinality;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
-
import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.cube.kv.RowConstants;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
index d5e5292..eae59ab 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
@@ -18,8 +18,6 @@
package org.apache.kylin.job.hadoop.cardinality;
-import java.io.File;
-
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
@@ -32,7 +30,6 @@ import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
@@ -70,7 +67,7 @@ public class HiveColumnCardinalityJob extends AbstractHadoopJob {
job = Job.getInstance(conf, jobName);
setJobClasspath(job);
-
+
Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));
FileOutputFormat.setOutputPath(job, output);
job.getConfiguration().set("dfs.block.size", "67108864");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
index 48553d7..5b7f87e 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
@@ -37,7 +37,6 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionCodecFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.apache.kylin.metadata.MetadataConstants;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
index 5f7802a..c181ec7 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
@@ -35,5 +35,5 @@ public class BaseCuboidJob extends CuboidJob {
int exitCode = ToolRunner.run(job, args);
System.exit(exitCode);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
index c12ecaa..2a20379 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
@@ -23,31 +23,31 @@ import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.BytesSplitter;
+import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
-import org.apache.kylin.common.util.BytesSplitter;
-import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.kv.AbstractRowKeyEncoder;
import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.apache.kylin.job.hadoop.hive.CubeJoinedFlatTableDesc;
+import org.apache.kylin.metadata.measure.MeasureCodec;
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.SegmentStatusEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
index bb4c927..5c5799d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
@@ -18,8 +18,6 @@
package org.apache.kylin.job.hadoop.cube;
-import java.io.File;
-
import org.apache.commons.cli.Options;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
@@ -32,15 +30,14 @@ import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-
/**
* @author George Song (ysong1)
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
index d038534..12a0e1a 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
@@ -26,22 +26,22 @@ import java.util.List;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.KeyValue.Type;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.Text;
-
-import com.google.common.collect.Lists;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.HBaseColumnDesc;
import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
+import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.metadata.model.MeasureDesc;
+import com.google.common.collect.Lists;
+
/**
* @author George Song (ysong1)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
index 540f7f4..3c7d092 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
@@ -18,7 +18,6 @@
package org.apache.kylin.job.hadoop.cube;
-import java.io.File;
import java.io.IOException;
import org.apache.commons.cli.Options;
@@ -32,9 +31,6 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -43,6 +39,8 @@ import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.exception.JobException;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author ysong1
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
index 7181fa1..1d87898 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
@@ -22,20 +22,19 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.List;
-import org.apache.kylin.common.mr.KylinReducer;
import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureAggregators;
-import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.measure.MeasureAggregators;
+import org.apache.kylin.metadata.measure.MeasureCodec;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author George Song (ysong1)
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
index b5aa35e..478f885 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
@@ -21,12 +21,11 @@ package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
import java.util.HashSet;
-import org.apache.kylin.common.mr.KylinReducer;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
-
+import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
index 208f90e..e701092 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
@@ -19,12 +19,10 @@
package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
-import java.util.List;
+import java.util.List;
-import com.google.common.base.Joiner;
-import com.google.common.collect.Lists;
import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.ShortWritable;
@@ -38,22 +36,25 @@ import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.cuboid.Cuboid;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.RowKeyDesc;
-import org.apache.kylin.dict.DictionaryManager;
+import org.apache.kylin.cube.cuboid.Cuboid;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.RowKeyDesc;
+import org.apache.kylin.dict.DictionaryManager;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.metadata.model.TblColRef;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Joiner;
+import com.google.common.collect.Lists;
+
/**
* @author yangli9
*/
public class FactDistinctColumnsJob extends AbstractHadoopJob {
protected static final Logger log = LoggerFactory.getLogger(FactDistinctColumnsJob.class);
- private static final Joiner joiner = Joiner.on(",");
+ private static final Joiner joiner = Joiner.on(",");
@Override
public int run(String[] args) throws Exception {
@@ -67,8 +68,8 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
parseOptions(options, args);
job = Job.getInstance(getConf(), getOptionValue(OPTION_JOB_NAME));
- Configuration jobConf = job.getConfiguration();
-
+ Configuration jobConf = job.getConfiguration();
+
String cubeName = getOptionValue(OPTION_CUBE_NAME);
Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));
String intermediateTable = getOptionValue(OPTION_TABLE_NAME);
@@ -77,42 +78,42 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
// add metadata to distributed cache
CubeManager cubeMgr = CubeManager.getInstance(KylinConfig.getInstanceFromEnv());
CubeInstance cubeInstance = cubeMgr.getCube(cubeName);
- CubeDesc cubeDesc = cubeInstance.getDescriptor();
+ CubeDesc cubeDesc = cubeInstance.getDescriptor();
- jobConf.set(BatchConstants.CFG_CUBE_NAME, cubeName);
+ jobConf.set(BatchConstants.CFG_CUBE_NAME, cubeName);
System.out.println("Starting: " + job.getJobName());
setJobClasspath(job);
-
+
setupMapper(intermediateTable);
setupReducer(output);
// CubeSegment seg = cubeMgr.getCube(cubeName).getTheOnlySegment();
- attachKylinPropsAndMetadata(cubeInstance, jobConf);
-
- // set names and row key indexes of fact table's dictionary columns in Configuration,
- // so that mapper & reducer task can use them
- List<String> factDictColNames = Lists.newArrayList();
- List<Integer> factDictColRowKeyIndexes = Lists.newArrayList();
-
- Cuboid baseCuboid = Cuboid.findById(cubeDesc, Cuboid.getBaseCuboidId(cubeDesc));
- List<TblColRef> columns = baseCuboid.getColumns();
-
- RowKeyDesc rowkey = cubeDesc.getRowkey();
- DictionaryManager dictMgr = DictionaryManager.getInstance(KylinConfig.getInstanceFromEnv());
- for (int i = 0; i < columns.size(); i++) {
- TblColRef col = columns.get(i);
- if (!rowkey.isUseDictionary(col))
- continue;
-
- String scanTable = (String) dictMgr.decideSourceData(cubeDesc.getModel(), rowkey.getDictionary(col), col, null)[0];
- if (cubeDesc.getModel().isFactTable(scanTable)) {
- factDictColNames.add(col.getName());
- factDictColRowKeyIndexes.add(i);
- }
- }
- jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES, joiner.join(factDictColNames));
- jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES, joiner.join(factDictColRowKeyIndexes));
+ attachKylinPropsAndMetadata(cubeInstance, jobConf);
+
+ // set names and row key indexes of fact table's dictionary columns in Configuration,
+ // so that mapper & reducer task can use them
+ List<String> factDictColNames = Lists.newArrayList();
+ List<Integer> factDictColRowKeyIndexes = Lists.newArrayList();
+
+ Cuboid baseCuboid = Cuboid.findById(cubeDesc, Cuboid.getBaseCuboidId(cubeDesc));
+ List<TblColRef> columns = baseCuboid.getColumns();
+
+ RowKeyDesc rowkey = cubeDesc.getRowkey();
+ DictionaryManager dictMgr = DictionaryManager.getInstance(KylinConfig.getInstanceFromEnv());
+ for (int i = 0; i < columns.size(); i++) {
+ TblColRef col = columns.get(i);
+ if (!rowkey.isUseDictionary(col))
+ continue;
+
+ String scanTable = (String) dictMgr.decideSourceData(cubeDesc.getModel(), rowkey.getDictionary(col), col, null)[0];
+ if (cubeDesc.getModel().isFactTable(scanTable)) {
+ factDictColNames.add(col.getName());
+ factDictColRowKeyIndexes.add(i);
+ }
+ }
+ jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES, joiner.join(factDictColNames));
+ jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES, joiner.join(factDictColRowKeyIndexes));
return waitForCompletion(job);
@@ -128,12 +129,11 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
}
private void setupMapper(String intermediateTable) throws IOException {
-// FileInputFormat.setInputPaths(job, input);
+ // FileInputFormat.setInputPaths(job, input);
String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
- HCatInputFormat.setInput(job, dbTableNames[0],
- dbTableNames[1]);
-
+ HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
+
job.setInputFormatClass(HCatInputFormat.class);
job.setMapperClass(FactDistinctColumnsMapper.class);
job.setCombinerClass(FactDistinctColumnsCombiner.class);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
index 8636717..ca0671d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
@@ -22,16 +22,15 @@ import java.io.IOException;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
import org.apache.hive.hcatalog.data.HCatRecord;
import org.apache.hive.hcatalog.data.schema.HCatFieldSchema;
import org.apache.hive.hcatalog.data.schema.HCatSchema;
import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.model.CubeDesc;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
index e6fd3f1..7e24484 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
@@ -19,22 +19,24 @@
package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapreduce.Reducer;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.cuboid.Cuboid;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
index dfa20ca..788c482 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
@@ -18,8 +18,6 @@
package org.apache.kylin.job.hadoop.cube;
-import java.io.File;
-
import org.apache.commons.cli.Options;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
@@ -27,7 +25,6 @@ import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
index d0a0d19..9b7b146 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
@@ -27,15 +27,14 @@ import java.util.regex.Pattern;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinMapper;
import org.apache.kylin.common.util.BytesUtil;
+import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.common.RowKeySplitter;
-import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.kv.RowConstants;
import org.apache.kylin.cube.model.CubeDesc;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
index 8b84277..f1cdff5 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
@@ -18,8 +18,11 @@
package org.apache.kylin.job.hadoop.cube;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
@@ -31,10 +34,8 @@ import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
public class MetadataCleanupJob extends AbstractHadoopJob {
@@ -104,7 +105,7 @@ public class MetadataCleanupJob extends AbstractHadoopJob {
List<String> toDeleteResource = Lists.newArrayList();
// two level resources, snapshot tables and cube statistics
- for (String resourceRoot : new String[]{ResourceStore.SNAPSHOT_RESOURCE_ROOT}) {
+ for (String resourceRoot : new String[] { ResourceStore.SNAPSHOT_RESOURCE_ROOT }) {
ArrayList<String> snapshotTables = getStore().listResources(resourceRoot);
if (snapshotTables != null) {
@@ -140,7 +141,6 @@ public class MetadataCleanupJob extends AbstractHadoopJob {
}
}
-
if (toDeleteResource.size() > 0) {
logger.info("The following resources have no reference, will be cleaned from metadata store: \n");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
index dc65baa..a9a6080 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
@@ -21,24 +21,22 @@ package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
import java.util.Collection;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
-
import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.common.RowKeySplitter;
-import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.cuboid.CuboidScheduler;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author George Song (ysong1)
@@ -64,7 +62,6 @@ public class NDCuboidMapper extends KylinMapper<Text, Text, Text, Text> {
protected void setup(Context context) throws IOException {
super.publishConfiguration(context.getConfiguration());
-
cubeName = context.getConfiguration().get(BatchConstants.CFG_CUBE_NAME).toUpperCase();
segmentName = context.getConfiguration().get(BatchConstants.CFG_CUBE_SEGMENT_NAME).toUpperCase();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
index 6a8c360..f587ac8 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
@@ -27,19 +27,14 @@ import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
-import org.apache.kylin.common.util.Bytes;
-import org.apache.kylin.common.util.Pair;
import org.apache.hadoop.io.Text;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinMapper;
import org.apache.kylin.common.util.Array;
import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.BytesSplitter;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.common.util.SplittedBytes;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -51,6 +46,8 @@ import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.DimensionDesc;
import org.apache.kylin.dict.lookup.HiveTable;
import org.apache.kylin.dict.lookup.LookupBytesTable;
+import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.measure.MeasureCodec;
import org.apache.kylin.metadata.model.FunctionDesc;
@@ -60,6 +57,8 @@ import org.apache.kylin.metadata.model.ParameterDesc;
import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author George Song (ysong1),honma
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
index 061cb90..6b7cb2b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
@@ -18,8 +18,6 @@
package org.apache.kylin.job.hadoop.cube;
-import java.io.File;
-
import org.apache.commons.cli.Options;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
@@ -29,15 +27,14 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
import org.apache.hadoop.util.ToolRunner;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author xjiang, ysong1
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
index 71f6b36..48ad7c5 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
@@ -20,9 +20,9 @@ package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
-import org.apache.kylin.common.mr.KylinMapper;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
+import org.apache.kylin.common.mr.KylinMapper;
/**
* @author ysong1
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
index 6bdacfd..fbe3531 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
@@ -25,12 +25,11 @@ import java.util.List;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.util.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.cube.model.v1.CubeDesc.CubeCapacity;
import org.apache.kylin.job.constant.BatchConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author ysong1
@@ -39,10 +38,10 @@ import org.apache.kylin.job.constant.BatchConstants;
public class RangeKeyDistributionReducer extends KylinReducer<Text, LongWritable, Text, LongWritable> {
public static final long ONE_GIGA_BYTES = 1024L * 1024L * 1024L;
- public static final int SMALL_CUT = 10; // 10 GB per region
+ public static final int SMALL_CUT = 10; // 10 GB per region
public static final int MEDIUM_CUT = 20; // 20 GB per region
public static final int LARGE_CUT = 100; // 100 GB per region
-
+
public static final int MAX_REGION = 500;
private static final Logger logger = LoggerFactory.getLogger(RangeKeyDistributionReducer.class);
@@ -78,7 +77,7 @@ public class RangeKeyDistributionReducer extends KylinReducer<Text, LongWritable
for (LongWritable v : values) {
bytesRead += v.get();
}
-
+
if (bytesRead >= ONE_GIGA_BYTES) {
gbPoints.add(new Text(key));
bytesRead = 0; // reset bytesRead
@@ -88,15 +87,15 @@ public class RangeKeyDistributionReducer extends KylinReducer<Text, LongWritable
@Override
protected void cleanup(Context context) throws IOException, InterruptedException {
int nRegion = Math.round((float) gbPoints.size() / (float) cut);
- nRegion = Math.max(1, nRegion);
+ nRegion = Math.max(1, nRegion);
nRegion = Math.min(MAX_REGION, nRegion);
-
+
int gbPerRegion = gbPoints.size() / nRegion;
gbPerRegion = Math.max(1, gbPerRegion);
-
+
System.out.println(nRegion + " regions");
System.out.println(gbPerRegion + " GB per region");
-
+
for (int i = gbPerRegion; i < gbPoints.size(); i += gbPerRegion) {
Text key = gbPoints.get(i);
outputValue.set(i);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
index faf6675..d47739d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
import org.apache.hadoop.util.ToolRunner;
-
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
index af6e7f3..1ba0102 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
@@ -27,9 +27,12 @@ import java.util.Map.Entry;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.io.*;
+import org.apache.hadoop.io.IOUtils;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.io.Writable;
import org.apache.hadoop.util.ReflectionUtils;
-
import org.apache.kylin.common.mr.KylinMapper;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
index bceec33..7e082a9 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
@@ -22,7 +22,6 @@ import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
-
import org.apache.kylin.common.mr.KylinReducer;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
index 09fba01..af4b6f8 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
@@ -18,18 +18,11 @@
package org.apache.kylin.job.hadoop.cube;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.CubeSegment;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.IISegment;
-import org.apache.kylin.job.JobInstance;
-import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.execution.ExecutableState;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.manager.ExecutableManager;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
@@ -43,15 +36,22 @@ import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.job.JobInstance;
+import org.apache.kylin.job.engine.JobEngineConfig;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.manager.ExecutableManager;
import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
/**
* @author ysong1
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
index a2d3190..814e47b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
@@ -20,7 +20,6 @@ package org.apache.kylin.job.hadoop.dict;
import org.apache.commons.cli.Options;
import org.apache.hadoop.util.ToolRunner;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.cli.DictionaryGeneratorCLI;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
index 7a4702e..572cde6 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
@@ -26,14 +26,12 @@ import org.apache.hadoop.fs.permission.FsPermission;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles;
import org.apache.hadoop.util.ToolRunner;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -75,7 +73,7 @@ public class BulkLoadJob extends AbstractHadoopJob {
Path columnFamilyPath = new Path(input + cfName);
// File may have already been auto-loaded (in the case of MapR DB)
- if(fs.exists(columnFamilyPath)) {
+ if (fs.exists(columnFamilyPath)) {
fs.setPermission(columnFamilyPath, permission);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
index 4be85e5..6988a8a 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
@@ -18,14 +18,9 @@
package org.apache.kylin.job.hadoop.hbase;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.tools.DeployCoprocessorCLI;
-import org.apache.kylin.job.tools.LZOSupportnessChecker;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.commons.cli.Options;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
@@ -46,13 +41,18 @@ import org.apache.hadoop.io.Writable;
import org.apache.hadoop.util.ReflectionUtils;
import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.tools.DeployCoprocessorCLI;
+import org.apache.kylin.job.tools.LZOSupportnessChecker;
import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author George Song (ysong1)
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java b/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
index ae66a18..b8948b0 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
@@ -133,7 +133,7 @@ public class CubeJoinedFlatTableDesc implements IJoinedFlatTableDesc {
if (columnCount != bytesSplitter.getBufferSize()) {
throw new IllegalArgumentException("Expect " + columnCount + " columns, but see " + bytesSplitter.getBufferSize() + " -- " + bytesSplitter);
}
-
+
// TODO: check data types here
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java b/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
index 187b3da..27fcb6b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
@@ -20,16 +20,13 @@ package org.apache.kylin.job.hadoop.hive;
import java.util.List;
import java.util.Map;
-import java.util.TreeMap;
-
-import com.google.common.collect.Lists;
import org.apache.kylin.invertedindex.model.IIDesc;
import org.apache.kylin.metadata.model.DataModelDesc;
-import org.apache.kylin.metadata.model.JoinDesc;
-import org.apache.kylin.metadata.model.LookupDesc;
import org.apache.kylin.metadata.model.TblColRef;
+import com.google.common.collect.Lists;
+
/**
* Created by Hongbin Ma(Binmahone) on 12/30/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
index f636af4..5ab28ad 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
@@ -18,12 +18,6 @@
package org.apache.kylin.job.hadoop.invertedindex;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.IISegment;
-import org.apache.kylin.invertedindex.model.IIDesc;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.commons.cli.Options;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -32,6 +26,12 @@ import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles;
import org.apache.hadoop.util.ToolRunner;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.invertedindex.model.IIDesc;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
/**
* @author ysong1
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
index fd569ca..7fb1963 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
@@ -18,11 +18,6 @@
package org.apache.kylin.job.hadoop.invertedindex;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.model.IIDesc;
-import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
-import org.apache.kylin.job.tools.DeployCoprocessorCLI;
import org.apache.commons.cli.Options;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -36,7 +31,12 @@ import org.apache.hadoop.util.ToolRunner;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.model.IIDesc;
+import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.tools.DeployCoprocessorCLI;
import org.apache.kylin.metadata.realization.IRealizationConstants;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
index 24f8b6f..cfcadbe 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
@@ -21,12 +21,11 @@ package org.apache.kylin.job.hadoop.invertedindex;
import java.io.IOException;
import java.util.HashSet;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
-
import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
index 9c7051a..af02bca 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
@@ -41,7 +41,6 @@ import org.apache.kylin.job.hadoop.hive.IntermediateColumnDesc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
* @author yangli9
*/
@@ -74,7 +73,7 @@ public class IIDistinctColumnsJob extends AbstractHadoopJob {
job.getConfiguration().set(BatchConstants.TABLE_COLUMNS, getColumns(ii));
setJobClasspath(job);
-
+
setupMapper();
setupReducer(output);
@@ -103,7 +102,7 @@ public class IIDistinctColumnsJob extends AbstractHadoopJob {
String tableName = job.getConfiguration().get(BatchConstants.TABLE_NAME);
String[] dbTableNames = HadoopUtil.parseHiveTableName(tableName);
- log.info("setting hcat input format, db name {} , table name {}", dbTableNames[0],dbTableNames[1]);
+ log.info("setting hcat input format, db name {} , table name {}", dbTableNames[0], dbTableNames[1]);
HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
index 6b6e22b..f45e982 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
@@ -20,15 +20,14 @@ package org.apache.kylin.job.hadoop.invertedindex;
import java.io.IOException;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
import org.apache.hive.hcatalog.data.HCatRecord;
import org.apache.hive.hcatalog.data.schema.HCatFieldSchema;
import org.apache.hive.hcatalog.data.schema.HCatSchema;
import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
index 781b0b4..83e220f 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
@@ -25,13 +25,12 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
-
import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.job.constant.BatchConstants;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
index 43c0631..e8e1874 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
@@ -20,21 +20,21 @@ package org.apache.kylin.job.hadoop.invertedindex;
import org.apache.commons.cli.Options;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.invertedindex.IIDescManager;
import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.invertedindex.model.IIDesc;
+import org.apache.kylin.job.JobInstance;
import org.apache.kylin.job.JoinedFlatTable;
import org.apache.kylin.job.cmd.ICommandOutput;
import org.apache.kylin.job.cmd.ShellCmd;
import org.apache.kylin.job.engine.JobEngineConfig;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.hadoop.hive.IIJoinedFlatTableDesc;
import org.apache.kylin.job.hadoop.hive.IJoinedFlatTableDesc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.JobInstance;
-import org.apache.kylin.job.hadoop.hive.IIJoinedFlatTableDesc;
/**
* Created by Hongbin Ma(Binmahone) on 12/30/14.
@@ -70,7 +70,7 @@ public class IIFlattenHiveJob extends AbstractHadoopJob {
buf.append(createTableHql + "\n");
buf.append(insertDataHqls + "\n");
buf.append("\"");
-
+
System.out.println(buf.toString());
System.out.println("========================");
@@ -78,7 +78,7 @@ public class IIFlattenHiveJob extends AbstractHadoopJob {
ICommandOutput output = cmd.execute();
System.out.println(output.getOutput());
System.out.println(output.getExitCode());
-
+
return 0;
} catch (Exception e) {
printUsage(options);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
index 6a0532e..d975fb1 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
@@ -68,7 +68,7 @@ public class InvertedIndexJob extends AbstractHadoopJob {
IIInstance ii = getII(iiname);
short sharding = ii.getDescriptor().getSharding();
-
+
setJobClasspath(job);
setupMapper(intermediateTable);
@@ -105,9 +105,8 @@ public class InvertedIndexJob extends AbstractHadoopJob {
private void setupMapper(String intermediateTable) throws IOException {
String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
- HCatInputFormat.setInput(job, dbTableNames[0],
- dbTableNames[1]);
-
+ HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
+
job.setInputFormatClass(HCatInputFormat.class);
job.setMapperClass(InvertedIndexMapper.class);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
index 735a945..cb807a5 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
@@ -51,7 +51,7 @@ public class InvertedIndexMapper<KEYIN> extends KylinMapper<KEYIN, HCatRecord, L
private ImmutableBytesWritable outputValue;
private HCatSchema schema = null;
private List<HCatFieldSchema> fields;
-
+
@Override
protected void setup(Context context) throws IOException {
super.publishConfiguration(context.getConfiguration());
@@ -69,7 +69,7 @@ public class InvertedIndexMapper<KEYIN> extends KylinMapper<KEYIN, HCatRecord, L
outputValue = new ImmutableBytesWritable(rec.getBytes());
schema = HCatInputFormat.getTableSchema(context.getConfiguration());
-
+
fields = schema.getFields();
}
@@ -79,7 +79,7 @@ public class InvertedIndexMapper<KEYIN> extends KylinMapper<KEYIN, HCatRecord, L
rec.reset();
for (int i = 0; i < fields.size(); i++) {
Object fieldValue = record.get(i);
- rec.setValueString(i, fieldValue == null? null : fieldValue.toString());
+ rec.setValueString(i, fieldValue == null ? null : fieldValue.toString());
}
outputKey.set(rec.getTimestamp());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
index 141565f..e5d62b0 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
@@ -20,7 +20,6 @@ package org.apache.kylin.job.hadoop.invertedindex;
import java.io.IOException;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
@@ -34,6 +33,7 @@ import org.apache.kylin.invertedindex.index.TableRecord;
import org.apache.kylin.invertedindex.index.TableRecordInfo;
import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
index 26474d2..66f7005 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
@@ -22,10 +22,10 @@ import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Pair;
import org.apache.hadoop.io.LongWritable;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.mr.KylinReducer;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.invertedindex.IISegment;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
index 0f94d32..782dcf6 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
@@ -28,12 +28,11 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.constant.BatchConstants;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.job.constant.BatchConstants;
-
/**
* @author ysong1
*
@@ -64,7 +63,7 @@ public class RandomKeyDistributionJob extends AbstractHadoopJob {
job = Job.getInstance(getConf(), jobName);
setJobClasspath(job);
-
+
addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
index a7ce079..0442c27 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.util.ReflectionUtils;
-
import org.apache.kylin.common.mr.KylinMapper;
import org.apache.kylin.common.util.RandomSampler;
import org.apache.kylin.job.constant.BatchConstants;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
index dbbbeb9..16ac05e 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.util.ReflectionUtils;
-
import org.apache.kylin.common.mr.KylinReducer;
import org.apache.kylin.job.constant.BatchConstants;
@@ -36,7 +35,6 @@ import org.apache.kylin.job.constant.BatchConstants;
*/
public class RandomKeyDistributionReducer<KEY extends Writable> extends KylinReducer<KEY, NullWritable, KEY, NullWritable> {
-
private Configuration conf;
private int regionNumber;
private List<KEY> allSplits;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
index b2dc06d..2837ae5 100644
--- a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
+++ b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
@@ -18,14 +18,14 @@
package org.apache.kylin.job.impl.threadpool;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.execution.Executable;
-import org.apache.kylin.job.execution.ExecutableContext;
-
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.job.execution.Executable;
+import org.apache.kylin.job.execution.ExecutableContext;
+
/**
* Created by qianzhou on 12/16/14.
*/
@@ -38,6 +38,7 @@ public class DefaultContext implements ExecutableContext {
this.runningJobs = runningJobs;
this.kylinConfig = kylinConfig;
}
+
@Override
public Object getSchedulerContext() {
return null;
[11/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index 89eb3b1..3cb0793 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -17,27 +17,118 @@
*/
package org.apache.calcite.sql2rel;
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.*;
+import static org.apache.calcite.sql.SqlUtil.stripAs;
+import static org.apache.calcite.util.Static.RESOURCE;
+
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+import java.util.TreeSet;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import org.apache.calcite.linq4j.Ord;
-import org.apache.calcite.plan.*;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptSamplingParameters;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelOptUtil;
import org.apache.calcite.prepare.Prepare;
import org.apache.calcite.prepare.RelOptTableImpl;
-import org.apache.calcite.rel.*;
-import org.apache.calcite.rel.core.*;
-import org.apache.calcite.rel.logical.*;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollations;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelShuttle;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Collect;
+import org.apache.calcite.rel.core.CorrelationId;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.core.JoinInfo;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.core.Sample;
+import org.apache.calcite.rel.core.Uncollect;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.logical.LogicalCorrelate;
+import org.apache.calcite.rel.logical.LogicalIntersect;
+import org.apache.calcite.rel.logical.LogicalJoin;
+import org.apache.calcite.rel.logical.LogicalMinus;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.logical.LogicalSort;
+import org.apache.calcite.rel.logical.LogicalTableFunctionScan;
+import org.apache.calcite.rel.logical.LogicalTableModify;
+import org.apache.calcite.rel.logical.LogicalTableScan;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.rel.logical.LogicalValues;
import org.apache.calcite.rel.metadata.RelColumnMapping;
import org.apache.calcite.rel.stream.LogicalDelta;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.rel.type.RelDataTypeFactory;
import org.apache.calcite.rel.type.RelDataTypeField;
-import org.apache.calcite.rex.*;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCallBinding;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexFieldCollation;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexShuttle;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.rex.RexWindowBound;
import org.apache.calcite.schema.ModifiableTable;
import org.apache.calcite.schema.ModifiableView;
import org.apache.calcite.schema.Table;
import org.apache.calcite.schema.TranslatableTable;
-import org.apache.calcite.sql.*;
+import org.apache.calcite.sql.JoinConditionType;
+import org.apache.calcite.sql.JoinType;
+import org.apache.calcite.sql.SemiJoinType;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlBasicCall;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlDelete;
+import org.apache.calcite.sql.SqlDynamicParam;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlInsert;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.SqlJoin;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlMerge;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlNumericLiteral;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlOperatorTable;
+import org.apache.calcite.sql.SqlSampleSpec;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.SqlSelectKeyword;
+import org.apache.calcite.sql.SqlSetOperator;
+import org.apache.calcite.sql.SqlUpdate;
+import org.apache.calcite.sql.SqlUtil;
+import org.apache.calcite.sql.SqlValuesOperator;
+import org.apache.calcite.sql.SqlWindow;
+import org.apache.calcite.sql.SqlWith;
+import org.apache.calcite.sql.SqlWithItem;
import org.apache.calcite.sql.fun.SqlCountAggFunction;
import org.apache.calcite.sql.fun.SqlInOperator;
import org.apache.calcite.sql.fun.SqlRowOperator;
@@ -49,19 +140,38 @@ import org.apache.calcite.sql.type.SqlTypeUtil;
import org.apache.calcite.sql.type.TableFunctionReturnTypeInference;
import org.apache.calcite.sql.util.SqlBasicVisitor;
import org.apache.calcite.sql.util.SqlVisitor;
-import org.apache.calcite.sql.validate.*;
-import org.apache.calcite.util.*;
+import org.apache.calcite.sql.validate.AggregatingSelectScope;
+import org.apache.calcite.sql.validate.CollectNamespace;
+import org.apache.calcite.sql.validate.DelegatingScope;
+import org.apache.calcite.sql.validate.ListScope;
+import org.apache.calcite.sql.validate.ParameterScope;
+import org.apache.calcite.sql.validate.SelectScope;
+import org.apache.calcite.sql.validate.SqlMonotonicity;
+import org.apache.calcite.sql.validate.SqlQualified;
+import org.apache.calcite.sql.validate.SqlUserDefinedTableFunction;
+import org.apache.calcite.sql.validate.SqlUserDefinedTableMacro;
+import org.apache.calcite.sql.validate.SqlValidator;
+import org.apache.calcite.sql.validate.SqlValidatorImpl;
+import org.apache.calcite.sql.validate.SqlValidatorNamespace;
+import org.apache.calcite.sql.validate.SqlValidatorScope;
+import org.apache.calcite.sql.validate.SqlValidatorUtil;
+import org.apache.calcite.util.ImmutableBitSet;
+import org.apache.calcite.util.ImmutableIntList;
+import org.apache.calcite.util.NlsString;
+import org.apache.calcite.util.NumberUtil;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
import org.apache.calcite.util.mapping.Mappings;
import org.apache.calcite.util.trace.CalciteTrace;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import static org.apache.calcite.sql.SqlUtil.stripAs;
-import static org.apache.calcite.util.Static.RESOURCE;
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
/*
* OVERRIDE POINT:
@@ -79,4845 +189,3983 @@ import static org.apache.calcite.util.Static.RESOURCE;
* {@link #convertExpression(SqlNode)}.
*/
public class SqlToRelConverter {
- //~ Static fields/initializers ---------------------------------------------
-
- protected static final Logger SQL2REL_LOGGER =
- CalciteTrace.getSqlToRelTracer();
-
- private static final BigDecimal TWO = BigDecimal.valueOf(2L);
-
- //~ Instance fields --------------------------------------------------------
-
- protected final SqlValidator validator;
- protected final RexBuilder rexBuilder;
- protected final Prepare.CatalogReader catalogReader;
- protected final RelOptCluster cluster;
- private DefaultValueFactory defaultValueFactory;
- private SubqueryConverter subqueryConverter;
- protected final List<RelNode> leaves = new ArrayList<>();
- private final List<SqlDynamicParam> dynamicParamSqlNodes = new ArrayList<>();
- private final SqlOperatorTable opTab;
- private boolean shouldConvertTableAccess;
- protected final RelDataTypeFactory typeFactory;
- private final SqlNodeToRexConverter exprConverter;
- private boolean decorrelationEnabled;
- private boolean trimUnusedFields;
- private boolean shouldCreateValuesRel;
- private boolean isExplain;
- private int nDynamicParamsInExplain;
-
- /**
- * Fields used in name resolution for correlated subqueries.
- */
- private final Map<String, DeferredLookup> mapCorrelToDeferred =
- new HashMap<>();
- private int nextCorrel = 0;
-
- private static final String CORREL_PREFIX = "$cor";
-
- /**
- * Stack of names of datasets requested by the <code>
- * TABLE(SAMPLE(<datasetName>, <query>))</code> construct.
- */
- private final Stack<String> datasetStack = new Stack<>();
-
- /**
- * Mapping of non-correlated subqueries that have been converted to their
- * equivalent constants. Used to avoid re-evaluating the subquery if it's
- * already been evaluated.
- */
- private final Map<SqlNode, RexNode> mapConvertedNonCorrSubqs =
- new HashMap<>();
-
- public final RelOptTable.ViewExpander viewExpander;
-
- //~ Constructors -----------------------------------------------------------
- /**
- * Creates a converter.
- *
- * @param viewExpander Preparing statement
- * @param validator Validator
- * @param catalogReader Schema
- * @param planner Planner
- * @param rexBuilder Rex builder
- * @param convertletTable Expression converter
- */
- @Deprecated // will be removed before 2.0
- public SqlToRelConverter(
- RelOptTable.ViewExpander viewExpander,
- SqlValidator validator,
- Prepare.CatalogReader catalogReader,
- RelOptPlanner planner,
- RexBuilder rexBuilder,
- SqlRexConvertletTable convertletTable) {
- this(viewExpander, validator, catalogReader,
- RelOptCluster.create(planner, rexBuilder), convertletTable);
- }
-
- /* Creates a converter. */
- public SqlToRelConverter(
- RelOptTable.ViewExpander viewExpander,
- SqlValidator validator,
- Prepare.CatalogReader catalogReader,
- RelOptCluster cluster,
- SqlRexConvertletTable convertletTable) {
- this.viewExpander = viewExpander;
- this.opTab =
- (validator
- == null) ? SqlStdOperatorTable.instance()
- : validator.getOperatorTable();
- this.validator = validator;
- this.catalogReader = catalogReader;
- this.defaultValueFactory = new NullDefaultValueFactory();
- this.subqueryConverter = new NoOpSubqueryConverter();
- this.rexBuilder = cluster.getRexBuilder();
- this.typeFactory = rexBuilder.getTypeFactory();
- this.cluster = Preconditions.checkNotNull(cluster);
- this.shouldConvertTableAccess = true;
- this.exprConverter =
- new SqlNodeToRexConverterImpl(convertletTable);
- decorrelationEnabled = true;
- trimUnusedFields = false;
- shouldCreateValuesRel = true;
- isExplain = false;
- nDynamicParamsInExplain = 0;
- }
-
- //~ Methods ----------------------------------------------------------------
-
- /**
- * @return the RelOptCluster in use.
- */
- public RelOptCluster getCluster() {
- return cluster;
- }
-
- /**
- * Returns the row-expression builder.
- */
- public RexBuilder getRexBuilder() {
- return rexBuilder;
- }
-
- /**
- * Returns the number of dynamic parameters encountered during translation;
- * this must only be called after {@link #convertQuery}.
- *
- * @return number of dynamic parameters
- */
- public int getDynamicParamCount() {
- return dynamicParamSqlNodes.size();
- }
-
- /**
- * Returns the type inferred for a dynamic parameter.
- *
- * @param index 0-based index of dynamic parameter
- * @return inferred type, never null
- */
- public RelDataType getDynamicParamType(int index) {
- SqlNode sqlNode = dynamicParamSqlNodes.get(index);
- if (sqlNode == null) {
- throw Util.needToImplement("dynamic param type inference");
- }
- return validator.getValidatedNodeType(sqlNode);
- }
-
- /**
- * Returns the current count of the number of dynamic parameters in an
- * EXPLAIN PLAN statement.
- *
- * @param increment if true, increment the count
- * @return the current count before the optional increment
- */
- public int getDynamicParamCountInExplain(boolean increment) {
- int retVal = nDynamicParamsInExplain;
- if (increment) {
- ++nDynamicParamsInExplain;
- }
- return retVal;
- }
-
- /**
- * @return mapping of non-correlated subqueries that have been converted to
- * the constants that they evaluate to
- */
- public Map<SqlNode, RexNode> getMapConvertedNonCorrSubqs() {
- return mapConvertedNonCorrSubqs;
- }
-
- /**
- * Adds to the current map of non-correlated converted subqueries the
- * elements from another map that contains non-correlated subqueries that
- * have been converted by another SqlToRelConverter.
- *
- * @param alreadyConvertedNonCorrSubqs the other map
- */
- public void addConvertedNonCorrSubqs(
- Map<SqlNode, RexNode> alreadyConvertedNonCorrSubqs) {
- mapConvertedNonCorrSubqs.putAll(alreadyConvertedNonCorrSubqs);
- }
-
- /**
- * Set a new DefaultValueFactory. To have any effect, this must be called
- * before any convert method.
- *
- * @param factory new DefaultValueFactory
- */
- public void setDefaultValueFactory(DefaultValueFactory factory) {
- defaultValueFactory = factory;
- }
-
- /**
- * Sets a new SubqueryConverter. To have any effect, this must be called
- * before any convert method.
- *
- * @param converter new SubqueryConverter
- */
- public void setSubqueryConverter(SubqueryConverter converter) {
- subqueryConverter = converter;
- }
-
- /**
- * Indicates that the current statement is part of an EXPLAIN PLAN statement
- *
- * @param nDynamicParams number of dynamic parameters in the statement
- */
- public void setIsExplain(int nDynamicParams) {
- isExplain = true;
- nDynamicParamsInExplain = nDynamicParams;
- }
-
- /**
- * Controls whether table access references are converted to physical rels
- * immediately. The optimizer doesn't like leaf rels to have
- * {@link Convention#NONE}. However, if we are doing further conversion
- * passes (e.g. {@link RelStructuredTypeFlattener}), then we may need to
- * defer conversion. To have any effect, this must be called before any
- * convert method.
- *
- * @param enabled true for immediate conversion (the default); false to
- * generate logical LogicalTableScan instances
- */
- public void enableTableAccessConversion(boolean enabled) {
- shouldConvertTableAccess = enabled;
- }
-
- /**
- * Controls whether instances of
- * {@link org.apache.calcite.rel.logical.LogicalValues} are generated. These
- * may not be supported by all physical implementations. To have any effect,
- * this must be called before any convert method.
- *
- * @param enabled true to allow LogicalValues to be generated (the default);
- * false to force substitution of Project+OneRow instead
- */
- public void enableValuesRelCreation(boolean enabled) {
- shouldCreateValuesRel = enabled;
- }
-
- private void checkConvertedType(SqlNode query, RelNode result) {
- if (!query.isA(SqlKind.DML)) {
- // Verify that conversion from SQL to relational algebra did
- // not perturb any type information. (We can't do this if the
- // SQL statement is something like an INSERT which has no
- // validator type information associated with its result,
- // hence the namespace check above.)
- RelDataType convertedRowType = result.getRowType();
- if (!checkConvertedRowType(query, convertedRowType)) {
- RelDataType validatedRowType =
- validator.getValidatedNodeType(query);
- validatedRowType = uniquifyFields(validatedRowType);
- throw Util.newInternal("Conversion to relational algebra failed to "
- + "preserve datatypes:\n"
- + "validated type:\n"
- + validatedRowType.getFullTypeString()
- + "\nconverted type:\n"
- + convertedRowType.getFullTypeString()
- + "\nrel:\n"
- + RelOptUtil.toString(result));
- }
- }
- }
-
- public RelNode flattenTypes(
- RelNode rootRel,
- boolean restructure) {
- RelStructuredTypeFlattener typeFlattener =
- new RelStructuredTypeFlattener(rexBuilder, createToRelContext());
- return typeFlattener.rewrite(rootRel, restructure);
- }
-
- /**
- * If subquery is correlated and decorrelation is enabled, performs
- * decorrelation.
- *
- * @param query Query
- * @param rootRel Root relational expression
- * @return New root relational expression after decorrelation
- */
- public RelNode decorrelate(SqlNode query, RelNode rootRel) {
- if (!enableDecorrelation()) {
- return rootRel;
- }
- final RelNode result = decorrelateQuery(rootRel);
- if (result != rootRel) {
- checkConvertedType(query, result);
- }
- return result;
- }
-
- /**
- * Walks over a tree of relational expressions, replacing each
- * {@link RelNode} with a 'slimmed down' relational expression that projects
- * only the fields required by its consumer.
- *
- * <p>This may make things easier for the optimizer, by removing crud that
- * would expand the search space, but is difficult for the optimizer itself
- * to do it, because optimizer rules must preserve the number and type of
- * fields. Hence, this transform that operates on the entire tree, similar
- * to the {@link RelStructuredTypeFlattener type-flattening transform}.
- *
- * <p>Currently this functionality is disabled in farrago/luciddb; the
- * default implementation of this method does nothing.
- *
- * @param rootRel Relational expression that is at the root of the tree
- * @return Trimmed relational expression
- */
- public RelNode trimUnusedFields(RelNode rootRel) {
- // Trim fields that are not used by their consumer.
- if (isTrimUnusedFields()) {
- final RelFieldTrimmer trimmer = newFieldTrimmer();
- rootRel = trimmer.trim(rootRel);
- boolean dumpPlan = SQL2REL_LOGGER.isLoggable(Level.FINE);
- if (dumpPlan) {
- SQL2REL_LOGGER.fine(
- RelOptUtil.dumpPlan(
- "Plan after trimming unused fields",
- rootRel,
- false,
- SqlExplainLevel.EXPPLAN_ATTRIBUTES));
- }
- }
- return rootRel;
- }
-
- /**
- * Creates a RelFieldTrimmer.
- *
- * @return Field trimmer
- */
- protected RelFieldTrimmer newFieldTrimmer() {
- return new RelFieldTrimmer(validator);
- }
-
- /**
- * Converts an unvalidated query's parse tree into a relational expression.
- *
- * @param query Query to convert
- * @param needsValidation Whether to validate the query before converting;
- * <code>false</code> if the query has already been
- * validated.
- * @param top Whether the query is top-level, say if its result
- * will become a JDBC result set; <code>false</code> if
- * the query will be part of a view.
- */
- public RelNode convertQuery(
- SqlNode query,
- final boolean needsValidation,
- final boolean top) {
- if (needsValidation) {
- query = validator.validate(query);
- }
-
- RelNode result = convertQueryRecursive(query, top, null);
- if (top && isStream(query)) {
- result = new LogicalDelta(cluster, result.getTraitSet(), result);
- }
- checkConvertedType(query, result);
-
- boolean dumpPlan = SQL2REL_LOGGER.isLoggable(Level.FINE);
- if (dumpPlan) {
- SQL2REL_LOGGER.fine(
- RelOptUtil.dumpPlan(
- "Plan after converting SqlNode to RelNode",
- result,
- false,
- SqlExplainLevel.EXPPLAN_ATTRIBUTES));
- }
+ //~ Static fields/initializers ---------------------------------------------
+
+ protected static final Logger SQL2REL_LOGGER = CalciteTrace.getSqlToRelTracer();
+
+ private static final BigDecimal TWO = BigDecimal.valueOf(2L);
+
+ //~ Instance fields --------------------------------------------------------
+
+ protected final SqlValidator validator;
+ protected final RexBuilder rexBuilder;
+ protected final Prepare.CatalogReader catalogReader;
+ protected final RelOptCluster cluster;
+ private DefaultValueFactory defaultValueFactory;
+ private SubqueryConverter subqueryConverter;
+ protected final List<RelNode> leaves = new ArrayList<>();
+ private final List<SqlDynamicParam> dynamicParamSqlNodes = new ArrayList<>();
+ private final SqlOperatorTable opTab;
+ private boolean shouldConvertTableAccess;
+ protected final RelDataTypeFactory typeFactory;
+ private final SqlNodeToRexConverter exprConverter;
+ private boolean decorrelationEnabled;
+ private boolean trimUnusedFields;
+ private boolean shouldCreateValuesRel;
+ private boolean isExplain;
+ private int nDynamicParamsInExplain;
- return result;
- }
-
- private static boolean isStream(SqlNode query) {
- return query instanceof SqlSelect
- && ((SqlSelect) query).isKeywordPresent(SqlSelectKeyword.STREAM);
- }
-
- protected boolean checkConvertedRowType(
- SqlNode query,
- RelDataType convertedRowType) {
- RelDataType validatedRowType = validator.getValidatedNodeType(query);
- validatedRowType = uniquifyFields(validatedRowType);
-
- return RelOptUtil.equal(
- "validated row type", validatedRowType, "converted row type", convertedRowType, false);
- }
-
- protected RelDataType uniquifyFields(RelDataType rowType) {
- return validator.getTypeFactory().createStructType(
- RelOptUtil.getFieldTypeList(rowType),
- SqlValidatorUtil.uniquify(rowType.getFieldNames()));
- }
-
- /**
- * Converts a SELECT statement's parse tree into a relational expression.
- */
- public RelNode convertSelect(SqlSelect select) {
- final SqlValidatorScope selectScope = validator.getWhereScope(select);
- final Blackboard bb = createBlackboard(selectScope, null);
- convertSelectImpl(bb, select);
- return bb.root;
- }
-
- /**
- * Factory method for creating translation workspace.
- */
- protected Blackboard createBlackboard(
- SqlValidatorScope scope,
- Map<String, RexNode> nameToNodeMap) {
- return new Blackboard(scope, nameToNodeMap);
- }
-
- /**
- * Implementation of {@link #convertSelect(SqlSelect)}; derived class may
- * override.
- */
- protected void convertSelectImpl(
- final Blackboard bb,
- SqlSelect select) {
- convertFrom(
- bb,
- select.getFrom());
- convertWhere(
- bb,
- select.getWhere());
-
- final List<SqlNode> orderExprList = new ArrayList<>();
- final List<RelFieldCollation> collationList = new ArrayList<>();
- gatherOrderExprs(
- bb,
- select,
- select.getOrderList(),
- orderExprList,
- collationList);
- final RelCollation collation =
- cluster.traitSet().canonize(RelCollations.of(collationList));
-
- if (validator.isAggregate(select)) {
- convertAgg(
- bb,
- select,
- orderExprList);
- } else {
- convertSelectList(
- bb,
- select,
- orderExprList);
- }
+ /**
+ * Fields used in name resolution for correlated subqueries.
+ */
+ private final Map<String, DeferredLookup> mapCorrelToDeferred = new HashMap<>();
+ private int nextCorrel = 0;
- if (select.isDistinct()) {
- distinctify(bb, true);
- }
- convertOrder(
- select, bb, collation, orderExprList, select.getOffset(),
- select.getFetch());
- bb.setRoot(bb.root, true);
- }
-
- /**
- * Having translated 'SELECT ... FROM ... [GROUP BY ...] [HAVING ...]', adds
- * a relational expression to make the results unique.
- *
- * <p>If the SELECT clause contains duplicate expressions, adds
- * {@link org.apache.calcite.rel.logical.LogicalProject}s so that we are
- * grouping on the minimal set of keys. The performance gain isn't huge, but
- * it is difficult to detect these duplicate expressions later.
- *
- * @param bb Blackboard
- * @param checkForDupExprs Check for duplicate expressions
- */
- private void distinctify(
- Blackboard bb,
- boolean checkForDupExprs) {
- // Look for duplicate expressions in the project.
- // Say we have 'select x, y, x, z'.
- // Then dups will be {[2, 0]}
- // and oldToNew will be {[0, 0], [1, 1], [2, 0], [3, 2]}
- RelNode rel = bb.root;
- if (checkForDupExprs && (rel instanceof LogicalProject)) {
- LogicalProject project = (LogicalProject) rel;
- final List<RexNode> projectExprs = project.getProjects();
- final List<Integer> origins = new ArrayList<>();
- int dupCount = 0;
- for (int i = 0; i < projectExprs.size(); i++) {
- int x = findExpr(projectExprs.get(i), projectExprs, i);
- if (x >= 0) {
- origins.add(x);
- ++dupCount;
- } else {
- origins.add(i);
- }
- }
- if (dupCount == 0) {
- distinctify(bb, false);
- return;
- }
-
- final Map<Integer, Integer> squished = Maps.newHashMap();
- final List<RelDataTypeField> fields = rel.getRowType().getFieldList();
- final List<Pair<RexNode, String>> newProjects = Lists.newArrayList();
- for (int i = 0; i < fields.size(); i++) {
- if (origins.get(i) == i) {
- squished.put(i, newProjects.size());
- newProjects.add(RexInputRef.of2(i, fields));
- }
- }
- rel =
- LogicalProject.create(rel, Pair.left(newProjects),
- Pair.right(newProjects));
- bb.root = rel;
- distinctify(bb, false);
- rel = bb.root;
-
- // Create the expressions to reverse the mapping.
- // Project($0, $1, $0, $2).
- final List<Pair<RexNode, String>> undoProjects = Lists.newArrayList();
- for (int i = 0; i < fields.size(); i++) {
- final int origin = origins.get(i);
- RelDataTypeField field = fields.get(i);
- undoProjects.add(
- Pair.of(
- (RexNode) new RexInputRef(
- squished.get(origin), field.getType()),
- field.getName()));
- }
-
- rel =
- LogicalProject.create(rel, Pair.left(undoProjects),
- Pair.right(undoProjects));
- bb.setRoot(
- rel,
- false);
-
- return;
- }
+ private static final String CORREL_PREFIX = "$cor";
- // Usual case: all of the expressions in the SELECT clause are
- // different.
- final ImmutableBitSet groupSet =
- ImmutableBitSet.range(rel.getRowType().getFieldCount());
- rel =
- createAggregate(bb, false, groupSet, ImmutableList.of(groupSet),
- ImmutableList.<AggregateCall>of());
-
- bb.setRoot(
- rel,
- false);
- }
-
- private int findExpr(RexNode seek, List<RexNode> exprs, int count) {
- for (int i = 0; i < count; i++) {
- RexNode expr = exprs.get(i);
- if (expr.toString().equals(seek.toString())) {
- return i;
- }
- }
- return -1;
- }
-
- /**
- * Converts a query's ORDER BY clause, if any.
- *
- * @param select Query
- * @param bb Blackboard
- * @param collation Collation list
- * @param orderExprList Method populates this list with orderBy expressions
- * not present in selectList
- * @param offset Expression for number of rows to discard before
- * returning first row
- * @param fetch Expression for number of rows to fetch
- */
- protected void convertOrder(
- SqlSelect select,
- Blackboard bb,
- RelCollation collation,
- List<SqlNode> orderExprList,
- SqlNode offset,
- SqlNode fetch) {
- if (select.getOrderList() == null) {
- assert collation.getFieldCollations().isEmpty();
- if (offset == null && fetch == null) {
- return;
- }
- }
+ /**
+ * Stack of names of datasets requested by the <code>
+ * TABLE(SAMPLE(<datasetName>, <query>))</code> construct.
+ */
+ private final Stack<String> datasetStack = new Stack<>();
- // Create a sorter using the previously constructed collations.
- bb.setRoot(
- LogicalSort.create(bb.root, collation,
- offset == null ? null : convertExpression(offset),
- fetch == null ? null : convertExpression(fetch)),
- false);
-
- // If extra expressions were added to the project list for sorting,
- // add another project to remove them.
- if (orderExprList.size() > 0) {
- final List<RexNode> exprs = new ArrayList<>();
- final RelDataType rowType = bb.root.getRowType();
- final int fieldCount =
- rowType.getFieldCount() - orderExprList.size();
- for (int i = 0; i < fieldCount; i++) {
- exprs.add(rexBuilder.makeInputRef(bb.root, i));
- }
- bb.setRoot(
- new LogicalProject(
- cluster,
- cluster.traitSetOf(RelCollations.PRESERVE),
- bb.root,
- exprs,
- cluster.getTypeFactory().createStructType(
- rowType.getFieldList().subList(0, fieldCount))),
- false);
- }
- }
-
- /**
- * Returns whether a given node contains a {@link SqlInOperator}.
- *
- * @param node a RexNode tree
- */
- private static boolean containsInOperator(
- SqlNode node) {
- try {
- SqlVisitor<Void> visitor =
- new SqlBasicVisitor<Void>() {
- public Void visit(SqlCall call) {
- if (call.getOperator() instanceof SqlInOperator) {
- throw new Util.FoundOne(call);
- }
- return super.visit(call);
- }
- };
- node.accept(visitor);
- return false;
- } catch (Util.FoundOne e) {
- Util.swallow(e, null);
- return true;
- }
- }
-
- /**
- * Push down all the NOT logical operators into any IN/NOT IN operators.
- *
- * @param sqlNode the root node from which to look for NOT operators
- * @return the transformed SqlNode representation with NOT pushed down.
- */
- private static SqlNode pushDownNotForIn(SqlNode sqlNode) {
- if ((sqlNode instanceof SqlCall) && containsInOperator(sqlNode)) {
- SqlCall sqlCall = (SqlCall) sqlNode;
- if ((sqlCall.getOperator() == SqlStdOperatorTable.AND)
- || (sqlCall.getOperator() == SqlStdOperatorTable.OR)) {
- SqlNode[] sqlOperands = ((SqlBasicCall) sqlCall).operands;
- for (int i = 0; i < sqlOperands.length; i++) {
- sqlOperands[i] = pushDownNotForIn(sqlOperands[i]);
- }
- return sqlNode;
- } else if (sqlCall.getOperator() == SqlStdOperatorTable.NOT) {
- SqlNode childNode = sqlCall.operand(0);
- assert childNode instanceof SqlCall;
- SqlBasicCall childSqlCall = (SqlBasicCall) childNode;
- if (childSqlCall.getOperator() == SqlStdOperatorTable.AND) {
- SqlNode[] andOperands = childSqlCall.getOperands();
- SqlNode[] orOperands = new SqlNode[andOperands.length];
- for (int i = 0; i < orOperands.length; i++) {
- orOperands[i] =
- SqlStdOperatorTable.NOT.createCall(
- SqlParserPos.ZERO,
- andOperands[i]);
- }
- for (int i = 0; i < orOperands.length; i++) {
- orOperands[i] = pushDownNotForIn(orOperands[i]);
- }
- return SqlStdOperatorTable.OR.createCall(SqlParserPos.ZERO,
- orOperands[0], orOperands[1]);
- } else if (childSqlCall.getOperator() == SqlStdOperatorTable.OR) {
- SqlNode[] orOperands = childSqlCall.getOperands();
- SqlNode[] andOperands = new SqlNode[orOperands.length];
- for (int i = 0; i < andOperands.length; i++) {
- andOperands[i] =
- SqlStdOperatorTable.NOT.createCall(
- SqlParserPos.ZERO,
- orOperands[i]);
- }
- for (int i = 0; i < andOperands.length; i++) {
- andOperands[i] = pushDownNotForIn(andOperands[i]);
- }
- return SqlStdOperatorTable.AND.createCall(SqlParserPos.ZERO,
- andOperands[0], andOperands[1]);
- } else if (childSqlCall.getOperator() == SqlStdOperatorTable.NOT) {
- SqlNode[] notOperands = childSqlCall.getOperands();
- assert notOperands.length == 1;
- return pushDownNotForIn(notOperands[0]);
- } else if (childSqlCall.getOperator() instanceof SqlInOperator) {
- SqlNode[] inOperands = childSqlCall.getOperands();
- SqlInOperator inOp =
- (SqlInOperator) childSqlCall.getOperator();
- if (inOp.isNotIn()) {
- return SqlStdOperatorTable.IN.createCall(
- SqlParserPos.ZERO,
- inOperands[0],
- inOperands[1]);
- } else {
- return SqlStdOperatorTable.NOT_IN.createCall(
- SqlParserPos.ZERO,
- inOperands[0],
- inOperands[1]);
- }
- } else {
- // childSqlCall is "leaf" node in a logical expression tree
- // (only considering AND, OR, NOT)
- return sqlNode;
- }
- } else {
- // sqlNode is "leaf" node in a logical expression tree
- // (only considering AND, OR, NOT)
- return sqlNode;
- }
- } else {
- // tree rooted at sqlNode does not contain inOperator
- return sqlNode;
- }
- }
-
- /**
- * Converts a WHERE clause.
- *
- * @param bb Blackboard
- * @param where WHERE clause, may be null
- */
- private void convertWhere(
- final Blackboard bb,
- final SqlNode where) {
- if (where == null) {
- return;
- }
- SqlNode newWhere = pushDownNotForIn(where);
- replaceSubqueries(bb, newWhere, RelOptUtil.Logic.UNKNOWN_AS_FALSE);
- final RexNode convertedWhere = bb.convertExpression(newWhere);
-
- // only allocate filter if the condition is not TRUE
- if (!convertedWhere.isAlwaysTrue()) {
- bb.setRoot(
- RelOptUtil.createFilter(bb.root, convertedWhere),
- false);
- }
- }
-
- private void replaceSubqueries(
- final Blackboard bb,
- final SqlNode expr,
- RelOptUtil.Logic logic) {
- findSubqueries(bb, expr, logic, false);
- for (SubQuery node : bb.subqueryList) {
- substituteSubquery(bb, node);
- }
- }
+ /**
+ * Mapping of non-correlated subqueries that have been converted to their
+ * equivalent constants. Used to avoid re-evaluating the subquery if it's
+ * already been evaluated.
+ */
+ private final Map<SqlNode, RexNode> mapConvertedNonCorrSubqs = new HashMap<>();
- private void substituteSubquery(Blackboard bb, SubQuery subQuery) {
- final RexNode expr = subQuery.expr;
- if (expr != null) {
- // Already done.
- return;
- }
+ public final RelOptTable.ViewExpander viewExpander;
- final SqlBasicCall call;
- final RelNode rel;
- final SqlNode query;
- final Pair<RelNode, Boolean> converted;
- switch (subQuery.node.getKind()) {
- case CURSOR:
- convertCursor(bb, subQuery);
- return;
-
- case MULTISET_QUERY_CONSTRUCTOR:
- case MULTISET_VALUE_CONSTRUCTOR:
- rel = convertMultisets(ImmutableList.of(subQuery.node), bb);
- subQuery.expr = bb.register(rel, JoinRelType.INNER);
- return;
-
- case IN:
- call = (SqlBasicCall) subQuery.node;
- final SqlNode[] operands = call.getOperands();
-
- SqlNode leftKeyNode = operands[0];
- query = operands[1];
-
- final List<RexNode> leftKeys;
- switch (leftKeyNode.getKind()) {
- case ROW:
- leftKeys = Lists.newArrayList();
- for (SqlNode sqlExpr : ((SqlBasicCall) leftKeyNode).getOperandList()) {
- leftKeys.add(bb.convertExpression(sqlExpr));
- }
- break;
- default:
- leftKeys = ImmutableList.of(bb.convertExpression(leftKeyNode));
- }
-
- final boolean isNotIn = ((SqlInOperator) call.getOperator()).isNotIn();
- if (query instanceof SqlNodeList) {
- SqlNodeList valueList = (SqlNodeList) query;
- if (!containsNullLiteral(valueList)
- && valueList.size() < getInSubqueryThreshold()) {
- // We're under the threshold, so convert to OR.
- subQuery.expr =
- convertInToOr(
- bb,
- leftKeys,
- valueList,
- isNotIn);
- return;
- }
-
- // Otherwise, let convertExists translate
- // values list into an inline table for the
- // reference to Q below.
- }
-
- // Project out the search columns from the left side
-
- // Q1:
- // "select from emp where emp.deptno in (select col1 from T)"
- //
- // is converted to
- //
- // "select from
- // emp inner join (select distinct col1 from T)) q
- // on emp.deptno = q.col1
- //
- // Q2:
- // "select from emp where emp.deptno not in (Q)"
- //
- // is converted to
- //
- // "select from
- // emp left outer join (select distinct col1, TRUE from T) q
- // on emp.deptno = q.col1
- // where emp.deptno <> null
- // and q.indicator <> TRUE"
- //
- final boolean outerJoin = bb.subqueryNeedsOuterJoin
- || isNotIn
- || subQuery.logic == RelOptUtil.Logic.TRUE_FALSE_UNKNOWN;
- converted =
- convertExists(query, RelOptUtil.SubqueryType.IN, subQuery.logic,
- outerJoin);
- if (converted.right) {
- // Generate
- // emp CROSS JOIN (SELECT COUNT(*) AS c,
- // COUNT(deptno) AS ck FROM dept)
- final RelDataType longType =
- typeFactory.createSqlType(SqlTypeName.BIGINT);
- final RelNode seek = converted.left.getInput(0); // fragile
- final int keyCount = leftKeys.size();
- final List<Integer> args = ImmutableIntList.range(0, keyCount);
- LogicalAggregate aggregate =
- LogicalAggregate.create(seek, false, ImmutableBitSet.of(), null,
- ImmutableList.of(
- AggregateCall.create(SqlStdOperatorTable.COUNT, false,
- ImmutableList.<Integer>of(), -1, longType, null),
- AggregateCall.create(SqlStdOperatorTable.COUNT, false,
- args, -1, longType, null)));
- LogicalJoin join =
- LogicalJoin.create(bb.root,
- aggregate,
- rexBuilder.makeLiteral(true),
- JoinRelType.INNER,
- ImmutableSet.<String>of());
- bb.setRoot(join, false);
- }
- RexNode rex =
- bb.register(converted.left,
- outerJoin ? JoinRelType.LEFT : JoinRelType.INNER, leftKeys);
-
- subQuery.expr = translateIn(subQuery, bb.root, rex);
- if (isNotIn) {
- subQuery.expr =
- rexBuilder.makeCall(SqlStdOperatorTable.NOT, subQuery.expr);
- }
- return;
-
- case EXISTS:
- // "select from emp where exists (select a from T)"
- //
- // is converted to the following if the subquery is correlated:
- //
- // "select from emp left outer join (select AGG_TRUE() as indicator
- // from T group by corr_var) q where q.indicator is true"
- //
- // If there is no correlation, the expression is replaced with a
- // boolean indicating whether the subquery returned 0 or >= 1 row.
- call = (SqlBasicCall) subQuery.node;
- query = call.getOperands()[0];
- converted = convertExists(query, RelOptUtil.SubqueryType.EXISTS,
- subQuery.logic, true);
- assert !converted.right;
- if (convertNonCorrelatedSubQuery(subQuery, bb, converted.left, true)) {
- return;
- }
- subQuery.expr = bb.register(converted.left, JoinRelType.LEFT);
- return;
-
- case SCALAR_QUERY:
- // Convert the subquery. If it's non-correlated, convert it
- // to a constant expression.
- call = (SqlBasicCall) subQuery.node;
- query = call.getOperands()[0];
- converted = convertExists(query, RelOptUtil.SubqueryType.SCALAR,
- subQuery.logic, true);
- assert !converted.right;
- if (convertNonCorrelatedSubQuery(subQuery, bb, converted.left, false)) {
- return;
- }
- rel = convertToSingleValueSubq(query, converted.left);
- subQuery.expr = bb.register(rel, JoinRelType.LEFT);
- return;
-
- case SELECT:
- // This is used when converting multiset queries:
- //
- // select * from unnest(select multiset[deptno] from emps);
- //
- converted = convertExists(subQuery.node, RelOptUtil.SubqueryType.SCALAR,
- subQuery.logic, true);
- assert !converted.right;
- subQuery.expr = bb.register(converted.left, JoinRelType.LEFT);
- return;
-
- default:
- throw Util.newInternal("unexpected kind of subquery :" + subQuery.node);
- }
- }
-
- private RexNode translateIn(SubQuery subQuery, RelNode root,
- final RexNode rex) {
- switch (subQuery.logic) {
- case TRUE:
- return rexBuilder.makeLiteral(true);
-
- case UNKNOWN_AS_FALSE:
- assert rex instanceof RexRangeRef;
- final int fieldCount = rex.getType().getFieldCount();
- RexNode rexNode = rexBuilder.makeFieldAccess(rex, fieldCount - 1);
- rexNode = rexBuilder.makeCall(SqlStdOperatorTable.IS_TRUE, rexNode);
-
- // Then append the IS NOT NULL(leftKeysForIn).
- //
- // RexRangeRef contains the following fields:
- // leftKeysForIn,
- // rightKeysForIn (the original subquery select list),
- // nullIndicator
- //
- // The first two lists contain the same number of fields.
- final int k = (fieldCount - 1) / 2;
- for (int i = 0; i < k; i++) {
- rexNode =
- rexBuilder.makeCall(
- SqlStdOperatorTable.AND,
- rexNode,
- rexBuilder.makeCall(
- SqlStdOperatorTable.IS_NOT_NULL,
- rexBuilder.makeFieldAccess(rex, i)));
- }
- return rexNode;
-
- case TRUE_FALSE_UNKNOWN:
- case UNKNOWN_AS_TRUE:
- // select e.deptno,
- // case
- // when ct.c = 0 then false
- // when dt.i is not null then true
- // when e.deptno is null then null
- // when ct.ck < ct.c then null
- // else false
- // end
- // from e
- // cross join (select count(*) as c, count(deptno) as ck from v) as ct
- // left join (select distinct deptno, true as i from v) as dt
- // on e.deptno = dt.deptno
- final Join join = (Join) root;
- final Project left = (Project) join.getLeft();
- final RelNode leftLeft = ((Join) left.getInput()).getLeft();
- final int leftLeftCount = leftLeft.getRowType().getFieldCount();
- final RelDataType nullableBooleanType =
- typeFactory.createTypeWithNullability(
- typeFactory.createSqlType(SqlTypeName.BOOLEAN), true);
- final RelDataType longType =
- typeFactory.createSqlType(SqlTypeName.BIGINT);
- final RexNode cRef = rexBuilder.makeInputRef(root, leftLeftCount);
- final RexNode ckRef = rexBuilder.makeInputRef(root, leftLeftCount + 1);
- final RexNode iRef =
- rexBuilder.makeInputRef(root, root.getRowType().getFieldCount() - 1);
-
- final RexLiteral zero =
- rexBuilder.makeExactLiteral(BigDecimal.ZERO, longType);
- final RexLiteral trueLiteral = rexBuilder.makeLiteral(true);
- final RexLiteral falseLiteral = rexBuilder.makeLiteral(false);
- final RexNode unknownLiteral =
- rexBuilder.makeNullLiteral(SqlTypeName.BOOLEAN);
-
- final ImmutableList.Builder<RexNode> args = ImmutableList.builder();
- args.add(rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, cRef, zero),
- falseLiteral,
- rexBuilder.makeCall(SqlStdOperatorTable.IS_NOT_NULL, iRef),
- trueLiteral);
- final JoinInfo joinInfo = join.analyzeCondition();
- for (int leftKey : joinInfo.leftKeys) {
- final RexNode kRef = rexBuilder.makeInputRef(root, leftKey);
- args.add(rexBuilder.makeCall(SqlStdOperatorTable.IS_NULL, kRef),
- unknownLiteral);
- }
- args.add(rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN, ckRef, cRef),
- unknownLiteral,
- falseLiteral);
-
- return rexBuilder.makeCall(
- nullableBooleanType,
- SqlStdOperatorTable.CASE,
- args.build());
-
- default:
- throw new AssertionError(subQuery.logic);
- }
- }
+ //~ Constructors -----------------------------------------------------------
+ /**
+ * Creates a converter.
+ *
+ * @param viewExpander Preparing statement
+ * @param validator Validator
+ * @param catalogReader Schema
+ * @param planner Planner
+ * @param rexBuilder Rex builder
+ * @param convertletTable Expression converter
+ */
+ @Deprecated
+ // will be removed before 2.0
+ public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator validator, Prepare.CatalogReader catalogReader, RelOptPlanner planner, RexBuilder rexBuilder, SqlRexConvertletTable convertletTable) {
+ this(viewExpander, validator, catalogReader, RelOptCluster.create(planner, rexBuilder), convertletTable);
+ }
+
+ /* Creates a converter. */
+ public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator validator, Prepare.CatalogReader catalogReader, RelOptCluster cluster, SqlRexConvertletTable convertletTable) {
+ this.viewExpander = viewExpander;
+ this.opTab = (validator == null) ? SqlStdOperatorTable.instance() : validator.getOperatorTable();
+ this.validator = validator;
+ this.catalogReader = catalogReader;
+ this.defaultValueFactory = new NullDefaultValueFactory();
+ this.subqueryConverter = new NoOpSubqueryConverter();
+ this.rexBuilder = cluster.getRexBuilder();
+ this.typeFactory = rexBuilder.getTypeFactory();
+ this.cluster = Preconditions.checkNotNull(cluster);
+ this.shouldConvertTableAccess = true;
+ this.exprConverter = new SqlNodeToRexConverterImpl(convertletTable);
+ decorrelationEnabled = true;
+ trimUnusedFields = false;
+ shouldCreateValuesRel = true;
+ isExplain = false;
+ nDynamicParamsInExplain = 0;
+ }
+
+ //~ Methods ----------------------------------------------------------------
- private static boolean containsNullLiteral(SqlNodeList valueList) {
- for (SqlNode node : valueList.getList()) {
- if (node instanceof SqlLiteral) {
- SqlLiteral lit = (SqlLiteral) node;
- if (lit.getValue() == null) {
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Determines if a subquery is non-correlated and if so, converts it to a
- * constant.
- *
- * @param subQuery the call that references the subquery
- * @param bb blackboard used to convert the subquery
- * @param converted RelNode tree corresponding to the subquery
- * @param isExists true if the subquery is part of an EXISTS expression
- * @return if the subquery can be converted to a constant
- */
- private boolean convertNonCorrelatedSubQuery(
- SubQuery subQuery,
- Blackboard bb,
- RelNode converted,
- boolean isExists) {
- SqlCall call = (SqlBasicCall) subQuery.node;
- if (subqueryConverter.canConvertSubquery()
- && isSubQueryNonCorrelated(converted, bb)) {
- // First check if the subquery has already been converted
- // because it's a nested subquery. If so, don't re-evaluate
- // it again.
- RexNode constExpr = mapConvertedNonCorrSubqs.get(call);
- if (constExpr == null) {
- constExpr =
- subqueryConverter.convertSubquery(
- call,
- this,
- isExists,
- isExplain);
- }
- if (constExpr != null) {
- subQuery.expr = constExpr;
- mapConvertedNonCorrSubqs.put(call, constExpr);
- return true;
- }
- }
- return false;
- }
-
- /**
- * Converts the RelNode tree for a select statement to a select that
- * produces a single value.
- *
- * @param query the query
- * @param plan the original RelNode tree corresponding to the statement
- * @return the converted RelNode tree
- */
- public RelNode convertToSingleValueSubq(
- SqlNode query,
- RelNode plan) {
- // Check whether query is guaranteed to produce a single value.
- if (query instanceof SqlSelect) {
- SqlSelect select = (SqlSelect) query;
- SqlNodeList selectList = select.getSelectList();
- SqlNodeList groupList = select.getGroup();
-
- if ((selectList.size() == 1)
- && ((groupList == null) || (groupList.size() == 0))) {
- SqlNode selectExpr = selectList.get(0);
- if (selectExpr instanceof SqlCall) {
- SqlCall selectExprCall = (SqlCall) selectExpr;
- if (Util.isSingleValue(selectExprCall)) {
- return plan;
- }
- }
-
- // If there is a limit with 0 or 1,
- // it is ensured to produce a single value
- if (select.getFetch() != null
- && select.getFetch() instanceof SqlNumericLiteral) {
- SqlNumericLiteral limitNum = (SqlNumericLiteral) select.getFetch();
- if (((BigDecimal) limitNum.getValue()).intValue() < 2) {
- return plan;
- }
- }
- }
- } else if (query instanceof SqlCall) {
- // If the query is (values ...),
- // it is necessary to look into the operands to determine
- // whether SingleValueAgg is necessary
- SqlCall exprCall = (SqlCall) query;
- if (exprCall.getOperator()
- instanceof SqlValuesOperator
- && Util.isSingleValue(exprCall)) {
- return plan;
- }
+ /**
+ * @return the RelOptCluster in use.
+ */
+ public RelOptCluster getCluster() {
+ return cluster;
}
- // If not, project SingleValueAgg
- return RelOptUtil.createSingleValueAggRel(
- cluster,
- plan);
- }
-
- /**
- * Converts "x IN (1, 2, ...)" to "x=1 OR x=2 OR ...".
- *
- * @param leftKeys LHS
- * @param valuesList RHS
- * @param isNotIn is this a NOT IN operator
- * @return converted expression
- */
- private RexNode convertInToOr(
- final Blackboard bb,
- final List<RexNode> leftKeys,
- SqlNodeList valuesList,
- boolean isNotIn) {
- final List<RexNode> comparisons = new ArrayList<>();
- for (SqlNode rightVals : valuesList) {
- RexNode rexComparison;
- if (leftKeys.size() == 1) {
- rexComparison =
- rexBuilder.makeCall(
- SqlStdOperatorTable.EQUALS,
- leftKeys.get(0),
- rexBuilder.ensureType(leftKeys.get(0).getType(),
- bb.convertExpression(rightVals), true));
- } else {
- assert rightVals instanceof SqlCall;
- final SqlBasicCall call = (SqlBasicCall) rightVals;
- assert (call.getOperator() instanceof SqlRowOperator)
- && call.getOperands().length == leftKeys.size();
- rexComparison =
- RexUtil.composeConjunction(
- rexBuilder,
- Iterables.transform(
- Pair.zip(leftKeys, call.getOperandList()),
- new Function<Pair<RexNode, SqlNode>, RexNode>() {
- public RexNode apply(Pair<RexNode, SqlNode> pair) {
- return rexBuilder.makeCall(SqlStdOperatorTable.EQUALS,
- pair.left,
- rexBuilder.ensureType(pair.left.getType(),
- bb.convertExpression(pair.right), true));
- }
- }),
- false);
- }
- comparisons.add(rexComparison);
+ /**
+ * Returns the row-expression builder.
+ */
+ public RexBuilder getRexBuilder() {
+ return rexBuilder;
}
- RexNode result =
- RexUtil.composeDisjunction(rexBuilder, comparisons, true);
- assert result != null;
-
- if (isNotIn) {
- result =
- rexBuilder.makeCall(
- SqlStdOperatorTable.NOT,
- result);
+ /**
+ * Returns the number of dynamic parameters encountered during translation;
+ * this must only be called after {@link #convertQuery}.
+ *
+ * @return number of dynamic parameters
+ */
+ public int getDynamicParamCount() {
+ return dynamicParamSqlNodes.size();
}
- return result;
- }
-
- /**
- * Gets the list size threshold under which {@link #convertInToOr} is used.
- * Lists of this size or greater will instead be converted to use a join
- * against an inline table
- * ({@link org.apache.calcite.rel.logical.LogicalValues}) rather than a
- * predicate. A threshold of 0 forces usage of an inline table in all cases; a
- * threshold of Integer.MAX_VALUE forces usage of OR in all cases
- *
- * @return threshold, default 20
- */
- protected int getInSubqueryThreshold() {
- /* OVERRIDE POINT */
- return Integer.MAX_VALUE;
- }
-
- /**
- * Converts an EXISTS or IN predicate into a join. For EXISTS, the subquery
- * produces an indicator variable, and the result is a relational expression
- * which outer joins that indicator to the original query. After performing
- * the outer join, the condition will be TRUE if the EXISTS condition holds,
- * NULL otherwise.
- *
- * @param seek A query, for example 'select * from emp' or
- * 'values (1,2,3)' or '('Foo', 34)'.
- * @param subqueryType Whether sub-query is IN, EXISTS or scalar
- * @param logic Whether the answer needs to be in full 3-valued logic (TRUE,
- * FALSE, UNKNOWN) will be required, or whether we can accept an
- * approximation (say representing UNKNOWN as FALSE)
- * @param needsOuterJoin Whether an outer join is needed
- * @return join expression
- * @pre extraExpr == null || extraName != null
- */
- private Pair<RelNode, Boolean> convertExists(
- SqlNode seek,
- RelOptUtil.SubqueryType subqueryType,
- RelOptUtil.Logic logic,
- boolean needsOuterJoin) {
- final SqlValidatorScope seekScope =
- (seek instanceof SqlSelect)
- ? validator.getSelectScope((SqlSelect) seek)
- : null;
- final Blackboard seekBb = createBlackboard(seekScope, null);
- RelNode seekRel = convertQueryOrInList(seekBb, seek);
-
- return RelOptUtil.createExistsPlan(seekRel, subqueryType, logic,
- needsOuterJoin);
- }
-
- private RelNode convertQueryOrInList(
- Blackboard bb,
- SqlNode seek) {
- // NOTE: Once we start accepting single-row queries as row constructors,
- // there will be an ambiguity here for a case like X IN ((SELECT Y FROM
- // Z)). The SQL standard resolves the ambiguity by saying that a lone
- // select should be interpreted as a table expression, not a row
- // expression. The semantic difference is that a table expression can
- // return multiple rows.
- if (seek instanceof SqlNodeList) {
- return convertRowValues(
- bb,
- seek,
- ((SqlNodeList) seek).getList(),
- false,
- null);
- } else {
- return convertQueryRecursive(seek, false, null);
- }
- }
-
- private RelNode convertRowValues(
- Blackboard bb,
- SqlNode rowList,
- Collection<SqlNode> rows,
- boolean allowLiteralsOnly,
- RelDataType targetRowType) {
- // NOTE jvs 30-Apr-2006: We combine all rows consisting entirely of
- // literals into a single LogicalValues; this gives the optimizer a smaller
- // input tree. For everything else (computed expressions, row
- // subqueries), we union each row in as a projection on top of a
- // LogicalOneRow.
-
- final ImmutableList.Builder<ImmutableList<RexLiteral>> tupleList =
- ImmutableList.builder();
- final RelDataType rowType;
- if (targetRowType != null) {
- rowType = targetRowType;
- } else {
- rowType =
- SqlTypeUtil.promoteToRowType(
- typeFactory,
- validator.getValidatedNodeType(rowList),
- null);
+ /**
+ * Returns the type inferred for a dynamic parameter.
+ *
+ * @param index 0-based index of dynamic parameter
+ * @return inferred type, never null
+ */
+ public RelDataType getDynamicParamType(int index) {
+ SqlNode sqlNode = dynamicParamSqlNodes.get(index);
+ if (sqlNode == null) {
+ throw Util.needToImplement("dynamic param type inference");
+ }
+ return validator.getValidatedNodeType(sqlNode);
}
- final List<RelNode> unionInputs = new ArrayList<>();
- for (SqlNode node : rows) {
- SqlBasicCall call;
- if (isRowConstructor(node)) {
- call = (SqlBasicCall) node;
- ImmutableList.Builder<RexLiteral> tuple = ImmutableList.builder();
- for (Ord<SqlNode> operand : Ord.zip(call.operands)) {
- RexLiteral rexLiteral =
- convertLiteralInValuesList(
- operand.e,
- bb,
- rowType,
- operand.i);
- if ((rexLiteral == null) && allowLiteralsOnly) {
- return null;
- }
- if ((rexLiteral == null) || !shouldCreateValuesRel) {
- // fallback to convertRowConstructor
- tuple = null;
- break;
- }
- tuple.add(rexLiteral);
- }
- if (tuple != null) {
- tupleList.add(tuple.build());
- continue;
- }
- } else {
- RexLiteral rexLiteral =
- convertLiteralInValuesList(
- node,
- bb,
- rowType,
- 0);
- if ((rexLiteral != null) && shouldCreateValuesRel) {
- tupleList.add(ImmutableList.of(rexLiteral));
- continue;
- } else {
- if ((rexLiteral == null) && allowLiteralsOnly) {
- return null;
- }
+ /**
+ * Returns the current count of the number of dynamic parameters in an
+ * EXPLAIN PLAN statement.
+ *
+ * @param increment if true, increment the count
+ * @return the current count before the optional increment
+ */
+ public int getDynamicParamCountInExplain(boolean increment) {
+ int retVal = nDynamicParamsInExplain;
+ if (increment) {
+ ++nDynamicParamsInExplain;
}
-
- // convert "1" to "row(1)"
- call =
- (SqlBasicCall) SqlStdOperatorTable.ROW.createCall(
- SqlParserPos.ZERO,
- node);
- }
- unionInputs.add(convertRowConstructor(bb, call));
- }
- LogicalValues values =
- LogicalValues.create(cluster, rowType, tupleList.build());
- RelNode resultRel;
- if (unionInputs.isEmpty()) {
- resultRel = values;
- } else {
- if (!values.getTuples().isEmpty()) {
- unionInputs.add(values);
- }
- resultRel = LogicalUnion.create(unionInputs, true);
+ return retVal;
}
- leaves.add(resultRel);
- return resultRel;
- }
-
- private RexLiteral convertLiteralInValuesList(
- SqlNode sqlNode,
- Blackboard bb,
- RelDataType rowType,
- int iField) {
- if (!(sqlNode instanceof SqlLiteral)) {
- return null;
- }
- RelDataTypeField field = rowType.getFieldList().get(iField);
- RelDataType type = field.getType();
- if (type.isStruct()) {
- // null literals for weird stuff like UDT's need
- // special handling during type flattening, so
- // don't use LogicalValues for those
- return null;
- }
-
- RexNode literalExpr =
- exprConverter.convertLiteral(
- bb,
- (SqlLiteral) sqlNode);
-
- if (!(literalExpr instanceof RexLiteral)) {
- assert literalExpr.isA(SqlKind.CAST);
- RexNode child = ((RexCall) literalExpr).getOperands().get(0);
- assert RexLiteral.isNullLiteral(child);
- // NOTE jvs 22-Nov-2006: we preserve type info
- // in LogicalValues digest, so it's OK to lose it here
- return (RexLiteral) child;
+ /**
+ * @return mapping of non-correlated subqueries that have been converted to
+ * the constants that they evaluate to
+ */
+ public Map<SqlNode, RexNode> getMapConvertedNonCorrSubqs() {
+ return mapConvertedNonCorrSubqs;
}
- RexLiteral literal = (RexLiteral) literalExpr;
-
- Comparable value = literal.getValue();
-
- if (SqlTypeUtil.isExactNumeric(type)) {
- BigDecimal roundedValue =
- NumberUtil.rescaleBigDecimal(
- (BigDecimal) value,
- type.getScale());
- return rexBuilder.makeExactLiteral(
- roundedValue,
- type);
+ /**
+ * Adds to the current map of non-correlated converted subqueries the
+ * elements from another map that contains non-correlated subqueries that
+ * have been converted by another SqlToRelConverter.
+ *
+ * @param alreadyConvertedNonCorrSubqs the other map
+ */
+ public void addConvertedNonCorrSubqs(Map<SqlNode, RexNode> alreadyConvertedNonCorrSubqs) {
+ mapConvertedNonCorrSubqs.putAll(alreadyConvertedNonCorrSubqs);
}
- if ((value instanceof NlsString)
- && (type.getSqlTypeName() == SqlTypeName.CHAR)) {
- // pad fixed character type
- NlsString unpadded = (NlsString) value;
- return rexBuilder.makeCharLiteral(
- new NlsString(
- Util.rpad(unpadded.getValue(), type.getPrecision()),
- unpadded.getCharsetName(),
- unpadded.getCollation()));
+ /**
+ * Set a new DefaultValueFactory. To have any effect, this must be called
+ * before any convert method.
+ *
+ * @param factory new DefaultValueFactory
+ */
+ public void setDefaultValueFactory(DefaultValueFactory factory) {
+ defaultValueFactory = factory;
}
- return literal;
- }
- private boolean isRowConstructor(SqlNode node) {
- if (!(node.getKind() == SqlKind.ROW)) {
- return false;
- }
- SqlCall call = (SqlCall) node;
- return call.getOperator().getName().equalsIgnoreCase("row");
- }
-
- /**
- * Builds a list of all <code>IN</code> or <code>EXISTS</code> operators
- * inside SQL parse tree. Does not traverse inside queries.
- *
- * @param bb blackboard
- * @param node the SQL parse tree
- * @param logic Whether the answer needs to be in full 3-valued logic (TRUE,
- * FALSE, UNKNOWN) will be required, or whether we can accept
- * an approximation (say representing UNKNOWN as FALSE)
- * @param registerOnlyScalarSubqueries if set to true and the parse tree
- * corresponds to a variation of a select
- * node, only register it if it's a scalar
- * subquery
- */
- private void findSubqueries(
- Blackboard bb,
- SqlNode node,
- RelOptUtil.Logic logic,
- boolean registerOnlyScalarSubqueries) {
- final SqlKind kind = node.getKind();
- switch (kind) {
- case EXISTS:
- case SELECT:
- case MULTISET_QUERY_CONSTRUCTOR:
- case MULTISET_VALUE_CONSTRUCTOR:
- case CURSOR:
- case SCALAR_QUERY:
- if (!registerOnlyScalarSubqueries
- || (kind == SqlKind.SCALAR_QUERY)) {
- bb.registerSubquery(node, RelOptUtil.Logic.TRUE_FALSE);
- }
- return;
- case IN:
- if (((SqlCall) node).getOperator() == SqlStdOperatorTable.NOT_IN) {
- logic = logic.negate();
- }
- break;
- case NOT:
- logic = logic.negate();
- break;
- }
- if (node instanceof SqlCall) {
- if (kind == SqlKind.OR
- || kind == SqlKind.NOT) {
- // It's always correct to outer join subquery with
- // containing query; however, when predicates involve Or
- // or NOT, outer join might be necessary.
- bb.subqueryNeedsOuterJoin = true;
- }
- for (SqlNode operand : ((SqlCall) node).getOperandList()) {
- if (operand != null) {
- // In the case of an IN expression, locate scalar
- // subqueries so we can convert them to constants
- findSubqueries(
- bb,
- operand,
- logic,
- kind == SqlKind.IN || registerOnlyScalarSubqueries);
- }
- }
- } else if (node instanceof SqlNodeList) {
- for (SqlNode child : (SqlNodeList) node) {
- findSubqueries(
- bb,
- child,
- logic,
- kind == SqlKind.IN || registerOnlyScalarSubqueries);
- }
+ /**
+ * Sets a new SubqueryConverter. To have any effect, this must be called
+ * before any convert method.
+ *
+ * @param converter new SubqueryConverter
+ */
+ public void setSubqueryConverter(SubqueryConverter converter) {
+ subqueryConverter = converter;
}
- // Now that we've located any scalar subqueries inside the IN
- // expression, register the IN expression itself. We need to
- // register the scalar subqueries first so they can be converted
- // before the IN expression is converted.
- if (kind == SqlKind.IN) {
- if (logic == RelOptUtil.Logic.TRUE_FALSE_UNKNOWN
- && !validator.getValidatedNodeType(node).isNullable()) {
- logic = RelOptUtil.Logic.UNKNOWN_AS_FALSE;
- }
- // TODO: This conversion is only valid in the WHERE clause
- if (logic == RelOptUtil.Logic.UNKNOWN_AS_FALSE
- && !bb.subqueryNeedsOuterJoin) {
- logic = RelOptUtil.Logic.TRUE;
- }
- bb.registerSubquery(node, logic);
- }
- }
-
- /**
- * Converts an expression from {@link SqlNode} to {@link RexNode} format.
- *
- * @param node Expression to translate
- * @return Converted expression
- */
- public RexNode convertExpression(
- SqlNode node) {
- Map<String, RelDataType> nameToTypeMap = Collections.emptyMap();
- Blackboard bb =
- createBlackboard(
- new ParameterScope((SqlValidatorImpl) validator, nameToTypeMap),
- null);
- return bb.convertExpression(node);
- }
-
- /**
- * Converts an expression from {@link SqlNode} to {@link RexNode} format,
- * mapping identifier references to predefined expressions.
- *
- * @param node Expression to translate
- * @param nameToNodeMap map from String to {@link RexNode}; when an
- * {@link SqlIdentifier} is encountered, it is used as a
- * key and translated to the corresponding value from
- * this map
- * @return Converted expression
- */
- public RexNode convertExpression(
- SqlNode node,
- Map<String, RexNode> nameToNodeMap) {
- final Map<String, RelDataType> nameToTypeMap = new HashMap<>();
- for (Map.Entry<String, RexNode> entry : nameToNodeMap.entrySet()) {
- nameToTypeMap.put(entry.getKey(), entry.getValue().getType());
- }
- Blackboard bb =
- createBlackboard(
- new ParameterScope((SqlValidatorImpl) validator, nameToTypeMap),
- nameToNodeMap);
- return bb.convertExpression(node);
- }
-
- /**
- * Converts a non-standard expression.
- *
- * <p>This method is an extension-point that derived classes can override. If
- * this method returns a null result, the normal expression translation
- * process will proceed. The default implementation always returns null.
- *
- * @param node Expression
- * @param bb Blackboard
- * @return null to proceed with the usual expression translation process
- */
- protected RexNode convertExtendedExpression(
- SqlNode node,
- Blackboard bb) {
- return null;
- }
-
- private RexNode convertOver(Blackboard bb, SqlNode node) {
- SqlCall call = (SqlCall) node;
- SqlCall aggCall = call.operand(0);
- SqlNode windowOrRef = call.operand(1);
- final SqlWindow window =
- validator.resolveWindow(windowOrRef, bb.scope, true);
- final SqlNodeList partitionList = window.getPartitionList();
- final ImmutableList.Builder<RexNode> partitionKeys =
- ImmutableList.builder();
- for (SqlNode partition : partitionList) {
- partitionKeys.add(bb.convertExpression(partition));
- }
- RexNode lowerBound = bb.convertExpression(window.getLowerBound());
- RexNode upperBound = bb.convertExpression(window.getUpperBound());
- SqlNodeList orderList = window.getOrderList();
- if ((orderList.size() == 0) && !window.isRows()) {
- // A logical range requires an ORDER BY clause. Use the implicit
- // ordering of this relation. There must be one, otherwise it would
- // have failed validation.
- orderList = bb.scope.getOrderList();
- if (orderList == null) {
- throw new AssertionError(
- "Relation should have sort key for implicit ORDER BY");
- }
- }
- final ImmutableList.Builder<RexFieldCollation> orderKeys =
- ImmutableList.builder();
- final Set<SqlKind> flags = EnumSet.noneOf(SqlKind.class);
- for (SqlNode order : orderList) {
- flags.clear();
- RexNode e = bb.convertSortExpression(order, flags);
- orderKeys.add(new RexFieldCollation(e, flags));
- }
- try {
- Util.permAssert(bb.window == null, "already in window agg mode");
- bb.window = window;
- RexNode rexAgg = exprConverter.convertCall(bb, aggCall);
- rexAgg =
- rexBuilder.ensureType(
- validator.getValidatedNodeType(call), rexAgg, false);
-
- // Walk over the tree and apply 'over' to all agg functions. This is
- // necessary because the returned expression is not necessarily a call
- // to an agg function. For example, AVG(x) becomes SUM(x) / COUNT(x).
- final RexShuttle visitor =
- new HistogramShuttle(
- partitionKeys.build(), orderKeys.build(),
- RexWindowBound.create(window.getLowerBound(), lowerBound),
- RexWindowBound.create(window.getUpperBound(), upperBound),
- window);
- return rexAgg.accept(visitor);
- } finally {
- bb.window = null;
- }
- }
-
- /**
- * Converts a FROM clause into a relational expression.
- *
- * @param bb Scope within which to resolve identifiers
- * @param from FROM clause of a query. Examples include:
- *
- * <ul>
- * <li>a single table ("SALES.EMP"),
- * <li>an aliased table ("EMP AS E"),
- * <li>a list of tables ("EMP, DEPT"),
- * <li>an ANSI Join expression ("EMP JOIN DEPT ON EMP.DEPTNO =
- * DEPT.DEPTNO"),
- * <li>a VALUES clause ("VALUES ('Fred', 20)"),
- * <li>a query ("(SELECT * FROM EMP WHERE GENDER = 'F')"),
- * <li>or any combination of the above.
- * </ul>
- */
- protected void convertFrom(
- Blackboard bb,
- SqlNode from) {
- SqlCall call;
- final SqlNode[] operands;
- switch (from.getKind()) {
- case AS:
- operands = ((SqlBasicCall) from).getOperands();
- convertFrom(bb, operands[0]);
- return;
-
- case WITH_ITEM:
- convertFrom(bb, ((SqlWithItem) from).query);
- return;
-
- case WITH:
- convertFrom(bb, ((SqlWith) from).body);
- return;
-
- case TABLESAMPLE:
- operands = ((SqlBasicCall) from).getOperands();
- SqlSampleSpec sampleSpec = SqlLiteral.sampleValue(operands[1]);
- if (sampleSpec instanceof SqlSampleSpec.SqlSubstitutionSampleSpec) {
- String sampleName =
- ((SqlSampleSpec.SqlSubstitutionSampleSpec) sampleSpec)
- .getName();
- datasetStack.push(sampleName);
- convertFrom(bb, operands[0]);
- datasetStack.pop();
- } else if (sampleSpec instanceof SqlSampleSpec.SqlTableSampleSpec) {
- SqlSampleSpec.SqlTableSampleSpec tableSampleSpec =
- (SqlSampleSpec.SqlTableSampleSpec) sampleSpec;
- convertFrom(bb, operands[0]);
- RelOptSamplingParameters params =
- new RelOptSamplingParameters(
- tableSampleSpec.isBernoulli(),
- tableSampleSpec.getSamplePercentage(),
- tableSampleSpec.isRepeatable(),
- tableSampleSpec.getRepeatableSeed());
- bb.setRoot(new Sample(cluster, bb.root, params), false);
- } else {
- throw Util.newInternal(
- "unknown TABLESAMPLE type: " + sampleSpec);
- }
- return;
-
- case IDENTIFIER:
- final SqlValidatorNamespace fromNamespace =
- validator.getNamespace(from).resolve();
- if (fromNamespace.getNode() != null) {
- convertFrom(bb, fromNamespace.getNode());
- return;
- }
- final String datasetName =
- datasetStack.isEmpty() ? null : datasetStack.peek();
- boolean[] usedDataset = {false};
- RelOptTable table =
- SqlValidatorUtil.getRelOptTable(
- fromNamespace,
- catalogReader,
- datasetName,
- usedDataset);
- final RelNode tableRel;
- if (shouldConvertTableAccess) {
- tableRel = toRel(table);
- } else {
- tableRel = LogicalTableScan.create(cluster, table);
- }
- bb.setRoot(tableRel, true);
- if (usedDataset[0]) {
- bb.setDataset(datasetName);
- }
- return;
-
- case JOIN:
- final SqlJoin join = (SqlJoin) from;
- final Blackboard fromBlackboard =
- createBlackboard(validator.getJoinScope(from), null);
- SqlNode left = join.getLeft();
- SqlNode right = join.getRight();
- final boolean isNatural = join.isNatural();
- final JoinType joinType = join.getJoinType();
- final Blackboard leftBlackboard =
- createBlackboard(
- Util.first(validator.getJoinScope(left),
- ((DelegatingScope) bb.scope).getParent()), null);
- final Blackboard rightBlackboard =
- createBlackboard(
- Util.first(validator.getJoinScope(right),
- ((DelegatingScope) bb.scope).getParent()), null);
- convertFrom(leftBlackboard, left);
- RelNode leftRel = leftBlackboard.root;
- convertFrom(rightBlackboard, right);
- RelNode rightRel = rightBlackboard.root;
- JoinRelType convertedJoinType = convertJoinType(joinType);
- RexNode conditionExp;
- if (isNatural) {
- final List<String> columnList =
- SqlValidatorUtil.deriveNaturalJoinColumnList(
- validator.getNamespace(left).getRowType(),
- validator.getNamespace(right).getRowType());
- conditionExp = convertUsing(leftRel, rightRel, columnList);
- } else {
- conditionExp =
- convertJoinCondition(
- fromBlackboard,
- join.getCondition(),
- join.getConditionType(),
- leftRel,
- rightRel);
- }
-
- final RelNode joinRel =
- createJoin(
- fromBlackboard,
- leftRel,
- rightRel,
- conditionExp,
- convertedJoinType);
- bb.setRoot(joinRel, false);
- return;
-
- case SELECT:
- case INTERSECT:
- case EXCEPT:
- case UNION:
- final RelNode rel = convertQueryRecursive(from, false, null);
- bb.setRoot(rel, true);
- return;
-
- case VALUES:
- convertValuesImpl(bb, (SqlCall) from, null);
- return;
-
- case UNNEST:
- final SqlNode node = ((SqlCall) from).operand(0);
- replaceSubqueries(bb, node, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
- final RelNode childRel =
- RelOptUtil.createProject(
- (null != bb.root) ? bb.root : LogicalValues.createOneRow(cluster),
- Collections.singletonList(bb.convertExpression(node)),
- Collections.singletonList(validator.deriveAlias(node, 0)),
- true);
-
- Uncollect uncollect =
- new Uncollect(cluster, cluster.traitSetOf(Convention.NONE),
- childRel);
- bb.setRoot(uncollect, true);
- return;
-
- case COLLECTION_TABLE:
- call = (SqlCall) from;
-
- // Dig out real call; TABLE() wrapper is just syntactic.
- assert call.getOperandList().size() == 1;
- call = call.operand(0);
- convertCollectionTable(bb, call);
- return;
-
- default:
- throw Util.newInternal("not a join operator " + from);
- }
- }
-
- protected void convertCollectionTable(
- Blackboard bb,
- SqlCall call) {
- final SqlOperator operator = call.getOperator();
- if (operator == SqlStdOperatorTable.TABLESAMPLE) {
- final String sampleName =
- SqlLiteral.stringValue(call.operand(0));
- datasetStack.push(sampleName);
- SqlCall cursorCall = call.operand(1);
- SqlNode query = cursorCall.operand(0);
- RelNode converted = convertQuery(query, false, false);
- bb.setRoot(converted, false);
- datasetStack.pop();
- return;
- }
- replaceSubqueries(bb, call, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
-
- // Expand table macro if possible. It's more efficient than
- // LogicalTableFunctionScan.
- if (operator instanceof SqlUserDefinedTableMacro) {
- final SqlUserDefinedTableMacro udf =
- (SqlUserDefinedTableMacro) operator;
- final TranslatableTable table = udf.getTable(typeFactory,
- call.getOperandList());
- final RelDataType rowType = table.getRowType(typeFactory);
- RelOptTable relOptTable = RelOptTableImpl.create(null, rowType, table);
- RelNode converted = toRel(relOptTable);
- bb.setRoot(converted, true);
- return;
+ /**
+ * Indicates that the current statement is part of an EXPLAIN PLAN statement
+ *
+ * @param nDynamicParams number of dynamic parameters in the statement
+ */
+ public void setIsExplain(int nDynamicParams) {
+ isExplain = true;
+ nDynamicParamsInExplain = nDynamicParams;
}
- Type elementType;
- if (operator instanceof SqlUserDefinedTableFunction) {
- SqlUserDefinedTableFunction udtf = (SqlUserDefinedTableFunction) operator;
- elementType = udtf.getElementType(typeFactory, call.getOperandList());
- } else {
- elementType = null;
+ /**
+ * Controls whether table access references are converted to physical rels
+ * immediately. The optimizer doesn't like leaf rels to have
+ * {@link Convention#NONE}. However, if we are doing further conversion
+ * passes (e.g. {@link RelStructuredTypeFlattener}), then we may need to
+ * defer conversion. To have any effect, this must be called before any
+ * convert method.
+ *
+ * @param enabled true for immediate conversion (the default); false to
+ * generate logical LogicalTableScan instances
+ */
+ public void enableTableAccessConversion(boolean enabled) {
+ shouldConvertTableAccess = enabled;
}
- RexNode rexCall = bb.convertExpression(call);
- final List<RelNode> inputs = bb.retrieveCursors();
- Set<RelColumnMapping> columnMappings =
- getColumnMappings(operator);
- LogicalTableFunctionScan callRel =
- LogicalTableFunctionScan.create(
- cluster,
- inputs,
- rexCall,
- elementType,
- validator.getValidatedNodeType(call),
- columnMappings);
- bb.setRoot(callRel, true);
- afterTableFunction(bb, call, callRel);
- }
-
- protected void afterTableFunction(
- SqlToRelConverter.Blackboard bb,
- SqlCall call,
- LogicalTableFunctionScan callRel) {
- }
-
- private Set<RelColumnMapping> getColumnMappings(SqlOperator op) {
- SqlReturnTypeInference rti = op.getReturnTypeInference();
- if (rti == null) {
- return null;
- }
- if (rti instanceof TableFunctionReturnTypeInference) {
- TableFunctionReturnTypeInference tfrti =
- (TableFunctionReturnTypeInference) rti;
- return tfrti.getColumnMappings();
- } else {
- return null;
- }
- }
-
- protected RelNode createJoin(
- Blackboard bb,
- RelNode leftRel,
- RelNode rightRel,
- RexNode joinCond,
- JoinRelType joinType) {
- assert joinCond != null;
-
- Set<String> correlatedVariables = RelOptUtil.getVariablesUsed(rightRel);
- if (correlatedVariables.size() > 0) {
- final ImmutableBitSet.Builder requiredColumns = ImmutableBitSet.builder();
- final List<String> correlNames = Lists.newArrayList();
-
- // All correlations must refer the same namespace since correlation
- // produces exactly one correlation source.
- // The same source might be referenced by different variables since
- // DeferredLookups are not de-duplicated at create time.
- SqlValidatorNamespace prevNs = null;
-
- for (String correlName : correlatedVariables) {
- DeferredLookup lookup = mapCorrelToDeferred.get(correlName);
- RexFieldAccess fieldAccess = lookup.getFieldAccess(correlName);
- String originalRelName = lookup.getOriginalRelName();
- String originalFieldName = fieldAccess.getField().getName();
-
- int[] nsIndexes = {-1};
- final SqlValidatorScope[] ancestorScopes = {null};
- SqlValidatorNamespace foundNs =
- lookup.bb.scope.resolve(
- ImmutableList.of(originalRelName),
- ancestorScopes,
- nsIndexes);
-
- assert foundNs != null;
- assert nsIndexes.length == 1;
-
- int childNamespaceIndex = nsIndexes[0];
-
- SqlValidatorScope ancestorScope = ancestorScopes[0];
- boolean correlInCurrentScope = ancestorScope == bb.scope;
-
- if (!correlInCurrentScope) {
- continue;
- }
-
- if (prevNs == null) {
- prevNs = foundNs;
- } else {
- assert prevNs == foundNs : "All correlation variables should resolve"
- + " to the same namespace."
- + " Prev ns=" + prevNs
- + ", new ns=" + foundNs;
- }
-
- int namespaceOffset = 0;
- if (childNamespaceIndex > 0) {
- // If not the first child, need to figure out the width
- // of output types from all the preceding namespaces
- assert ancestorScope instanceof ListScope;
- List<SqlValidatorNamespace> children =
- ((ListScope) ancestorScope).getChildren();
-
- for (int i = 0; i < childNamespaceIndex; i++) {
- SqlValidatorNamespace child = children.get(i);
- namespaceOffset +=
- child.getRowType().getFieldCount();
- }
- }
-
- RelDataTypeField field =
- catalogReader.field(foundNs.getRowType(), originalFieldName);
- int pos = namespaceOffset + field.getIndex();
-
- assert field.getType()
- == lookup.getFieldAccess(correlName).getField().getType();
-
- assert pos != -1;
-
- if (bb.mapRootRelToFieldProjection.containsKey(bb.root)) {
- // bb.root is an aggregate and only projects group by
- // keys.
- Map<Integer, Integer> exprProjection =
- bb.mapRootRelToFieldProjection.get(bb.root);
-
- // subquery can reference group by keys projected from
- // the root of the outer relation.
- if (exprProjection.containsKey(pos)) {
- pos = exprProjection.get(pos);
- } else {
- // correl not grouped
- throw Util.newInternal(
- "Identifier '" + originalRelName + "."
- + originalFieldName + "' is not a group expr");
- }
- }
-
- requiredColumns.set(pos);
- correlNames.add(correlName);
- }
-
- if (!correlNames.isEmpty()) {
- if (correlNames.size() > 1) {
- // The same table was referenced more than once.
- // So we deduplicate
- RelShuttle dedup =
- new DeduplicateCorrelateVariables(rexBuilder,
- correlNames.get(0),
- ImmutableSet.copyOf(Util.skip(correlNames)));
- rightRel = rightRel.accept(dedup);
- }
- LogicalCorrelate corr = LogicalCorrelate.create(leftRel, rightRel,
- new CorrelationId(correlNames.get(0)), requiredColumns.build(),
- SemiJoinType.of(joinType));
- if (!joinCond.isAlwaysTrue()) {
- return RelOptUtil.createFilter(corr, joinCond);
- }
- return corr;
- }
+ /**
+ * Controls whether instances of
+ * {@link org.apache.calcite.rel.logical.LogicalValues} are generated. These
+ * may not be supported by all physical implementations. To have any effect,
+ * this must be called before any convert method.
+ *
+ * @param enabled true to allow LogicalValues to be generated (the default);
+ * false to force substitution of Project+OneRow instead
+ */
+ public void enableValuesRelCreation(boolean enabled) {
+ shouldCreateValuesRel = enabled;
+ }
+
+ private void checkConvertedType(SqlNode query, RelNode result) {
+ if (!query.isA(SqlKind.DML)) {
+ // Verify that conversion from SQL to relational algebra did
+ // not perturb any type information. (We can't do this if the
+ // SQL statement is something like an INSERT which has no
+ // validator type information associated with its result,
+ // hence the namespace check above.)
+ RelDataType convertedRowType = result.getRowType();
+ if (!checkConvertedRowType(query, convertedRowType)) {
+ RelDataType validatedRowType = validator.getValidatedNodeType(query);
+ validatedRowType = uniquifyFields(validatedRowType);
+ throw Util.newInternal("Conversion to relational algebra failed to " + "preserve datatypes:\n" + "validated type:\n" + validatedRowType.getFullTypeString() + "\nconverted type:\n" + convertedRowType.getFullTypeString() + "\nrel:\n" + RelOptUtil.toString(result));
+ }
+ }
}
- final List<RexNode> extraLeftExprs = new ArrayList<>();
- final List<RexNode> extraRightExprs = new ArrayList<>();
- final int leftCount = leftRel.getRowType().getFieldCount();
- final int rightCount = rightRel.getRowType().getFieldCount();
- if (!containsGet(joinCond)) {
- joinCond = pushDownJoinConditions(
- joinCond, leftCount, rightCount, extraLeftExprs, extraRightExprs);
+ public RelNode flattenTypes(RelNode rootRel, boolean restructure) {
+ RelStructuredTypeFlattener typeFlattener = new RelStructuredTypeFlattener(rexBuilder, createToRelContext());
+ return typeFlattener.rewrite(rootRel, restructure);
}
- if (!extraLeftExprs.isEmpty()) {
- final List<RelDataTypeField> fields =
- leftRel.getRowType().getFieldList();
- leftRel = RelOp
<TRUNCATED>
[12/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java b/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
index c3e99ef..9d5465f 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
@@ -17,6 +17,20 @@
*/
package org.apache.calcite.runtime;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.MathContext;
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.text.DecimalFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.regex.Pattern;
+
import org.apache.calcite.DataContext;
import org.apache.calcite.avatica.util.ByteString;
import org.apache.calcite.avatica.util.DateTimeUtils;
@@ -27,16 +41,6 @@ import org.apache.calcite.linq4j.function.Function1;
import org.apache.calcite.linq4j.function.NonDeterministic;
import org.apache.calcite.linq4j.tree.Primitive;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.math.MathContext;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.text.DecimalFormat;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.regex.Pattern;
-
/**
* OVERRIDE POINT:
* - divide(BigDecimal,BigDecimal), was `b0.divide(b1)`, now `b0.divide(b1, MathContext.DECIMAL64);`
@@ -53,1319 +57,1258 @@ import java.util.regex.Pattern;
@SuppressWarnings("UnnecessaryUnboxing")
@Deterministic
public class SqlFunctions {
- private static final DecimalFormat DOUBLE_FORMAT =
- new DecimalFormat("0.0E0");
+ private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("0.0E0");
- private static final TimeZone LOCAL_TZ = TimeZone.getDefault();
+ private static final TimeZone LOCAL_TZ = TimeZone.getDefault();
- private static final Function1<List<Object>, Enumerable<Object>>
- LIST_AS_ENUMERABLE =
- new Function1<List<Object>, Enumerable<Object>>() {
+ private static final Function1<List<Object>, Enumerable<Object>> LIST_AS_ENUMERABLE = new Function1<List<Object>, Enumerable<Object>>() {
public Enumerable<Object> apply(List<Object> list) {
- return Linq4j.asEnumerable(list);
+ return Linq4j.asEnumerable(list);
}
- };
-
- /** Holds, for each thread, a map from sequence name to sequence current
- * value.
- *
- * <p>This is a straw man of an implementation whose main goal is to prove
- * that sequences can be parsed, validated and planned. A real application
- * will want persistent values for sequences, shared among threads. */
- private static final ThreadLocal<Map<String, AtomicLong>> THREAD_SEQUENCES =
- new ThreadLocal<Map<String, AtomicLong>>() {
- @Override protected Map<String, AtomicLong> initialValue() {
- return new HashMap<String, AtomicLong>();
+ };
+
+ /** Holds, for each thread, a map from sequence name to sequence current
+ * value.
+ *
+ * <p>This is a straw man of an implementation whose main goal is to prove
+ * that sequences can be parsed, validated and planned. A real application
+ * will want persistent values for sequences, shared among threads. */
+ private static final ThreadLocal<Map<String, AtomicLong>> THREAD_SEQUENCES = new ThreadLocal<Map<String, AtomicLong>>() {
+ @Override
+ protected Map<String, AtomicLong> initialValue() {
+ return new HashMap<String, AtomicLong>();
}
- };
-
- private SqlFunctions() {
- }
-
- /** SQL SUBSTRING(string FROM ... FOR ...) function. */
- public static String substring(String s, int from, int for_) {
- return s.substring(from - 1, Math.min(from - 1 + for_, s.length()));
- }
-
- /** SQL SUBSTRING(string FROM ...) function. */
- public static String substring(String s, int from) {
- return s.substring(from - 1);
- }
-
- /** SQL UPPER(string) function. */
- public static String upper(String s) {
- return s.toUpperCase();
- }
-
- /** SQL LOWER(string) function. */
- public static String lower(String s) {
- return s.toLowerCase();
- }
-
- /** SQL INITCAP(string) function. */
- public static String initcap(String s) {
- // Assumes Alpha as [A-Za-z0-9]
- // white space is treated as everything else.
- final int len = s.length();
- boolean start = true;
- final StringBuilder newS = new StringBuilder();
-
- for (int i = 0; i < len; i++) {
- char curCh = s.charAt(i);
- final int c = (int) curCh;
- if (start) { // curCh is whitespace or first character of word.
- if (c > 47 && c < 58) { // 0-9
- start = false;
- } else if (c > 64 && c < 91) { // A-Z
- start = false;
- } else if (c > 96 && c < 123) { // a-z
- start = false;
- curCh = (char) (c - 32); // Uppercase this character
+ };
+
+ private SqlFunctions() {
+ }
+
+ /** SQL SUBSTRING(string FROM ... FOR ...) function. */
+ public static String substring(String s, int from, int for_) {
+ return s.substring(from - 1, Math.min(from - 1 + for_, s.length()));
+ }
+
+ /** SQL SUBSTRING(string FROM ...) function. */
+ public static String substring(String s, int from) {
+ return s.substring(from - 1);
+ }
+
+ /** SQL UPPER(string) function. */
+ public static String upper(String s) {
+ return s.toUpperCase();
+ }
+
+ /** SQL LOWER(string) function. */
+ public static String lower(String s) {
+ return s.toLowerCase();
+ }
+
+ /** SQL INITCAP(string) function. */
+ public static String initcap(String s) {
+ // Assumes Alpha as [A-Za-z0-9]
+ // white space is treated as everything else.
+ final int len = s.length();
+ boolean start = true;
+ final StringBuilder newS = new StringBuilder();
+
+ for (int i = 0; i < len; i++) {
+ char curCh = s.charAt(i);
+ final int c = (int) curCh;
+ if (start) { // curCh is whitespace or first character of word.
+ if (c > 47 && c < 58) { // 0-9
+ start = false;
+ } else if (c > 64 && c < 91) { // A-Z
+ start = false;
+ } else if (c > 96 && c < 123) { // a-z
+ start = false;
+ curCh = (char) (c - 32); // Uppercase this character
+ }
+ // else {} whitespace
+ } else { // Inside of a word or white space after end of word.
+ if (c > 47 && c < 58) { // 0-9
+ // noop
+ } else if (c > 64 && c < 91) { // A-Z
+ curCh = (char) (c + 32); // Lowercase this character
+ } else if (c > 96 && c < 123) { // a-z
+ // noop
+ } else { // whitespace
+ start = true;
+ }
+ }
+ newS.append(curCh);
+ } // for each character in s
+ return newS.toString();
+ }
+
+ /** SQL CHARACTER_LENGTH(string) function. */
+ public static int charLength(String s) {
+ return s.length();
+ }
+
+ /** SQL {@code string || string} operator. */
+ public static String concat(String s0, String s1) {
+ return s0 + s1;
+ }
+
+ /** SQL {@code binary || binary} operator. */
+ public static ByteString concat(ByteString s0, ByteString s1) {
+ return s0.concat(s1);
+ }
+
+ /** SQL {@code RTRIM} function applied to string. */
+ public static String rtrim(String s) {
+ return trim_(s, false, true, ' ');
+ }
+
+ /** SQL {@code LTRIM} function. */
+ public static String ltrim(String s) {
+ return trim_(s, true, false, ' ');
+ }
+
+ /** SQL {@code TRIM(... seek FROM s)} function. */
+ public static String trim(boolean leading, boolean trailing, String seek, String s) {
+ return trim_(s, leading, trailing, seek.charAt(0));
+ }
+
+ /** SQL {@code TRIM} function. */
+ private static String trim_(String s, boolean left, boolean right, char c) {
+ int j = s.length();
+ if (right) {
+ for (;;) {
+ if (j == 0) {
+ return "";
+ }
+ if (s.charAt(j - 1) != c) {
+ break;
+ }
+ --j;
+ }
}
- // else {} whitespace
- } else { // Inside of a word or white space after end of word.
- if (c > 47 && c < 58) { // 0-9
- // noop
- } else if (c > 64 && c < 91) { // A-Z
- curCh = (char) (c + 32); // Lowercase this character
- } else if (c > 96 && c < 123) { // a-z
- // noop
- } else { // whitespace
- start = true;
+ int i = 0;
+ if (left) {
+ for (;;) {
+ if (i == j) {
+ return "";
+ }
+ if (s.charAt(i) != c) {
+ break;
+ }
+ ++i;
+ }
}
- }
- newS.append(curCh);
- } // for each character in s
- return newS.toString();
- }
-
- /** SQL CHARACTER_LENGTH(string) function. */
- public static int charLength(String s) {
- return s.length();
- }
-
- /** SQL {@code string || string} operator. */
- public static String concat(String s0, String s1) {
- return s0 + s1;
- }
-
- /** SQL {@code binary || binary} operator. */
- public static ByteString concat(ByteString s0, ByteString s1) {
- return s0.concat(s1);
- }
-
- /** SQL {@code RTRIM} function applied to string. */
- public static String rtrim(String s) {
- return trim_(s, false, true, ' ');
- }
-
- /** SQL {@code LTRIM} function. */
- public static String ltrim(String s) {
- return trim_(s, true, false, ' ');
- }
-
- /** SQL {@code TRIM(... seek FROM s)} function. */
- public static String trim(boolean leading, boolean trailing, String seek,
- String s) {
- return trim_(s, leading, trailing, seek.charAt(0));
- }
-
- /** SQL {@code TRIM} function. */
- private static String trim_(String s, boolean left, boolean right, char c) {
- int j = s.length();
- if (right) {
- for (;;) {
- if (j == 0) {
- return "";
+ return s.substring(i, j);
+ }
+
+ /** SQL {@code TRIM} function applied to binary string. */
+ public static ByteString trim(ByteString s) {
+ return trim_(s, true, true);
+ }
+
+ /** Helper for CAST. */
+ public static ByteString rtrim(ByteString s) {
+ return trim_(s, false, true);
+ }
+
+ /** SQL {@code TRIM} function applied to binary string. */
+ private static ByteString trim_(ByteString s, boolean left, boolean right) {
+ int j = s.length();
+ if (right) {
+ for (;;) {
+ if (j == 0) {
+ return ByteString.EMPTY;
+ }
+ if (s.byteAt(j - 1) != 0) {
+ break;
+ }
+ --j;
+ }
}
- if (s.charAt(j - 1) != c) {
- break;
+ int i = 0;
+ if (left) {
+ for (;;) {
+ if (i == j) {
+ return ByteString.EMPTY;
+ }
+ if (s.byteAt(i) != 0) {
+ break;
+ }
+ ++i;
+ }
}
- --j;
- }
- }
- int i = 0;
- if (left) {
- for (;;) {
- if (i == j) {
- return "";
+ return s.substring(i, j);
+ }
+
+ /** SQL {@code OVERLAY} function. */
+ public static String overlay(String s, String r, int start) {
+ if (s == null || r == null) {
+ return null;
}
- if (s.charAt(i) != c) {
- break;
+ return s.substring(0, start - 1) + r + s.substring(start - 1 + r.length());
+ }
+
+ /** SQL {@code OVERLAY} function. */
+ public static String overlay(String s, String r, int start, int length) {
+ if (s == null || r == null) {
+ return null;
}
- ++i;
- }
- }
- return s.substring(i, j);
- }
-
- /** SQL {@code TRIM} function applied to binary string. */
- public static ByteString trim(ByteString s) {
- return trim_(s, true, true);
- }
-
- /** Helper for CAST. */
- public static ByteString rtrim(ByteString s) {
- return trim_(s, false, true);
- }
-
- /** SQL {@code TRIM} function applied to binary string. */
- private static ByteString trim_(ByteString s, boolean left, boolean right) {
- int j = s.length();
- if (right) {
- for (;;) {
- if (j == 0) {
- return ByteString.EMPTY;
+ return s.substring(0, start - 1) + r + s.substring(start - 1 + length);
+ }
+
+ /** SQL {@code OVERLAY} function applied to binary strings. */
+ public static ByteString overlay(ByteString s, ByteString r, int start) {
+ if (s == null || r == null) {
+ return null;
}
- if (s.byteAt(j - 1) != 0) {
- break;
+ return s.substring(0, start - 1).concat(r).concat(s.substring(start - 1 + r.length()));
+ }
+
+ /** SQL {@code OVERLAY} function applied to binary strings. */
+ public static ByteString overlay(ByteString s, ByteString r, int start, int length) {
+ if (s == null || r == null) {
+ return null;
}
- --j;
- }
- }
- int i = 0;
- if (left) {
- for (;;) {
- if (i == j) {
- return ByteString.EMPTY;
+ return s.substring(0, start - 1).concat(r).concat(s.substring(start - 1 + length));
+ }
+
+ /** SQL {@code LIKE} function. */
+ public static boolean like(String s, String pattern) {
+ final String regex = Like.sqlToRegexLike(pattern, null);
+ return Pattern.matches(regex, s);
+ }
+
+ /** SQL {@code LIKE} function with escape. */
+ public static boolean like(String s, String pattern, String escape) {
+ final String regex = Like.sqlToRegexLike(pattern, escape);
+ return Pattern.matches(regex, s);
+ }
+
+ /** SQL {@code SIMILAR} function. */
+ public static boolean similar(String s, String pattern) {
+ final String regex = Like.sqlToRegexSimilar(pattern, null);
+ return Pattern.matches(regex, s);
+ }
+
+ /** SQL {@code SIMILAR} function with escape. */
+ public static boolean similar(String s, String pattern, String escape) {
+ final String regex = Like.sqlToRegexSimilar(pattern, escape);
+ return Pattern.matches(regex, s);
+ }
+
+ // =
+
+ /** SQL = operator applied to Object values (including String; neither
+ * side may be null). */
+ public static boolean eq(Object b0, Object b1) {
+ return b0.equals(b1);
+ }
+
+ /** SQL = operator applied to BigDecimal values (neither may be null). */
+ public static boolean eq(BigDecimal b0, BigDecimal b1) {
+ return b0.stripTrailingZeros().equals(b1.stripTrailingZeros());
+ }
+
+ // <>
+
+ /** SQL <> operator applied to Object values (including String;
+ * neither side may be null). */
+ public static boolean ne(Object b0, Object b1) {
+ return !b0.equals(b1);
+ }
+
+ /** SQL <> operator applied to BigDecimal values. */
+ public static boolean ne(BigDecimal b0, BigDecimal b1) {
+ return b0.compareTo(b1) != 0;
+ }
+
+ // <
+
+ /** SQL < operator applied to boolean values. */
+ public static boolean lt(boolean b0, boolean b1) {
+ return compare(b0, b1) < 0;
+ }
+
+ /** SQL < operator applied to String values. */
+ public static boolean lt(String b0, String b1) {
+ return b0.compareTo(b1) < 0;
+ }
+
+ /** SQL < operator applied to ByteString values. */
+ public static boolean lt(ByteString b0, ByteString b1) {
+ return b0.compareTo(b1) < 0;
+ }
+
+ /** SQL < operator applied to BigDecimal values. */
+ public static boolean lt(BigDecimal b0, BigDecimal b1) {
+ return b0.compareTo(b1) < 0;
+ }
+
+ // <=
+
+ /** SQL ≤ operator applied to boolean values. */
+ public static boolean le(boolean b0, boolean b1) {
+ return compare(b0, b1) <= 0;
+ }
+
+ /** SQL ≤ operator applied to String values. */
+ public static boolean le(String b0, String b1) {
+ return b0.compareTo(b1) <= 0;
+ }
+
+ /** SQL ≤ operator applied to ByteString values. */
+ public static boolean le(ByteString b0, ByteString b1) {
+ return b0.compareTo(b1) <= 0;
+ }
+
+ /** SQL ≤ operator applied to BigDecimal values. */
+ public static boolean le(BigDecimal b0, BigDecimal b1) {
+ return b0.compareTo(b1) <= 0;
+ }
+
+ // >
+
+ /** SQL > operator applied to boolean values. */
+ public static boolean gt(boolean b0, boolean b1) {
+ return compare(b0, b1) > 0;
+ }
+
+ /** SQL > operator applied to String values. */
+ public static boolean gt(String b0, String b1) {
+ return b0.compareTo(b1) > 0;
+ }
+
+ /** SQL > operator applied to ByteString values. */
+ public static boolean gt(ByteString b0, ByteString b1) {
+ return b0.compareTo(b1) > 0;
+ }
+
+ /** SQL > operator applied to BigDecimal values. */
+ public static boolean gt(BigDecimal b0, BigDecimal b1) {
+ return b0.compareTo(b1) > 0;
+ }
+
+ // >=
+
+ /** SQL ≥ operator applied to boolean values. */
+ public static boolean ge(boolean b0, boolean b1) {
+ return compare(b0, b1) >= 0;
+ }
+
+ /** SQL ≥ operator applied to String values. */
+ public static boolean ge(String b0, String b1) {
+ return b0.compareTo(b1) >= 0;
+ }
+
+ /** SQL ≥ operator applied to ByteString values. */
+ public static boolean ge(ByteString b0, ByteString b1) {
+ return b0.compareTo(b1) >= 0;
+ }
+
+ /** SQL ≥ operator applied to BigDecimal values. */
+ public static boolean ge(BigDecimal b0, BigDecimal b1) {
+ return b0.compareTo(b1) >= 0;
+ }
+
+ // +
+
+ /** SQL <code>+</code> operator applied to int values. */
+ public static int plus(int b0, int b1) {
+ return b0 + b1;
+ }
+
+ /** SQL <code>+</code> operator applied to int values; left side may be
+ * null. */
+ public static Integer plus(Integer b0, int b1) {
+ return b0 == null ? null : (b0 + b1);
+ }
+
+ /** SQL <code>+</code> operator applied to int values; right side may be
+ * null. */
+ public static Integer plus(int b0, Integer b1) {
+ return b1 == null ? null : (b0 + b1);
+ }
+
+ /** SQL <code>+</code> operator applied to nullable int values. */
+ public static Integer plus(Integer b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0 + b1);
+ }
+
+ /** SQL <code>+</code> operator applied to nullable long and int values. */
+ public static Long plus(Long b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() + b1.longValue());
+ }
+
+ /** SQL <code>+</code> operator applied to nullable int and long values. */
+ public static Long plus(Integer b0, Long b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() + b1.longValue());
+ }
+
+ /** SQL <code>+</code> operator applied to BigDecimal values. */
+ public static BigDecimal plus(BigDecimal b0, BigDecimal b1) {
+ return (b0 == null || b1 == null) ? null : b0.add(b1);
+ }
+
+ // -
+
+ /** SQL <code>-</code> operator applied to int values. */
+ public static int minus(int b0, int b1) {
+ return b0 - b1;
+ }
+
+ /** SQL <code>-</code> operator applied to int values; left side may be
+ * null. */
+ public static Integer minus(Integer b0, int b1) {
+ return b0 == null ? null : (b0 - b1);
+ }
+
+ /** SQL <code>-</code> operator applied to int values; right side may be
+ * null. */
+ public static Integer minus(int b0, Integer b1) {
+ return b1 == null ? null : (b0 - b1);
+ }
+
+ /** SQL <code>-</code> operator applied to nullable int values. */
+ public static Integer minus(Integer b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0 - b1);
+ }
+
+ /** SQL <code>-</code> operator applied to nullable long and int values. */
+ public static Long minus(Long b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() - b1.longValue());
+ }
+
+ /** SQL <code>-</code> operator applied to nullable int and long values. */
+ public static Long minus(Integer b0, Long b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() - b1.longValue());
+ }
+
+ /** SQL <code>-</code> operator applied to BigDecimal values. */
+ public static BigDecimal minus(BigDecimal b0, BigDecimal b1) {
+ return (b0 == null || b1 == null) ? null : b0.subtract(b1);
+ }
+
+ // /
+
+ /** SQL <code>/</code> operator applied to int values. */
+ public static int divide(int b0, int b1) {
+ return b0 / b1;
+ }
+
+ /** SQL <code>/</code> operator applied to int values; left side may be
+ * null. */
+ public static Integer divide(Integer b0, int b1) {
+ return b0 == null ? null : (b0 / b1);
+ }
+
+ /** SQL <code>/</code> operator applied to int values; right side may be
+ * null. */
+ public static Integer divide(int b0, Integer b1) {
+ return b1 == null ? null : (b0 / b1);
+ }
+
+ /** SQL <code>/</code> operator applied to nullable int values. */
+ public static Integer divide(Integer b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0 / b1);
+ }
+
+ /** SQL <code>/</code> operator applied to nullable long and int values. */
+ public static Long divide(Long b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() / b1.longValue());
+ }
+
+ /** SQL <code>/</code> operator applied to nullable int and long values. */
+ public static Long divide(Integer b0, Long b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() / b1.longValue());
+ }
+
+ /** SQL <code>/</code> operator applied to BigDecimal values. */
+ public static BigDecimal divide(BigDecimal b0, BigDecimal b1) {
+ return (b0 == null || b1 == null) ? null : b0.divide(b1, MathContext.DECIMAL64);
+ }
+
+ // *
+
+ /** SQL <code>*</code> operator applied to int values. */
+ public static int multiply(int b0, int b1) {
+ return b0 * b1;
+ }
+
+ /** SQL <code>*</code> operator applied to int values; left side may be
+ * null. */
+ public static Integer multiply(Integer b0, int b1) {
+ return b0 == null ? null : (b0 * b1);
+ }
+
+ /** SQL <code>*</code> operator applied to int values; right side may be
+ * null. */
+ public static Integer multiply(int b0, Integer b1) {
+ return b1 == null ? null : (b0 * b1);
+ }
+
+ /** SQL <code>*</code> operator applied to nullable int values. */
+ public static Integer multiply(Integer b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0 * b1);
+ }
+
+ /** SQL <code>*</code> operator applied to nullable long and int values. */
+ public static Long multiply(Long b0, Integer b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() * b1.longValue());
+ }
+
+ /** SQL <code>*</code> operator applied to nullable int and long values. */
+ public static Long multiply(Integer b0, Long b1) {
+ return (b0 == null || b1 == null) ? null : (b0.longValue() * b1.longValue());
+ }
+
+ /** SQL <code>*</code> operator applied to BigDecimal values. */
+ public static BigDecimal multiply(BigDecimal b0, BigDecimal b1) {
+ return (b0 == null || b1 == null) ? null : b0.multiply(b1);
+ }
+
+ // EXP
+
+ /** SQL <code>EXP</code> operator applied to double values. */
+ public static double exp(double b0) {
+ return Math.exp(b0);
+ }
+
+ public static double exp(long b0) {
+ return Math.exp(b0);
+ }
+
+ // POWER
+
+ /** SQL <code>POWER</code> operator applied to double values. */
+ public static double power(double b0, double b1) {
+ return Math.pow(b0, b1);
+ }
+
+ public static double power(long b0, long b1) {
+ return Math.pow(b0, b1);
+ }
+
+ public static double power(long b0, BigDecimal b1) {
+ return Math.pow(b0, b1.doubleValue());
+ }
+
+ // LN
+
+ /** SQL {@code LN(number)} function applied to double values. */
+ public static double ln(double d) {
+ return Math.log(d);
+ }
+
+ /** SQL {@code LN(number)} function applied to long values. */
+ public static double ln(long b0) {
+ return Math.log(b0);
+ }
+
+ /** SQL {@code LN(number)} function applied to BigDecimal values. */
+ public static double ln(BigDecimal d) {
+ return Math.log(d.doubleValue());
+ }
+
+ // LOG10
+
+ /** SQL <code>LOG10(numeric)</code> operator applied to double values. */
+ public static double log10(double b0) {
+ return Math.log10(b0);
+ }
+
+ /** SQL {@code LOG10(number)} function applied to long values. */
+ public static double log10(long b0) {
+ return Math.log10(b0);
+ }
+
+ /** SQL {@code LOG10(number)} function applied to BigDecimal values. */
+ public static double log10(BigDecimal d) {
+ return Math.log10(d.doubleValue());
+ }
+
+ // MOD
+
+ /** SQL <code>MOD</code> operator applied to byte values. */
+ public static byte mod(byte b0, byte b1) {
+ return (byte) (b0 % b1);
+ }
+
+ /** SQL <code>MOD</code> operator applied to short values. */
+ public static short mod(short b0, short b1) {
+ return (short) (b0 % b1);
+ }
+
+ /** SQL <code>MOD</code> operator applied to int values. */
+ public static int mod(int b0, int b1) {
+ return b0 % b1;
+ }
+
+ /** SQL <code>MOD</code> operator applied to long values. */
+ public static long mod(long b0, long b1) {
+ return b0 % b1;
+ }
+
+ // temporary
+ public static BigDecimal mod(BigDecimal b0, int b1) {
+ return mod(b0, BigDecimal.valueOf(b1));
+ }
+
+ // temporary
+ public static int mod(int b0, BigDecimal b1) {
+ return mod(b0, b1.intValue());
+ }
+
+ public static BigDecimal mod(BigDecimal b0, BigDecimal b1) {
+ final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
+ return bigDecimals[1];
+ }
+
+ // FLOOR
+
+ public static double floor(double b0) {
+ return Math.floor(b0);
+ }
+
+ public static float floor(float b0) {
+ return (float) Math.floor(b0);
+ }
+
+ public static BigDecimal floor(BigDecimal b0) {
+ return b0.setScale(0, BigDecimal.ROUND_FLOOR);
+ }
+
+ /** SQL <code>FLOOR</code> operator applied to byte values. */
+ public static byte floor(byte b0, byte b1) {
+ return (byte) floor((int) b0, (int) b1);
+ }
+
+ /** SQL <code>FLOOR</code> operator applied to short values. */
+ public static short floor(short b0, short b1) {
+ return (short) floor((int) b0, (int) b1);
+ }
+
+ /** SQL <code>FLOOR</code> operator applied to int values. */
+ public static int floor(int b0, int b1) {
+ int r = b0 % b1;
+ if (r < 0) {
+ r += b1;
+ }
+ return b0 - r;
+ }
+
+ /** SQL <code>FLOOR</code> operator applied to long values. */
+ public static long floor(long b0, long b1) {
+ long r = b0 % b1;
+ if (r < 0) {
+ r += b1;
}
- if (s.byteAt(i) != 0) {
- break;
+ return b0 - r;
+ }
+
+ // temporary
+ public static BigDecimal floor(BigDecimal b0, int b1) {
+ return floor(b0, BigDecimal.valueOf(b1));
+ }
+
+ // temporary
+ public static int floor(int b0, BigDecimal b1) {
+ return floor(b0, b1.intValue());
+ }
+
+ public static BigDecimal floor(BigDecimal b0, BigDecimal b1) {
+ final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
+ BigDecimal r = bigDecimals[1];
+ if (r.signum() < 0) {
+ r = r.add(b1);
}
- ++i;
- }
- }
- return s.substring(i, j);
- }
-
- /** SQL {@code OVERLAY} function. */
- public static String overlay(String s, String r, int start) {
- if (s == null || r == null) {
- return null;
- }
- return s.substring(0, start - 1)
- + r
- + s.substring(start - 1 + r.length());
- }
-
- /** SQL {@code OVERLAY} function. */
- public static String overlay(String s, String r, int start, int length) {
- if (s == null || r == null) {
- return null;
- }
- return s.substring(0, start - 1)
- + r
- + s.substring(start - 1 + length);
- }
-
- /** SQL {@code OVERLAY} function applied to binary strings. */
- public static ByteString overlay(ByteString s, ByteString r, int start) {
- if (s == null || r == null) {
- return null;
- }
- return s.substring(0, start - 1)
- .concat(r)
- .concat(s.substring(start - 1 + r.length()));
- }
-
- /** SQL {@code OVERLAY} function applied to binary strings. */
- public static ByteString overlay(ByteString s, ByteString r, int start,
- int length) {
- if (s == null || r == null) {
- return null;
- }
- return s.substring(0, start - 1)
- .concat(r)
- .concat(s.substring(start - 1 + length));
- }
-
- /** SQL {@code LIKE} function. */
- public static boolean like(String s, String pattern) {
- final String regex = Like.sqlToRegexLike(pattern, null);
- return Pattern.matches(regex, s);
- }
-
- /** SQL {@code LIKE} function with escape. */
- public static boolean like(String s, String pattern, String escape) {
- final String regex = Like.sqlToRegexLike(pattern, escape);
- return Pattern.matches(regex, s);
- }
-
- /** SQL {@code SIMILAR} function. */
- public static boolean similar(String s, String pattern) {
- final String regex = Like.sqlToRegexSimilar(pattern, null);
- return Pattern.matches(regex, s);
- }
-
- /** SQL {@code SIMILAR} function with escape. */
- public static boolean similar(String s, String pattern, String escape) {
- final String regex = Like.sqlToRegexSimilar(pattern, escape);
- return Pattern.matches(regex, s);
- }
-
- // =
-
- /** SQL = operator applied to Object values (including String; neither
- * side may be null). */
- public static boolean eq(Object b0, Object b1) {
- return b0.equals(b1);
- }
-
- /** SQL = operator applied to BigDecimal values (neither may be null). */
- public static boolean eq(BigDecimal b0, BigDecimal b1) {
- return b0.stripTrailingZeros().equals(b1.stripTrailingZeros());
- }
-
- // <>
-
- /** SQL <> operator applied to Object values (including String;
- * neither side may be null). */
- public static boolean ne(Object b0, Object b1) {
- return !b0.equals(b1);
- }
-
- /** SQL <> operator applied to BigDecimal values. */
- public static boolean ne(BigDecimal b0, BigDecimal b1) {
- return b0.compareTo(b1) != 0;
- }
-
- // <
-
- /** SQL < operator applied to boolean values. */
- public static boolean lt(boolean b0, boolean b1) {
- return compare(b0, b1) < 0;
- }
-
- /** SQL < operator applied to String values. */
- public static boolean lt(String b0, String b1) {
- return b0.compareTo(b1) < 0;
- }
-
- /** SQL < operator applied to ByteString values. */
- public static boolean lt(ByteString b0, ByteString b1) {
- return b0.compareTo(b1) < 0;
- }
-
- /** SQL < operator applied to BigDecimal values. */
- public static boolean lt(BigDecimal b0, BigDecimal b1) {
- return b0.compareTo(b1) < 0;
- }
-
- // <=
-
- /** SQL ≤ operator applied to boolean values. */
- public static boolean le(boolean b0, boolean b1) {
- return compare(b0, b1) <= 0;
- }
-
- /** SQL ≤ operator applied to String values. */
- public static boolean le(String b0, String b1) {
- return b0.compareTo(b1) <= 0;
- }
-
- /** SQL ≤ operator applied to ByteString values. */
- public static boolean le(ByteString b0, ByteString b1) {
- return b0.compareTo(b1) <= 0;
- }
-
- /** SQL ≤ operator applied to BigDecimal values. */
- public static boolean le(BigDecimal b0, BigDecimal b1) {
- return b0.compareTo(b1) <= 0;
- }
-
- // >
-
- /** SQL > operator applied to boolean values. */
- public static boolean gt(boolean b0, boolean b1) {
- return compare(b0, b1) > 0;
- }
-
- /** SQL > operator applied to String values. */
- public static boolean gt(String b0, String b1) {
- return b0.compareTo(b1) > 0;
- }
-
- /** SQL > operator applied to ByteString values. */
- public static boolean gt(ByteString b0, ByteString b1) {
- return b0.compareTo(b1) > 0;
- }
-
- /** SQL > operator applied to BigDecimal values. */
- public static boolean gt(BigDecimal b0, BigDecimal b1) {
- return b0.compareTo(b1) > 0;
- }
-
- // >=
-
- /** SQL ≥ operator applied to boolean values. */
- public static boolean ge(boolean b0, boolean b1) {
- return compare(b0, b1) >= 0;
- }
-
- /** SQL ≥ operator applied to String values. */
- public static boolean ge(String b0, String b1) {
- return b0.compareTo(b1) >= 0;
- }
-
- /** SQL ≥ operator applied to ByteString values. */
- public static boolean ge(ByteString b0, ByteString b1) {
- return b0.compareTo(b1) >= 0;
- }
-
- /** SQL ≥ operator applied to BigDecimal values. */
- public static boolean ge(BigDecimal b0, BigDecimal b1) {
- return b0.compareTo(b1) >= 0;
- }
-
- // +
-
- /** SQL <code>+</code> operator applied to int values. */
- public static int plus(int b0, int b1) {
- return b0 + b1;
- }
-
- /** SQL <code>+</code> operator applied to int values; left side may be
- * null. */
- public static Integer plus(Integer b0, int b1) {
- return b0 == null ? null : (b0 + b1);
- }
-
- /** SQL <code>+</code> operator applied to int values; right side may be
- * null. */
- public static Integer plus(int b0, Integer b1) {
- return b1 == null ? null : (b0 + b1);
- }
-
- /** SQL <code>+</code> operator applied to nullable int values. */
- public static Integer plus(Integer b0, Integer b1) {
- return (b0 == null || b1 == null) ? null : (b0 + b1);
- }
-
- /** SQL <code>+</code> operator applied to nullable long and int values. */
- public static Long plus(Long b0, Integer b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() + b1.longValue());
- }
-
- /** SQL <code>+</code> operator applied to nullable int and long values. */
- public static Long plus(Integer b0, Long b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() + b1.longValue());
- }
-
- /** SQL <code>+</code> operator applied to BigDecimal values. */
- public static BigDecimal plus(BigDecimal b0, BigDecimal b1) {
- return (b0 == null || b1 == null) ? null : b0.add(b1);
- }
-
- // -
-
- /** SQL <code>-</code> operator applied to int values. */
- public static int minus(int b0, int b1) {
- return b0 - b1;
- }
-
- /** SQL <code>-</code> operator applied to int values; left side may be
- * null. */
- public static Integer minus(Integer b0, int b1) {
- return b0 == null ? null : (b0 - b1);
- }
-
- /** SQL <code>-</code> operator applied to int values; right side may be
- * null. */
- public static Integer minus(int b0, Integer b1) {
- return b1 == null ? null : (b0 - b1);
- }
-
- /** SQL <code>-</code> operator applied to nullable int values. */
- public static Integer minus(Integer b0, Integer b1) {
- return (b0 == null || b1 == null) ? null : (b0 - b1);
- }
-
- /** SQL <code>-</code> operator applied to nullable long and int values. */
- public static Long minus(Long b0, Integer b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() - b1.longValue());
- }
-
- /** SQL <code>-</code> operator applied to nullable int and long values. */
- public static Long minus(Integer b0, Long b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() - b1.longValue());
- }
-
- /** SQL <code>-</code> operator applied to BigDecimal values. */
- public static BigDecimal minus(BigDecimal b0, BigDecimal b1) {
- return (b0 == null || b1 == null) ? null : b0.subtract(b1);
- }
-
- // /
-
- /** SQL <code>/</code> operator applied to int values. */
- public static int divide(int b0, int b1) {
- return b0 / b1;
- }
-
- /** SQL <code>/</code> operator applied to int values; left side may be
- * null. */
- public static Integer divide(Integer b0, int b1) {
- return b0 == null ? null : (b0 / b1);
- }
-
- /** SQL <code>/</code> operator applied to int values; right side may be
- * null. */
- public static Integer divide(int b0, Integer b1) {
- return b1 == null ? null : (b0 / b1);
- }
-
- /** SQL <code>/</code> operator applied to nullable int values. */
- public static Integer divide(Integer b0, Integer b1) {
- return (b0 == null || b1 == null) ? null : (b0 / b1);
- }
-
- /** SQL <code>/</code> operator applied to nullable long and int values. */
- public static Long divide(Long b0, Integer b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() / b1.longValue());
- }
-
- /** SQL <code>/</code> operator applied to nullable int and long values. */
- public static Long divide(Integer b0, Long b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() / b1.longValue());
- }
-
- /** SQL <code>/</code> operator applied to BigDecimal values. */
- public static BigDecimal divide(BigDecimal b0, BigDecimal b1) {
- return (b0 == null || b1 == null) ? null : b0.divide(b1, MathContext.DECIMAL64);
- }
-
- // *
-
- /** SQL <code>*</code> operator applied to int values. */
- public static int multiply(int b0, int b1) {
- return b0 * b1;
- }
-
- /** SQL <code>*</code> operator applied to int values; left side may be
- * null. */
- public static Integer multiply(Integer b0, int b1) {
- return b0 == null ? null : (b0 * b1);
- }
-
- /** SQL <code>*</code> operator applied to int values; right side may be
- * null. */
- public static Integer multiply(int b0, Integer b1) {
- return b1 == null ? null : (b0 * b1);
- }
-
- /** SQL <code>*</code> operator applied to nullable int values. */
- public static Integer multiply(Integer b0, Integer b1) {
- return (b0 == null || b1 == null) ? null : (b0 * b1);
- }
-
- /** SQL <code>*</code> operator applied to nullable long and int values. */
- public static Long multiply(Long b0, Integer b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() * b1.longValue());
- }
-
- /** SQL <code>*</code> operator applied to nullable int and long values. */
- public static Long multiply(Integer b0, Long b1) {
- return (b0 == null || b1 == null)
- ? null
- : (b0.longValue() * b1.longValue());
- }
-
- /** SQL <code>*</code> operator applied to BigDecimal values. */
- public static BigDecimal multiply(BigDecimal b0, BigDecimal b1) {
- return (b0 == null || b1 == null) ? null : b0.multiply(b1);
- }
-
- // EXP
-
- /** SQL <code>EXP</code> operator applied to double values. */
- public static double exp(double b0) {
- return Math.exp(b0);
- }
-
- public static double exp(long b0) {
- return Math.exp(b0);
- }
-
- // POWER
-
- /** SQL <code>POWER</code> operator applied to double values. */
- public static double power(double b0, double b1) {
- return Math.pow(b0, b1);
- }
-
- public static double power(long b0, long b1) {
- return Math.pow(b0, b1);
- }
-
- public static double power(long b0, BigDecimal b1) {
- return Math.pow(b0, b1.doubleValue());
- }
-
- // LN
-
- /** SQL {@code LN(number)} function applied to double values. */
- public static double ln(double d) {
- return Math.log(d);
- }
-
- /** SQL {@code LN(number)} function applied to long values. */
- public static double ln(long b0) {
- return Math.log(b0);
- }
-
- /** SQL {@code LN(number)} function applied to BigDecimal values. */
- public static double ln(BigDecimal d) {
- return Math.log(d.doubleValue());
- }
-
- // LOG10
-
- /** SQL <code>LOG10(numeric)</code> operator applied to double values. */
- public static double log10(double b0) {
- return Math.log10(b0);
- }
-
- /** SQL {@code LOG10(number)} function applied to long values. */
- public static double log10(long b0) {
- return Math.log10(b0);
- }
-
- /** SQL {@code LOG10(number)} function applied to BigDecimal values. */
- public static double log10(BigDecimal d) {
- return Math.log10(d.doubleValue());
- }
-
- // MOD
-
- /** SQL <code>MOD</code> operator applied to byte values. */
- public static byte mod(byte b0, byte b1) {
- return (byte) (b0 % b1);
- }
-
- /** SQL <code>MOD</code> operator applied to short values. */
- public static short mod(short b0, short b1) {
- return (short) (b0 % b1);
- }
-
- /** SQL <code>MOD</code> operator applied to int values. */
- public static int mod(int b0, int b1) {
- return b0 % b1;
- }
-
- /** SQL <code>MOD</code> operator applied to long values. */
- public static long mod(long b0, long b1) {
- return b0 % b1;
- }
-
- // temporary
- public static BigDecimal mod(BigDecimal b0, int b1) {
- return mod(b0, BigDecimal.valueOf(b1));
- }
-
- // temporary
- public static int mod(int b0, BigDecimal b1) {
- return mod(b0, b1.intValue());
- }
-
- public static BigDecimal mod(BigDecimal b0, BigDecimal b1) {
- final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
- return bigDecimals[1];
- }
-
- // FLOOR
-
- public static double floor(double b0) {
- return Math.floor(b0);
- }
-
- public static float floor(float b0) {
- return (float) Math.floor(b0);
- }
-
- public static BigDecimal floor(BigDecimal b0) {
- return b0.setScale(0, BigDecimal.ROUND_FLOOR);
- }
-
- /** SQL <code>FLOOR</code> operator applied to byte values. */
- public static byte floor(byte b0, byte b1) {
- return (byte) floor((int) b0, (int) b1);
- }
-
- /** SQL <code>FLOOR</code> operator applied to short values. */
- public static short floor(short b0, short b1) {
- return (short) floor((int) b0, (int) b1);
- }
-
- /** SQL <code>FLOOR</code> operator applied to int values. */
- public static int floor(int b0, int b1) {
- int r = b0 % b1;
- if (r < 0) {
- r += b1;
- }
- return b0 - r;
- }
-
- /** SQL <code>FLOOR</code> operator applied to long values. */
- public static long floor(long b0, long b1) {
- long r = b0 % b1;
- if (r < 0) {
- r += b1;
- }
- return b0 - r;
- }
-
- // temporary
- public static BigDecimal floor(BigDecimal b0, int b1) {
- return floor(b0, BigDecimal.valueOf(b1));
- }
-
- // temporary
- public static int floor(int b0, BigDecimal b1) {
- return floor(b0, b1.intValue());
- }
-
- public static BigDecimal floor(BigDecimal b0, BigDecimal b1) {
- final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
- BigDecimal r = bigDecimals[1];
- if (r.signum() < 0) {
- r = r.add(b1);
- }
- return b0.subtract(r);
- }
-
- // CEIL
-
- public static double ceil(double b0) {
- return Math.ceil(b0);
- }
-
- public static float ceil(float b0) {
- return (float) Math.ceil(b0);
- }
-
- public static BigDecimal ceil(BigDecimal b0) {
- return b0.setScale(0, BigDecimal.ROUND_CEILING);
- }
-
- /** SQL <code>CEIL</code> operator applied to byte values. */
- public static byte ceil(byte b0, byte b1) {
- return floor((byte) (b0 + b1 - 1), b1);
- }
-
- /** SQL <code>CEIL</code> operator applied to short values. */
- public static short ceil(short b0, short b1) {
- return floor((short) (b0 + b1 - 1), b1);
- }
-
- /** SQL <code>CEIL</code> operator applied to int values. */
- public static int ceil(int b0, int b1) {
- int r = b0 % b1;
- if (r > 0) {
- r -= b1;
- }
- return b0 - r;
- }
-
- /** SQL <code>CEIL</code> operator applied to long values. */
- public static long ceil(long b0, long b1) {
- return floor(b0 + b1 - 1, b1);
- }
-
- // temporary
- public static BigDecimal ceil(BigDecimal b0, int b1) {
- return ceil(b0, BigDecimal.valueOf(b1));
- }
-
- // temporary
- public static int ceil(int b0, BigDecimal b1) {
- return ceil(b0, b1.intValue());
- }
-
- public static BigDecimal ceil(BigDecimal b0, BigDecimal b1) {
- final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
- BigDecimal r = bigDecimals[1];
- if (r.signum() > 0) {
- r = r.subtract(b1);
- }
- return b0.subtract(r);
- }
-
- // ABS
-
- /** SQL <code>ABS</code> operator applied to byte values. */
- public static byte abs(byte b0) {
- return (byte) Math.abs(b0);
- }
-
- /** SQL <code>ABS</code> operator applied to short values. */
- public static short abs(short b0) {
- return (short) Math.abs(b0);
- }
-
- /** SQL <code>ABS</code> operator applied to int values. */
- public static int abs(int b0) {
- return Math.abs(b0);
- }
-
- /** SQL <code>ABS</code> operator applied to long values. */
- public static long abs(long b0) {
- return Math.abs(b0);
- }
-
- /** SQL <code>ABS</code> operator applied to float values. */
- public static float abs(float b0) {
- return Math.abs(b0);
- }
-
- /** SQL <code>ABS</code> operator applied to double values. */
- public static double abs(double b0) {
- return Math.abs(b0);
- }
-
- /** SQL <code>ABS</code> operator applied to BigDecimal values. */
- public static BigDecimal abs(BigDecimal b0) {
- return b0.abs();
- }
-
- // Helpers
-
- /** Helper for implementing MIN. Somewhat similar to LEAST operator. */
- public static <T extends Comparable<T>> T lesser(T b0, T b1) {
- return b0 == null || b0.compareTo(b1) > 0 ? b1 : b0;
- }
-
- /** LEAST operator. */
- public static <T extends Comparable<T>> T least(T b0, T b1) {
- return b0 == null || b1 != null && b0.compareTo(b1) > 0 ? b1 : b0;
- }
-
- public static boolean greater(boolean b0, boolean b1) {
- return b0 || b1;
- }
-
- public static boolean lesser(boolean b0, boolean b1) {
- return b0 && b1;
- }
-
- public static byte greater(byte b0, byte b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static byte lesser(byte b0, byte b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- public static char greater(char b0, char b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static char lesser(char b0, char b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- public static short greater(short b0, short b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static short lesser(short b0, short b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- public static int greater(int b0, int b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static int lesser(int b0, int b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- public static long greater(long b0, long b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static long lesser(long b0, long b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- public static float greater(float b0, float b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static float lesser(float b0, float b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- public static double greater(double b0, double b1) {
- return b0 > b1 ? b0 : b1;
- }
-
- public static double lesser(double b0, double b1) {
- return b0 > b1 ? b1 : b0;
- }
-
- /** Helper for implementing MAX. Somewhat similar to GREATEST operator. */
- public static <T extends Comparable<T>> T greater(T b0, T b1) {
- return b0 == null || b0.compareTo(b1) < 0 ? b1 : b0;
- }
-
- /** GREATEST operator. */
- public static <T extends Comparable<T>> T greatest(T b0, T b1) {
- return b0 == null || b1 != null && b0.compareTo(b1) < 0 ? b1 : b0;
- }
-
- /** Boolean comparison. */
- public static int compare(boolean x, boolean y) {
- return x == y ? 0 : x ? 1 : -1;
- }
-
- /** CAST(FLOAT AS VARCHAR). */
- public static String toString(float x) {
- if (x == 0) {
- return "0E0";
- }
- BigDecimal bigDecimal =
- new BigDecimal(x, MathContext.DECIMAL32).stripTrailingZeros();
- final String s = bigDecimal.toString();
- return s.replaceAll("0*E", "E").replace("E+", "E");
- }
-
- /** CAST(DOUBLE AS VARCHAR). */
- public static String toString(double x) {
- if (x == 0) {
- return "0E0";
- }
- BigDecimal bigDecimal =
- new BigDecimal(x, MathContext.DECIMAL64).stripTrailingZeros();
- final String s = bigDecimal.toString();
- return s.replaceAll("0*E", "E").replace("E+", "E");
- }
-
- /** CAST(DECIMAL AS VARCHAR). */
- public static String toString(BigDecimal x) {
- final String s = x.toString();
- if (s.startsWith("0")) {
- // we want ".1" not "0.1"
- return s.substring(1);
- } else if (s.startsWith("-0")) {
- // we want "-.1" not "-0.1"
- return "-" + s.substring(2);
- } else {
- return s;
- }
- }
-
- /** CAST(BOOLEAN AS VARCHAR). */
- public static String toString(boolean x) {
- // Boolean.toString returns lower case -- no good.
- return x ? "TRUE" : "FALSE";
- }
-
- @NonDeterministic
- private static Object cannotConvert(Object o, Class toType) {
- throw new RuntimeException("Cannot convert " + o + " to " + toType);
- }
-
- /** CAST(VARCHAR AS BOOLEAN). */
- public static boolean toBoolean(String s) {
- s = trim_(s, true, true, ' ');
- if (s.equalsIgnoreCase("TRUE")) {
- return true;
- } else if (s.equalsIgnoreCase("FALSE")) {
- return false;
- } else {
- throw new RuntimeException("Invalid character for cast");
- }
- }
-
- public static boolean toBoolean(Number number) {
- return !number.equals(0);
- }
-
- public static boolean toBoolean(Object o) {
- return o instanceof Boolean ? (Boolean) o
- : o instanceof Number ? toBoolean((Number) o)
- : o instanceof String ? toBoolean((String) o)
- : (Boolean) cannotConvert(o, boolean.class);
- }
-
- // Don't need parseByte etc. - Byte.parseByte is sufficient.
-
- public static byte toByte(Object o) {
- return o instanceof Byte ? (Byte) o
- : o instanceof Number ? toByte((Number) o)
- : Byte.parseByte(o.toString());
- }
-
- public static byte toByte(Number number) {
- return number.byteValue();
- }
-
- public static char toChar(String s) {
- return s.charAt(0);
- }
-
- public static Character toCharBoxed(String s) {
- return s.charAt(0);
- }
-
- public static short toShort(String s) {
- return Short.parseShort(s.trim());
- }
-
- public static short toShort(Number number) {
- return number.shortValue();
- }
-
- public static short toShort(Object o) {
- return o instanceof Short ? (Short) o
- : o instanceof Number ? toShort((Number) o)
- : o instanceof String ? toShort((String) o)
- : (Short) cannotConvert(o, short.class);
- }
-
- public static int toInt(java.util.Date v) {
- return toInt(v, LOCAL_TZ);
- }
-
- public static int toInt(java.util.Date v, TimeZone timeZone) {
- return (int) (toLong(v, timeZone) / DateTimeUtils.MILLIS_PER_DAY);
- }
-
- public static Integer toIntOptional(java.util.Date v) {
- return v == null ? null : toInt(v);
- }
-
- public static Integer toIntOptional(java.util.Date v, TimeZone timeZone) {
- return v == null
- ? null
- : toInt(v, timeZone);
- }
-
- public static long toLong(Date v) {
- return toLong(v, LOCAL_TZ);
- }
-
- public static int toInt(java.sql.Time v) {
- return (int) (toLong(v) % DateTimeUtils.MILLIS_PER_DAY);
- }
-
- public static Integer toIntOptional(java.sql.Time v) {
- return v == null ? null : toInt(v);
- }
-
- public static int toInt(String s) {
- return Integer.parseInt(s.trim());
- }
-
- public static int toInt(Number number) {
- return number.intValue();
- }
-
- public static int toInt(Object o) {
- return o instanceof Integer ? (Integer) o
- : o instanceof Number ? toInt((Number) o)
- : o instanceof String ? toInt((String) o)
- : (Integer) cannotConvert(o, int.class);
- }
-
- public static long toLong(Timestamp v) {
- return toLong(v, LOCAL_TZ);
- }
-
- // mainly intended for java.sql.Timestamp but works for other dates also
- public static long toLong(java.util.Date v, TimeZone timeZone) {
- final long time = v.getTime();
- return time + timeZone.getOffset(time);
- }
-
- // mainly intended for java.sql.Timestamp but works for other dates also
- public static Long toLongOptional(java.util.Date v) {
- return v == null ? null : toLong(v, LOCAL_TZ);
- }
-
- public static Long toLongOptional(Timestamp v, TimeZone timeZone) {
- if (v == null) {
- return null;
- }
- return toLong(v, LOCAL_TZ);
- }
-
- public static long toLong(String s) {
- if (s.startsWith("199") && s.contains(":")) {
- return Timestamp.valueOf(s).getTime();
- }
- return Long.parseLong(s.trim());
- }
-
- public static long toLong(Number number) {
- return number.longValue();
- }
-
- public static long toLong(Object o) {
- return o instanceof Long ? (Long) o
- : o instanceof Number ? toLong((Number) o)
- : o instanceof String ? toLong((String) o)
- : (Long) cannotConvert(o, long.class);
- }
-
- public static float toFloat(String s) {
- return Float.parseFloat(s.trim());
- }
-
- public static float toFloat(Number number) {
- return number.floatValue();
- }
-
- public static float toFloat(Object o) {
- return o instanceof Float ? (Float) o
- : o instanceof Number ? toFloat((Number) o)
- : o instanceof String ? toFloat((String) o)
- : (Float) cannotConvert(o, float.class);
- }
-
- public static double toDouble(String s) {
- return Double.parseDouble(s.trim());
- }
-
- public static double toDouble(Number number) {
- return number.doubleValue();
- }
-
- public static double toDouble(Object o) {
- return o instanceof Double ? (Double) o
- : o instanceof Number ? toDouble((Number) o)
- : o instanceof String ? toDouble((String) o)
- : (Double) cannotConvert(o, double.class);
- }
-
- public static BigDecimal toBigDecimal(String s) {
- return new BigDecimal(s.trim());
- }
-
- public static BigDecimal toBigDecimal(Number number) {
- // There are some values of "long" that cannot be represented as "double".
- // Not so "int". If it isn't a long, go straight to double.
- return number instanceof BigDecimal ? (BigDecimal) number
- : number instanceof BigInteger ? new BigDecimal((BigInteger) number)
- : number instanceof Long ? new BigDecimal(number.longValue())
- : new BigDecimal(number.doubleValue());
- }
-
- public static BigDecimal toBigDecimal(Object o) {
- return o instanceof Number ? toBigDecimal((Number) o)
- : toBigDecimal(o.toString());
- }
-
- // Don't need shortValueOf etc. - Short.valueOf is sufficient.
-
- /** Helper for CAST(... AS VARCHAR(maxLength)). */
- public static String truncate(String s, int maxLength) {
- return s == null ? null
- : s.length() > maxLength ? s.substring(0, maxLength)
- : s;
- }
-
- /** Helper for CAST(... AS VARBINARY(maxLength)). */
- public static ByteString truncate(ByteString s, int maxLength) {
- return s == null ? null
- : s.length() > maxLength ? s.substring(0, maxLength)
- : s;
- }
-
- /** SQL {@code POSITION(seek IN string)} function. */
- public static int position(String seek, String s) {
- return s.indexOf(seek) + 1;
- }
-
- /** SQL {@code POSITION(seek IN string)} function. */
- public static int position(ByteString seek, ByteString s) {
- return s.indexOf(seek) + 1;
- }
-
- /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
- public static long round(long v, long x) {
- return truncate(v + x / 2, x);
- }
-
- /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
- public static long truncate(long v, long x) {
- long remainder = v % x;
- if (remainder < 0) {
- remainder += x;
- }
- return v - remainder;
- }
-
- /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
- public static int round(int v, int x) {
- return truncate(v + x / 2, x);
- }
-
- /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
- public static int truncate(int v, int x) {
- int remainder = v % x;
- if (remainder < 0) {
- remainder += x;
- }
- return v - remainder;
- }
-
- /** SQL {@code CURRENT_TIMESTAMP} function. */
- @NonDeterministic
- public static long currentTimestamp(DataContext root) {
- // Cast required for JDK 1.6.
- return (Long) DataContext.Variable.CURRENT_TIMESTAMP.get(root);
- }
-
- /** SQL {@code CURRENT_TIME} function. */
- @NonDeterministic
- public static int currentTime(DataContext root) {
- int time = (int) (currentTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
- if (time < 0) {
- time += DateTimeUtils.MILLIS_PER_DAY;
- }
- return time;
- }
-
- /** SQL {@code CURRENT_DATE} function. */
- @NonDeterministic
- public static int currentDate(DataContext root) {
- final long timestamp = currentTimestamp(root);
- int date = (int) (timestamp / DateTimeUtils.MILLIS_PER_DAY);
- final int time = (int) (timestamp % DateTimeUtils.MILLIS_PER_DAY);
- if (time < 0) {
- --date;
- }
- return date;
- }
-
- /** SQL {@code LOCAL_TIMESTAMP} function. */
- @NonDeterministic
- public static long localTimestamp(DataContext root) {
- // Cast required for JDK 1.6.
- return (Long) DataContext.Variable.LOCAL_TIMESTAMP.get(root);
- }
-
- /** SQL {@code LOCAL_TIME} function. */
- @NonDeterministic
- public static int localTime(DataContext root) {
- return (int) (localTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
- }
-
- /** Helper for "array element reference". Caller has already ensured that
- * array and index are not null. Index is 1-based, per SQL. */
- public static Object arrayItem(List list, int item) {
- if (item < 1 || item > list.size()) {
- return null;
- }
- return list.get(item - 1);
- }
-
- /** Helper for "map element reference". Caller has already ensured that
- * array and index are not null. Index is 1-based, per SQL. */
- public static Object mapItem(Map map, Object item) {
- return map.get(item);
- }
-
- /** Implements the {@code [ ... ]} operator on an object whose type is not
- * known until runtime.
- */
- public static Object item(Object object, Object index) {
- if (object instanceof Map) {
- return ((Map) object).get(index);
- }
- if (object instanceof List && index instanceof Number) {
- List list = (List) object;
- return list.get(((Number) index).intValue());
- }
- return null;
- }
-
- /** NULL → FALSE, FALSE → FALSE, TRUE → TRUE. */
- public static boolean isTrue(Boolean b) {
- return b != null && b;
- }
-
- /** NULL → TRUE, FALSE → FALSE, TRUE → TRUE. */
- public static boolean isNotFalse(Boolean b) {
- return b == null || b;
- }
-
- /** NULL → NULL, FALSE → TRUE, TRUE → FALSE. */
- public static Boolean not(Boolean b) {
- return (b == null) ? null : !b;
- }
-
- /** Converts a JDBC array to a list. */
- public static List arrayToList(final java.sql.Array a) {
- if (a == null) {
- return null;
- }
- try {
- return Primitive.asList(a.getArray());
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- }
-
- /** Support the {@code CURRENT VALUE OF sequence} operator. */
- @NonDeterministic
- public static long sequenceCurrentValue(String key) {
- return getAtomicLong(key).get();
- }
-
- /** Support the {@code NEXT VALUE OF sequence} operator. */
- @NonDeterministic
- public static long sequenceNextValue(String key) {
- return getAtomicLong(key).incrementAndGet();
- }
-
- private static AtomicLong getAtomicLong(String key) {
- final Map<String, AtomicLong> map = THREAD_SEQUENCES.get();
- AtomicLong atomic = map.get(key);
- if (atomic == null) {
- atomic = new AtomicLong();
- map.put(key, atomic);
- }
- return atomic;
- }
-
- /** Support the SLICE function. */
- public static List slice(List list) {
- return list;
- }
-
- /** Support the ELEMENT function. */
- public static Object element(List list) {
- switch (list.size()) {
- case 0:
- return null;
- case 1:
- return list.get(0);
- default:
- throw new RuntimeException("more than one value");
- }
- }
-
- /** Returns a lambda that converts a list to an enumerable. */
- public static <E> Function1<List<E>, Enumerable<E>> listToEnumerable() {
- //noinspection unchecked
- return (Function1<List<E>, Enumerable<E>>) (Function1) LIST_AS_ENUMERABLE;
- }
+ return b0.subtract(r);
+ }
+
+ // CEIL
+
+ public static double ceil(double b0) {
+ return Math.ceil(b0);
+ }
+
+ public static float ceil(float b0) {
+ return (float) Math.ceil(b0);
+ }
+
+ public static BigDecimal ceil(BigDecimal b0) {
+ return b0.setScale(0, BigDecimal.ROUND_CEILING);
+ }
+
+ /** SQL <code>CEIL</code> operator applied to byte values. */
+ public static byte ceil(byte b0, byte b1) {
+ return floor((byte) (b0 + b1 - 1), b1);
+ }
+
+ /** SQL <code>CEIL</code> operator applied to short values. */
+ public static short ceil(short b0, short b1) {
+ return floor((short) (b0 + b1 - 1), b1);
+ }
+
+ /** SQL <code>CEIL</code> operator applied to int values. */
+ public static int ceil(int b0, int b1) {
+ int r = b0 % b1;
+ if (r > 0) {
+ r -= b1;
+ }
+ return b0 - r;
+ }
+
+ /** SQL <code>CEIL</code> operator applied to long values. */
+ public static long ceil(long b0, long b1) {
+ return floor(b0 + b1 - 1, b1);
+ }
+
+ // temporary
+ public static BigDecimal ceil(BigDecimal b0, int b1) {
+ return ceil(b0, BigDecimal.valueOf(b1));
+ }
+
+ // temporary
+ public static int ceil(int b0, BigDecimal b1) {
+ return ceil(b0, b1.intValue());
+ }
+
+ public static BigDecimal ceil(BigDecimal b0, BigDecimal b1) {
+ final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
+ BigDecimal r = bigDecimals[1];
+ if (r.signum() > 0) {
+ r = r.subtract(b1);
+ }
+ return b0.subtract(r);
+ }
+
+ // ABS
+
+ /** SQL <code>ABS</code> operator applied to byte values. */
+ public static byte abs(byte b0) {
+ return (byte) Math.abs(b0);
+ }
+
+ /** SQL <code>ABS</code> operator applied to short values. */
+ public static short abs(short b0) {
+ return (short) Math.abs(b0);
+ }
+
+ /** SQL <code>ABS</code> operator applied to int values. */
+ public static int abs(int b0) {
+ return Math.abs(b0);
+ }
+
+ /** SQL <code>ABS</code> operator applied to long values. */
+ public static long abs(long b0) {
+ return Math.abs(b0);
+ }
+
+ /** SQL <code>ABS</code> operator applied to float values. */
+ public static float abs(float b0) {
+ return Math.abs(b0);
+ }
+
+ /** SQL <code>ABS</code> operator applied to double values. */
+ public static double abs(double b0) {
+ return Math.abs(b0);
+ }
+
+ /** SQL <code>ABS</code> operator applied to BigDecimal values. */
+ public static BigDecimal abs(BigDecimal b0) {
+ return b0.abs();
+ }
+
+ // Helpers
+
+ /** Helper for implementing MIN. Somewhat similar to LEAST operator. */
+ public static <T extends Comparable<T>> T lesser(T b0, T b1) {
+ return b0 == null || b0.compareTo(b1) > 0 ? b1 : b0;
+ }
+
+ /** LEAST operator. */
+ public static <T extends Comparable<T>> T least(T b0, T b1) {
+ return b0 == null || b1 != null && b0.compareTo(b1) > 0 ? b1 : b0;
+ }
+
+ public static boolean greater(boolean b0, boolean b1) {
+ return b0 || b1;
+ }
+
+ public static boolean lesser(boolean b0, boolean b1) {
+ return b0 && b1;
+ }
+
+ public static byte greater(byte b0, byte b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static byte lesser(byte b0, byte b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ public static char greater(char b0, char b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static char lesser(char b0, char b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ public static short greater(short b0, short b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static short lesser(short b0, short b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ public static int greater(int b0, int b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static int lesser(int b0, int b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ public static long greater(long b0, long b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static long lesser(long b0, long b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ public static float greater(float b0, float b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static float lesser(float b0, float b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ public static double greater(double b0, double b1) {
+ return b0 > b1 ? b0 : b1;
+ }
+
+ public static double lesser(double b0, double b1) {
+ return b0 > b1 ? b1 : b0;
+ }
+
+ /** Helper for implementing MAX. Somewhat similar to GREATEST operator. */
+ public static <T extends Comparable<T>> T greater(T b0, T b1) {
+ return b0 == null || b0.compareTo(b1) < 0 ? b1 : b0;
+ }
+
+ /** GREATEST operator. */
+ public static <T extends Comparable<T>> T greatest(T b0, T b1) {
+ return b0 == null || b1 != null && b0.compareTo(b1) < 0 ? b1 : b0;
+ }
+
+ /** Boolean comparison. */
+ public static int compare(boolean x, boolean y) {
+ return x == y ? 0 : x ? 1 : -1;
+ }
+
+ /** CAST(FLOAT AS VARCHAR). */
+ public static String toString(float x) {
+ if (x == 0) {
+ return "0E0";
+ }
+ BigDecimal bigDecimal = new BigDecimal(x, MathContext.DECIMAL32).stripTrailingZeros();
+ final String s = bigDecimal.toString();
+ return s.replaceAll("0*E", "E").replace("E+", "E");
+ }
+
+ /** CAST(DOUBLE AS VARCHAR). */
+ public static String toString(double x) {
+ if (x == 0) {
+ return "0E0";
+ }
+ BigDecimal bigDecimal = new BigDecimal(x, MathContext.DECIMAL64).stripTrailingZeros();
+ final String s = bigDecimal.toString();
+ return s.replaceAll("0*E", "E").replace("E+", "E");
+ }
+
+ /** CAST(DECIMAL AS VARCHAR). */
+ public static String toString(BigDecimal x) {
+ final String s = x.toString();
+ if (s.startsWith("0")) {
+ // we want ".1" not "0.1"
+ return s.substring(1);
+ } else if (s.startsWith("-0")) {
+ // we want "-.1" not "-0.1"
+ return "-" + s.substring(2);
+ } else {
+ return s;
+ }
+ }
+
+ /** CAST(BOOLEAN AS VARCHAR). */
+ public static String toString(boolean x) {
+ // Boolean.toString returns lower case -- no good.
+ return x ? "TRUE" : "FALSE";
+ }
+
+ @NonDeterministic
+ private static Object cannotConvert(Object o, Class toType) {
+ throw new RuntimeException("Cannot convert " + o + " to " + toType);
+ }
+
+ /** CAST(VARCHAR AS BOOLEAN). */
+ public static boolean toBoolean(String s) {
+ s = trim_(s, true, true, ' ');
+ if (s.equalsIgnoreCase("TRUE")) {
+ return true;
+ } else if (s.equalsIgnoreCase("FALSE")) {
+ return false;
+ } else {
+ throw new RuntimeException("Invalid character for cast");
+ }
+ }
+
+ public static boolean toBoolean(Number number) {
+ return !number.equals(0);
+ }
+
+ public static boolean toBoolean(Object o) {
+ return o instanceof Boolean ? (Boolean) o : o instanceof Number ? toBoolean((Number) o) : o instanceof String ? toBoolean((String) o) : (Boolean) cannotConvert(o, boolean.class);
+ }
+
+ // Don't need parseByte etc. - Byte.parseByte is sufficient.
+
+ public static byte toByte(Object o) {
+ return o instanceof Byte ? (Byte) o : o instanceof Number ? toByte((Number) o) : Byte.parseByte(o.toString());
+ }
+
+ public static byte toByte(Number number) {
+ return number.byteValue();
+ }
+
+ public static char toChar(String s) {
+ return s.charAt(0);
+ }
+
+ public static Character toCharBoxed(String s) {
+ return s.charAt(0);
+ }
+
+ public static short toShort(String s) {
+ return Short.parseShort(s.trim());
+ }
+
+ public static short toShort(Number number) {
+ return number.shortValue();
+ }
+
+ public static short toShort(Object o) {
+ return o instanceof Short ? (Short) o : o instanceof Number ? toShort((Number) o) : o instanceof String ? toShort((String) o) : (Short) cannotConvert(o, short.class);
+ }
+
+ public static int toInt(java.util.Date v) {
+ return toInt(v, LOCAL_TZ);
+ }
+
+ public static int toInt(java.util.Date v, TimeZone timeZone) {
+ return (int) (toLong(v, timeZone) / DateTimeUtils.MILLIS_PER_DAY);
+ }
+
+ public static Integer toIntOptional(java.util.Date v) {
+ return v == null ? null : toInt(v);
+ }
+
+ public static Integer toIntOptional(java.util.Date v, TimeZone timeZone) {
+ return v == null ? null : toInt(v, timeZone);
+ }
+
+ public static long toLong(Date v) {
+ return toLong(v, LOCAL_TZ);
+ }
+
+ public static int toInt(java.sql.Time v) {
+ return (int) (toLong(v) % DateTimeUtils.MILLIS_PER_DAY);
+ }
+
+ public static Integer toIntOptional(java.sql.Time v) {
+ return v == null ? null : toInt(v);
+ }
+
+ public static int toInt(String s) {
+ return Integer.parseInt(s.trim());
+ }
+
+ public static int toInt(Number number) {
+ return number.intValue();
+ }
+
+ public static int toInt(Object o) {
+ return o instanceof Integer ? (Integer) o : o instanceof Number ? toInt((Number) o) : o instanceof String ? toInt((String) o) : (Integer) cannotConvert(o, int.class);
+ }
+
+ public static long toLong(Timestamp v) {
+ return toLong(v, LOCAL_TZ);
+ }
+
+ // mainly intended for java.sql.Timestamp but works for other dates also
+ public static long toLong(java.util.Date v, TimeZone timeZone) {
+ final long time = v.getTime();
+ return time + timeZone.getOffset(time);
+ }
+
+ // mainly intended for java.sql.Timestamp but works for other dates also
+ public static Long toLongOptional(java.util.Date v) {
+ return v == null ? null : toLong(v, LOCAL_TZ);
+ }
+
+ public static Long toLongOptional(Timestamp v, TimeZone timeZone) {
+ if (v == null) {
+ return null;
+ }
+ return toLong(v, LOCAL_TZ);
+ }
+
+ public static long toLong(String s) {
+ if (s.startsWith("199") && s.contains(":")) {
+ return Timestamp.valueOf(s).getTime();
+ }
+ return Long.parseLong(s.trim());
+ }
+
+ public static long toLong(Number number) {
+ return number.longValue();
+ }
+
+ public static long toLong(Object o) {
+ return o instanceof Long ? (Long) o : o instanceof Number ? toLong((Number) o) : o instanceof String ? toLong((String) o) : (Long) cannotConvert(o, long.class);
+ }
+
+ public static float toFloat(String s) {
+ return Float.parseFloat(s.trim());
+ }
+
+ public static float toFloat(Number number) {
+ return number.floatValue();
+ }
+
+ public static float toFloat(Object o) {
+ return o instanceof Float ? (Float) o : o instanceof Number ? toFloat((Number) o) : o instanceof String ? toFloat((String) o) : (Float) cannotConvert(o, float.class);
+ }
+
+ public static double toDouble(String s) {
+ return Double.parseDouble(s.trim());
+ }
+
+ public static double toDouble(Number number) {
+ return number.doubleValue();
+ }
+
+ public static double toDouble(Object o) {
+ return o instanceof Double ? (Double) o : o instanceof Number ? toDouble((Number) o) : o instanceof String ? toDouble((String) o) : (Double) cannotConvert(o, double.class);
+ }
+
+ public static BigDecimal toBigDecimal(String s) {
+ return new BigDecimal(s.trim());
+ }
+
+ public static BigDecimal toBigDecimal(Number number) {
+ // There are some values of "long" that cannot be represented as "double".
+ // Not so "int". If it isn't a long, go straight to double.
+ return number instanceof BigDecimal ? (BigDecimal) number : number instanceof BigInteger ? new BigDecimal((BigInteger) number) : number instanceof Long ? new BigDecimal(number.longValue()) : new BigDecimal(number.doubleValue());
+ }
+
+ public static BigDecimal toBigDecimal(Object o) {
+ return o instanceof Number ? toBigDecimal((Number) o) : toBigDecimal(o.toString());
+ }
+
+ // Don't need shortValueOf etc. - Short.valueOf is sufficient.
+
+ /** Helper for CAST(... AS VARCHAR(maxLength)). */
+ public static String truncate(String s, int maxLength) {
+ return s == null ? null : s.length() > maxLength ? s.substring(0, maxLength) : s;
+ }
+
+ /** Helper for CAST(... AS VARBINARY(maxLength)). */
+ public static ByteString truncate(ByteString s, int maxLength) {
+ return s == null ? null : s.length() > maxLength ? s.substring(0, maxLength) : s;
+ }
+
+ /** SQL {@code POSITION(seek IN string)} function. */
+ public static int position(String seek, String s) {
+ return s.indexOf(seek) + 1;
+ }
+
+ /** SQL {@code POSITION(seek IN string)} function. */
+ public static int position(ByteString seek, ByteString s) {
+ return s.indexOf(seek) + 1;
+ }
+
+ /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+ public static long round(long v, long x) {
+ return truncate(v + x / 2, x);
+ }
+
+ /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+ public static long truncate(long v, long x) {
+ long remainder = v % x;
+ if (remainder < 0) {
+ remainder += x;
+ }
+ return v - remainder;
+ }
+
+ /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+ public static int round(int v, int x) {
+ return truncate(v + x / 2, x);
+ }
+
+ /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+ public static int truncate(int v, int x) {
+ int remainder = v % x;
+ if (remainder < 0) {
+ remainder += x;
+ }
+ return v - remainder;
+ }
+
+ /** SQL {@code CURRENT_TIMESTAMP} function. */
+ @NonDeterministic
+ public static long currentTimestamp(DataContext root) {
+ // Cast required for JDK 1.6.
+ return (Long) DataContext.Variable.CURRENT_TIMESTAMP.get(root);
+ }
+
+ /** SQL {@code CURRENT_TIME} function. */
+ @NonDeterministic
+ public static int currentTime(DataContext root) {
+ int time = (int) (currentTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
+ if (time < 0) {
+ time += DateTimeUtils.MILLIS_PER_DAY;
+ }
+ return time;
+ }
+
+ /** SQL {@code CURRENT_DATE} function. */
+ @NonDeterministic
+ public static int currentDate(DataContext root) {
+ final long timestamp = currentTimestamp(root);
+ int date = (int) (timestamp / DateTimeUtils.MILLIS_PER_DAY);
+ final int time = (int) (timestamp % DateTimeUtils.MILLIS_PER_DAY);
+ if (time < 0) {
+ --date;
+ }
+ return date;
+ }
+
+ /** SQL {@code LOCAL_TIMESTAMP} function. */
+ @NonDeterministic
+ public static long localTimestamp(DataContext root) {
+ // Cast required for JDK 1.6.
+ return (Long) DataContext.Variable.LOCAL_TIMESTAMP.get(root);
+ }
+
+ /** SQL {@code LOCAL_TIME} function. */
+ @NonDeterministic
+ public static int localTime(DataContext root) {
+ return (int) (localTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
+ }
+
+ /** Helper for "array element reference". Caller has already ensured that
+ * array and index are not null. Index is 1-based, per SQL. */
+ public static Object arrayItem(List list, int item) {
+ if (item < 1 || item > list.size()) {
+ return null;
+ }
+ return list.get(item - 1);
+ }
+
+ /** Helper for "map element reference". Caller has already ensured that
+ * array and index are not null. Index is 1-based, per SQL. */
+ public static Object mapItem(Map map, Object item) {
+ return map.get(item);
+ }
+
+ /** Implements the {@code [ ... ]} operator on an object whose type is not
+ * known until runtime.
+ */
+ public static Object item(Object object, Object index) {
+ if (object instanceof Map) {
+ return ((Map) object).get(index);
+ }
+ if (object instanceof List && index instanceof Number) {
+ List list = (List) object;
+ return list.get(((Number) index).intValue());
+ }
+ return null;
+ }
+
+ /** NULL → FALSE, FALSE → FALSE, TRUE → TRUE. */
+ public static boolean isTrue(Boolean b) {
+ return b != null && b;
+ }
+
+ /** NULL → TRUE, FALSE → FALSE, TRUE → TRUE. */
+ public static boolean isNotFalse(Boolean b) {
+ return b == null || b;
+ }
+
+ /** NULL → NULL, FALSE → TRUE, TRUE → FALSE. */
+ public static Boolean not(Boolean b) {
+ return (b == null) ? null : !b;
+ }
+
+ /** Converts a JDBC array to a list. */
+ public static List arrayToList(final java.sql.Array a) {
+ if (a == null) {
+ return null;
+ }
+ try {
+ return Primitive.asList(a.getArray());
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /** Support the {@code CURRENT VALUE OF sequence} operator. */
+ @NonDeterministic
+ public static long sequenceCurrentValue(String key) {
+ return getAtomicLong(key).get();
+ }
+
+ /** Support the {@code NEXT VALUE OF sequence} operator. */
+ @NonDeterministic
+ public static long sequenceNextValue(String key) {
+ return getAtomicLong(key).incrementAndGet();
+ }
+
+ private static AtomicLong getAtomicLong(String key) {
+ final Map<String, AtomicLong> map = THREAD_SEQUENCES.get();
+ AtomicLong atomic = map.get(key);
+ if (atomic == null) {
+ atomic = new AtomicLong();
+ map.put(key, atomic);
+ }
+ return atomic;
+ }
+
+ /** Support the SLICE function. */
+ public static List slice(List list) {
+ return list;
+ }
+
+ /** Support the ELEMENT function. */
+ public static Object element(List list) {
+ switch (list.size()) {
+ case 0:
+ return null;
+ case 1:
+ return list.get(0);
+ default:
+ throw new RuntimeException("more than one value");
+ }
+ }
+
+ /** Returns a lambda that converts a list to an enumerable. */
+ public static <E> Function1<List<E>, Enumerable<E>> listToEnumerable() {
+ //noinspection unchecked
+ return (Function1<List<E>, Enumerable<E>>) (Function1) LIST_AS_ENUMERABLE;
+ }
}
[10/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index cb656c0..d6aa492 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -18,7 +18,17 @@
package org.apache.kylin.common;
-import com.google.common.collect.Sets;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.SortedSet;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.io.IOUtils;
@@ -28,10 +38,7 @@ import org.apache.kylin.common.util.CliCommandExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.*;
-import java.util.SortedSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import com.google.common.collect.Sets;
/**
* @author yangli9
@@ -426,15 +433,15 @@ public class KylinConfig {
public int getDictionaryMaxCardinality() {
return Integer.parseInt(getOptional("kylin.dictionary.max.cardinality", "5000000"));
}
-
+
public int getTableSnapshotMaxMB() {
return Integer.parseInt(getOptional("kylin.table.snapshot.max_mb", "300"));
}
-
+
public int getScanThreshold() {
return Integer.parseInt(getOptional("kylin.query.scan.threshold", "10000000"));
}
-
+
public boolean getQueryRunLocalCoprocessor() {
return Boolean.parseBoolean(getOptional("kylin.query.run.local.coprocessor", "false"));
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java b/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
index 3802b18..ee708e2 100644
--- a/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
+++ b/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
@@ -32,15 +32,15 @@ public class BackdoorToggles {
public static String getObserverBehavior() {
return getString(DEBUG_TOGGLE_OBSERVER_BEHAVIOR);
}
-
+
public static boolean getDisableFuzzyKey() {
return getBoolean(DEBUG_TOGGLE_DISABLE_FUZZY_KEY);
}
-
+
public static boolean getRunLocalCoprocessor() {
return getBoolean(DEBUG_TOGGLE_LOCAL_COPROCESSOR);
}
-
+
private static String getString(String key) {
Map<String, String> toggles = _backdoorToggles.get();
if (toggles == null) {
@@ -49,7 +49,7 @@ public class BackdoorToggles {
return toggles.get(key);
}
}
-
+
private static boolean getBoolean(String key) {
return "true".equals(getString(key));
}
@@ -83,7 +83,7 @@ public class BackdoorToggles {
*/
public final static String DEBUG_TOGGLE_OBSERVER_BEHAVIOR = "DEBUG_TOGGLE_OBSERVER_BEHAVIOR";
-
+
/**
* set DEBUG_TOGGLE_LOCAL_COPROCESSOR=true to run coprocessor at client side (not in HBase region server)
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java b/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
index 14c4718..93d4a13 100644
--- a/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
+++ b/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
@@ -17,6 +17,8 @@
*/
package org.apache.kylin.common.lock;
+import java.util.concurrent.TimeUnit;
+
import org.apache.commons.lang.StringUtils;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
@@ -31,8 +33,6 @@ import org.apache.kylin.common.util.HadoopUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.concurrent.TimeUnit;
-
/**
*/
public class ZookeeperJobLock implements JobLock {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java b/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
index c23b27f..5335a65 100644
--- a/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
+++ b/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
@@ -18,10 +18,9 @@
package org.apache.kylin.common.mr;
-
-import org.apache.kylin.common.util.HadoopUtil;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.Mapper;
+import org.apache.kylin.common.util.HadoopUtil;
/**
* Created by Hongbin Ma(Binmahone) on 1/19/15.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java b/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
index df12f7a..1276c64 100644
--- a/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
+++ b/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
@@ -18,9 +18,9 @@
package org.apache.kylin.common.mr;
-import org.apache.kylin.common.util.HadoopUtil;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.Reducer;
+import org.apache.kylin.common.util.HadoopUtil;
/**
* Created by Hongbin Ma(Binmahone) on 1/19/15.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java b/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
index 38c6d9d..fef0a14 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
@@ -18,16 +18,21 @@
package org.apache.kylin.common.persistence;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-import com.google.common.collect.Lists;
import org.apache.commons.io.IOUtils;
-
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
+import com.google.common.collect.Lists;
+
public class FileResourceStore extends ResourceStore {
File root;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java b/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
index 145cada..b84ddd9 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
@@ -30,11 +30,10 @@ import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.kylin.common.util.HadoopUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.util.HadoopUtil;
-
/**
* @author yangli9
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java b/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
index 6c5847e..1073617 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
@@ -18,21 +18,35 @@
package org.apache.kylin.common.persistence;
-import com.google.common.collect.Lists;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.client.*;
+import org.apache.hadoop.hbase.client.Delete;
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.common.util.HadoopUtil;
-import java.io.*;
-import java.util.*;
+import com.google.common.collect.Lists;
public class HBaseResourceStore extends ResourceStore {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java b/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
index a49706d..58872ec 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
@@ -53,7 +53,6 @@ abstract public class ResourceStore {
public static final String TABLE_RESOURCE_ROOT = "/table";
public static final String HYBRID_RESOURCE_ROOT = "/hybrid";
-
private static ConcurrentHashMap<KylinConfig, ResourceStore> CACHE = new ConcurrentHashMap<KylinConfig, ResourceStore>();
public static final ArrayList<Class<? extends ResourceStore>> knownImpl = new ArrayList<Class<? extends ResourceStore>>();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java b/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
index 6c575bd..cfde05c 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
@@ -46,26 +46,26 @@ public class ResourceTool {
String cmd = args[0];
switch (cmd) {
- case "reset":
- reset(args.length == 1 ? KylinConfig.getInstanceFromEnv() : KylinConfig.createInstanceFromUri(args[1]));
- break;
- case "copy":
- copy(args[1], args[2]);
- break;
- case "list":
- list(args[1], args[2]);
- break;
- case "download":
- copy(KylinConfig.getInstanceFromEnv(), KylinConfig.createInstanceFromUri(args[1]));
- break;
- case "upload":
- copy(KylinConfig.createInstanceFromUri(args[1]), KylinConfig.getInstanceFromEnv());
- break;
- case "remove":
- remove(KylinConfig.getInstanceFromEnv(), args[1]);
- break;
- default:
- System.out.println("Unknown cmd: " + cmd);
+ case "reset":
+ reset(args.length == 1 ? KylinConfig.getInstanceFromEnv() : KylinConfig.createInstanceFromUri(args[1]));
+ break;
+ case "copy":
+ copy(args[1], args[2]);
+ break;
+ case "list":
+ list(args[1], args[2]);
+ break;
+ case "download":
+ copy(KylinConfig.getInstanceFromEnv(), KylinConfig.createInstanceFromUri(args[1]));
+ break;
+ case "upload":
+ copy(KylinConfig.createInstanceFromUri(args[1]), KylinConfig.getInstanceFromEnv());
+ break;
+ case "remove":
+ remove(KylinConfig.getInstanceFromEnv(), args[1]);
+ break;
+ default:
+ System.out.println("Unknown cmd: " + cmd);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java b/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
index 0a6b5c2..e03707d 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
@@ -45,13 +45,13 @@ abstract public class RootPersistentEntity implements AclEntity {
static final String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss z";
static FastDateFormat format = FastDateFormat.getInstance(DATE_PATTERN);
static DateFormat df = new SimpleDateFormat(DATE_PATTERN);
-
+
public static String formatTime(long millis) {
return format.format(millis);
}
-
+
public static long parseTime(String timeString) {
- if(timeString == null)
+ if (timeString == null)
return 0;
try {
Date dt = df.parse(timeString);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java b/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
index 68e68c3..a58cb97 100644
--- a/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
+++ b/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
@@ -18,13 +18,6 @@
package org.apache.kylin.common.restclient;
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@@ -34,6 +27,14 @@ import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Lists;
+
/**
* Broadcast kylin event out
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java b/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
index 14bc517..859cedf 100644
--- a/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
+++ b/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
@@ -23,7 +23,7 @@ import java.util.concurrent.ConcurrentSkipListMap;
/**
* Created by qianzhou on 1/15/15.
*/
-public class CaseInsensitiveStringCache<V> extends SingleValueCache<String, V>{
+public class CaseInsensitiveStringCache<V> extends SingleValueCache<String, V> {
public CaseInsensitiveStringCache(Broadcaster.TYPE syncType) {
super(syncType, new ConcurrentSkipListMap<String, V>(String.CASE_INSENSITIVE_ORDER));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/ByteArray.java b/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
index e14780a..d4f7b84 100644
--- a/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
+++ b/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
@@ -20,8 +20,6 @@ package org.apache.kylin.common.util;
import java.util.Arrays;
-import org.apache.kylin.common.util.Bytes;
-
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/Bytes.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/Bytes.java b/common/src/main/java/org/apache/kylin/common/util/Bytes.java
index 31319ae..e710964 100644
--- a/common/src/main/java/org/apache/kylin/common/util/Bytes.java
+++ b/common/src/main/java/org/apache/kylin/common/util/Bytes.java
@@ -17,12 +17,9 @@
*/
package org.apache.kylin.common.util;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.io.RawComparator;
-import org.apache.hadoop.io.WritableComparator;
-import org.apache.hadoop.io.WritableUtils;
-import sun.misc.Unsafe;
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkPositionIndex;
import java.io.DataInput;
import java.io.DataOutput;
@@ -41,7 +38,13 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
-import static com.google.common.base.Preconditions.*;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.io.RawComparator;
+import org.apache.hadoop.io.WritableComparator;
+import org.apache.hadoop.io.WritableUtils;
+
+import sun.misc.Unsafe;
/**
* Utility class that handles byte arrays, conversions to/from other types,
@@ -108,7 +111,6 @@ public class Bytes {
*/
public static final int SIZEOF_SHORT = Short.SIZE / Byte.SIZE;
-
/**
* Estimate of size cost to pay beyond payload in jvm for instance of byte [].
* Estimate based on study of jhat and jprofiler numbers.
@@ -117,7 +119,6 @@ public class Bytes {
// SizeOf which uses java.lang.instrument says 24 bytes. (3 longs?)
public static final int ESTIMATED_HEAP_TAX = 16;
-
/**
* Returns length of the byte array, returning 0 if the array is null.
* Useful for calculating sizes.
@@ -147,8 +148,7 @@ public class Bytes {
@Override
public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
- return LexicographicalComparerHolder.BEST_COMPARER.
- compareTo(b1, s1, l1, b2, s2, l2);
+ return LexicographicalComparerHolder.BEST_COMPARER.compareTo(b1, s1, l1, b2, s2, l2);
}
}
@@ -198,8 +198,7 @@ public class Bytes {
* @return byte array read off <code>in</code>
* @throws java.io.IOException e
*/
- public static byte[] readByteArray(final DataInput in)
- throws IOException {
+ public static byte[] readByteArray(final DataInput in) throws IOException {
int len = WritableUtils.readVInt(in);
if (len < 0) {
throw new NegativeArraySizeException(Integer.toString(len));
@@ -231,8 +230,7 @@ public class Bytes {
* @param b array to write
* @throws IOException e
*/
- public static void writeByteArray(final DataOutput out, final byte[] b)
- throws IOException {
+ public static void writeByteArray(final DataOutput out, final byte[] b) throws IOException {
if (b == null) {
WritableUtils.writeVInt(out, 0);
} else {
@@ -249,9 +247,7 @@ public class Bytes {
* @param length length past offset
* @throws IOException e
*/
- public static void writeByteArray(final DataOutput out, final byte[] b,
- final int offset, final int length)
- throws IOException {
+ public static void writeByteArray(final DataOutput out, final byte[] b, final int offset, final int length) throws IOException {
WritableUtils.writeVInt(out, length);
out.write(b, offset, length);
}
@@ -266,8 +262,7 @@ public class Bytes {
* @param srcLength source length
* @return New offset in src array.
*/
- public static int writeByteArray(final byte[] tgt, final int tgtOffset,
- final byte[] src, final int srcOffset, final int srcLength) {
+ public static int writeByteArray(final byte[] tgt, final int tgtOffset, final byte[] src, final int srcOffset, final int srcLength) {
byte[] vint = vintToBytes(srcLength);
System.arraycopy(vint, 0, tgt, tgtOffset, vint.length);
int offset = tgtOffset + vint.length;
@@ -285,8 +280,7 @@ public class Bytes {
* @param srcLength source length
* @return incremented offset
*/
- public static int putBytes(byte[] tgtBytes, int tgtOffset, byte[] srcBytes,
- int srcOffset, int srcLength) {
+ public static int putBytes(byte[] tgtBytes, int tgtOffset, byte[] srcBytes, int srcOffset, int srcLength) {
System.arraycopy(srcBytes, srcOffset, tgtBytes, tgtOffset, srcLength);
return tgtOffset + srcLength;
}
@@ -358,9 +352,7 @@ public class Bytes {
* @param sep The separator to use.
* @param b2 The second byte array.
*/
- public static String toString(final byte[] b1,
- String sep,
- final byte[] b2) {
+ public static String toString(final byte[] b1, String sep, final byte[] b2) {
return toString(b1, 0, b1.length) + sep + toString(b2, 0, b2.length);
}
@@ -429,14 +421,13 @@ public class Bytes {
public static String toStringBinary(final byte[] b, int off, int len) {
StringBuilder result = new StringBuilder();
// Just in case we are passed a 'len' that is > buffer length...
- if (off >= b.length) return result.toString();
- if (off + len > b.length) len = b.length - off;
+ if (off >= b.length)
+ return result.toString();
+ if (off + len > b.length)
+ len = b.length - off;
for (int i = off; i < off + len; ++i) {
int ch = b[i] & 0xFF;
- if ((ch >= '0' && ch <= '9')
- || (ch >= 'A' && ch <= 'Z')
- || (ch >= 'a' && ch <= 'z')
- || " `~!@#$%^&*()-_=+[]{}|;:'\",.<>/?".indexOf(ch) >= 0) {
+ if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || " `~!@#$%^&*()-_=+[]{}|;:'\",.<>/?".indexOf(ch) >= 0) {
result.append((char) ch);
} else {
result.append(String.format("\\x%02X", ch));
@@ -446,9 +437,7 @@ public class Bytes {
}
private static boolean isHexDigit(char c) {
- return
- (c >= 'A' && c <= 'F') ||
- (c >= '0' && c <= '9');
+ return (c >= 'A' && c <= 'F') || (c >= '0' && c <= '9');
}
/**
@@ -477,8 +466,7 @@ public class Bytes {
char hd2 = in.charAt(i + 3);
// they need to be A-F0-9:
- if (!isHexDigit(hd1) ||
- !isHexDigit(hd2)) {
+ if (!isHexDigit(hd1) || !isHexDigit(hd2)) {
// bogus escape code, ignore:
continue;
}
@@ -515,7 +503,7 @@ public class Bytes {
* @return <code>b</code> encoded in a byte array.
*/
public static byte[] toBytes(final boolean b) {
- return new byte[]{b ? (byte) -1 : (byte) 0};
+ return new byte[] { b ? (byte) -1 : (byte) 0 };
}
/**
@@ -596,17 +584,12 @@ public class Bytes {
}
}
- private static IllegalArgumentException
- explainWrongLengthOrOffset(final byte[] bytes,
- final int offset,
- final int length,
- final int expectedLength) {
+ private static IllegalArgumentException explainWrongLengthOrOffset(final byte[] bytes, final int offset, final int length, final int expectedLength) {
String reason;
if (length != expectedLength) {
reason = "Wrong length: " + length + ", expected " + expectedLength;
} else {
- reason = "offset (" + offset + ") + length (" + length + ") exceed the"
- + " capacity of the array: " + bytes.length;
+ reason = "offset (" + offset + ") + length (" + length + ") exceed the" + " capacity of the array: " + bytes.length;
}
return new IllegalArgumentException(reason);
}
@@ -623,8 +606,7 @@ public class Bytes {
*/
public static int putLong(byte[] bytes, int offset, long val) {
if (bytes.length - offset < SIZEOF_LONG) {
- throw new IllegalArgumentException("Not enough room to put a long at"
- + " offset " + offset + " in a " + bytes.length + " byte array");
+ throw new IllegalArgumentException("Not enough room to put a long at" + " offset " + offset + " in a " + bytes.length + " byte array");
}
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.isAvailable()) {
return putLongUnsafe(bytes, offset, val);
@@ -650,8 +632,7 @@ public class Bytes {
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
val = Long.reverseBytes(val);
}
- org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putLong(bytes, (long) offset +
- org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
+ org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putLong(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
return offset + SIZEOF_LONG;
}
@@ -807,11 +788,9 @@ public class Bytes {
*/
public static int toIntUnsafe(byte[] bytes, int offset) {
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
- return Integer.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes,
- (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
+ return Integer.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
} else {
- return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes,
- (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
+ return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
}
}
@@ -824,11 +803,9 @@ public class Bytes {
*/
public static short toShortUnsafe(byte[] bytes, int offset) {
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
- return Short.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes,
- (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
+ return Short.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
} else {
- return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes,
- (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
+ return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
}
}
@@ -841,11 +818,9 @@ public class Bytes {
*/
public static long toLongUnsafe(byte[] bytes, int offset) {
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
- return Long.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes,
- (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
+ return Long.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
} else {
- return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes,
- (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
+ return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
}
}
@@ -861,8 +836,7 @@ public class Bytes {
*/
public static int readAsInt(byte[] bytes, int offset, final int length) {
if (offset + length > bytes.length) {
- throw new IllegalArgumentException("offset (" + offset + ") + length (" + length
- + ") exceed the" + " capacity of the array: " + bytes.length);
+ throw new IllegalArgumentException("offset (" + offset + ") + length (" + length + ") exceed the" + " capacity of the array: " + bytes.length);
}
int n = 0;
for (int i = offset; i < (offset + length); i++) {
@@ -884,8 +858,7 @@ public class Bytes {
*/
public static int putInt(byte[] bytes, int offset, int val) {
if (bytes.length - offset < SIZEOF_INT) {
- throw new IllegalArgumentException("Not enough room to put an int at"
- + " offset " + offset + " in a " + bytes.length + " byte array");
+ throw new IllegalArgumentException("Not enough room to put an int at" + " offset " + offset + " in a " + bytes.length + " byte array");
}
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.isAvailable()) {
return putIntUnsafe(bytes, offset, val);
@@ -911,8 +884,7 @@ public class Bytes {
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
val = Integer.reverseBytes(val);
}
- org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putInt(bytes, (long) offset +
- org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
+ org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putInt(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
return offset + SIZEOF_INT;
}
@@ -1001,8 +973,7 @@ public class Bytes {
*/
public static int putShort(byte[] bytes, int offset, short val) {
if (bytes.length - offset < SIZEOF_SHORT) {
- throw new IllegalArgumentException("Not enough room to put a short at"
- + " offset " + offset + " in a " + bytes.length + " byte array");
+ throw new IllegalArgumentException("Not enough room to put a short at" + " offset " + offset + " in a " + bytes.length + " byte array");
}
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.isAvailable()) {
return putShortUnsafe(bytes, offset, val);
@@ -1026,8 +997,7 @@ public class Bytes {
if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
val = Short.reverseBytes(val);
}
- org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putShort(bytes, (long) offset +
- org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
+ org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putShort(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
return offset + SIZEOF_SHORT;
}
@@ -1046,8 +1016,7 @@ public class Bytes {
*/
public static int putAsShort(byte[] bytes, int offset, int val) {
if (bytes.length - offset < SIZEOF_SHORT) {
- throw new IllegalArgumentException("Not enough room to put a short at"
- + " offset " + offset + " in a " + bytes.length + " byte array");
+ throw new IllegalArgumentException("Not enough room to put a short at" + " offset " + offset + " in a " + bytes.length + " byte array");
}
bytes[offset + 1] = (byte) val;
val >>= 8;
@@ -1069,7 +1038,6 @@ public class Bytes {
return result;
}
-
/**
* Converts a byte array to a BigDecimal
*
@@ -1089,8 +1057,7 @@ public class Bytes {
* @return the char value
*/
public static BigDecimal toBigDecimal(byte[] bytes, int offset, final int length) {
- if (bytes == null || length < SIZEOF_INT + 1 ||
- (offset + length > bytes.length)) {
+ if (bytes == null || length < SIZEOF_INT + 1 || (offset + length > bytes.length)) {
return null;
}
@@ -1185,8 +1152,7 @@ public class Bytes {
* @return deserialized long from stream.
* @throws java.io.IOException e
*/
- public static long readVLong(final byte[] buffer, final int offset)
- throws IOException {
+ public static long readVLong(final byte[] buffer, final int offset) throws IOException {
byte firstByte = buffer[offset];
int len = WritableUtils.decodeVIntSize(firstByte);
if (len == 1) {
@@ -1207,8 +1173,7 @@ public class Bytes {
* @return 0 if equal, < 0 if left is less than right, etc.
*/
public static int compareTo(final byte[] left, final byte[] right) {
- return LexicographicalComparerHolder.BEST_COMPARER.
- compareTo(left, 0, left.length, right, 0, right.length);
+ return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, 0, left.length, right, 0, right.length);
}
/**
@@ -1222,16 +1187,12 @@ public class Bytes {
* @param length2 How much to compare from the right buffer
* @return 0 if equal, < 0 if left is less than right, etc.
*/
- public static int compareTo(byte[] buffer1, int offset1, int length1,
- byte[] buffer2, int offset2, int length2) {
- return LexicographicalComparerHolder.BEST_COMPARER.
- compareTo(buffer1, offset1, length1, buffer2, offset2, length2);
+ public static int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) {
+ return LexicographicalComparerHolder.BEST_COMPARER.compareTo(buffer1, offset1, length1, buffer2, offset2, length2);
}
interface Comparer<T> {
- int compareTo(
- T buffer1, int offset1, int length1, T buffer2, int offset2, int length2
- );
+ int compareTo(T buffer1, int offset1, int length1, T buffer2, int offset2, int length2);
}
static Comparer<byte[]> lexicographicalComparerJavaImpl() {
@@ -1246,8 +1207,7 @@ public class Bytes {
* {@code Unsafe} isn't available.
*/
static class LexicographicalComparerHolder {
- static final String UNSAFE_COMPARER_NAME =
- LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";
+ static final String UNSAFE_COMPARER_NAME = LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";
static final Comparer<byte[]> BEST_COMPARER = getBestComparer();
@@ -1261,8 +1221,7 @@ public class Bytes {
// yes, UnsafeComparer does implement Comparer<byte[]>
@SuppressWarnings("unchecked")
- Comparer<byte[]> comparer =
- (Comparer<byte[]>) theClass.getEnumConstants()[0];
+ Comparer<byte[]> comparer = (Comparer<byte[]>) theClass.getEnumConstants()[0];
return comparer;
} catch (Throwable t) { // ensure we really catch *everything*
return lexicographicalComparerJavaImpl();
@@ -1273,12 +1232,9 @@ public class Bytes {
INSTANCE;
@Override
- public int compareTo(byte[] buffer1, int offset1, int length1,
- byte[] buffer2, int offset2, int length2) {
+ public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) {
// Short circuit equal case
- if (buffer1 == buffer2 &&
- offset1 == offset2 &&
- length1 == length2) {
+ if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {
return 0;
}
// Bring WritableComparator code local
@@ -1306,23 +1262,22 @@ public class Bytes {
static final int BYTE_ARRAY_BASE_OFFSET;
static {
- theUnsafe = (Unsafe) AccessController.doPrivileged(
- new PrivilegedAction<Object>() {
- @Override
- public Object run() {
- try {
- Field f = Unsafe.class.getDeclaredField("theUnsafe");
- f.setAccessible(true);
- return f.get(null);
- } catch (NoSuchFieldException e) {
- // It doesn't matter what we throw;
- // it's swallowed in getBestComparer().
- throw new Error();
- } catch (IllegalAccessException e) {
- throw new Error();
- }
- }
- });
+ theUnsafe = (Unsafe) AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
+ public Object run() {
+ try {
+ Field f = Unsafe.class.getDeclaredField("theUnsafe");
+ f.setAccessible(true);
+ return f.get(null);
+ } catch (NoSuchFieldException e) {
+ // It doesn't matter what we throw;
+ // it's swallowed in getBestComparer().
+ throw new Error();
+ } catch (IllegalAccessException e) {
+ throw new Error();
+ }
+ }
+ });
BYTE_ARRAY_BASE_OFFSET = theUnsafe.arrayBaseOffset(byte[].class);
@@ -1332,8 +1287,7 @@ public class Bytes {
}
}
- static final boolean littleEndian =
- ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN);
+ static final boolean littleEndian = ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN);
/**
* Returns true if x1 is less than x2, when both values are treated as
@@ -1380,13 +1334,10 @@ public class Bytes {
* @return 0 if equal, < 0 if left is less than right, etc.
*/
@Override
- public int compareTo(byte[] buffer1, int offset1, int length1,
- byte[] buffer2, int offset2, int length2) {
+ public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) {
// Short circuit equal case
- if (buffer1 == buffer2 &&
- offset1 == offset2 &&
- length1 == length2) {
+ if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {
return 0;
}
final int minLength = Math.min(length1, length2);
@@ -1394,11 +1345,11 @@ public class Bytes {
final long offset1Adj = offset1 + BYTE_ARRAY_BASE_OFFSET;
final long offset2Adj = offset2 + BYTE_ARRAY_BASE_OFFSET;
- /*
- * Compare 8 bytes at a time. Benchmarking shows comparing 8 bytes at a
- * time is no slower than comparing 4 bytes at a time even on 32-bit.
- * On the other hand, it is substantially faster on 64-bit.
- */
+ /*
+ * Compare 8 bytes at a time. Benchmarking shows comparing 8 bytes at a
+ * time is no slower than comparing 4 bytes at a time even on 32-bit.
+ * On the other hand, it is substantially faster on 64-bit.
+ */
for (int i = 0; i < minWords * SIZEOF_LONG; i += SIZEOF_LONG) {
long lw = theUnsafe.getLong(buffer1, offset1Adj + (long) i);
long rw = theUnsafe.getLong(buffer2, offset2Adj + (long) i);
@@ -1457,25 +1408,27 @@ public class Bytes {
public static boolean equals(final byte[] left, final byte[] right) {
// Could use Arrays.equals?
//noinspection SimplifiableConditionalExpression
- if (left == right) return true;
- if (left == null || right == null) return false;
- if (left.length != right.length) return false;
- if (left.length == 0) return true;
+ if (left == right)
+ return true;
+ if (left == null || right == null)
+ return false;
+ if (left.length != right.length)
+ return false;
+ if (left.length == 0)
+ return true;
// Since we're often comparing adjacent sorted data,
// it's usual to have equal arrays except for the very last byte
// so check that first
- if (left[left.length - 1] != right[right.length - 1]) return false;
+ if (left[left.length - 1] != right[right.length - 1])
+ return false;
return compareTo(left, right) == 0;
}
- public static boolean equals(final byte[] left, int leftOffset, int leftLen,
- final byte[] right, int rightOffset, int rightLen) {
+ public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right, int rightOffset, int rightLen) {
// short circuit case
- if (left == right &&
- leftOffset == rightOffset &&
- leftLen == rightLen) {
+ if (left == right && leftOffset == rightOffset && leftLen == rightLen) {
return true;
}
// different lengths fast check
@@ -1489,22 +1442,24 @@ public class Bytes {
// Since we're often comparing adjacent sorted data,
// it's usual to have equal arrays except for the very last byte
// so check that first
- if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;
+ if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1])
+ return false;
- return LexicographicalComparerHolder.BEST_COMPARER.
- compareTo(left, leftOffset, leftLen, right, rightOffset, rightLen) == 0;
+ return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right, rightOffset, rightLen) == 0;
}
-
/**
* @param a left operand
* @param buf right operand
* @return True if equal
*/
public static boolean equals(byte[] a, ByteBuffer buf) {
- if (a == null) return buf == null;
- if (buf == null) return false;
- if (a.length != buf.remaining()) return false;
+ if (a == null)
+ return buf == null;
+ if (buf == null)
+ return false;
+ if (a.length != buf.remaining())
+ return false;
// Thou shalt not modify the original byte buffer in what should be read only operations.
ByteBuffer b = buf.duplicate();
@@ -1516,16 +1471,12 @@ public class Bytes {
return true;
}
-
/**
* Return true if the byte array on the right is a prefix of the byte
* array on the left.
*/
public static boolean startsWith(byte[] bytes, byte[] prefix) {
- return bytes != null && prefix != null &&
- bytes.length >= prefix.length &&
- LexicographicalComparerHolder.BEST_COMPARER.
- compareTo(bytes, 0, prefix.length, prefix, 0, prefix.length) == 0;
+ return bytes != null && prefix != null && bytes.length >= prefix.length && LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0, prefix.length) == 0;
}
/**
@@ -1672,8 +1623,7 @@ public class Bytes {
* the range in two; i.e. one split.
* @return Array of dividing values
*/
- public static byte[][] split(final byte[] a, final byte[] b,
- boolean inclusive, final int num) {
+ public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {
byte[][] ret = new byte[num + 2][];
int i = 0;
Iterable<byte[]> iter = iterateOnSplits(a, b, inclusive, num);
@@ -1688,16 +1638,14 @@ public class Bytes {
/**
* Iterate over keys within the passed range, splitting at an [a,b) boundary.
*/
- public static Iterable<byte[]> iterateOnSplits(final byte[] a,
- final byte[] b, final int num) {
+ public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, final int num) {
return iterateOnSplits(a, b, false, num);
}
/**
* Iterate over keys within the passed range.
*/
- public static Iterable<byte[]> iterateOnSplits(
- final byte[] a, final byte[] b, boolean inclusive, final int num) {
+ public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive, final int num) {
byte[] aPadded;
byte[] bPadded;
if (a.length < b.length) {
@@ -1716,7 +1664,7 @@ public class Bytes {
if (num <= 0) {
throw new IllegalArgumentException("num cannot be <= 0");
}
- byte[] prependHeader = {1, 0};
+ byte[] prependHeader = { 1, 0 };
final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));
final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));
BigInteger diffBI = stopBI.subtract(startBI);
@@ -1746,8 +1694,10 @@ public class Bytes {
@Override
public byte[] next() {
i++;
- if (i == 0) return a;
- if (i == num + 1) return b;
+ if (i == 0)
+ return a;
+ if (i == num + 1)
+ return b;
BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));
byte[] padded = curBI.toByteArray();
@@ -1832,8 +1782,7 @@ public class Bytes {
* means that this function can return 2N + 1 different values
* ranging from -(N + 1) to N - 1.
*/
- public static int binarySearch(byte[][] arr, byte[] key, int offset,
- int length, RawComparator<?> comparator) {
+ public static int binarySearch(byte[][] arr, byte[] key, int offset, int length, RawComparator<?> comparator) {
int low = 0;
int high = arr.length - 1;
@@ -1841,15 +1790,14 @@ public class Bytes {
int mid = (low + high) >>> 1;
// we have to compare in this order, because the comparator order
// has special logic when the 'left side' is a special key.
- int cmp = comparator.compare(key, offset, length,
- arr[mid], 0, arr[mid].length);
+ int cmp = comparator.compare(key, offset, length, arr[mid], 0, arr[mid].length);
// key lives above the midpoint
if (cmp > 0)
low = mid + 1;
- // key lives below the midpoint
+ // key lives below the midpoint
else if (cmp < 0)
high = mid - 1;
- // BAM. how often does this really happen?
+ // BAM. how often does this really happen?
else
return mid;
}
@@ -1870,18 +1818,17 @@ public class Bytes {
// Hopefully this doesn't happen too often.
byte[] newvalue;
if (val[0] < 0) {
- newvalue = new byte[]{-1, -1, -1, -1, -1, -1, -1, -1};
+ newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };
} else {
newvalue = new byte[SIZEOF_LONG];
}
- System.arraycopy(val, 0, newvalue, newvalue.length - val.length,
- val.length);
+ System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);
val = newvalue;
} else if (val.length > SIZEOF_LONG) {
- throw new IllegalArgumentException("Increment Bytes - value too big: " +
- val.length);
+ throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);
}
- if (amount == 0) return val;
+ if (amount == 0)
+ return val;
if (val[0] < 0) {
return binaryIncrementNeg(val, amount);
}
@@ -1908,7 +1855,8 @@ public class Bytes {
amo -= sign;
}
value[value.length - i - 1] = (byte) total;
- if (amo == 0) return value;
+ if (amo == 0)
+ return value;
}
return value;
}
@@ -1933,7 +1881,8 @@ public class Bytes {
total %= 256;
}
value[value.length - i - 1] = (byte) total;
- if (amo == 0) return value;
+ if (amo == 0)
+ return value;
}
return value;
}
@@ -1941,12 +1890,10 @@ public class Bytes {
/**
* Writes a string as a fixed-size field, padded with zeros.
*/
- public static void writeStringFixedSize(final DataOutput out, String s,
- int size) throws IOException {
+ public static void writeStringFixedSize(final DataOutput out, String s, int size) throws IOException {
byte[] b = toBytes(s);
if (b.length > size) {
- throw new IOException("Trying to write " + b.length + " bytes (" +
- toStringBinary(b) + ") into a field of length " + size);
+ throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b) + ") into a field of length " + size);
}
out.writeBytes(s);
@@ -1957,8 +1904,7 @@ public class Bytes {
/**
* Reads a fixed-size field and interprets it as a string padded with zeros.
*/
- public static String readStringFixedSize(final DataInput in, int size)
- throws IOException {
+ public static String readStringFixedSize(final DataInput in, int size) throws IOException {
byte[] b = new byte[size];
in.readFully(b);
int n = b.length;
@@ -1976,7 +1922,8 @@ public class Bytes {
* @return a copy of the given byte array
*/
public static byte[] copy(byte[] bytes) {
- if (bytes == null) return null;
+ if (bytes == null)
+ return null;
byte[] result = new byte[bytes.length];
System.arraycopy(bytes, 0, result, 0, bytes.length);
return result;
@@ -1992,7 +1939,8 @@ public class Bytes {
* @return a copy of the given designated byte array
*/
public static byte[] copy(byte[] bytes, final int offset, final int length) {
- if (bytes == null) return null;
+ if (bytes == null)
+ return null;
byte[] result = new byte[length];
System.arraycopy(bytes, offset, result, 0, length);
return result;
@@ -2077,7 +2025,6 @@ public class Bytes {
return true;
}
-
/**
* Returns the index of the first appearance of the value {@code target} in
* {@code array}.
@@ -2114,8 +2061,7 @@ public class Bytes {
return 0;
}
- outer:
- for (int i = 0; i < array.length - target.length + 1; i++) {
+ outer: for (int i = 0; i < array.length - target.length + 1; i++) {
for (int j = 0; j < target.length; j++) {
if (array[i + j] != target[j]) {
continue outer;
@@ -2221,8 +2167,7 @@ public class Bytes {
}
byte[] result = new byte[srcBytes.length * multiNum];
for (int i = 0; i < multiNum; i++) {
- System.arraycopy(srcBytes, 0, result, i * srcBytes.length,
- srcBytes.length);
+ System.arraycopy(srcBytes, 0, result, i * srcBytes.length, srcBytes.length);
}
return result;
}
@@ -2250,11 +2195,9 @@ public class Bytes {
hex = hex.toUpperCase();
byte[] b = new byte[hex.length() / 2];
for (int i = 0; i < b.length; i++) {
- b[i] = (byte) ((toBinaryFromHex((byte) hex.charAt(2 * i)) << 4) +
- toBinaryFromHex((byte) hex.charAt((2 * i + 1))));
+ b[i] = (byte) ((toBinaryFromHex((byte) hex.charAt(2 * i)) << 4) + toBinaryFromHex((byte) hex.charAt((2 * i + 1))));
}
return b;
}
}
-
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java b/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
index bd16246..f5b63a3 100644
--- a/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
+++ b/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
@@ -22,7 +22,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -129,7 +128,7 @@ public class BytesSplitter {
for (int i = 0; i < bufferSize; i++) {
if (i > 0)
buf.append(", ");
-
+
buf.append(Bytes.toString(splitBuffers[i].value, 0, splitBuffers[i].length));
}
return buf.toString();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java b/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
index decdc3a..e858d69 100644
--- a/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
+++ b/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
@@ -18,15 +18,15 @@
package org.apache.kylin.common.util;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.hadoop.io.Writable;
-
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.io.Writable;
+
public class BytesUtil {
public static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
@@ -370,7 +370,6 @@ public class BytesUtil {
return toHex(array);
}
-
/**
* this method only works for hex strings
*/
@@ -402,7 +401,6 @@ public class BytesUtil {
return sb.toString();
}
-
public static void main(String[] args) throws Exception {
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java b/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
index 336b206..c5bddec 100644
--- a/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
+++ b/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
@@ -24,7 +24,6 @@ import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.Pair;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java b/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
index 12b0c40..205796e 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
@@ -36,7 +36,6 @@ import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
-import org.apache.kylin.common.util.Bytes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java b/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
index 37f5adf..cb0bc9a 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
@@ -128,7 +128,7 @@ public class HadoopUtil {
int cut = table.indexOf('.');
String database = cut >= 0 ? table.substring(0, cut).trim() : "DEFAULT";
String tableName = cut >= 0 ? table.substring(cut + 1).trim() : table.trim();
-
- return new String[] {database, tableName};
+
+ return new String[] { database, tableName };
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HiveClient.java b/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
index 69e16b3..672883d 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
@@ -27,9 +27,9 @@ import org.apache.hadoop.hive.cli.CliSessionState;
import org.apache.hadoop.hive.common.StatsSetupConst;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
+import org.apache.hadoop.hive.metastore.MetaStoreUtils;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.MetaStoreUtils;
import org.apache.hadoop.hive.ql.CommandNeedRetryException;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
@@ -112,7 +112,6 @@ public class HiveClient {
return metaStoreClient;
}
-
public Table getHiveTable(String database, String tableName) throws Exception {
return getMetaStoreClient().getTable(database, tableName);
}
@@ -158,7 +157,7 @@ public class HiveClient {
return result;
}
- public boolean isNativeTable(String database, String tableName) throws Exception{
+ public boolean isNativeTable(String database, String tableName) throws Exception {
return !MetaStoreUtils.isNonNativeTable(getMetaStoreClient().getTable(database, tableName));
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/MailService.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/MailService.java b/common/src/main/java/org/apache/kylin/common/util/MailService.java
index fae3c80..d3eedfa 100644
--- a/common/src/main/java/org/apache/kylin/common/util/MailService.java
+++ b/common/src/main/java/org/apache/kylin/common/util/MailService.java
@@ -26,7 +26,6 @@ import org.apache.commons.logging.LogFactory;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
-
import org.apache.kylin.common.KylinConfig;
/**
@@ -94,7 +93,7 @@ public class MailService {
email.getMailSession();
} catch (EmailException e) {
- logger.error(e.getLocalizedMessage(),e);
+ logger.error(e.getLocalizedMessage(), e);
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/Pair.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/Pair.java b/common/src/main/java/org/apache/kylin/common/util/Pair.java
index 142b1b1..b759ac4 100644
--- a/common/src/main/java/org/apache/kylin/common/util/Pair.java
+++ b/common/src/main/java/org/apache/kylin/common/util/Pair.java
@@ -20,14 +20,12 @@ package org.apache.kylin.common.util;
import java.io.Serializable;
-
/**
* A generic class for pairs. Copied from org.apache.hadoop.hbase.util.Pair
* @param <T1>
* @param <T2>
*/
-public class Pair<T1, T2> implements Serializable
-{
+public class Pair<T1, T2> implements Serializable {
private static final long serialVersionUID = -3986244606585552569L;
protected T1 first = null;
protected T2 second = null;
@@ -35,8 +33,7 @@ public class Pair<T1, T2> implements Serializable
/**
* Default constructor.
*/
- public Pair()
- {
+ public Pair() {
}
/**
@@ -44,8 +41,7 @@ public class Pair<T1, T2> implements Serializable
* @param a operand
* @param b operand
*/
- public Pair(T1 a, T2 b)
- {
+ public Pair(T1 a, T2 b) {
this.first = a;
this.second = b;
}
@@ -58,16 +54,15 @@ public class Pair<T1, T2> implements Serializable
* @param b second element
* @return a new pair containing the passed arguments
*/
- public static <T1,T2> Pair<T1,T2> newPair(T1 a, T2 b) {
- return new Pair<T1,T2>(a, b);
+ public static <T1, T2> Pair<T1, T2> newPair(T1 a, T2 b) {
+ return new Pair<T1, T2>(a, b);
}
/**
* Replace the first element of the pair.
* @param a operand
*/
- public void setFirst(T1 a)
- {
+ public void setFirst(T1 a) {
this.first = a;
}
@@ -75,8 +70,7 @@ public class Pair<T1, T2> implements Serializable
* Replace the second element of the pair.
* @param b operand
*/
- public void setSecond(T2 b)
- {
+ public void setSecond(T2 b) {
this.second = b;
}
@@ -84,8 +78,7 @@ public class Pair<T1, T2> implements Serializable
* Return the first element stored in the pair.
* @return T1
*/
- public T1 getFirst()
- {
+ public T1 getFirst() {
return first;
}
@@ -93,27 +86,22 @@ public class Pair<T1, T2> implements Serializable
* Return the second element stored in the pair.
* @return T2
*/
- public T2 getSecond()
- {
+ public T2 getSecond() {
return second;
}
- private static boolean equals(Object x, Object y)
- {
+ private static boolean equals(Object x, Object y) {
return (x == null && y == null) || (x != null && x.equals(y));
}
@Override
@SuppressWarnings("unchecked")
- public boolean equals(Object other)
- {
- return other instanceof Pair && equals(first, ((Pair)other).first) &&
- equals(second, ((Pair)other).second);
+ public boolean equals(Object other) {
+ return other instanceof Pair && equals(first, ((Pair) other).first) && equals(second, ((Pair) other).second);
}
@Override
- public int hashCode()
- {
+ public int hashCode() {
if (first == null)
return (second == null) ? 0 : second.hashCode() + 1;
else if (second == null)
@@ -123,9 +111,7 @@ public class Pair<T1, T2> implements Serializable
}
@Override
- public String toString()
- {
+ public String toString() {
return "{" + getFirst() + "," + getSecond() + "}";
}
}
-
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java b/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
index 6d0723c..1bafb55 100644
--- a/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
+++ b/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
@@ -18,12 +18,12 @@
package org.apache.kylin.common.util;
-import com.google.common.collect.Lists;
-
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import com.google.common.collect.Lists;
+
/**
* Created by Hongbin Ma(Binmahone) on 1/5/15.
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/SSHClient.java b/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
index 03cef9b..da56e59 100644
--- a/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
+++ b/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
@@ -22,6 +22,7 @@ package org.apache.kylin.common.util;
* @author George Song (ysong1)
*
*/
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java b/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
index 2c19665..514eb92 100644
--- a/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
+++ b/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
@@ -18,7 +18,6 @@
package org.apache.kylin.common.util;
-
import java.util.concurrent.Future;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java b/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
index f4788f4..a629d88 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
@@ -18,7 +18,10 @@
package org.apache.kylin.common.persistence;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.DataInputStream;
import java.io.DataOutputStream;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java b/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
index d687465..a62a578 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
@@ -18,7 +18,10 @@
package org.apache.kylin.common.persistence;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -26,13 +29,12 @@ import java.io.IOException;
import java.util.ArrayList;
import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
public class LocalFileResourceStoreTest extends LocalFileMetadataTestCase {
@Before
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java b/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
index 8a72cdf..7437191 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
@@ -22,12 +22,11 @@ import java.io.File;
import java.io.IOException;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.ClassUtil;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import org.apache.kylin.common.util.ClassUtil;
-
/**
* Created by honma on 9/18/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java b/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
index 81e21cc..82435b7 100644
--- a/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
+++ b/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
@@ -18,10 +18,10 @@
package org.apache.kylin.common.restclient;
-import org.junit.Test;
-
import java.io.IOException;
+import org.junit.Test;
+
public class RestClientTest {
@SuppressWarnings("unused")
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
index 8278939..1d08ff8 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
@@ -18,6 +18,9 @@
package org.apache.kylin.common.util;
+import java.io.File;
+import java.io.IOException;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
@@ -28,9 +31,6 @@ import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
-import java.io.File;
-import java.io.IOException;
-
/**
* Created by honma on 11/11/14.
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
index 7a8cf1c..1b205e6 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
@@ -18,20 +18,19 @@
package org.apache.kylin.common.util;
-import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
import org.apache.commons.configuration.ConfigurationException;
import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.LoggerFactory;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+
/**
* Created by honma on 10/17/14.
* <p/>
@@ -68,7 +67,7 @@ public class BasicTest {
ListenableFuture futureTask = MoreExecutors.listeningDecorator(executorService).submit(new Runnable() {
@Override
public void run() {
-
+
}
});
futureTask.addListener(new Runnable() {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java b/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
index 2a3f0ef..a19476e 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
@@ -18,10 +18,11 @@
package org.apache.kylin.common.util;
+import java.nio.ByteBuffer;
+
import junit.framework.TestCase;
-import org.junit.Test;
-import java.nio.ByteBuffer;
+import org.junit.Test;
/**
* by honma
@@ -54,12 +55,11 @@ public class BytesUtilTest extends TestCase {
}
@Test
- public void testReadable()
- {
+ public void testReadable() {
String x = "\\x00\\x00\\x00\\x00\\x00\\x01\\xFC\\xA8";
byte[] bytes = BytesUtil.fromReadableText(x);
String y = BytesUtil.toHex(bytes);
- assertEquals(x,y);
+ assertEquals(x, y);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java b/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
index 90970e5..6cbd9b0 100644
--- a/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
@@ -59,5 +59,5 @@ public class HBaseMetadataTestCase extends AbstractKylinTestCase {
String useSandbox = System.getProperty("useSandbox");
return Boolean.parseBoolean(useSandbox);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java b/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
index b39a724..e7ce0f1 100644
--- a/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
@@ -24,7 +24,6 @@ import java.util.HashSet;
import java.util.Random;
import java.util.Set;
-import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
import org.junit.Assert;
import org.junit.Test;
@@ -213,7 +212,7 @@ public class HyperLogLogCounterTest {
ha.add(a, 1, 3);
hb.add(b);
- Assert.assertTrue(ha.getCountEstimate()==hb.getCountEstimate());
+ Assert.assertTrue(ha.getCountEstimate() == hb.getCountEstimate());
}
private HyperLogLogPlusCounter newHLLC() {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java b/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
index 60db6eb..4fe4e7a 100644
--- a/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
@@ -22,7 +22,6 @@ import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -35,7 +34,7 @@ public class LocalFileMetadataTestCase extends AbstractKylinTestCase {
public void createTestMetadata() {
createTestMetadata(LOCALMETA_TEST_DATA);
}
-
+
public static void createTestMetadata(String testDataFolder) {
KylinConfig.destoryInstance();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java b/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
index 728186b..c381a3a 100644
--- a/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
@@ -18,12 +18,15 @@
package org.apache.kylin.common.util;
-import com.google.common.collect.Lists;
-import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+
import java.util.Comparator;
import java.util.List;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+
/**
* Created by Hongbin Ma(Binmahone) on 1/5/15.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java b/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
index 89d5701..802b6ff 100644
--- a/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.common.util;
-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/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java b/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
index 8a56282..f459c7b 100644
--- a/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.common.util;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java b/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
index bd95d6e..69dcdea 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
@@ -24,13 +24,12 @@ import java.util.List;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.cube.model.DimensionDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.metadata.model.FunctionDesc;
import org.apache.kylin.metadata.model.JoinDesc;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.realization.SQLDigest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Created by Hongbin Ma(Binmahone) on 1/8/15.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java b/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
index 5806378..5e87bf7 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
@@ -22,21 +22,21 @@ import java.io.IOException;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.cube.cuboid.Cuboid;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.validation.CubeMetadataValidator;
-import org.apache.kylin.cube.model.validation.ValidateContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.Serializer;
import org.apache.kylin.common.restclient.Broadcaster;
+import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
+import org.apache.kylin.cube.cuboid.Cuboid;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.CubeMetadataValidator;
+import org.apache.kylin.cube.model.validation.ValidateContext;
import org.apache.kylin.metadata.MetadataConstants;
import org.apache.kylin.metadata.MetadataManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Manager class for CubeDesc; extracted from #CubeManager
@@ -121,7 +121,7 @@ public class CubeDescManager {
private CubeDesc loadCubeDesc(String path) throws IOException {
ResourceStore store = getStore();
CubeDesc ndesc = store.getResource(path, CubeDesc.class, CUBE_DESC_SERIALIZER);
-
+
if (StringUtils.isBlank(ndesc.getName())) {
throw new IllegalStateException("CubeDesc name must not be blank");
}
@@ -131,7 +131,7 @@ public class CubeDescManager {
if (ndesc.getError().isEmpty() == false) {
throw new IllegalStateException("Cube desc at " + path + " has issues: " + ndesc.getError());
}
-
+
return ndesc;
}
[07/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
index 8ca9c60..fc08025 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
@@ -18,222 +18,215 @@
package org.apache.kylin.invertedindex.invertedindex;
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertEquals;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.index.*;
+import org.apache.kylin.invertedindex.index.BitMapContainer;
+import org.apache.kylin.invertedindex.index.CompressedValueContainer;
+import org.apache.kylin.invertedindex.index.RawTableRecord;
+import org.apache.kylin.invertedindex.index.ShardingSliceBuilder;
+import org.apache.kylin.invertedindex.index.Slice;
+import org.apache.kylin.invertedindex.index.TableRecord;
+import org.apache.kylin.invertedindex.index.TableRecordInfo;
import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
-import org.apache.commons.io.IOUtils;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Pair;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
+import com.google.common.collect.Lists;
public class InvertedIndexLocalTest extends LocalFileMetadataTestCase {
- IIInstance ii;
- TableRecordInfo info;
-
- @Before
- public void setUp() throws Exception {
- this.createTestMetadata();
- this.ii = IIManager.getInstance(getTestConfig()).getII("test_kylin_ii");
- this.info = new TableRecordInfo(ii.getFirstSegment());
- }
-
- @After
- public void after() throws Exception {
- this.cleanupTestMetadata();
- }
-
- @Test
- @Ignore
- public void testBitMapContainer() {
- // create container
- BitMapContainer container = new BitMapContainer(info.getDigest(), 0);
- Dictionary<String> dict = info.dict(0);
- for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
- container.append(v);
- }
- container.append(Dictionary.NULL_ID[dict.getSizeOfId()]);
- container.closeForChange();
-
- // copy by serialization
- List<ImmutableBytesWritable> bytes = container.toBytes();
- BitMapContainer container2 = new BitMapContainer(info.getDigest(), 0);
- container2.fromBytes(bytes);
-
- // check the copy
- int i = 0;
- for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
- int value = container2.getValueIntAt(i++);
- assertEquals(v, value);
- }
- assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()],
- container2.getValueIntAt(i++));
- assertEquals(container, container2);
- }
-
- @Test
- public void testCompressedValueContainer() {
- // create container
- CompressedValueContainer container = new CompressedValueContainer(
- info.getDigest(), 0, 500);
- Dictionary<String> dict = info.dict(0);
-
- byte[] buf = new byte[dict.getSizeOfId()];
- ImmutableBytesWritable bytes = new ImmutableBytesWritable(buf);
-
- for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
- BytesUtil.writeUnsigned(v, buf, 0, dict.getSizeOfId());
- container.append(bytes);
- }
- BytesUtil.writeUnsigned(Dictionary.NULL_ID[dict.getSizeOfId()], buf, 0,
- dict.getSizeOfId());
- container.append(bytes);
- container.closeForChange();
-
- // copy by serialization
- ImmutableBytesWritable copy = container.toBytes();
- CompressedValueContainer container2 = new CompressedValueContainer(
- info.getDigest(), 0, 500);
- container2.fromBytes(copy);
-
- // check the copy
- int i = 0;
- for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
- container2.getValueAt(i++, bytes);
- int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(),
- bytes.getLength());
- assertEquals(v, value);
- }
- container2.getValueAt(i++, bytes);
- int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(),
- bytes.getLength());
- assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], value);
- assertEquals(container, container2);
- }
-
- @Test
- public void testCodec() throws IOException {
- List<TableRecord> records = loadRecordsSorted();
- System.out.println(records.size() + " records");
- List<Slice> slices = buildTimeSlices(records);
- System.out.println(slices.size() + " slices");
-
- IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
- List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = encodeKVs(
- codec, slices);
- System.out.println(kvs.size() + " KV pairs");
-
- List<Slice> slicesCopy = decodeKVs(codec, kvs);
- assertEquals(slices, slicesCopy);
-
- List<TableRecord> recordsCopy = iterateRecords(slicesCopy);
- assertEquals(new HashSet<TableRecord>(records),
- new HashSet<TableRecord>(recordsCopy));
- dump(recordsCopy);
- }
-
- private List<TableRecord> loadRecordsSorted() throws IOException {
- File file = new File(LOCALMETA_TEST_DATA,
- "data/flatten_data_for_ii.csv");
- FileInputStream in = new FileInputStream(file);
- List<String> lines = IOUtils.readLines(in, "UTF-8");
- in.close();
-
- List<TableRecord> records = Lists.newArrayList();
- for (String line : lines) {
- String[] fields = line.split(",");
- TableRecord rec = info.createTableRecord();
- for (int col = 0; col < fields.length; col++) {
- rec.setValueString(col, fields[col]);
- }
- records.add(rec);
- }
-
- Collections.sort(records, new Comparator<TableRecord>() {
- @Override
- public int compare(TableRecord a, TableRecord b) {
- long x = a.getTimestamp() - b.getTimestamp();
- if (x > 0)
- return 1;
- else if (x == 0)
- return 0;
- else
- return -1;
- }
- });
-
- return records;
- }
-
- private List<Slice> buildTimeSlices(List<TableRecord> records)
- throws IOException {
- ShardingSliceBuilder builder = new ShardingSliceBuilder(info);
- List<Slice> slices = Lists.newArrayList();
- for (TableRecord rec : records) {
- Slice slice = builder.append(rec);
- if (slice != null)
- slices.add(slice);
- }
- List<Slice> finals = builder.close();
- slices.addAll(finals);
-
- Collections.sort(slices);
- return slices;
- }
-
- private List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKVs(
- IIKeyValueCodec codec, List<Slice> slices) {
-
- List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = Lists
- .newArrayList();
- for (Slice slice : slices) {
- kvs.addAll(codec.encodeKeyValue(slice));
- }
- return kvs;
- }
-
- private List<Slice> decodeKVs(IIKeyValueCodec codec,
- List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
- List<Slice> slices = Lists.newArrayList();
- for (Slice slice : codec.decodeKeyValue(kvs)) {
- slices.add(slice);
- }
- return slices;
- }
-
- private List<TableRecord> iterateRecords(List<Slice> slices) {
- List<TableRecord> records = Lists.newArrayList();
- for (Slice slice : slices) {
- for (RawTableRecord rec : slice) {
- records.add(new TableRecord((RawTableRecord) rec.clone(), info));
- }
- }
- return records;
- }
-
- private void dump(Iterable<TableRecord> records) {
- for (TableRecord rec : records) {
- System.out.println(rec.toString());
- }
- }
+ IIInstance ii;
+ TableRecordInfo info;
+
+ @Before
+ public void setUp() throws Exception {
+ this.createTestMetadata();
+ this.ii = IIManager.getInstance(getTestConfig()).getII("test_kylin_ii");
+ this.info = new TableRecordInfo(ii.getFirstSegment());
+ }
+
+ @After
+ public void after() throws Exception {
+ this.cleanupTestMetadata();
+ }
+
+ @Test
+ @Ignore
+ public void testBitMapContainer() {
+ // create container
+ BitMapContainer container = new BitMapContainer(info.getDigest(), 0);
+ Dictionary<String> dict = info.dict(0);
+ for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+ container.append(v);
+ }
+ container.append(Dictionary.NULL_ID[dict.getSizeOfId()]);
+ container.closeForChange();
+
+ // copy by serialization
+ List<ImmutableBytesWritable> bytes = container.toBytes();
+ BitMapContainer container2 = new BitMapContainer(info.getDigest(), 0);
+ container2.fromBytes(bytes);
+
+ // check the copy
+ int i = 0;
+ for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+ int value = container2.getValueIntAt(i++);
+ assertEquals(v, value);
+ }
+ assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], container2.getValueIntAt(i++));
+ assertEquals(container, container2);
+ }
+
+ @Test
+ public void testCompressedValueContainer() {
+ // create container
+ CompressedValueContainer container = new CompressedValueContainer(info.getDigest(), 0, 500);
+ Dictionary<String> dict = info.dict(0);
+
+ byte[] buf = new byte[dict.getSizeOfId()];
+ ImmutableBytesWritable bytes = new ImmutableBytesWritable(buf);
+
+ for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+ BytesUtil.writeUnsigned(v, buf, 0, dict.getSizeOfId());
+ container.append(bytes);
+ }
+ BytesUtil.writeUnsigned(Dictionary.NULL_ID[dict.getSizeOfId()], buf, 0, dict.getSizeOfId());
+ container.append(bytes);
+ container.closeForChange();
+
+ // copy by serialization
+ ImmutableBytesWritable copy = container.toBytes();
+ CompressedValueContainer container2 = new CompressedValueContainer(info.getDigest(), 0, 500);
+ container2.fromBytes(copy);
+
+ // check the copy
+ int i = 0;
+ for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+ container2.getValueAt(i++, bytes);
+ int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(), bytes.getLength());
+ assertEquals(v, value);
+ }
+ container2.getValueAt(i++, bytes);
+ int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(), bytes.getLength());
+ assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], value);
+ assertEquals(container, container2);
+ }
+
+ @Test
+ public void testCodec() throws IOException {
+ List<TableRecord> records = loadRecordsSorted();
+ System.out.println(records.size() + " records");
+ List<Slice> slices = buildTimeSlices(records);
+ System.out.println(slices.size() + " slices");
+
+ IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
+ List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = encodeKVs(codec, slices);
+ System.out.println(kvs.size() + " KV pairs");
+
+ List<Slice> slicesCopy = decodeKVs(codec, kvs);
+ assertEquals(slices, slicesCopy);
+
+ List<TableRecord> recordsCopy = iterateRecords(slicesCopy);
+ assertEquals(new HashSet<TableRecord>(records), new HashSet<TableRecord>(recordsCopy));
+ dump(recordsCopy);
+ }
+
+ private List<TableRecord> loadRecordsSorted() throws IOException {
+ File file = new File(LOCALMETA_TEST_DATA, "data/flatten_data_for_ii.csv");
+ FileInputStream in = new FileInputStream(file);
+ List<String> lines = IOUtils.readLines(in, "UTF-8");
+ in.close();
+
+ List<TableRecord> records = Lists.newArrayList();
+ for (String line : lines) {
+ String[] fields = line.split(",");
+ TableRecord rec = info.createTableRecord();
+ for (int col = 0; col < fields.length; col++) {
+ rec.setValueString(col, fields[col]);
+ }
+ records.add(rec);
+ }
+
+ Collections.sort(records, new Comparator<TableRecord>() {
+ @Override
+ public int compare(TableRecord a, TableRecord b) {
+ long x = a.getTimestamp() - b.getTimestamp();
+ if (x > 0)
+ return 1;
+ else if (x == 0)
+ return 0;
+ else
+ return -1;
+ }
+ });
+
+ return records;
+ }
+
+ private List<Slice> buildTimeSlices(List<TableRecord> records) throws IOException {
+ ShardingSliceBuilder builder = new ShardingSliceBuilder(info);
+ List<Slice> slices = Lists.newArrayList();
+ for (TableRecord rec : records) {
+ Slice slice = builder.append(rec);
+ if (slice != null)
+ slices.add(slice);
+ }
+ List<Slice> finals = builder.close();
+ slices.addAll(finals);
+
+ Collections.sort(slices);
+ return slices;
+ }
+
+ private List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKVs(IIKeyValueCodec codec, List<Slice> slices) {
+
+ List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = Lists.newArrayList();
+ for (Slice slice : slices) {
+ kvs.addAll(codec.encodeKeyValue(slice));
+ }
+ return kvs;
+ }
+
+ private List<Slice> decodeKVs(IIKeyValueCodec codec, List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
+ List<Slice> slices = Lists.newArrayList();
+ for (Slice slice : codec.decodeKeyValue(kvs)) {
+ slices.add(slice);
+ }
+ return slices;
+ }
+
+ private List<TableRecord> iterateRecords(List<Slice> slices) {
+ List<TableRecord> records = Lists.newArrayList();
+ for (Slice slice : slices) {
+ for (RawTableRecord rec : slice) {
+ records.add(new TableRecord((RawTableRecord) rec.clone(), info));
+ }
+ }
+ return records;
+ }
+
+ private void dump(Iterable<TableRecord> records) {
+ for (TableRecord rec : records) {
+ System.out.println(rec.toString());
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
index 4cc0445..f9d840a 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
@@ -77,7 +77,7 @@ public class Driver extends UnregisteredDriver {
throw new RuntimeException("Error occurred while registering JDBC driver " + Driver.class.getName() + ": " + e.toString());
}
}
-
+
@Override
protected String getConnectStringPrefix() {
return CONNECT_STRING_PREFIX;
@@ -106,35 +106,35 @@ public class Driver extends UnregisteredDriver {
return new KylinMeta((KylinConnection) connection);
}
-// @Override
-// protected Handler createHandler() {
-// return new HandlerImpl() {
-// @Override
-// public void onConnectionInit(AvaticaConnection connection) throws SQLException {
-// KylinConnection conn = (KylinConnection) connection;
-// RemoteClient runner = ((KylinJdbcFactory) factory).newRemoteClient(conn);
-// try {
-// runner.connect();
-// conn.setMetaProject(runner.getMetadata(conn.getProject()));
-// logger.debug("Connection inited.");
-// } catch (ConnectionException e) {
-// logger.error(e.getLocalizedMessage(), e);
-// throw new SQLException(e.getLocalizedMessage());
-// }
-// }
-//
-// public void onConnectionClose(AvaticaConnection connection) {
-// logger.debug("Connection closed.");
-// }
-//
-// public void onStatementExecute(AvaticaStatement statement, ResultSink resultSink) {
-// logger.debug("statement executed.");
-// }
-//
-// public void onStatementClose(AvaticaStatement statement) {
-// logger.debug("statement closed.");
-// }
-// };
-// }
+ // @Override
+ // protected Handler createHandler() {
+ // return new HandlerImpl() {
+ // @Override
+ // public void onConnectionInit(AvaticaConnection connection) throws SQLException {
+ // KylinConnection conn = (KylinConnection) connection;
+ // RemoteClient runner = ((KylinJdbcFactory) factory).newRemoteClient(conn);
+ // try {
+ // runner.connect();
+ // conn.setMetaProject(runner.getMetadata(conn.getProject()));
+ // logger.debug("Connection inited.");
+ // } catch (ConnectionException e) {
+ // logger.error(e.getLocalizedMessage(), e);
+ // throw new SQLException(e.getLocalizedMessage());
+ // }
+ // }
+ //
+ // public void onConnectionClose(AvaticaConnection connection) {
+ // logger.debug("Connection closed.");
+ // }
+ //
+ // public void onStatementExecute(AvaticaStatement statement, ResultSink resultSink) {
+ // logger.debug("statement executed.");
+ // }
+ //
+ // public void onStatementClose(AvaticaStatement statement) {
+ // logger.debug("statement closed.");
+ // }
+ // };
+ // }
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
index 8f6c42f..9e74f14 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
@@ -146,7 +146,7 @@ public class KylinClient implements IRemoteClient {
}
list.add(schema);
}
-
+
List<KMetaCatalog> result = new ArrayList<KMetaCatalog>();
for (List<KMetaSchema> catSchemas : catalogMap.values()) {
String catalog = catSchemas.get(0).tableCatalog;
@@ -166,7 +166,7 @@ public class KylinClient implements IRemoteClient {
}
list.add(table);
}
-
+
List<KMetaSchema> result = new ArrayList<KMetaSchema>();
for (List<KMetaTable> schemaTables : schemaMap.values()) {
String catalog = schemaTables.get(0).tableCat;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
index 86b2ff8..a9762da 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
@@ -48,7 +48,7 @@ public class KylinConnection extends AvaticaConnection {
protected KylinConnection(UnregisteredDriver driver, KylinJdbcFactory factory, String url, Properties info) throws SQLException {
super(driver, factory, url, info);
-
+
String odbcUrl = url;
odbcUrl = odbcUrl.replace(Driver.CONNECT_STRING_PREFIX + "//", "");
String[] temps = odbcUrl.split("/");
@@ -59,7 +59,7 @@ public class KylinConnection extends AvaticaConnection {
this.project = temps[1];
logger.debug("Kylin base url " + this.baseUrl + ", project name " + this.project);
-
+
this.remoteClient = factory.newRemoteClient(this);
try {
@@ -68,19 +68,19 @@ public class KylinConnection extends AvaticaConnection {
throw new SQLException(e);
}
}
-
+
String getBaseUrl() {
return baseUrl;
}
-
+
String getProject() {
return project;
}
-
+
Properties getConnectionProperties() {
return info;
}
-
+
@Override
public AvaticaStatement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return super.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
@@ -91,7 +91,7 @@ public class KylinConnection extends AvaticaConnection {
Meta.Signature sig = mockPreparedSignature(sql);
return factory().newPreparedStatement(this, null, sig, resultSetType, resultSetConcurrency, resultSetHoldability);
}
-
+
// TODO add restful API to prepare SQL, get back expected ResultSetMetaData
Signature mockPreparedSignature(String sql) {
List<AvaticaParameter> params = new ArrayList<AvaticaParameter>();
@@ -103,8 +103,8 @@ public class KylinConnection extends AvaticaConnection {
}
ArrayList<ColumnMetaData> columns = new ArrayList<ColumnMetaData>();
- Map<String, Object> internalParams = Collections.<String, Object>emptyMap();
-
+ Map<String, Object> internalParams = Collections.<String, Object> emptyMap();
+
return new Meta.Signature(columns, sql, params, internalParams, CursorFactory.ARRAY);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
index 433262f..368fe96 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
@@ -73,7 +73,7 @@ public class KylinMeta extends MetaImpl {
throw new RuntimeException(e);
}
}
-
+
@Override
public void closeStatement(StatementHandle h) {
// nothing to do
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
index 3320415..b6ac261 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
@@ -40,19 +40,19 @@ public class KylinResultSet extends AvaticaResultSet {
@Override
protected AvaticaResultSet execute() throws SQLException {
-
+
// skip execution if result is already there (case of meta data lookup)
if (this.firstFrame != null) {
return super.execute();
}
-
+
String sql = signature.sql;
List<AvaticaParameter> params = signature.parameters;
List<Object> paramValues = null;
if (params != null && params.size() > 0) {
paramValues = ((KylinPreparedStatement) statement).getParameterValues2();
}
-
+
IRemoteClient client = ((KylinConnection) statement.connection).getRemoteClient();
QueryResult result;
try {
@@ -60,14 +60,12 @@ public class KylinResultSet extends AvaticaResultSet {
} catch (IOException e) {
throw new SQLException(e);
}
-
+
columnMetaDataList.clear();
columnMetaDataList.addAll(result.columnMeta);
-
+
cursor = MetaImpl.createCursor(signature.cursorFactory, result.iterable);
return super.execute2(cursor, columnMetaDataList);
}
-
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
index 3a2ef75..9d1c29b 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
@@ -18,7 +18,7 @@
package org.apache.kylin.jdbc;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -28,7 +28,6 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
-import org.apache.kylin.jdbc.Driver;
import org.junit.Ignore;
import org.junit.Test;
@@ -130,7 +129,7 @@ public class DriverTest {
info.put("user", "ADMIN");
info.put("password", "KYLIN");
Connection conn = driver.connect("jdbc:kylin://localhost:7070/default", info);
-
+
PreparedStatement state = conn.prepareStatement("select cal_dt, count(*) from test_kylin_fact where seller_id=? group by cal_dt");
state.setLong(1, 10000001);
ResultSet resultSet = state.executeQuery();
@@ -142,7 +141,7 @@ public class DriverTest {
private void printResultSet(ResultSet rs) throws SQLException {
ResultSetMetaData meta = rs.getMetaData();
System.out.println("Data:");
-
+
while (rs.next()) {
StringBuilder buf = new StringBuilder();
buf.append("[");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
index 0dcd624..d85ccae 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
@@ -26,8 +26,6 @@ import java.util.List;
import org.apache.calcite.avatica.AvaticaParameter;
import org.apache.calcite.avatica.ColumnMetaData;
import org.apache.calcite.avatica.ColumnMetaData.Rep;
-import org.apache.kylin.jdbc.IRemoteClient;
-import org.apache.kylin.jdbc.KylinConnection;
import org.apache.kylin.jdbc.KylinMeta.KMetaCatalog;
import org.apache.kylin.jdbc.KylinMeta.KMetaColumn;
import org.apache.kylin.jdbc.KylinMeta.KMetaProject;
@@ -48,7 +46,7 @@ public class DummyClient implements IRemoteClient {
@Override
public KMetaProject retrieveMetaData(String project) throws IOException {
List<KMetaColumn> columns = new ArrayList<KMetaColumn>();
-
+
KMetaTable table = new KMetaTable("dummy", "dummy", "dummy", "dummy", columns);
List<KMetaTable> tables = new ArrayList<KMetaTable>();
tables.add(table);
@@ -56,11 +54,11 @@ public class DummyClient implements IRemoteClient {
KMetaSchema schema = new KMetaSchema("dummy", "dummy", tables);
List<KMetaSchema> schemas = new ArrayList<KMetaSchema>();
schemas.add(schema);
-
+
KMetaCatalog catalog = new KMetaCatalog("dummay", schemas);
List<KMetaCatalog> catalogs = new ArrayList<KMetaCatalog>();
catalogs.add(catalog);
-
+
return new KMetaProject(project, catalogs);
}
@@ -69,7 +67,7 @@ public class DummyClient implements IRemoteClient {
List<Object> data = new ArrayList<Object>();
Object[] row = new Object[] { "foo", "bar", "tool" };
data.add(row);
-
+
List<ColumnMetaData> meta = new ArrayList<ColumnMetaData>();
meta.add(ColumnMetaData.dummy(ColumnMetaData.scalar(Types.VARCHAR, "varchar", Rep.STRING), true));
meta.add(ColumnMetaData.dummy(ColumnMetaData.scalar(Types.VARCHAR, "varchar", Rep.STRING), true));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
index 43c7b75..35e82d5 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
@@ -18,8 +18,6 @@
package org.apache.kylin.jdbc;
-import org.apache.kylin.jdbc.Driver;
-
/**
*/
public class DummyDriver extends Driver {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
index 578e594..e5f24b8 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
@@ -18,14 +18,10 @@
package org.apache.kylin.jdbc;
-import org.apache.kylin.jdbc.IRemoteClient;
-import org.apache.kylin.jdbc.KylinConnection;
-import org.apache.kylin.jdbc.KylinJdbcFactory;
-
/**
*/
public class DummyJdbcFactory extends KylinJdbcFactory {
-
+
public DummyJdbcFactory() {
super(4, 1);
}
@@ -35,5 +31,4 @@ public class DummyJdbcFactory extends KylinJdbcFactory {
return new DummyClient(conn);
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java b/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
index 2ebc012..4f7a60d 100644
--- a/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
@@ -23,8 +23,8 @@ import java.io.IOException;
import org.apache.kylin.job.common.ShellExecutable;
import org.apache.kylin.job.constant.ExecutableConstants;
import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.hadoop.hive.IJoinedFlatTableDesc;
import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.hadoop.hive.IJoinedFlatTableDesc;
public abstract class AbstractJobBuilder {
@@ -32,7 +32,7 @@ public abstract class AbstractJobBuilder {
protected JobEngineConfig engineConfig;
protected String submitter;
-
+
public AbstractJobBuilder(JobEngineConfig engineConfig) {
this.engineConfig = engineConfig;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
index 317e41c..28c9ded 100644
--- a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
+++ b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
@@ -18,9 +18,16 @@
package org.apache.kylin.job;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -48,25 +55,32 @@ import org.apache.kylin.job.constant.JobStepStatusEnum;
import org.apache.kylin.job.cube.CubingJob;
import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.ExecutableState;
-import org.apache.kylin.job.hadoop.cube.*;
+import org.apache.kylin.job.hadoop.cube.BaseCuboidJob;
+import org.apache.kylin.job.hadoop.cube.CubeHFileJob;
+import org.apache.kylin.job.hadoop.cube.FactDistinctColumnsJob;
+import org.apache.kylin.job.hadoop.cube.MergeCuboidJob;
+import org.apache.kylin.job.hadoop.cube.NDCuboidJob;
+import org.apache.kylin.job.hadoop.cube.RangeKeyDistributionJob;
import org.apache.kylin.job.hadoop.dict.CreateDictionaryJob;
import org.apache.kylin.job.hadoop.hbase.BulkLoadJob;
import org.apache.kylin.job.hadoop.hbase.CreateHTableJob;
import org.apache.kylin.job.manager.ExecutableManager;
import org.apache.kylin.metadata.MetadataConstants;
import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.*;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.JoinDesc;
+import org.apache.kylin.metadata.model.LookupDesc;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.metadata.project.RealizationEntry;
import org.apache.kylin.metadata.realization.RealizationStatusEnum;
import org.apache.kylin.metadata.realization.RealizationType;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
/**
* This is the utility class to migrate the Kylin metadata format from v1 to v2;
@@ -88,7 +102,6 @@ public class CubeMetadataUpgrade {
System.setProperty(KylinConfig.KYLIN_CONF, newMetadataUrl);
KylinConfig.getInstanceFromEnv().setMetadataUrl(newMetadataUrl);
-
config = KylinConfig.getInstanceFromEnv();
store = getStore();
}
@@ -161,7 +174,6 @@ public class CubeMetadataUpgrade {
e.printStackTrace();
}
-
if (toDeleteResource.size() > 0) {
logger.info("The following resources is never needed, will be dropped, number :" + toDeleteResource.size());
@@ -322,7 +334,7 @@ public class CubeMetadataUpgrade {
if (count == 0) {
errorMsgs.add("No table definition for '" + table + "'; any project, cube refers it should remove the reference;");
}
-
+
return null;
}
@@ -398,7 +410,6 @@ public class CubeMetadataUpgrade {
newInstance.setStatus(RealizationStatusEnum.READY);
}
-
List<org.apache.kylin.cube.CubeSegment> newSegments = Lists.newArrayList();
// segment
for (CubeSegment segment : cubeInstance.getSegments()) {
@@ -510,12 +521,10 @@ public class CubeMetadataUpgrade {
return MetadataManager.getInstance(config);
}
-
private CubeDescManager getCubeDescManager() {
return CubeDescManager.getInstance(config);
}
-
private ResourceStore getStore() {
return ResourceStore.getStore(config);
}
@@ -531,7 +540,7 @@ public class CubeMetadataUpgrade {
upgradeJobInstance(path);
}
- for (String folder : new String[]{ResourceStore.JOB_PATH_ROOT, ResourceStore.JOB_OUTPUT_PATH_ROOT}) {
+ for (String folder : new String[] { ResourceStore.JOB_PATH_ROOT, ResourceStore.JOB_OUTPUT_PATH_ROOT }) {
for (String res : getStore().listResources(folder)) {
getStore().deleteResource(res);
}
@@ -546,38 +555,38 @@ public class CubeMetadataUpgrade {
private ExecutableState parseState(JobStatusEnum state) {
switch (state) {
- case NEW:
- case PENDING:
- return ExecutableState.READY;
- case RUNNING:
- return ExecutableState.RUNNING;
- case FINISHED:
- return ExecutableState.SUCCEED;
- case ERROR:
- return ExecutableState.ERROR;
- case DISCARDED:
- return ExecutableState.DISCARDED;
- default:
- return ExecutableState.DISCARDED;
+ case NEW:
+ case PENDING:
+ return ExecutableState.READY;
+ case RUNNING:
+ return ExecutableState.RUNNING;
+ case FINISHED:
+ return ExecutableState.SUCCEED;
+ case ERROR:
+ return ExecutableState.ERROR;
+ case DISCARDED:
+ return ExecutableState.DISCARDED;
+ default:
+ return ExecutableState.DISCARDED;
}
}
private ExecutableState parseState(JobStepStatusEnum state) {
switch (state) {
- case NEW:
- case PENDING:
- case WAITING:
- return ExecutableState.READY;
- case RUNNING:
- return ExecutableState.RUNNING;
- case FINISHED:
- return ExecutableState.SUCCEED;
- case ERROR:
- return ExecutableState.ERROR;
- case DISCARDED:
- return ExecutableState.DISCARDED;
- default:
- return ExecutableState.DISCARDED;
+ case NEW:
+ case PENDING:
+ case WAITING:
+ return ExecutableState.READY;
+ case RUNNING:
+ return ExecutableState.RUNNING;
+ case FINISHED:
+ return ExecutableState.SUCCEED;
+ case ERROR:
+ return ExecutableState.ERROR;
+ case DISCARDED:
+ return ExecutableState.DISCARDED;
+ default:
+ return ExecutableState.DISCARDED;
}
}
@@ -635,84 +644,83 @@ public class CubeMetadataUpgrade {
private AbstractExecutable parseToExecutable(JobInstance.JobStep step) {
AbstractExecutable result;
switch (step.getCmdType()) {
- case SHELL_CMD_HADOOP: {
- ShellExecutable executable = new ShellExecutable();
- executable.setCmd(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_FACTDISTINCT: {
- MapReduceExecutable executable = new MapReduceExecutable();
- executable.setMapReduceJobClass(FactDistinctColumnsJob.class);
- executable.setMapReduceParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_BASECUBOID: {
- MapReduceExecutable executable = new MapReduceExecutable();
- executable.setMapReduceJobClass(BaseCuboidJob.class);
- executable.setMapReduceParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_NDCUBOID: {
- MapReduceExecutable executable = new MapReduceExecutable();
- executable.setMapReduceJobClass(NDCuboidJob.class);
- executable.setMapReduceParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_RANGEKEYDISTRIBUTION: {
- MapReduceExecutable executable = new MapReduceExecutable();
- executable.setMapReduceJobClass(RangeKeyDistributionJob.class);
- executable.setMapReduceParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_CONVERTHFILE: {
- MapReduceExecutable executable = new MapReduceExecutable();
- executable.setMapReduceJobClass(CubeHFileJob.class);
- executable.setMapReduceParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_MERGECUBOID: {
- MapReduceExecutable executable = new MapReduceExecutable();
- executable.setMapReduceJobClass(MergeCuboidJob.class);
- executable.setMapReduceParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_NO_MR_DICTIONARY: {
- HadoopShellExecutable executable = new HadoopShellExecutable();
- executable.setName(ExecutableConstants.STEP_NAME_BUILD_DICTIONARY);
- executable.setJobClass(CreateDictionaryJob.class);
- executable.setJobParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADDOP_NO_MR_CREATEHTABLE: {
- HadoopShellExecutable executable = new HadoopShellExecutable();
- executable.setJobClass(CreateHTableJob.class);
- executable.setJobParams(step.getExecCmd());
- result = executable;
- break;
- }
- case JAVA_CMD_HADOOP_NO_MR_BULKLOAD: {
- HadoopShellExecutable executable = new HadoopShellExecutable();
- executable.setJobClass(BulkLoadJob.class);
- executable.setJobParams(step.getExecCmd());
- result = executable;
- break;
- }
- default:
- throw new RuntimeException("invalid step type:" + step.getCmdType());
+ case SHELL_CMD_HADOOP: {
+ ShellExecutable executable = new ShellExecutable();
+ executable.setCmd(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_FACTDISTINCT: {
+ MapReduceExecutable executable = new MapReduceExecutable();
+ executable.setMapReduceJobClass(FactDistinctColumnsJob.class);
+ executable.setMapReduceParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_BASECUBOID: {
+ MapReduceExecutable executable = new MapReduceExecutable();
+ executable.setMapReduceJobClass(BaseCuboidJob.class);
+ executable.setMapReduceParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_NDCUBOID: {
+ MapReduceExecutable executable = new MapReduceExecutable();
+ executable.setMapReduceJobClass(NDCuboidJob.class);
+ executable.setMapReduceParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_RANGEKEYDISTRIBUTION: {
+ MapReduceExecutable executable = new MapReduceExecutable();
+ executable.setMapReduceJobClass(RangeKeyDistributionJob.class);
+ executable.setMapReduceParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_CONVERTHFILE: {
+ MapReduceExecutable executable = new MapReduceExecutable();
+ executable.setMapReduceJobClass(CubeHFileJob.class);
+ executable.setMapReduceParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_MERGECUBOID: {
+ MapReduceExecutable executable = new MapReduceExecutable();
+ executable.setMapReduceJobClass(MergeCuboidJob.class);
+ executable.setMapReduceParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_NO_MR_DICTIONARY: {
+ HadoopShellExecutable executable = new HadoopShellExecutable();
+ executable.setName(ExecutableConstants.STEP_NAME_BUILD_DICTIONARY);
+ executable.setJobClass(CreateDictionaryJob.class);
+ executable.setJobParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADDOP_NO_MR_CREATEHTABLE: {
+ HadoopShellExecutable executable = new HadoopShellExecutable();
+ executable.setJobClass(CreateHTableJob.class);
+ executable.setJobParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ case JAVA_CMD_HADOOP_NO_MR_BULKLOAD: {
+ HadoopShellExecutable executable = new HadoopShellExecutable();
+ executable.setJobClass(BulkLoadJob.class);
+ executable.setJobParams(step.getExecCmd());
+ result = executable;
+ break;
+ }
+ default:
+ throw new RuntimeException("invalid step type:" + step.getCmdType());
}
result.setName(step.getName());
return result;
}
-
public static void main(String[] args) {
if (!(args != null && (args.length == 1 || args.length == 2))) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/JobInstance.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/JobInstance.java b/job/src/main/java/org/apache/kylin/job/JobInstance.java
index e7f5772..80a5d78 100644
--- a/job/src/main/java/org/apache/kylin/job/JobInstance.java
+++ b/job/src/main/java/org/apache/kylin/job/JobInstance.java
@@ -22,6 +22,13 @@ import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.cube.model.CubeBuildTypeEnum;
+import org.apache.kylin.job.constant.JobStatusEnum;
+import org.apache.kylin.job.constant.JobStepCmdTypeEnum;
+import org.apache.kylin.job.constant.JobStepStatusEnum;
+import org.apache.kylin.job.engine.JobEngineConfig;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonBackReference;
@@ -29,12 +36,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Lists;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.cube.model.CubeBuildTypeEnum;
-import org.apache.kylin.job.constant.JobStatusEnum;
-import org.apache.kylin.job.constant.JobStepCmdTypeEnum;
-import org.apache.kylin.job.constant.JobStepStatusEnum;
-import org.apache.kylin.job.engine.JobEngineConfig;
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class JobInstance extends RootPersistentEntity implements Comparable<JobInstance> {
@@ -122,48 +123,48 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
this.status = status;
}
-// @JsonProperty("job_status")
-// public JobStatusEnum getStatus() {
-//
-// // JobStatusEnum finalJobStatus;
-// int compositResult = 0;
-//
-// // if steps status are all NEW, then job status is NEW
-// // if steps status are all FINISHED, then job status is FINISHED
-// // if steps status are all PENDING, then job status is PENDING
-// // if steps status are FINISHED and PENDING, the job status is PENDING
-// // if one of steps status is RUNNING, then job status is RUNNING
-// // if one of steps status is ERROR, then job status is ERROR
-// // if one of steps status is KILLED, then job status is KILLED
-// // default status is RUNNING
-//
-// System.out.println(this.getName());
-//
-// for (JobStep step : this.getSteps()) {
-// //System.out.println("step: " + step.getSequenceID() + "'s status:" + step.getStatus());
-// compositResult = compositResult | step.getStatus().getCode();
-// }
-//
-// System.out.println();
-//
-// if (compositResult == JobStatusEnum.FINISHED.getCode()) {
-// return JobStatusEnum.FINISHED;
-// } else if (compositResult == JobStatusEnum.NEW.getCode()) {
-// return JobStatusEnum.NEW;
-// } else if (compositResult == JobStatusEnum.PENDING.getCode()) {
-// return JobStatusEnum.PENDING;
-// } else if (compositResult == (JobStatusEnum.FINISHED.getCode() | JobStatusEnum.PENDING.getCode())) {
-// return JobStatusEnum.PENDING;
-// } else if ((compositResult & JobStatusEnum.ERROR.getCode()) == JobStatusEnum.ERROR.getCode()) {
-// return JobStatusEnum.ERROR;
-// } else if ((compositResult & JobStatusEnum.DISCARDED.getCode()) == JobStatusEnum.DISCARDED.getCode()) {
-// return JobStatusEnum.DISCARDED;
-// } else if ((compositResult & JobStatusEnum.RUNNING.getCode()) == JobStatusEnum.RUNNING.getCode()) {
-// return JobStatusEnum.RUNNING;
-// }
-//
-// return JobStatusEnum.RUNNING;
-// }
+ // @JsonProperty("job_status")
+ // public JobStatusEnum getStatus() {
+ //
+ // // JobStatusEnum finalJobStatus;
+ // int compositResult = 0;
+ //
+ // // if steps status are all NEW, then job status is NEW
+ // // if steps status are all FINISHED, then job status is FINISHED
+ // // if steps status are all PENDING, then job status is PENDING
+ // // if steps status are FINISHED and PENDING, the job status is PENDING
+ // // if one of steps status is RUNNING, then job status is RUNNING
+ // // if one of steps status is ERROR, then job status is ERROR
+ // // if one of steps status is KILLED, then job status is KILLED
+ // // default status is RUNNING
+ //
+ // System.out.println(this.getName());
+ //
+ // for (JobStep step : this.getSteps()) {
+ // //System.out.println("step: " + step.getSequenceID() + "'s status:" + step.getStatus());
+ // compositResult = compositResult | step.getStatus().getCode();
+ // }
+ //
+ // System.out.println();
+ //
+ // if (compositResult == JobStatusEnum.FINISHED.getCode()) {
+ // return JobStatusEnum.FINISHED;
+ // } else if (compositResult == JobStatusEnum.NEW.getCode()) {
+ // return JobStatusEnum.NEW;
+ // } else if (compositResult == JobStatusEnum.PENDING.getCode()) {
+ // return JobStatusEnum.PENDING;
+ // } else if (compositResult == (JobStatusEnum.FINISHED.getCode() | JobStatusEnum.PENDING.getCode())) {
+ // return JobStatusEnum.PENDING;
+ // } else if ((compositResult & JobStatusEnum.ERROR.getCode()) == JobStatusEnum.ERROR.getCode()) {
+ // return JobStatusEnum.ERROR;
+ // } else if ((compositResult & JobStatusEnum.DISCARDED.getCode()) == JobStatusEnum.DISCARDED.getCode()) {
+ // return JobStatusEnum.DISCARDED;
+ // } else if ((compositResult & JobStatusEnum.RUNNING.getCode()) == JobStatusEnum.RUNNING.getCode()) {
+ // return JobStatusEnum.RUNNING;
+ // }
+ //
+ // return JobStatusEnum.RUNNING;
+ // }
public String getName() {
return name;
@@ -273,7 +274,6 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
return null;
}
-
public String getSubmitter() {
return submitter;
}
@@ -282,15 +282,12 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
this.submitter = submitter;
}
-
-
-
@JsonIgnoreProperties(ignoreUnknown = true)
public static class JobStep implements Comparable<JobStep> {
@JsonBackReference
private JobInstance jobInstance;
-
+
@JsonProperty("id")
private String id;
@@ -372,8 +369,6 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
public void setStatus(JobStepStatusEnum status) {
this.status = status;
}
-
-
public String getId() {
return id;
@@ -498,7 +493,7 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
@Override
public int compareTo(JobInstance o) {
- return o.lastModified<this.lastModified?-1:o.lastModified>this.lastModified?1:0;
+ return o.lastModified < this.lastModified ? -1 : o.lastModified > this.lastModified ? 1 : 0;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java b/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
index db6dd0e..d08e046 100644
--- a/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
+++ b/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
@@ -150,7 +150,7 @@ public class JoinedFlatTable {
tableAliasMap.put(dataModelDesc.getFactTable().toUpperCase(), FACT_TABLE_ALIAS);
int i = 1;
- for (LookupDesc lookupDesc: dataModelDesc.getLookups()) {
+ for (LookupDesc lookupDesc : dataModelDesc.getLookups()) {
JoinDesc join = lookupDesc.getJoin();
if (join != null) {
tableAliasMap.put(lookupDesc.getTable().toUpperCase(), LOOKUP_TABLE_ALAIS_PREFIX + i);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
index 9f46f39..cc9bde5 100644
--- a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
+++ b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
@@ -18,15 +18,19 @@
package org.apache.kylin.job.cmd;
+import java.io.IOException;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.FutureTask;
+
import org.apache.kylin.common.util.CliCommandExecutor;
import org.apache.kylin.job.constant.JobStepStatusEnum;
import org.apache.kylin.job.exception.JobException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.concurrent.*;
-
/**
* @author xjiang
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
index ebcad47..aaf1ba8 100644
--- a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
+++ b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
@@ -18,11 +18,10 @@
package org.apache.kylin.job.cmd;
+import org.apache.kylin.job.constant.JobStepStatusEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.kylin.job.constant.JobStepStatusEnum;
-
/**
* @author xjiang
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java b/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
index 0db71a6..83ada37 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
@@ -18,6 +18,10 @@
package org.apache.kylin.job.common;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.hadoop.mapreduce.Counters;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.TaskCounter;
@@ -25,10 +29,6 @@ import org.apache.kylin.job.constant.ExecutableConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java b/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
index 371e078..c6e6f28 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
@@ -23,15 +23,14 @@ import java.io.StringWriter;
import java.lang.reflect.Constructor;
import org.apache.hadoop.util.ToolRunner;
-
-import com.google.common.base.Preconditions;
-
import org.apache.kylin.common.util.ClassUtil;
import org.apache.kylin.job.exception.ExecuteException;
+import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecuteResult;
import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.execution.AbstractExecutable;
+
+import com.google.common.base.Preconditions;
/**
* Created by qianzhou on 12/26/14.
@@ -69,7 +68,7 @@ public class HadoopShellExecutable extends AbstractExecutable {
result = 2;
}
log.append("result code:").append(result);
- return result == 0 ? new ExecuteResult(ExecuteResult.State.SUCCEED, log.toString()):new ExecuteResult(ExecuteResult.State.FAILED, log.toString());
+ return result == 0 ? new ExecuteResult(ExecuteResult.State.SUCCEED, log.toString()) : new ExecuteResult(ExecuteResult.State.FAILED, log.toString());
} catch (ReflectiveOperationException e) {
logger.error("error getMapReduceJobClass, class name:" + getParam(KEY_MR_JOB), e);
return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java b/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
index 9cad096..860956d 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
@@ -23,6 +23,8 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.util.HiveClient;
+import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.job.exception.ExecuteException;
import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.ExecutableContext;
@@ -31,8 +33,6 @@ import org.datanucleus.store.types.backed.HashMap;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.collect.Lists;
-import org.apache.kylin.common.util.HiveClient;
-import org.apache.kylin.common.util.JsonUtil;
/**
* Created by qianzhou on 1/15/15.
@@ -51,8 +51,8 @@ public class HqlExecutable extends AbstractExecutable {
try {
Map<String, String> configMap = getConfiguration();
HiveClient hiveClient = new HiveClient(configMap);
-
- for (String hql: getHqls()) {
+
+ for (String hql : getHqls()) {
hiveClient.executeHQL(hql);
}
return new ExecuteResult(ExecuteResult.State.SUCCEED);
@@ -61,9 +61,9 @@ public class HqlExecutable extends AbstractExecutable {
return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());
}
}
-
+
public void setConfiguration(Map<String, String> configMap) {
- if(configMap != null) {
+ if (configMap != null) {
String configStr = "";
try {
configStr = JsonUtil.writeValueAsString(configMap);
@@ -74,22 +74,21 @@ public class HqlExecutable extends AbstractExecutable {
}
}
-
@SuppressWarnings("unchecked")
private Map<String, String> getConfiguration() {
String configStr = getParam(HIVE_CONFIG);
Map<String, String> result = null;
- if(configStr != null) {
+ if (configStr != null) {
try {
result = JsonUtil.readValue(configStr, HashMap.class);
} catch (Exception e) {
e.printStackTrace();
}
}
-
+
return result;
}
-
+
public void setHqls(List<String> hqls) {
setParam(HQL, StringUtils.join(hqls, ";"));
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java b/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
index 4bc8dac..34a9524 100644
--- a/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
@@ -23,16 +23,16 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.kylin.common.util.Pair;
-
-import com.google.common.collect.Maps;
import org.apache.kylin.common.util.Logger;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.job.constant.ExecutableConstants;
import org.apache.kylin.job.exception.ExecuteException;
import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecuteResult;
+import com.google.common.collect.Maps;
+
/**
* Created by qianzhou on 12/26/14.
*/
@@ -51,7 +51,7 @@ public class ShellExecutable extends AbstractExecutable {
final ShellExecutableLogger logger = new ShellExecutableLogger();
final Pair<Integer, String> result = context.getConfig().getCliCommandExecutor().execute(getCmd(), logger);
executableManager.addJobInfo(getId(), logger.getInfo());
- return new ExecuteResult(result.getFirst() == 0? ExecuteResult.State.SUCCEED: ExecuteResult.State.FAILED, result.getSecond());
+ return new ExecuteResult(result.getFirst() == 0 ? ExecuteResult.State.SUCCEED : ExecuteResult.State.FAILED, result.getSecond());
} catch (IOException e) {
logger.error("job:" + getId() + " execute finished with exception", e);
return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java b/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
index 86a2e40..a9abc78 100644
--- a/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
+++ b/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
@@ -23,7 +23,8 @@ package org.apache.kylin.job.constant;
*/
public final class ExecutableConstants {
- private ExecutableConstants(){}
+ private ExecutableConstants() {
+ }
public static final String YARN_APP_ID = "yarn_application_id";
@@ -34,9 +35,6 @@ public final class ExecutableConstants {
public static final String SOURCE_RECORDS_SIZE = "source_records_size";
public static final String GLOBAL_LISTENER_NAME = "ChainListener";
-
-
-
public static final int DEFAULT_SCHEDULER_INTERVAL_SECONDS = 60;
public static final String CUBE_JOB_GROUP_NAME = "cube_job_group";
@@ -56,7 +54,7 @@ public final class ExecutableConstants {
public static final String STEP_NAME_MERGE_CUBOID = "Merge Cuboid Data";
public static final String STEP_NAME_UPDATE_CUBE_INFO = "Update Cube Info";
public static final String STEP_NAME_GARBAGE_COLLECTION = "Garbage Collection";
-
+
public static final String STEP_NAME_BUILD_II = "Build Inverted Index";
public static final String STEP_NAME_CONVERT_II_TO_HFILE = "Convert Inverted Index Data to HFile";
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java b/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
index eeaab0f..758f53b 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
@@ -23,10 +23,8 @@ import java.net.UnknownHostException;
import java.util.Date;
import java.util.List;
-import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
-
import org.apache.kylin.job.common.MapReduceExecutable;
import org.apache.kylin.job.constant.ExecutableConstants;
import org.apache.kylin.job.execution.AbstractExecutable;
@@ -49,7 +47,6 @@ public class CubingJob extends DefaultChainedExecutable {
private static final String SEGMENT_ID = "segmentId";
public static final String MAP_REDUCE_WAIT_TIME = "mapReduceWaitTime";
-
public void setCubeName(String name) {
setParam(CUBE_INSTANCE_NAME, name);
}
@@ -65,7 +62,7 @@ public class CubingJob extends DefaultChainedExecutable {
void setSegmentId(String segmentId) {
setParam(SEGMENT_ID, segmentId);
}
-
+
public String getSegmentIds() {
return getParam(SEGMENT_ID);
}
@@ -75,17 +72,17 @@ public class CubingJob extends DefaultChainedExecutable {
final Output output = jobService.getOutput(getId());
String logMsg;
switch (output.getState()) {
- case ERROR:
- logMsg = output.getVerboseMsg();
- break;
- case DISCARDED:
- logMsg = "";
- break;
- case SUCCEED:
- logMsg = "";
- break;
- default:
- return null;
+ case ERROR:
+ logMsg = output.getVerboseMsg();
+ break;
+ case DISCARDED:
+ logMsg = "";
+ break;
+ case SUCCEED:
+ logMsg = "";
+ break;
+ default:
+ return null;
}
String content = ExecutableConstants.NOTIFY_EMAIL_TEMPLATE;
content = content.replaceAll("\\$\\{job_name\\}", getName());
@@ -105,14 +102,14 @@ public class CubingJob extends DefaultChainedExecutable {
logger.warn(e.getLocalizedMessage(), e);
}
- String title = "["+ state.toString() + "] - [Kylin Cube Build Job]-" + getCubeName();
+ String title = "[" + state.toString() + "] - [Kylin Cube Build Job]-" + getCubeName();
return Pair.of(title, content);
}
@Override
protected void onExecuteFinished(ExecuteResult result, ExecutableContext executableContext) {
long time = 0L;
- for (AbstractExecutable task: getTasks()) {
+ for (AbstractExecutable task : getTasks()) {
final ExecutableState status = task.getStatus();
if (status != ExecutableState.SUCCEED) {
break;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java b/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
index d583c34..234f7e7 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
@@ -26,9 +26,6 @@ import java.util.TimeZone;
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.util.Pair;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.job.AbstractJobBuilder;
import org.apache.kylin.job.common.HadoopShellExecutable;
@@ -47,6 +44,9 @@ import org.apache.kylin.job.hadoop.hbase.BulkLoadJob;
import org.apache.kylin.job.hadoop.hbase.CreateHTableJob;
import org.apache.kylin.job.hadoop.hive.CubeJoinedFlatTableDesc;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+
/**
* Created by qianzhou on 12/25/14.
*/
@@ -58,16 +58,16 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
public CubingJob buildJob(CubeSegment seg) {
checkPreconditions(seg);
-
+
final CubingJob result = initialJob(seg, "BUILD");
final String jobId = result.getId();
final String cuboidRootPath = getJobWorkingDir(jobId) + "/" + seg.getCubeInstance().getName() + "/cuboid/";
-
+
// cubing
Pair<AbstractExecutable, AbstractExecutable> twoSteps = addCubingSteps(seg, cuboidRootPath, result);
String intermediateHiveTableStepId = twoSteps.getFirst().getId();
String baseCuboidStepId = twoSteps.getSecond().getId();
-
+
// convert htable
AbstractExecutable convertCuboidToHfileStep = addHTableSteps(seg, cuboidRootPath, result);
@@ -77,7 +77,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
final CubeJoinedFlatTableDesc intermediateTableDesc = new CubeJoinedFlatTableDesc(seg.getCubeDesc(), seg);
final String hiveIntermediateTable = this.getIntermediateHiveTableName(intermediateTableDesc, jobId);
result.addTask(createGarbageCollectionStep(seg, null, hiveIntermediateTable, null));
-
+
return result;
}
@@ -85,19 +85,19 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
checkPreconditions(appendSegment, mergeSegment);
CubingJob result = initialJob(mergeSegment, "BUILD");
- result.setSegmentIds(Lists.newArrayList(new String[]{appendSegment.getUuid(), mergeSegment.getUuid()}));
+ result.setSegmentIds(Lists.newArrayList(new String[] { appendSegment.getUuid(), mergeSegment.getUuid() }));
final String jobId = result.getId();
final String appendRootPath = getJobWorkingDir(jobId) + "/" + appendSegment.getCubeInstance().getName() + "/append_cuboid/";
final String mergedRootPath = getJobWorkingDir(jobId) + "/" + appendSegment.getCubeInstance().getName() + "/cuboid/";
-
+
// cubing the incremental segment
Pair<AbstractExecutable, AbstractExecutable> twoSteps = addCubingSteps(appendSegment, appendRootPath, result);
final String intermediateHiveTableStepId = twoSteps.getFirst().getId();
final String baseCuboidStepId = twoSteps.getSecond().getId();
-
+
// update the append segment info
result.addTask(createUpdateCubeInfoAfterBuildStep(appendSegment, intermediateHiveTableStepId, baseCuboidStepId, null, jobId));
-
+
List<CubeSegment> mergingSegments = mergeSegment.getCubeInstance().getMergingSegments(mergeSegment);
Preconditions.checkState(mergingSegments.size() > 1, "there should be more than 2 segments to merge");
List<String> mergingSegmentIds = Lists.newArrayList();
@@ -117,24 +117,24 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
// merge cuboid
addMergeSteps(mergeSegment, mergingSegmentIds, mergingCuboidPaths, mergedRootPath, result);
-
+
// convert htable
AbstractExecutable convertCuboidToHfileStep = addHTableSteps(mergeSegment, mergedRootPath, result);
// update cube info
result.addTask(createUpdateCubeInfoAfterMergeStep(mergeSegment, mergingSegmentIds, convertCuboidToHfileStep.getId(), jobId));
result.addTask(createGarbageCollectionStep(mergeSegment, mergingHTables, null, toDeletePaths));
-
+
return result;
}
public CubingJob mergeJob(CubeSegment seg) {
checkPreconditions(seg);
-
+
CubingJob result = initialJob(seg, "MERGE");
final String jobId = result.getId();
final String mergedCuboidPath = getJobWorkingDir(jobId) + "/" + seg.getCubeInstance().getName() + "/cuboid/";
-
+
List<CubeSegment> mergingSegments = seg.getCubeInstance().getMergingSegments(seg);
Preconditions.checkState(mergingSegments.size() > 1, "there should be more than 2 segments to merge");
List<String> mergingSegmentIds = Lists.newArrayList();
@@ -150,7 +150,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
// merge cuboid
addMergeSteps(seg, mergingSegmentIds, mergingCuboidPaths, mergedCuboidPath, result);
-
+
// convert htable
AbstractExecutable convertCuboidToHfileStep = addHTableSteps(seg, mergedCuboidPath, result);
@@ -198,11 +198,11 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
return new Pair<AbstractExecutable, AbstractExecutable>(intermediateHiveTableStep, baseCuboidStep);
}
-
+
AbstractExecutable addHTableSteps(CubeSegment seg, String cuboidRootPath, CubingJob result) {
final String jobId = result.getId();
final String cuboidPath = cuboidRootPath + "*";
-
+
result.addTask(createRangeRowkeyDistributionStep(seg, cuboidPath));
// create htable step
result.addTask(createCreateHTableStep(seg));
@@ -211,7 +211,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
result.addTask(convertCuboidToHfileStep);
// bulk load step
result.addTask(createBulkLoadStep(seg, jobId));
-
+
return convertCuboidToHfileStep;
}
@@ -466,5 +466,4 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
return result;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java b/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
index d015f51..985d0c0 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
@@ -18,7 +18,11 @@
package org.apache.kylin.job.cube;
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
@@ -38,10 +42,7 @@ import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import com.google.common.collect.Lists;
/**
* Drop the resources that is no longer needed, including intermediate hive table (after cube build) and hbase tables (after cube merge)
@@ -82,8 +83,7 @@ public class GarbageCollectionStep extends AbstractExecutable {
private void dropHiveTable(ExecutableContext context) throws IOException {
final String hiveTable = this.getOldHiveTable();
if (StringUtils.isNotEmpty(hiveTable)) {
- final String dropSQL = "USE " + KylinConfig.getInstanceFromEnv().getHiveDatabaseForIntermediateTable() + ";"
- + " DROP TABLE IF EXISTS " + hiveTable + ";";
+ final String dropSQL = "USE " + KylinConfig.getInstanceFromEnv().getHiveDatabaseForIntermediateTable() + ";" + " DROP TABLE IF EXISTS " + hiveTable + ";";
final String dropHiveCMD = "hive -e \"" + dropSQL + "\"";
ShellCmdOutput shellCmdOutput = new ShellCmdOutput();
context.getConfig().getCliCommandExecutor().execute(dropHiveCMD, shellCmdOutput);
@@ -138,7 +138,7 @@ public class GarbageCollectionStep extends AbstractExecutable {
for (String path : oldHdfsPaths) {
if (path.endsWith("*"))
path = path.substring(0, path.length() - 1);
-
+
Path oldPath = new Path(path);
if (fileSystem.exists(oldPath)) {
fileSystem.delete(oldPath, true);
@@ -161,7 +161,6 @@ public class GarbageCollectionStep extends AbstractExecutable {
return getArrayParam(OLD_HTABLES);
}
-
public void setOldHdsfPaths(List<String> paths) {
setArrayParam(OLD_HDFS_PATHS, paths);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java b/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
index 9563347..7984fcb 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
@@ -26,8 +26,6 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
-
-import com.google.common.collect.Lists;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -42,6 +40,8 @@ import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecuteResult;
import org.apache.kylin.metadata.model.TblColRef;
+import com.google.common.collect.Lists;
+
public class MergeDictionaryStep extends AbstractExecutable {
private static final String CUBE_NAME = "cubeName";
@@ -59,15 +59,15 @@ public class MergeDictionaryStep extends AbstractExecutable {
final CubeInstance cube = mgr.getCube(getCubeName());
final CubeSegment newSegment = cube.getSegmentById(getSegmentId());
final List<CubeSegment> mergingSegments = getMergingSegments(cube);
-
+
Collections.sort(mergingSegments);
-
+
try {
checkLookupSnapshotsMustIncremental(mergingSegments);
-
+
makeDictForNewSegment(conf, cube, newSegment, mergingSegments);
makeSnapshotForNewSegment(cube, newSegment, mergingSegments);
-
+
mgr.updateCube(cube);
return new ExecuteResult(ExecuteResult.State.SUCCEED, "succeed");
} catch (IOException e) {
@@ -75,7 +75,7 @@ public class MergeDictionaryStep extends AbstractExecutable {
return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());
}
}
-
+
private List<CubeSegment> getMergingSegments(CubeInstance cube) {
List<String> mergingSegmentIds = getMergingSegmentIds();
List<CubeSegment> result = Lists.newArrayListWithCapacity(mergingSegmentIds.size());
@@ -186,7 +186,7 @@ public class MergeDictionaryStep extends AbstractExecutable {
if (ids != null) {
final String[] splitted = StringUtils.split(ids, ",");
ArrayList<String> result = Lists.newArrayListWithExpectedSize(splitted.length);
- for (String id: splitted) {
+ for (String id : splitted) {
result.add(id);
}
return result;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
index 5aa6570..6994dcc 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
@@ -21,8 +21,6 @@ package org.apache.kylin.job.cube;
import java.io.IOException;
import org.apache.commons.lang.StringUtils;
-
-import com.google.common.base.Preconditions;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
@@ -33,6 +31,8 @@ import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecuteResult;
import org.apache.kylin.job.execution.Output;
+import com.google.common.base.Preconditions;
+
/**
* Created by qianzhou on 1/4/15.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
index bb5abdc..e4c152e 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
@@ -24,9 +24,6 @@ import java.util.Collections;
import java.util.List;
import org.apache.commons.lang.StringUtils;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -37,6 +34,9 @@ import org.apache.kylin.job.execution.AbstractExecutable;
import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecuteResult;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+
/**
* Created by qianzhou on 1/7/15.
*/
@@ -57,7 +57,7 @@ public class UpdateCubeInfoAfterMergeStep extends AbstractExecutable {
@Override
protected ExecuteResult doWork(ExecutableContext context) throws ExecuteException {
final CubeInstance cube = cubeManager.getCube(getCubeName());
-
+
CubeSegment mergedSegment = cube.getSegmentById(getSegmentId());
if (mergedSegment == null) {
return new ExecuteResult(ExecuteResult.State.FAILED, "there is no segment with id:" + getSegmentId());
@@ -78,14 +78,14 @@ public class UpdateCubeInfoAfterMergeStep extends AbstractExecutable {
sourceCount += segment.getInputRecords();
sourceSize += segment.getInputRecordsSize();
}
-
+
// update segment info
mergedSegment.setSizeKB(cubeSize);
mergedSegment.setInputRecords(sourceCount);
mergedSegment.setInputRecordsSize(sourceSize);
mergedSegment.setLastBuildJobID(getCubingJobId());
mergedSegment.setLastBuildTime(System.currentTimeMillis());
-
+
try {
cubeManager.promoteNewlyBuiltSegments(cube, mergedSegment);
return new ExecuteResult(ExecuteResult.State.SUCCEED);
@@ -120,7 +120,7 @@ public class UpdateCubeInfoAfterMergeStep extends AbstractExecutable {
if (ids != null) {
final String[] splitted = StringUtils.split(ids, ",");
ArrayList<String> result = Lists.newArrayListWithExpectedSize(splitted.length);
- for (String id: splitted) {
+ for (String id : splitted) {
result.add(id);
}
return result;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java b/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
index 635c73e..2f43037 100644
--- a/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
+++ b/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
@@ -18,11 +18,14 @@
package org.apache.kylin.job.dao;
-import com.google.common.collect.Lists;
-import org.apache.commons.io.IOUtils;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.JsonSerializer;
-import org.apache.kylin.common.persistence.RawResource;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.Serializer;
import org.apache.kylin.job.exception.PersistentException;
@@ -30,12 +33,7 @@ import org.apache.kylin.metadata.MetadataManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.collect.Lists;
/**
*/
@@ -71,6 +69,7 @@ public class ExecutableDao {
private String pathOfJob(ExecutablePO job) {
return pathOfJob(job.getUuid());
}
+
private String pathOfJob(String uuid) {
return JOB_PATH_ROOT + "/" + uuid;
}
@@ -114,7 +113,7 @@ public class ExecutableDao {
public List<ExecutablePO> getJobs() throws PersistentException {
try {
final List<String> jobIds = store.listResources(JOB_PATH_ROOT);
- if (jobIds== null || jobIds.isEmpty()) {
+ if (jobIds == null || jobIds.isEmpty()) {
return Collections.emptyList();
}
Collections.sort(jobIds);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java b/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
index 73436db..77badbb 100644
--- a/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
+++ b/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
@@ -20,10 +20,11 @@ package org.apache.kylin.job.dao;
import java.util.Map;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Maps;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
/**
* Created by qianzhou on 12/15/14.
[15/15] incubator-kylin git commit: KYLIN-922 add doc
Posted by ma...@apache.org.
KYLIN-922 add doc
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/3deec0d8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/3deec0d8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/3deec0d8
Branch: refs/heads/0.7-staging
Commit: 3deec0d821fb34a85b40e3ec740eb9dac069dec0
Parents: 40a744b
Author: honma <ho...@ebay.com>
Authored: Mon Aug 3 17:52:02 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue Aug 4 11:45:55 2015 +0800
----------------------------------------------------------------------
website/_docs/development/dev_env.md | 19 +++++++++++++++++++
.../develop/disable_import_on_the_fly.png | Bin 0 -> 128510 bytes
.../develop/eclipse_code_formatter_config.png | Bin 0 -> 121789 bytes
3 files changed, 19 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3deec0d8/website/_docs/development/dev_env.md
----------------------------------------------------------------------
diff --git a/website/_docs/development/dev_env.md b/website/_docs/development/dev_env.md
index 27d533f..1cdc17a 100644
--- a/website/_docs/development/dev_env.md
+++ b/website/_docs/development/dev_env.md
@@ -104,3 +104,22 @@ In IDE, launch `org.apache.kylin.rest.DebugTomcat` with working directory set to
Check Kylin Web available at http://localhost:7070/kylin (user:ADMIN,password:KYLIN)
For IntelliJ IDEA users, need modify "server/kylin-server.iml" file, replace all "PROVIDED" to "COMPILE", otherwise an "java.lang.NoClassDefFoundError: org/apache/catalina/LifecycleListener" error may be thrown;
+
+
+## Setup IDE code formatter
+
+In case you're writting code for Kylin, you should make sure that your code in expected formats.
+
+For Eclipse users, just format the code before committing the code.
+
+For intellij IDEA users, you have to do a few more steps:
+
+1. Install "Eclipse Code Formatter" and configure it as follows:
+
+ 
+
+2. Disable intellij IDEA's "Optimize imports on the fly"
+
+ 
+
+3. Format the code before committing the code.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3deec0d8/website/images/develop/disable_import_on_the_fly.png
----------------------------------------------------------------------
diff --git a/website/images/develop/disable_import_on_the_fly.png b/website/images/develop/disable_import_on_the_fly.png
new file mode 100644
index 0000000..7b2412d
Binary files /dev/null and b/website/images/develop/disable_import_on_the_fly.png differ
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3deec0d8/website/images/develop/eclipse_code_formatter_config.png
----------------------------------------------------------------------
diff --git a/website/images/develop/eclipse_code_formatter_config.png b/website/images/develop/eclipse_code_formatter_config.png
new file mode 100644
index 0000000..32d8952
Binary files /dev/null and b/website/images/develop/eclipse_code_formatter_config.png differ
[14/15] incubator-kylin git commit: KYLIN-921 take care of situations
where no dict dim exist on fact table
Posted by ma...@apache.org.
KYLIN-921 take care of situations where no dict dim exist on fact table
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/07db2253
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/07db2253
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/07db2253
Branch: refs/heads/0.7-staging
Commit: 07db22536657dfb278dfd29f616789560b208948
Parents: 388488b
Author: honma <ho...@ebay.com>
Authored: Mon Aug 3 22:21:37 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue Aug 4 11:45:54 2015 +0800
----------------------------------------------------------------------
.../job/hadoop/cube/FactDistinctColumnsMapper.java | 14 ++++++++++----
.../job/hadoop/cube/FactDistinctColumnsReducer.java | 4 +++-
2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/07db2253/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
index 9345171..8636717 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
@@ -20,6 +20,7 @@ package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
+import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.io.ShortWritable;
@@ -64,10 +65,15 @@ public class FactDistinctColumnsMapper<KEYIN> extends KylinMapper<KEYIN, HCatRec
CubeDesc cubeDesc = cube.getDescriptor();
intermediateTableDesc = new CubeJoinedFlatTableDesc(cubeDesc, null);
- String[] rowKeyIndexes = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES).split(",");
- factDictColRowKeyIndexes = new int[rowKeyIndexes.length];
- for (int i = 0; i < rowKeyIndexes.length; i++) {
- factDictColRowKeyIndexes[i] = Integer.parseInt(rowKeyIndexes[i]);
+ String rowKeyIndexesStr = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES);
+ if (!StringUtils.isEmpty(rowKeyIndexesStr)) {
+ String[] rowKeyIndexes = rowKeyIndexesStr.split(",");
+ factDictColRowKeyIndexes = new int[rowKeyIndexes.length];
+ for (int i = 0; i < rowKeyIndexes.length; i++) {
+ factDictColRowKeyIndexes[i] = Integer.parseInt(rowKeyIndexes[i]);
+ }
+ } else {
+ factDictColRowKeyIndexes = new int[0];
}
schema = HCatInputFormat.getTableSchema(context.getConfiguration());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/07db2253/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
index ba212e6..e6fd3f1 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
@@ -21,6 +21,7 @@ package org.apache.kylin.job.hadoop.cube;
import java.io.IOException;
import java.util.*;
+import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
@@ -72,7 +73,8 @@ public class FactDistinctColumnsReducer extends KylinReducer<ShortWritable, Text
outputPath = conf.get(BatchConstants.OUTPUT_PATH);
fs = FileSystem.get(conf);
- String[] factDictColNames = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES).split(",");
+ String factDictColNamesStr = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES);
+ String[] factDictColNames = StringUtils.isEmpty(factDictColNamesStr) ? new String[0] : factDictColNamesStr.split(",");
toBeExtractedColumns.addAll(Arrays.asList(factDictColNames));
}
[02/15] incubator-kylin git commit: KYLIN-922 Enforce same code style
for both intellij and eclipse user
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/AdminService.java b/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
index e5ab1f0..9df417a 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
@@ -26,16 +26,15 @@ import java.util.Properties;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
+import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.exception.InternalErrorException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
-import org.apache.kylin.rest.constant.Constant;
-
/**
* @author jianliu
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/BasicService.java b/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
index d124cf0..85664c0 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
@@ -18,33 +18,43 @@
package org.apache.kylin.rest.service;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import javax.sql.DataSource;
+
+import org.apache.calcite.jdbc.Driver;
+import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.invertedindex.IIDescManager;
import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.job.cube.CubingJob;
-import org.apache.kylin.job.execution.ExecutableState;
import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ExecutableState;
import org.apache.kylin.job.execution.Output;
import org.apache.kylin.job.manager.ExecutableManager;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.metadata.realization.RealizationRegistry;
import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.query.enumerator.OLAPQuery;
import org.apache.kylin.query.relnode.OLAPContext;
import org.apache.kylin.query.schema.OLAPSchemaFactory;
import org.apache.kylin.rest.controller.QueryController;
-import org.apache.calcite.jdbc.Driver;
-import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.storage.hybrid.HybridManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,18 +62,11 @@ import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Caching;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
-import javax.sql.DataSource;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
public abstract class BasicService {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/CacheService.java b/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
index 393e9e4..188f422 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
@@ -18,10 +18,12 @@
package org.apache.kylin.rest.service;
+import java.io.IOException;
+import java.util.List;
+
import org.apache.kylin.common.restclient.Broadcaster;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.invertedindex.IIDescManager;
import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.metadata.MetadataManager;
@@ -33,9 +35,6 @@ import org.apache.kylin.storage.hybrid.HybridManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import java.io.IOException;
-import java.util.List;
-
/**
* Created by qianzhou on 1/19/15.
*/
@@ -44,7 +43,7 @@ public class CacheService extends BasicService {
@Autowired
private CubeService cubeService;
-
+
public void rebuildCache(Broadcaster.TYPE cacheType, String cacheKey) {
final String log = "rebuild cache type: " + cacheType + " name:" + cacheKey;
try {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
index cb81c2a..63f8930 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
@@ -18,11 +18,18 @@
package org.apache.kylin.rest.service;
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.EnumSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FSDataInputStream;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.HBaseRegionSizeCalculator;
@@ -68,9 +75,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
-import java.io.IOException;
-import java.net.UnknownHostException;
-import java.util.*;
+import com.google.common.collect.Lists;
/**
* Stateless & lightweight service facade of cube management functions.
@@ -162,7 +167,6 @@ public class CubeService extends BasicService {
createdDesc = getCubeDescManager().updateCubeDesc(desc);
}
-
if (!createdDesc.getError().isEmpty()) {
if (isNew) {
getCubeDescManager().removeCubeDesc(createdDesc);
@@ -313,7 +317,7 @@ public class CubeService extends BasicService {
* @throws JobException
*/
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
- @Caching(evict = {@CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true)})
+ @Caching(evict = { @CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true) })
public CubeInstance purgeCube(CubeInstance cube) throws IOException, JobException {
String cubeName = cube.getName();
@@ -340,7 +344,7 @@ public class CubeService extends BasicService {
* @throws JobException
*/
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
- @Caching(evict = {@CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true)})
+ @Caching(evict = { @CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true) })
public CubeInstance disableCube(CubeInstance cube) throws IOException, JobException {
String cubeName = cube.getName();
@@ -503,7 +507,6 @@ public class CubeService extends BasicService {
getExecutableManager().addJob(job);
}
-
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
public void updateCubeNotifyList(CubeInstance cube, List<String> notifyList) throws IOException {
CubeDesc desc = cube.getDescriptor();
@@ -550,7 +553,6 @@ public class CubeService extends BasicService {
getProjectManager().addTableDescToProject(tables, project);
}
-
@PreAuthorize(Constant.ACCESS_HAS_ROLE_MODELER + " or " + Constant.ACCESS_HAS_ROLE_ADMIN)
public void calculateCardinalityIfNotPresent(String[] tables, String submitter) throws IOException {
MetadataManager metaMgr = getMetadataManager();
@@ -562,7 +564,6 @@ public class CubeService extends BasicService {
}
}
-
public void updateOnNewSegmentReady(String cubeName) {
logger.debug("on updateOnNewSegmentReady: " + cubeName);
final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/JobService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/JobService.java b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
index a0b3407..8a6b757 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -18,11 +18,13 @@
package org.apache.kylin.rest.service;
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.CubeInstance;
@@ -49,8 +51,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
-import java.io.IOException;
-import java.util.*;
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
/**
* @author ysong1
@@ -106,20 +111,20 @@ public class JobService extends BasicService {
private ExecutableState parseToExecutableState(JobStatusEnum status) {
switch (status) {
- case DISCARDED:
- return ExecutableState.DISCARDED;
- case ERROR:
- return ExecutableState.ERROR;
- case FINISHED:
- return ExecutableState.SUCCEED;
- case NEW:
- return ExecutableState.READY;
- case PENDING:
- return ExecutableState.READY;
- case RUNNING:
- return ExecutableState.RUNNING;
- default:
- throw new RuntimeException("illegal status:" + status);
+ case DISCARDED:
+ return ExecutableState.DISCARDED;
+ case ERROR:
+ return ExecutableState.ERROR;
+ case FINISHED:
+ return ExecutableState.SUCCEED;
+ case NEW:
+ return ExecutableState.READY;
+ case PENDING:
+ return ExecutableState.READY;
+ case RUNNING:
+ return ExecutableState.RUNNING;
+ default:
+ throw new RuntimeException("illegal status:" + status);
}
}
@@ -250,37 +255,37 @@ public class JobService extends BasicService {
private JobStatusEnum parseToJobStatus(ExecutableState state) {
switch (state) {
- case READY:
- return JobStatusEnum.PENDING;
- case RUNNING:
- return JobStatusEnum.RUNNING;
- case ERROR:
- return JobStatusEnum.ERROR;
- case DISCARDED:
- return JobStatusEnum.DISCARDED;
- case SUCCEED:
- return JobStatusEnum.FINISHED;
- case STOPPED:
- default:
- throw new RuntimeException("invalid state:" + state);
+ case READY:
+ return JobStatusEnum.PENDING;
+ case RUNNING:
+ return JobStatusEnum.RUNNING;
+ case ERROR:
+ return JobStatusEnum.ERROR;
+ case DISCARDED:
+ return JobStatusEnum.DISCARDED;
+ case SUCCEED:
+ return JobStatusEnum.FINISHED;
+ case STOPPED:
+ default:
+ throw new RuntimeException("invalid state:" + state);
}
}
private JobStepStatusEnum parseToJobStepStatus(ExecutableState state) {
switch (state) {
- case READY:
- return JobStepStatusEnum.PENDING;
- case RUNNING:
- return JobStepStatusEnum.RUNNING;
- case ERROR:
- return JobStepStatusEnum.ERROR;
- case DISCARDED:
- return JobStepStatusEnum.DISCARDED;
- case SUCCEED:
- return JobStepStatusEnum.FINISHED;
- case STOPPED:
- default:
- throw new RuntimeException("invalid state:" + state);
+ case READY:
+ return JobStepStatusEnum.PENDING;
+ case RUNNING:
+ return JobStepStatusEnum.RUNNING;
+ case ERROR:
+ return JobStepStatusEnum.ERROR;
+ case DISCARDED:
+ return JobStepStatusEnum.DISCARDED;
+ case SUCCEED:
+ return JobStepStatusEnum.FINISHED;
+ case STOPPED:
+ default:
+ throw new RuntimeException("invalid state:" + state);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/PerformService.java b/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
index 35b1207..059de77 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
@@ -18,7 +18,10 @@
package org.apache.kylin.rest.service;
-import au.com.bytecode.opencsv.CSVReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.List;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
@@ -28,9 +31,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.*;
+import au.com.bytecode.opencsv.CSVReader;
/**
* @author jiazhong
@@ -43,37 +44,37 @@ public class PerformService extends BasicService {
/*
* @return all query user
*/
- public List<String[]> getTotalQueryUser() throws IOException {
- String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/total_query_user.csv";
+ public List<String[]> getTotalQueryUser() throws IOException {
+ String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/total_query_user.csv";
List<String[]> res = readHdfsFile(filePath);
- logger.info("Total Query User:"+res.get(0)[0]);
- return res;
+ logger.info("Total Query User:" + res.get(0)[0]);
+ return res;
}
- /*
- * @return last 30 daily query num
- */
- public List<String[]> dailyQueryCount() throws IOException {
- String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/last_30_daily_query_count.csv";
+ /*
+ * @return last 30 daily query num
+ */
+ public List<String[]> dailyQueryCount() throws IOException {
+ String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/last_30_daily_query_count.csv";
List<String[]> res = readHdfsFile(filePath);
- return res;
+ return res;
}
/*
* @return average query count every day
*/
- public List<String[]> avgDayQuery() throws IOException {
- String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/avg_day_query.csv";
+ public List<String[]> avgDayQuery() throws IOException {
+ String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/avg_day_query.csv";
List<String[]> res = readHdfsFile(filePath);
- logger.info("Avg Day Query:"+res.get(0)[0]);
- return res;
+ logger.info("Avg Day Query:" + res.get(0)[0]);
+ return res;
}
/*
*@return average latency every day
*/
public List<String[]> last30DayPercentile() throws IOException {
- String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/last_30_day_90_percentile_latency.csv";
+ String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/last_30_day_90_percentile_latency.csv";
List<String[]> res = readHdfsFile(filePath);
return res;
}
@@ -82,7 +83,7 @@ public class PerformService extends BasicService {
*@return average latency for every cube
*/
public List<String[]> eachDayPercentile() throws IOException {
- String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/each_day_90_95_percentile_latency.csv";
+ String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/each_day_90_95_percentile_latency.csv";
List<String[]> res = readHdfsFile(filePath);
return res;
}
@@ -91,12 +92,11 @@ public class PerformService extends BasicService {
*@return average latency for every cube
*/
public List<String[]> projectPercentile() throws IOException {
- String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/project_90_95_percentile_latency.csv";
+ String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/project_90_95_percentile_latency.csv";
List<String[]> res = readHdfsFile(filePath);
return res;
}
-
private List<String[]> readHdfsFile(String filePath) throws IOException {
List<String[]> allRows = null;
CSVReader reader = null;
@@ -106,16 +106,14 @@ public class PerformService extends BasicService {
try {
fs = FileSystem.newInstance(conf);
FSDataInputStream inputStream = fs.open(new Path(filePath));
- reader = new CSVReader(new InputStreamReader (inputStream),'|');
+ reader = new CSVReader(new InputStreamReader(inputStream), '|');
//Read all rows at once
allRows = reader.readAll();
-
} catch (IOException e) {
- logger.info("failed to read hdfs file:",e);
- }
- finally {
+ logger.info("failed to read hdfs file:", e);
+ } finally {
fs.close();
}
return allRows;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java b/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
index 9b6464c..1b51d2e 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
@@ -22,8 +22,13 @@ import java.io.IOException;
import java.util.Collections;
import java.util.List;
+import org.apache.kylin.metadata.project.ProjectInstance;
+import org.apache.kylin.metadata.project.ProjectManager;
+import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.exception.InternalErrorException;
+import org.apache.kylin.rest.request.CreateProjectRequest;
import org.apache.kylin.rest.request.UpdateProjectRequest;
+import org.apache.kylin.rest.security.AclPermission;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,12 +36,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.request.CreateProjectRequest;
-import org.apache.kylin.rest.security.AclPermission;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/UserService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/UserService.java b/server/src/main/java/org/apache/kylin/rest/service/UserService.java
index b5d366a..7203030 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/UserService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/UserService.java
@@ -32,8 +32,12 @@ import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.rest.security.UserManager;
+import org.apache.kylin.rest.util.Serializer;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
@@ -41,10 +45,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.HBaseConnection;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.rest.util.Serializer;
/**
* @author xduo
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java b/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
index 994fe03..46b4e5a 100644
--- a/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
+++ b/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
@@ -151,7 +151,7 @@ public class QueryUtil {
public static String makeErrorMsgUserFriendly(Throwable e) {
String msg = e.getMessage();
-
+
// pick ParseException error message if possible
Throwable cause = e;
while (cause != null) {
@@ -161,7 +161,7 @@ public class QueryUtil {
}
cause = cause.getCause();
}
-
+
return makeErrorMsgUserFriendly(msg);
}
@@ -169,7 +169,7 @@ public class QueryUtil {
try {
// make one line
errorMsg = errorMsg.replaceAll("\\s", " ");
-
+
// move cause to be ahead of sql, calcite creates the message pattern below
Pattern pattern = Pattern.compile("error while executing SQL \"(.*)\":(.*)");
Matcher matcher = pattern.matcher(errorMsg);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/util/Serializer.java b/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
index d662d49..d726e06 100644
--- a/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
+++ b/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
@@ -20,10 +20,11 @@ package org.apache.kylin.rest.util;
import java.io.IOException;
+import org.apache.kylin.common.util.JsonUtil;
+
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
-import org.apache.kylin.common.util.JsonUtil;
public class Serializer<T> {
private final Class<T> type;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java b/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
index 23cb7ea..59d4f16 100644
--- a/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
+++ b/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
@@ -16,20 +16,27 @@
* limitations under the License.
*/
-
package org.apache.kylin.jdbc;
-import com.google.common.collect.Lists;
+import java.io.File;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.List;
+import java.util.Properties;
+
import org.apache.commons.io.FileUtils;
import org.apache.kylin.common.util.HBaseMetadataTestCase;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
-import org.junit.*;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
-import java.io.File;
-import java.sql.*;
-import java.util.List;
-import java.util.Properties;
+import com.google.common.collect.Lists;
/**
* Created by shaoshi on 2/5/15.
@@ -66,7 +73,7 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
server.stop();
File workFolder = new File("work");
- if(workFolder.isDirectory() && workFolder.exists()) {
+ if (workFolder.isDirectory() && workFolder.exists()) {
FileUtils.deleteDirectory(workFolder);
}
}
@@ -160,7 +167,7 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
List<String> tableList = Lists.newArrayList();
DatabaseMetaData dbMetadata = conn.getMetaData();
- ResultSet resultSet = dbMetadata.getTables(null, "%", "%", new String[]{"TABLE"});
+ ResultSet resultSet = dbMetadata.getTables(null, "%", "%", new String[] { "TABLE" });
while (resultSet.next()) {
String schema = resultSet.getString("TABLE_SCHEM");
String name = resultSet.getString("TABLE_NAME");
@@ -210,13 +217,11 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
}
-
@Test
public void testPreparedStatement() throws Exception {
Connection conn = getConnection();
- PreparedStatement statement = conn.prepareStatement("select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact " +
- "where LSTG_FORMAT_NAME = ? group by LSTG_FORMAT_NAME");
+ PreparedStatement statement = conn.prepareStatement("select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact " + "where LSTG_FORMAT_NAME = ? group by LSTG_FORMAT_NAME");
statement.setString(1, "FP-GTC");
@@ -236,8 +241,7 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
@Test
public void testResultSet() throws Exception {
- String sql = "select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact \n" +
- " group by LSTG_FORMAT_NAME ";
+ String sql = "select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact \n" + " group by LSTG_FORMAT_NAME ";
Connection conn = getConnection();
Statement statement = conn.createStatement();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java b/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
index e5a6fdb..03d4dad 100644
--- a/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
@@ -20,10 +20,12 @@ package org.apache.kylin.rest.bean;
import java.beans.IntrospectionException;
+import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.model.ColumnMeta;
import org.apache.kylin.rest.model.SelectedColumnMeta;
import org.apache.kylin.rest.model.TableMeta;
import org.apache.kylin.rest.request.AccessRequest;
+import org.apache.kylin.rest.request.CubeRequest;
import org.apache.kylin.rest.request.JobListRequest;
import org.apache.kylin.rest.request.SQLRequest;
import org.apache.kylin.rest.response.AccessEntryResponse;
@@ -31,9 +33,6 @@ import org.apache.kylin.rest.response.SQLResponse;
import org.junit.Assert;
import org.junit.Test;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.request.CubeRequest;
-
/**
* @author xduo
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java b/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
index 2c7e068..26a0c80 100644
--- a/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
+++ b/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
@@ -46,6 +46,7 @@ public class BroadcasterReceiveServlet extends HttpServlet {
}
private static final Pattern PATTERN = Pattern.compile("/(.+)/(.+)/(.+)");
+
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
handle(req, resp);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
index 9dffc74..7ce521e 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
@@ -21,16 +21,15 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
import java.util.List;
+import org.apache.kylin.rest.request.AccessRequest;
import org.apache.kylin.rest.response.AccessEntryResponse;
import org.apache.kylin.rest.service.AccessService;
+import org.apache.kylin.rest.service.ServiceTestBase;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.kylin.rest.request.AccessRequest;
-import org.apache.kylin.rest.service.ServiceTestBase;
-
/**
* @author xduo
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
index 4f07253..4e767c5 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
@@ -21,14 +21,13 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
import org.apache.kylin.rest.service.AdminService;
+import org.apache.kylin.rest.service.CubeService;
+import org.apache.kylin.rest.service.ServiceTestBase;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.kylin.rest.service.CubeService;
-import org.apache.kylin.rest.service.ServiceTestBase;
-
/**
* @author xduo
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
index e6b1a32..d396985 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
@@ -20,8 +20,10 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
+import org.apache.kylin.rest.exception.BadRequestException;
import org.apache.kylin.rest.exception.ForbiddenException;
import org.apache.kylin.rest.exception.InternalErrorException;
+import org.apache.kylin.rest.exception.NotFoundException;
import org.apache.kylin.rest.response.ErrorResponse;
import org.apache.kylin.rest.service.ServiceTestBase;
import org.junit.Assert;
@@ -29,9 +31,6 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;
-import org.apache.kylin.rest.exception.BadRequestException;
-import org.apache.kylin.rest.exception.NotFoundException;
-
/**
* @author xduo
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
index d75c5ca..0f8c16b 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
@@ -18,19 +18,14 @@
package org.apache.kylin.rest.controller;
-import org.apache.kylin.metadata.model.TableDesc;
+import java.io.IOException;
+
import org.apache.kylin.rest.service.CacheService;
-import org.apache.kylin.rest.service.CubeService;
import org.apache.kylin.rest.service.ServiceTestBase;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
/**
* @author shaoshi
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
index ee57cd3..5630b3d 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
@@ -18,8 +18,10 @@
package org.apache.kylin.rest.controller;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.List;
+
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.model.CubeDesc;
import org.apache.kylin.metadata.model.DataModelDesc;
@@ -32,9 +34,8 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.List;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.Lists;
/**
* @author xduo
@@ -107,7 +108,6 @@ public class CubeControllerTest extends ServiceTestBase {
cubeRequest.setModelDescData(modelDescWriter.toString());
cubeRequest = cubeController.saveCubeDesc(cubeRequest);
-
DataModelDesc model = modelController.getModel(newModelName);
Assert.assertNotNull(model);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
index 30e8520..0b686b1 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
@@ -18,17 +18,11 @@
package org.apache.kylin.rest.controller;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.util.Date;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeInstance;
@@ -42,6 +36,11 @@ import org.apache.kylin.rest.request.JobListRequest;
import org.apache.kylin.rest.service.CubeService;
import org.apache.kylin.rest.service.JobService;
import org.apache.kylin.rest.service.ServiceTestBase;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
/**
* @author xduo
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
index 9fe6069..bb96be6 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
@@ -21,6 +21,8 @@ package org.apache.kylin.rest.controller;
import java.io.IOException;
import java.util.List;
+import org.apache.kylin.metadata.project.ProjectInstance;
+import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.rest.exception.InternalErrorException;
import org.apache.kylin.rest.request.CreateProjectRequest;
import org.apache.kylin.rest.request.UpdateProjectRequest;
@@ -31,9 +33,6 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.metadata.project.ProjectManager;
-
/**
* Created by honma on 8/7/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
index cf84417..eeb64d5 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
@@ -20,17 +20,16 @@ package org.apache.kylin.rest.controller;
import net.sf.ehcache.CacheManager;
+import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.rest.request.MetaRequest;
import org.apache.kylin.rest.request.SQLRequest;
+import org.apache.kylin.rest.service.QueryService;
import org.apache.kylin.rest.service.ServiceTestBase;
import org.apache.kylin.rest.util.QueryUtil;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.rest.service.QueryService;
-
/**
* @author xduo
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
index 37e184f..bf2e535 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
@@ -18,6 +18,10 @@
package org.apache.kylin.rest.controller;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.rest.service.CubeService;
import org.apache.kylin.rest.service.ServiceTestBase;
@@ -26,10 +30,6 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
/**
* @author shaoshi
*/
@@ -65,10 +65,9 @@ public class TableControllerTest extends ServiceTestBase {
Assert.assertNotNull(factTable);
-
Map<String, String[]> loadResult = tableController.loadHiveTable("test_kylin_fact,TEST_CATEGORY_GROUPINGS", "default");
Assert.assertNotNull(loadResult);
- Assert.assertTrue(loadResult.get("result.loaded").length ==2);
+ Assert.assertTrue(loadResult.get("result.loaded").length == 2);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
index 402440a..7cf5dc2 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
@@ -18,6 +18,10 @@
package org.apache.kylin.rest.service;
+import org.apache.kylin.common.persistence.AclEntity;
+import org.apache.kylin.rest.response.AccessEntryResponse;
+import org.apache.kylin.rest.security.AclPermission;
+import org.apache.kylin.rest.security.AclPermissionFactory;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,10 +31,6 @@ import org.springframework.security.acls.model.Acl;
import org.springframework.security.acls.model.Sid;
import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.kylin.common.persistence.AclEntity;
-import org.apache.kylin.rest.response.AccessEntryResponse;
-import org.apache.kylin.rest.security.AclPermission;
-import org.apache.kylin.rest.security.AclPermissionFactory;
/**
* @author xduo
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
index 195b9ca..fff6110 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
@@ -18,6 +18,15 @@
package org.apache.kylin.rest.service;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.restclient.Broadcaster;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
@@ -38,16 +47,13 @@ import org.apache.kylin.rest.broadcaster.BroadcasterReceiveServlet;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
import org.slf4j.Logger;
-import java.util.Arrays;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicLong;
-
-import static org.junit.Assert.*;
-
/**
* Created by qianzhou on 1/16/15.
*/
@@ -90,15 +96,15 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
logger.info(log);
counter.incrementAndGet();
switch (wipeEvent) {
- case CREATE:
- case UPDATE:
- cacheService.rebuildCache(wipeType, name);
- break;
- case DROP:
- cacheService.removeCache(wipeType, name);
- break;
- default:
- throw new RuntimeException("invalid type:" + wipeEvent);
+ case CREATE:
+ case UPDATE:
+ cacheService.rebuildCache(wipeType, name);
+ break;
+ case DROP:
+ cacheService.removeCache(wipeType, name);
+ break;
+ default:
+ throw new RuntimeException("invalid type:" + wipeEvent);
}
}
})), "/");
@@ -148,12 +154,15 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
private static CubeManager getCubeManager(KylinConfig config) throws Exception {
return CubeManager.getInstance(config);
}
+
private static ProjectManager getProjectManager(KylinConfig config) throws Exception {
return ProjectManager.getInstance(config);
}
+
private static CubeDescManager getCubeDescManager(KylinConfig config) throws Exception {
return CubeDescManager.getInstance(config);
}
+
private static MetadataManager getMetadataManager(KylinConfig config) throws Exception {
return MetadataManager.getInstance(config);
}
@@ -234,7 +243,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
assertTrue(cubeManagerB.getCube(cubeName) == null);
assertTrue(!containsRealization(projectManagerB.listAllRealizations(ProjectInstance.DEFAULT_PROJECT_NAME), RealizationType.CUBE, cubeName));
-
final String cubeDescName = "test_cube_desc";
cubeDesc.setName(cubeDescName);
cubeDesc.setLastModified(0);
@@ -247,7 +255,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
assertNotNull(cubeDescManager.getCubeDesc(cubeDescName));
assertNotNull(cubeDescManagerB.getCubeDesc(cubeDescName));
-
cubeDesc.setNotifyList(Arrays.asList("test@email", "test@email", "test@email"));
cubeDescManager.updateCubeDesc(cubeDesc);
assertEquals(1, broadcaster.getCounterAndClear());
@@ -261,8 +268,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
assertTrue(cubeDescManager.getCubeDesc(cubeDescName) == null);
assertTrue(cubeDescManagerB.getCubeDesc(cubeDescName) == null);
-
-
getStore().deleteResource("/cube/a_whole_new_cube.json");
}
@@ -275,7 +280,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
return tableDesc;
}
-
@Test
public void testMetaCRUD() throws Exception {
final MetadataManager metadataManager = MetadataManager.getInstance(configA);
@@ -293,9 +297,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
assertNotNull(metadataManager.getTableDesc(tableDesc.getIdentity()));
assertNotNull(metadataManagerB.getTableDesc(tableDesc.getIdentity()));
-
-
-
final String dataModelName = "test_data_model";
DataModelDesc dataModelDesc = metadataManager.getDataModelDesc("test_kylin_ii_model_desc");
dataModelDesc.setName(dataModelName);
@@ -312,7 +313,7 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
final LookupDesc[] lookups = dataModelDesc.getLookups();
assertTrue(lookups.length > 0);
- dataModelDesc.setLookups(new LookupDesc[]{lookups[0]});
+ dataModelDesc.setLookups(new LookupDesc[] { lookups[0] });
metadataManager.updateDataModelDesc(dataModelDesc);
//only one for data model update
assertEquals(1, broadcaster.getCounterAndClear());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
index 7bf2516..08bd99d 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
@@ -21,14 +21,14 @@ package org.apache.kylin.rest.service;
import java.net.UnknownHostException;
import java.util.List;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.job.exception.JobException;
+import org.apache.kylin.metadata.project.ProjectInstance;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.job.exception.JobException;
-import org.apache.kylin.metadata.project.ProjectInstance;
/**
* @author xduo
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
index dd89a22..a53dd3c 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
@@ -20,13 +20,12 @@ package org.apache.kylin.rest.service;
import java.io.IOException;
+import org.apache.kylin.job.exception.JobException;
+import org.apache.kylin.metadata.project.ProjectInstance;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.kylin.job.exception.JobException;
-import org.apache.kylin.metadata.project.ProjectInstance;
-
/**
* @author xduo
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
index 15add6c..2077e31 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
@@ -22,15 +22,14 @@ import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
+import org.apache.kylin.job.exception.JobException;
+import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.rest.request.SQLRequest;
import org.apache.kylin.rest.response.SQLResponse;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.kylin.job.exception.JobException;
-import org.apache.kylin.metadata.project.ProjectInstance;
-
/**
* @author xduo
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java b/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
index 7865ac0..cb73702 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
@@ -27,7 +27,11 @@ import org.apache.kylin.invertedindex.IIManager;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.metadata.realization.RealizationRegistry;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
@@ -40,7 +44,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @author xduo
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {"classpath:applicationContext.xml", "classpath:kylinSecurity.xml"})
+@ContextConfiguration(locations = { "classpath:applicationContext.xml", "classpath:kylinSecurity.xml" })
@ActiveProfiles("testing")
public class ServiceTestBase extends HBaseMetadataTestCase {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java b/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
index b81bad2..b2e82a8 100644
--- a/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
+++ b/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
@@ -20,8 +20,8 @@ package org.apache.kylin.storage;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.storage.hbase.CubeStorageEngine;
import org.apache.kylin.storage.hbase.InvertedIndexStorageEngine;
import org.apache.kylin.storage.hybrid.HybridInstance;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java b/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
index d5224c5..479b77e 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
@@ -23,12 +23,12 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
-import com.google.common.collect.Sets;
-
import org.apache.kylin.cube.kv.RowKeyColumnOrder;
import org.apache.kylin.dict.Dictionary;
-import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.TblColRef;
+
+import com.google.common.collect.Sets;
/**
*/
@@ -167,7 +167,7 @@ public class ColumnValueRange {
public void preEvaluateWithDict(Dictionary<String> dict) {
if (dict == null)
return;
-
+
if (equalValues != null) {
Iterator<String> it = equalValues.iterator();
while (it.hasNext()) {
@@ -181,7 +181,7 @@ public class ColumnValueRange {
}
refreshBeginEndFromEquals();
}
-
+
if (beginValue != null) {
try {
beginValue = dict.getValueFromId(dict.getIdFromValue(beginValue, -1));
@@ -190,7 +190,7 @@ public class ColumnValueRange {
beginValue = null;
}
}
-
+
if (endValue != null) {
try {
endValue = dict.getValueFromId(dict.getIdFromValue(endValue, 1));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
index ad35972..f6060fc 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
@@ -28,9 +28,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import com.google.common.collect.Lists;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
-
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.Result;
@@ -41,29 +38,31 @@ import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.FuzzyRowFilter;
import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
-import org.apache.kylin.common.util.Bytes;
-import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.storage.StorageContext;
-import org.apache.kylin.storage.tuple.TupleInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.kylin.common.persistence.StorageException;
import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.kv.RowKeyDecoder;
import org.apache.kylin.cube.kv.RowValueDecoder;
+import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
import org.apache.kylin.cube.model.HBaseColumnDesc;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.StorageContext;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
import org.apache.kylin.storage.tuple.Tuple;
import org.apache.kylin.storage.tuple.Tuple.IDerivedColumnFiller;
+import org.apache.kylin.storage.tuple.TupleInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
/**
* @author xjiang
@@ -278,7 +277,7 @@ public class CubeSegmentTupleIterator implements ITupleIterator {
private List<org.apache.hadoop.hbase.util.Pair<byte[], byte[]>> convertToHBasePair(List<org.apache.kylin.common.util.Pair<byte[], byte[]>> pairList) {
List<org.apache.hadoop.hbase.util.Pair<byte[], byte[]>> result = Lists.newArrayList();
- for(org.apache.kylin.common.util.Pair pair : pairList) {
+ for (org.apache.kylin.common.util.Pair pair : pairList) {
org.apache.hadoop.hbase.util.Pair element = new org.apache.hadoop.hbase.util.Pair(pair.getFirst(), pair.getSecond());
result.add(element);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
index 9b11756..9285f27 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
@@ -18,44 +18,53 @@
package org.apache.kylin.storage.hbase;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
-import org.apache.kylin.metadata.model.FunctionDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
-import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.realization.SQLDigest;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.storage.StorageContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-
-import org.apache.kylin.common.persistence.HBaseConnection;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.cuboid.Cuboid;
import org.apache.kylin.cube.kv.RowValueDecoder;
import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
import org.apache.kylin.cube.model.HBaseColumnDesc;
import org.apache.kylin.cube.model.HBaseMappingDesc;
-import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.dict.lookup.LookupStringTable;
-import org.apache.kylin.storage.IStorageEngine;
import org.apache.kylin.metadata.filter.ColumnTupleFilter;
import org.apache.kylin.metadata.filter.CompareTupleFilter;
import org.apache.kylin.metadata.filter.LogicalTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.StorageContext;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
/**
* @author xjiang, yangli9
@@ -474,7 +483,7 @@ public class CubeStorageEngine implements IStorageEngine {
ColumnValueRange range = new ColumnValueRange(comp.getColumn(), comp.getValues(), comp.getOperator());
andMerge(range, rangeMap);
}
-
+
// a little pre-evaluation to remove invalid EQ/IN values and round start/end according to dictionary
Iterator<ColumnValueRange> it = rangeMap.values().iterator();
while (it.hasNext()) {
@@ -485,7 +494,7 @@ public class CubeStorageEngine implements IStorageEngine {
else if (range.satisfyNone())
return null;
}
-
+
return rangeMap.values();
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
index d2e9402..cd34892 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
@@ -21,24 +21,24 @@ package org.apache.kylin.storage.hbase;
import java.util.List;
import java.util.Set;
-import org.apache.kylin.common.util.Pair;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.kv.RowKeyColumnOrder;
import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
import org.apache.kylin.cube.model.CubeDesc.DeriveType;
import org.apache.kylin.dict.lookup.LookupStringTable;
-import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.filter.ColumnTupleFilter;
import org.apache.kylin.metadata.filter.CompareTupleFilter;
import org.apache.kylin.metadata.filter.ConstantTupleFilter;
import org.apache.kylin.metadata.filter.LogicalTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
/**
* @author yangli9
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java b/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
index 3857573..3081e1f 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
@@ -28,10 +28,11 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import org.apache.kylin.metadata.model.TblColRef;
+
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
-import org.apache.kylin.metadata.model.TblColRef;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java b/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
index 9b05dc7..1f8aa07 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
@@ -18,8 +18,12 @@
package org.apache.kylin.storage.hbase;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.kylin.common.debug.BackdoorToggles;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.BytesUtil;
@@ -36,7 +40,8 @@ import org.apache.kylin.metadata.model.TblColRef;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.*;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
/**
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java b/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
index 1d4ec68..dc527b9 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
@@ -29,9 +29,8 @@ import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.security.User;
import org.apache.hadoop.hbase.security.token.TokenUtil;
-import org.apache.kylin.common.util.Bytes;
import org.apache.hadoop.security.UserGroupInformation;
-
+import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.HadoopUtil;
/**
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
index 97ba981..ca53957 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
@@ -25,17 +25,17 @@ import java.util.List;
import java.util.Map;
import org.apache.hadoop.hbase.client.HConnection;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeSegment;
import org.apache.kylin.cube.kv.RowValueDecoder;
-import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.StorageContext;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
index d1dc4d3..f1624ea 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
@@ -17,12 +17,13 @@
*/
package org.apache.kylin.storage.hbase.coprocessor;
-import com.google.common.collect.Lists;
+import java.util.Arrays;
+import java.util.LinkedList;
+
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.cube.kv.RowConstants;
-import java.util.Arrays;
-import java.util.LinkedList;
+import com.google.common.collect.Lists;
/**
* Created by qianzhou on 4/20/15.
@@ -57,12 +58,11 @@ public class AggrKey implements Comparable<AggrKey> {
this.hashcode = hashcode;
}
- private int calculateHash()
- {
+ private int calculateHash() {
int hash = 1;
for (int i = 0; i < groupByMaskSet.length; i++) {
byte t = data[offset + groupByMaskSet[i]];
- if(t!= RowConstants.ROWKEY_PLACE_HOLDER_BYTE) {
+ if (t != RowConstants.ROWKEY_PLACE_HOLDER_BYTE) {
hash = (31 * hash) + t;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
index 483c72c..4b29ab0 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
@@ -18,10 +18,11 @@
package org.apache.kylin.storage.hbase.coprocessor;
-import com.google.common.collect.Maps;
+import java.util.SortedMap;
+
import org.apache.kylin.metadata.measure.MeasureAggregator;
-import java.util.SortedMap;
+import com.google.common.collect.Maps;
/**
* Created by Hongbin Ma(Binmahone) on 11/27/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
index d1290e3..3f7050c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
@@ -22,18 +22,22 @@ import java.util.Collection;
import java.util.Set;
import org.apache.kylin.common.util.Bytes;
-
-import com.google.common.collect.Sets;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.cube.kv.RowKeyColumnIO;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.dict.ISegment;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.filter.TupleFilterSerializer;
import org.apache.kylin.metadata.filter.TupleFilterSerializer.Decorator;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
+import com.google.common.collect.Sets;
+
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
index 1f0a920..4b69743 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
@@ -18,6 +18,11 @@
package org.apache.kylin.storage.hbase.coprocessor;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
import org.apache.hadoop.hbase.Cell;
import org.apache.kylin.common.util.BytesSerializer;
import org.apache.kylin.common.util.BytesUtil;
@@ -27,11 +32,6 @@ import org.apache.kylin.cube.kv.RowKeyEncoder;
import org.apache.kylin.invertedindex.index.TableRecordInfo;
import org.apache.kylin.metadata.model.TblColRef;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
index 619be84..33eb9a0 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
@@ -23,8 +23,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import com.google.common.collect.Maps;
-
import org.apache.kylin.common.util.BytesSerializer;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.cube.CubeSegment;
@@ -36,6 +34,8 @@ import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
+import com.google.common.collect.Maps;
+
/**
* @author yangli9
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
index ac6fa70..3815b1c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
@@ -18,13 +18,13 @@
package org.apache.kylin.storage.hbase.coprocessor.endpoint;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.kylin.metadata.measure.MeasureAggregator;
import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
import org.apache.kylin.storage.hbase.coprocessor.AggregationCache;
-import java.util.Map;
-import java.util.Set;
-
/**
* Created by Hongbin Ma(Binmahone) on 11/27/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/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 9e5c804..6ab2429 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
@@ -55,7 +55,6 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.protobuf.ByteString;
-
/**
* Created by Hongbin Ma(Binmahone) on 12/2/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
index d587d1a..1643e3a 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
@@ -18,18 +18,18 @@
package org.apache.kylin.storage.hbase.coprocessor.endpoint;
-import org.apache.commons.io.IOUtils;
-import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.hadoop.hbase.regionserver.RegionScanner;
-import org.apache.kylin.common.util.Pair;
-
import java.io.Closeable;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import org.apache.commons.io.IOUtils;
+import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.hbase.regionserver.RegionScanner;
+import org.apache.kylin.common.util.Pair;
+
/**
* Created by honma on 11/10/14.
*/
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
index 2e85eac..0102380 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
@@ -18,11 +18,10 @@
package org.apache.kylin.storage.hbase.coprocessor.endpoint;
-import com.google.protobuf.ByteString;
-import com.google.protobuf.RpcCallback;
-import com.google.protobuf.RpcController;
-import com.google.protobuf.Service;
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.hbase.Coprocessor;
import org.apache.hadoop.hbase.CoprocessorEnvironment;
@@ -41,12 +40,18 @@ import org.apache.kylin.invertedindex.model.IIDesc;
import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
import org.apache.kylin.metadata.measure.MeasureAggregator;
import org.apache.kylin.storage.filter.BitMapFilterEvaluator;
-import org.apache.kylin.storage.hbase.coprocessor.*;
+import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorConstants;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
import org.apache.kylin.storage.hbase.coprocessor.endpoint.generated.IIProtos;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Service;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
/**
* Created by honma on 11/7/14.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
index 0691560..a45772d 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
@@ -40,10 +40,9 @@ public class SliceBitMapProvider implements BitMapFilterEvaluator.BitMapProvider
this.type = type;
}
-
@Override
public ConciseSet getBitMap(TblColRef col, Integer startId, Integer endId) {
- return slice.getColumnValueContainer(type.getColIndexByTblColRef(col)).getBitMap(startId,endId);
+ return slice.getColumnValueContainer(type.getColIndexByTblColRef(col)).getBitMap(startId, endId);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
index 8771bf4..f9cfee6 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
@@ -18,6 +18,8 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
+import java.io.IOException;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.client.Scan;
@@ -31,8 +33,6 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
-import java.io.IOException;
-
/**
* @author yangli9
*/