kylin git commit: minor, sub_query/query02.sql fix CI

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/master 911bdd00a -> f2377db9f


minor, sub_query/query02.sql fix CI


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

Branch: refs/heads/master
Commit: f2377db9ff2687098c0bd8a805449547b7dcd436
Parents: 911bdd0
Author: Li Yang 
Authored: Fri Dec 16 15:53:30 2016 +0800
Committer: Li Yang 
Committed: Fri Dec 16 15:53:30 2016 +0800

--
 .../org/apache/kylin/dimension/DimensionEncodingFactory.java | 2 +-
 .../java/org/apache/kylin/metadata/model/DataModelDesc.java  | 4 ++--
 kylin-it/src/test/resources/query/sql_subquery/query02.sql   | 8 ++--
 3 files changed, 9 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/f2377db9/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java
 
b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java
index 4954ead..3eddba7 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/dimension/DimensionEncodingFactory.java
@@ -71,7 +71,7 @@ public abstract class DimensionEncodingFactory {
 if (factoryMap == null)
 initFactoryMap();
 
-Map result = Maps.newHashMap();
+Map result = Maps.newTreeMap();
 for (Pair p : factoryMap.keySet()) {
 if (result.containsKey(p.getFirst())) {
 if (result.get(p.getFirst()) > p.getSecond()) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/f2377db9/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
index 0b494e3..571b196 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
@@ -393,7 +393,7 @@ public class DataModelDesc extends RootPersistentEntity {
 col = findColumn(pks[i]);
 }
 if (col == null || col.getTableRef().equals(dimTable) == 
false) {
-throw new IllegalStateException("Can't find column " + 
pks[i] + " in table " + dimTable.getTableIdentity());
+throw new IllegalStateException("Can't find PK column " + 
pks[i] + " in table " + dimTable);
 }
 pks[i] = col.getIdentity();
 pkCols[i] = col;
@@ -406,7 +406,7 @@ public class DataModelDesc extends RootPersistentEntity {
 for (int i = 0; i < fks.length; i++) {
 TblColRef col = findColumn(fks[i]);
 if (col == null) {
-throw new IllegalStateException("Can't find column " + 
fks[i] + " in table " + this.getRootFactTable());
+throw new IllegalStateException("Can't find FK column " + 
fks[i]);
 }
 fks[i] = col.getIdentity();
 fkCols[i] = col;

http://git-wip-us.apache.org/repos/asf/kylin/blob/f2377db9/kylin-it/src/test/resources/query/sql_subquery/query02.sql
--
diff --git a/kylin-it/src/test/resources/query/sql_subquery/query02.sql 
b/kylin-it/src/test/resources/query/sql_subquery/query02.sql
index e6751b7..b0dcf73 100644
--- a/kylin-it/src/test/resources/query/sql_subquery/query02.sql
+++ b/kylin-it/src/test/resources/query/sql_subquery/query02.sql
@@ -25,7 +25,11 @@ FROM
 test_cal_dt.week_beg_dt
 ,test_kylin_fact.price
   from test_kylin_fact 
-  inner join edw.test_cal_dt as test_cal_dt
-on test_kylin_fact.cal_dt = test_cal_dt.cal_dt
+inner JOIN edw.test_cal_dt as test_cal_dt
+  ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt
+inner JOIN test_category_groupings
+  ON test_kylin_fact.leaf_categ_id = test_category_groupings.leaf_categ_id 
AND test_kylin_fact.lstg_site_id = test_category_groupings.site_id
+inner JOIN edw.test_sites as test_sites
+  ON test_kylin_fact.lstg_site_id = test_sites.site_id  inner join 
edw.test_cal_dt as test_cal_dt
 ) t
 group by week_beg_dt 



[3/3] kylin git commit: KYLIN-1672 support kylin on cdh 5.7

2016-12-15 Thread billyliu
KYLIN-1672 support kylin on cdh 5.7

Signed-off-by: Li Yang 


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

Branch: refs/heads/yang22-cdh5.7
Commit: f11fecb5ce23b7c6b9f931636ebc735ff464386b
Parents: c33fa8c
Author: Lynne Jiang 
Authored: Mon May 16 03:33:27 2016 -0700
Committer: Billy Liu 
Committed: Fri Dec 16 15:25:22 2016 +0800

--
 dev-support/test_all_against_hdp_2_2_4_2_2.sh   |   0
 .../kylin/engine/mr/steps/MockupMapContext.java |  15 +-
 examples/test_case_data/sandbox/core-site.xml   | 146 +++---
 examples/test_case_data/sandbox/hbase-site.xml  | 162 ++
 examples/test_case_data/sandbox/hdfs-site.xml   | 259 ++
 examples/test_case_data/sandbox/mapred-site.xml | 398 ++-
 examples/test_case_data/sandbox/yarn-site.xml   | 496 ++-
 pom.xml |  16 +-
 server/pom.xml  |  36 ++
 .../storage/hbase/steps/MockupMapContext.java   |  19 +-
 tool/pom.xml|  12 +
 11 files changed, 428 insertions(+), 1131 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/f11fecb5/dev-support/test_all_against_hdp_2_2_4_2_2.sh
--
diff --git a/dev-support/test_all_against_hdp_2_2_4_2_2.sh 
b/dev-support/test_all_against_hdp_2_2_4_2_2.sh
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/kylin/blob/f11fecb5/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java
--
diff --git 
a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java
 
b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java
index 847071d..9900465 100644
--- 
a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java
+++ 
b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/MockupMapContext.java
@@ -77,6 +77,7 @@ public class MockupMapContext {
 outKV[0] = key;
 outKV[1] = value;
 }
+
 }
 
 @Override
@@ -99,6 +100,7 @@ public class MockupMapContext {
 throw new NotImplementedException();
 }
 
+
 @Override
 public float getProgress() {
 throw new NotImplementedException();
@@ -195,17 +197,17 @@ public class MockupMapContext {
 }
 
 @Override
-public RawComparator getSortComparator() {
+public boolean userClassesTakesPrecedence() {
 throw new NotImplementedException();
 }
 
 @Override
-public String getJar() {
+public RawComparator getSortComparator() {
 throw new NotImplementedException();
 }
 
 @Override
-public RawComparator getGroupingComparator() {
+public String getJar() {
 throw new NotImplementedException();
 }
 
@@ -221,7 +223,7 @@ public class MockupMapContext {
 
 @Override
 public boolean getProfileEnabled() {
-throw new NotImplementedException();
+return false;
 }
 
 @Override
@@ -308,6 +310,11 @@ public class MockupMapContext {
 public RawComparator getCombinerKeyGroupingComparator() {
 throw new NotImplementedException();
 }
+
+@Override
+public RawComparator getGroupingComparator() {
+return null;
+}
 });
 }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/f11fecb5/examples/test_case_data/sandbox/core-site.xml
--
diff --git a/examples/test_case_data/sandbox/core-site.xml 
b/examples/test_case_data/sandbox/core-site.xml
index 9aa588c..6162406 100644
--- a/examples/test_case_data/sandbox/core-site.xml
+++ b/examples/test_case_data/sandbox/core-site.xml
@@ -14,152 +14,146 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
+
 
-
 
 fs.defaultFS
-hdfs://sandbox.hortonworks.com:8020
-true
+hdfs://quickstart.cloudera:8020
 
-
 
 fs.trash.interval
-360
+1
 
-
 
-
ha.failover-controller.active-standby-elector.zk.op.retries
-120
+io.compression.codecs
+

[2/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

2016-12-15 Thread billyliu
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API


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

Branch: refs/heads/yang22-cdh5.7
Commit: c33fa8c9d45bbf306c032a3406d463028864c824
Parents: ed497fe
Author: shaofengshi 
Authored: Wed Mar 23 17:07:05 2016 +0800
Committer: Billy Liu 
Committed: Fri Dec 16 15:23:43 2016 +0800

--
 examples/test_case_data/sandbox/hbase-site.xml  | 19 +---
 .../kylin/provision/BuildCubeWithEngine.java| 12 +--
 pom.xml | 12 +--
 .../kylin/rest/security/AclHBaseStorage.java|  4 +-
 .../rest/security/MockAclHBaseStorage.java  |  8 +-
 .../apache/kylin/rest/security/MockHTable.java  | 95 
 .../rest/security/RealAclHBaseStorage.java  |  9 +-
 .../apache/kylin/rest/service/AclService.java   | 25 +++---
 .../apache/kylin/rest/service/CubeService.java  | 35 +++-
 .../apache/kylin/rest/service/QueryService.java | 24 +++--
 .../apache/kylin/rest/service/UserService.java  | 17 ++--
 .../kylin/storage/hbase/HBaseConnection.java| 44 -
 .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++
 .../kylin/storage/hbase/HBaseStorage.java   |  3 +-
 .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++---
 .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +--
 .../storage/hbase/cube/v1/CubeStorageQuery.java |  4 +-
 .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++-
 .../cube/v1/SerializedHBaseTupleIterator.java   |  4 +-
 .../observer/AggregateRegionObserver.java   |  4 +-
 .../observer/AggregationScanner.java| 14 ++-
 .../observer/ObserverAggregationCache.java  | 10 ++-
 .../coprocessor/observer/ObserverEnabler.java   |  4 +-
 .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +--
 .../storage/hbase/cube/v2/CubeHBaseScanRPC.java |  9 +-
 .../coprocessor/endpoint/CubeVisitService.java  |  4 +-
 .../storage/hbase/steps/CubeHTableUtil.java | 16 ++--
 .../storage/hbase/steps/DeprecatedGCStep.java   | 23 ++---
 .../storage/hbase/steps/HBaseCuboidWriter.java  |  7 +-
 .../kylin/storage/hbase/steps/MergeGCStep.java  | 23 ++---
 .../storage/hbase/util/CleanHtableCLI.java  | 12 +--
 .../storage/hbase/util/CubeMigrationCLI.java| 36 
 .../hbase/util/CubeMigrationCheckCLI.java   | 17 ++--
 .../hbase/util/DeployCoprocessorCLI.java| 27 +++---
 .../hbase/util/ExtendCubeToHybridCLI.java   |  8 +-
 .../hbase/util/GridTableHBaseBenchmark.java | 34 +++
 .../kylin/storage/hbase/util/HBaseClean.java| 18 ++--
 .../hbase/util/HBaseRegionSizeCalculator.java   | 35 
 .../kylin/storage/hbase/util/HBaseUsage.java|  9 +-
 .../storage/hbase/util/HbaseStreamingInput.java | 30 +++
 .../hbase/util/HtableAlterMetadataCLI.java  |  9 +-
 .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++--
 .../kylin/storage/hbase/util/PingHBaseCLI.java  | 15 ++--
 .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +--
 .../storage/hbase/util/StorageCleanupJob.java   | 20 +++--
 .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++--
 .../observer/AggregateRegionObserverTest.java   | 26 ++
 .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java |  5 +-
 .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++--
 .../kylin/tool/ExtendCubeToHybridCLI.java   |  8 +-
 50 files changed, 417 insertions(+), 472 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/examples/test_case_data/sandbox/hbase-site.xml
--
diff --git a/examples/test_case_data/sandbox/hbase-site.xml 
b/examples/test_case_data/sandbox/hbase-site.xml
index 46d5345..734908e 100644
--- a/examples/test_case_data/sandbox/hbase-site.xml
+++ b/examples/test_case_data/sandbox/hbase-site.xml
@@ -190,22 +190,5 @@
 zookeeper.znode.parent
 /hbase-unsecure
 
-
-hbase.client.pause
-100
-General client pause value.  Used mostly as value to wait
-before running a retry of a failed get, region lookup, etc.
-See hbase.client.retries.number for description of how we backoff 
from
-this initial pause amount and how this pause works w/ 
retries.
-
-
-hbase.client.retries.number
-5
-Maximum retries.  Used as maximum for all retryable
-operations such as the getting of a cell's value, starting a row 
update,
-etc.  Retry interval is a rough function based on 
hbase.client.pause.  At
-first we retry at this interval but then with backoff, we pretty 
quickly reach
- 

[1/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API [Forced Update!]

2016-12-15 Thread billyliu
Repository: kylin
Updated Branches:
  refs/heads/yang22-cdh5.7 b8c3a69fb -> f11fecb5c (forced update)


http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
index a150607..56f867a 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
@@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
@@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication {
 protected static final Logger logger = 
LoggerFactory.getLogger(CleanHtableCLI.class);
 
 private void clean() throws IOException {
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = 
HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+Admin hbaseAdmin = conn.getAdmin();
 
 for (HTableDescriptor descriptor : hbaseAdmin.listTables()) {
 String name = descriptor.getNameAsString().toLowerCase();
@@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication {
 System.out.println();
 
 descriptor.setValue(IRealizationConstants.HTableOwner, 
"dl-ebay-ky...@ebay.com");
-hbaseAdmin.modifyTable(descriptor.getNameAsString(), 
descriptor);
+
hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), 
descriptor);
 }
 }
 hbaseAdmin.close();

http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
index 2e682b1..f47bf31 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
@@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-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.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
@@ -88,7 +89,7 @@ public class CubeMigrationCLI {
 private static ResourceStore srcStore;
 private static ResourceStore dstStore;
 private static FileSystem hdfsFS;
-private static HBaseAdmin hbaseAdmin;
+private static Admin hbaseAdmin;
 
 public static final String ACL_INFO_FAMILY = "i";
 private static final String ACL_TABLE_NAME = "_acl";
@@ -133,8 +134,8 @@ public class CubeMigrationCLI {
 
 checkAndGetHbaseUrl();
 
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = HBaseConnection.get(srcConfig.getStorageUrl());
+hbaseAdmin = conn.getAdmin();
 
 hdfsFS = FileSystem.get(new Configuration());
 
@@ -232,6 +233,7 @@ public class CubeMigrationCLI {
 operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] 
{ item, cube.getName() }));
 }
 }
+
 private static void addCubeAndModelIntoProject(CubeInstance srcCube, 
String cubeName, String projectName) throws IOException {
 String projectResPath = 

[2/2] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

2016-12-15 Thread billyliu
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API


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

Branch: refs/heads/yang22-hbase1.x
Commit: c33fa8c9d45bbf306c032a3406d463028864c824
Parents: ed497fe
Author: shaofengshi 
Authored: Wed Mar 23 17:07:05 2016 +0800
Committer: Billy Liu 
Committed: Fri Dec 16 15:23:43 2016 +0800

--
 examples/test_case_data/sandbox/hbase-site.xml  | 19 +---
 .../kylin/provision/BuildCubeWithEngine.java| 12 +--
 pom.xml | 12 +--
 .../kylin/rest/security/AclHBaseStorage.java|  4 +-
 .../rest/security/MockAclHBaseStorage.java  |  8 +-
 .../apache/kylin/rest/security/MockHTable.java  | 95 
 .../rest/security/RealAclHBaseStorage.java  |  9 +-
 .../apache/kylin/rest/service/AclService.java   | 25 +++---
 .../apache/kylin/rest/service/CubeService.java  | 35 +++-
 .../apache/kylin/rest/service/QueryService.java | 24 +++--
 .../apache/kylin/rest/service/UserService.java  | 17 ++--
 .../kylin/storage/hbase/HBaseConnection.java| 44 -
 .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++
 .../kylin/storage/hbase/HBaseStorage.java   |  3 +-
 .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++---
 .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +--
 .../storage/hbase/cube/v1/CubeStorageQuery.java |  4 +-
 .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++-
 .../cube/v1/SerializedHBaseTupleIterator.java   |  4 +-
 .../observer/AggregateRegionObserver.java   |  4 +-
 .../observer/AggregationScanner.java| 14 ++-
 .../observer/ObserverAggregationCache.java  | 10 ++-
 .../coprocessor/observer/ObserverEnabler.java   |  4 +-
 .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +--
 .../storage/hbase/cube/v2/CubeHBaseScanRPC.java |  9 +-
 .../coprocessor/endpoint/CubeVisitService.java  |  4 +-
 .../storage/hbase/steps/CubeHTableUtil.java | 16 ++--
 .../storage/hbase/steps/DeprecatedGCStep.java   | 23 ++---
 .../storage/hbase/steps/HBaseCuboidWriter.java  |  7 +-
 .../kylin/storage/hbase/steps/MergeGCStep.java  | 23 ++---
 .../storage/hbase/util/CleanHtableCLI.java  | 12 +--
 .../storage/hbase/util/CubeMigrationCLI.java| 36 
 .../hbase/util/CubeMigrationCheckCLI.java   | 17 ++--
 .../hbase/util/DeployCoprocessorCLI.java| 27 +++---
 .../hbase/util/ExtendCubeToHybridCLI.java   |  8 +-
 .../hbase/util/GridTableHBaseBenchmark.java | 34 +++
 .../kylin/storage/hbase/util/HBaseClean.java| 18 ++--
 .../hbase/util/HBaseRegionSizeCalculator.java   | 35 
 .../kylin/storage/hbase/util/HBaseUsage.java|  9 +-
 .../storage/hbase/util/HbaseStreamingInput.java | 30 +++
 .../hbase/util/HtableAlterMetadataCLI.java  |  9 +-
 .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++--
 .../kylin/storage/hbase/util/PingHBaseCLI.java  | 15 ++--
 .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +--
 .../storage/hbase/util/StorageCleanupJob.java   | 20 +++--
 .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++--
 .../observer/AggregateRegionObserverTest.java   | 26 ++
 .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java |  5 +-
 .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++--
 .../kylin/tool/ExtendCubeToHybridCLI.java   |  8 +-
 50 files changed, 417 insertions(+), 472 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/examples/test_case_data/sandbox/hbase-site.xml
--
diff --git a/examples/test_case_data/sandbox/hbase-site.xml 
b/examples/test_case_data/sandbox/hbase-site.xml
index 46d5345..734908e 100644
--- a/examples/test_case_data/sandbox/hbase-site.xml
+++ b/examples/test_case_data/sandbox/hbase-site.xml
@@ -190,22 +190,5 @@
 zookeeper.znode.parent
 /hbase-unsecure
 
-
-hbase.client.pause
-100
-General client pause value.  Used mostly as value to wait
-before running a retry of a failed get, region lookup, etc.
-See hbase.client.retries.number for description of how we backoff 
from
-this initial pause amount and how this pause works w/ 
retries.
-
-
-hbase.client.retries.number
-5
-Maximum retries.  Used as maximum for all retryable
-operations such as the getting of a cell's value, starting a row 
update,
-etc.  Retry interval is a rough function based on 
hbase.client.pause.  At
-first we retry at this interval but then with backoff, we pretty 
quickly reach
-   

[1/2] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API [Forced Update!]

2016-12-15 Thread billyliu
Repository: kylin
Updated Branches:
  refs/heads/yang22-hbase1.x 8705eea69 -> c33fa8c9d (forced update)


http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
index a150607..56f867a 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
@@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
@@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication {
 protected static final Logger logger = 
LoggerFactory.getLogger(CleanHtableCLI.class);
 
 private void clean() throws IOException {
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = 
HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+Admin hbaseAdmin = conn.getAdmin();
 
 for (HTableDescriptor descriptor : hbaseAdmin.listTables()) {
 String name = descriptor.getNameAsString().toLowerCase();
@@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication {
 System.out.println();
 
 descriptor.setValue(IRealizationConstants.HTableOwner, 
"dl-ebay-ky...@ebay.com");
-hbaseAdmin.modifyTable(descriptor.getNameAsString(), 
descriptor);
+
hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), 
descriptor);
 }
 }
 hbaseAdmin.close();

http://git-wip-us.apache.org/repos/asf/kylin/blob/c33fa8c9/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
index 2e682b1..f47bf31 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
@@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-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.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
@@ -88,7 +89,7 @@ public class CubeMigrationCLI {
 private static ResourceStore srcStore;
 private static ResourceStore dstStore;
 private static FileSystem hdfsFS;
-private static HBaseAdmin hbaseAdmin;
+private static Admin hbaseAdmin;
 
 public static final String ACL_INFO_FAMILY = "i";
 private static final String ACL_TABLE_NAME = "_acl";
@@ -133,8 +134,8 @@ public class CubeMigrationCLI {
 
 checkAndGetHbaseUrl();
 
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = HBaseConnection.get(srcConfig.getStorageUrl());
+hbaseAdmin = conn.getAdmin();
 
 hdfsFS = FileSystem.get(new Configuration());
 
@@ -232,6 +233,7 @@ public class CubeMigrationCLI {
 operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] 
{ item, cube.getName() }));
 }
 }
+
 private static void addCubeAndModelIntoProject(CubeInstance srcCube, 
String cubeName, String projectName) throws IOException {
 String projectResPath = 

[2/4] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

2016-12-15 Thread lidong
http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
index a150607..56f867a 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
@@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
@@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication {
 protected static final Logger logger = 
LoggerFactory.getLogger(CleanHtableCLI.class);
 
 private void clean() throws IOException {
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = 
HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+Admin hbaseAdmin = conn.getAdmin();
 
 for (HTableDescriptor descriptor : hbaseAdmin.listTables()) {
 String name = descriptor.getNameAsString().toLowerCase();
@@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication {
 System.out.println();
 
 descriptor.setValue(IRealizationConstants.HTableOwner, 
"dl-ebay-ky...@ebay.com");
-hbaseAdmin.modifyTable(descriptor.getNameAsString(), 
descriptor);
+
hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), 
descriptor);
 }
 }
 hbaseAdmin.close();

http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
index 2e682b1..f47bf31 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
@@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-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.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
@@ -88,7 +89,7 @@ public class CubeMigrationCLI {
 private static ResourceStore srcStore;
 private static ResourceStore dstStore;
 private static FileSystem hdfsFS;
-private static HBaseAdmin hbaseAdmin;
+private static Admin hbaseAdmin;
 
 public static final String ACL_INFO_FAMILY = "i";
 private static final String ACL_TABLE_NAME = "_acl";
@@ -133,8 +134,8 @@ public class CubeMigrationCLI {
 
 checkAndGetHbaseUrl();
 
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = HBaseConnection.get(srcConfig.getStorageUrl());
+hbaseAdmin = conn.getAdmin();
 
 hdfsFS = FileSystem.get(new Configuration());
 
@@ -232,6 +233,7 @@ public class CubeMigrationCLI {
 operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] 
{ item, cube.getName() }));
 }
 }
+
 private static void addCubeAndModelIntoProject(CubeInstance srcCube, 
String cubeName, String projectName) throws IOException {
 String projectResPath = 
ProjectInstance.concatResourcePath(projectName);
 if (!dstStore.exists(projectResPath))
@@ -325,8 +327,8 @@ public class 

[3/4] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

2016-12-15 Thread lidong
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API


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

Branch: refs/heads/yang22-cdh5.7
Commit: 8705eea69207da1bdc16b677f8b9e94595221f49
Parents: ed497fe
Author: shaofengshi 
Authored: Wed Mar 23 17:07:05 2016 +0800
Committer: lidongsjtu 
Committed: Fri Dec 16 12:29:27 2016 +0800

--
 examples/test_case_data/sandbox/hbase-site.xml  | 19 +---
 .../kylin/provision/BuildCubeWithEngine.java| 12 +--
 pom.xml | 12 +--
 .../kylin/rest/security/AclHBaseStorage.java|  4 +-
 .../rest/security/MockAclHBaseStorage.java  |  8 +-
 .../apache/kylin/rest/security/MockHTable.java  | 95 
 .../rest/security/RealAclHBaseStorage.java  |  9 +-
 .../apache/kylin/rest/service/AclService.java   | 25 +++---
 .../apache/kylin/rest/service/CubeService.java  | 35 +++-
 .../apache/kylin/rest/service/QueryService.java | 24 +++--
 .../apache/kylin/rest/service/UserService.java  | 17 ++--
 .../kylin/storage/hbase/HBaseConnection.java| 44 -
 .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++
 .../kylin/storage/hbase/HBaseStorage.java   |  3 +-
 .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++---
 .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +--
 .../storage/hbase/cube/v1/CubeStorageQuery.java |  4 +-
 .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++-
 .../cube/v1/SerializedHBaseTupleIterator.java   |  4 +-
 .../observer/AggregateRegionObserver.java   |  4 +-
 .../observer/AggregationScanner.java| 14 ++-
 .../observer/ObserverAggregationCache.java  | 10 ++-
 .../coprocessor/observer/ObserverEnabler.java   |  4 +-
 .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +--
 .../storage/hbase/cube/v2/CubeHBaseScanRPC.java |  9 +-
 .../coprocessor/endpoint/CubeVisitService.java  |  4 +-
 .../storage/hbase/steps/CubeHTableUtil.java | 16 ++--
 .../storage/hbase/steps/DeprecatedGCStep.java   | 23 ++---
 .../storage/hbase/steps/HBaseCuboidWriter.java  |  7 +-
 .../kylin/storage/hbase/steps/MergeGCStep.java  | 23 ++---
 .../storage/hbase/util/CleanHtableCLI.java  | 12 +--
 .../storage/hbase/util/CubeMigrationCLI.java| 36 
 .../hbase/util/CubeMigrationCheckCLI.java   | 17 ++--
 .../hbase/util/DeployCoprocessorCLI.java| 27 +++---
 .../hbase/util/ExtendCubeToHybridCLI.java   |  8 +-
 .../hbase/util/GridTableHBaseBenchmark.java | 34 +++
 .../kylin/storage/hbase/util/HBaseClean.java| 18 ++--
 .../hbase/util/HBaseRegionSizeCalculator.java   | 35 
 .../kylin/storage/hbase/util/HBaseUsage.java|  9 +-
 .../storage/hbase/util/HbaseStreamingInput.java | 30 +++
 .../hbase/util/HtableAlterMetadataCLI.java  |  9 +-
 .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++--
 .../kylin/storage/hbase/util/PingHBaseCLI.java  | 15 ++--
 .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +--
 .../storage/hbase/util/StorageCleanupJob.java   | 20 +++--
 .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++--
 .../observer/AggregateRegionObserverTest.java   | 26 ++
 .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java |  5 +-
 .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++--
 .../kylin/tool/ExtendCubeToHybridCLI.java   |  8 +-
 50 files changed, 417 insertions(+), 472 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/examples/test_case_data/sandbox/hbase-site.xml
--
diff --git a/examples/test_case_data/sandbox/hbase-site.xml 
b/examples/test_case_data/sandbox/hbase-site.xml
index 46d5345..734908e 100644
--- a/examples/test_case_data/sandbox/hbase-site.xml
+++ b/examples/test_case_data/sandbox/hbase-site.xml
@@ -190,22 +190,5 @@
 zookeeper.znode.parent
 /hbase-unsecure
 
-
-hbase.client.pause
-100
-General client pause value.  Used mostly as value to wait
-before running a retry of a failed get, region lookup, etc.
-See hbase.client.retries.number for description of how we backoff 
from
-this initial pause amount and how this pause works w/ 
retries.
-
-
-hbase.client.retries.number
-5
-Maximum retries.  Used as maximum for all retryable
-operations such as the getting of a cell's value, starting a row 
update,
-etc.  Retry interval is a rough function based on 
hbase.client.pause.  At
-first we retry at this interval but then with backoff, we pretty 
quickly reach
-  

[1/4] kylin git commit: KYLIN-2277 return correct columns for select * [Forced Update!]

2016-12-15 Thread lidong
Repository: kylin
Updated Branches:
  refs/heads/yang22-cdh5.7 7a6f03d13 -> b8c3a69fb (forced update)


KYLIN-2277 return correct columns for select *


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

Branch: refs/heads/yang22-cdh5.7
Commit: ed497fe73bddffaf9373599c216400b323242833
Parents: 75ded9b
Author: Yang Li 
Authored: Tue Dec 13 23:45:55 2016 +0800
Committer: Yang Li 
Committed: Wed Dec 14 21:29:50 2016 +0800

--
 .../calcite/sql2rel/SqlToRelConverter.java  | 62 +++-
 .../kylin/metadata/model/FunctionDesc.java  |  4 +-
 .../apache/kylin/query/ITKylinQueryTest.java|  6 ++
 .../org/apache/kylin/query/KylinTestBase.java   | 21 +++
 .../resources/query/sql_timeout/query01.sql |  2 +-
 5 files changed, 91 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/ed497fe7/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 d223cdf..cf36f61 100644
--- 
a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ 
b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -67,6 +67,7 @@ import org.apache.calcite.rel.stream.Delta;
 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.RelDataTypeFactory.FieldInfoBuilder;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexCall;
@@ -194,6 +195,7 @@ import static org.apache.calcite.util.Static.RESOURCE;
  * - getInSubqueryThreshold(), was `20`, now `Integer.MAX_VALUE`
  * - isTrimUnusedFields(), override to false
  * - AggConverter.translateAgg(...), skip column reading for COUNT(COL), for 
https://jirap.corp.ebay.com/browse/KYLIN-104
+ * - convertQuery(), call hackSelectStar() at the end
  */
 
 /**
@@ -529,6 +531,8 @@ public class SqlToRelConverter {
  *the query will be part of a view.
  */
 public RelRoot convertQuery(SqlNode query, final boolean needsValidation, 
final boolean top) {
+SqlNode origQuery = query; /* OVERRIDE POINT */
+
 if (needsValidation) {
 query = validator.validate(query);
 }
@@ -553,7 +557,63 @@ public class SqlToRelConverter {
 }
 
 final RelDataType validatedRowType = 
validator.getValidatedNodeType(query);
-return RelRoot.of(result, validatedRowType, 
query.getKind()).withCollation(collation);
+return hackSelectStar(origQuery, RelRoot.of(result, validatedRowType, 
query.getKind()).withCollation(collation));
+}
+
+/* OVERRIDE POINT */
+private RelRoot hackSelectStar(SqlNode query, RelRoot root) {
+/*
+ * Rel tree is like:
+ * 
+ *   LogicalSort (optional)
+ *|- LogicalProject
+ *|- OLAPTableScan
+ */
+LogicalProject rootPrj = null;
+LogicalSort rootSort = null;
+if (root.rel instanceof LogicalProject) {
+rootPrj = (LogicalProject) root.rel;
+} else if (root.rel instanceof LogicalSort && root.rel.getInput(0) 
instanceof LogicalProject) {
+rootPrj = (LogicalProject) root.rel.getInput(0);
+rootSort = (LogicalSort) root.rel;
+} else {
+return root;
+}
+
+if 
(!rootPrj.getInput().getClass().getSimpleName().equals("OLAPTableScan"))
+return root;
+
+RelNode scan = rootPrj.getInput();
+if (rootPrj.getRowType().getFieldCount() < 
scan.getRowType().getFieldCount())
+return root;
+
+RelDataType inType = rootPrj.getRowType();
+List inFields = inType.getFieldNames();
+List projExp = new ArrayList<>();
+List> projFields = new ArrayList<>();
+FieldInfoBuilder projTypeBuilder = 
getCluster().getTypeFactory().builder();
+FieldInfoBuilder validTypeBuilder = 
getCluster().getTypeFactory().builder();
+for (int i = 0; i < inFields.size(); i++) {
+if (!inFields.get(i).startsWith("_KY_")) {
+projExp.add(rootPrj.getProjects().get(i));
+projFields.add(Pair.of(projFields.size(), inFields.get(i)));
+

[3/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

2016-12-15 Thread lidong
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API


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

Branch: refs/heads/yang22-hbase1.x
Commit: 8705eea69207da1bdc16b677f8b9e94595221f49
Parents: ed497fe
Author: shaofengshi 
Authored: Wed Mar 23 17:07:05 2016 +0800
Committer: lidongsjtu 
Committed: Fri Dec 16 12:29:27 2016 +0800

--
 examples/test_case_data/sandbox/hbase-site.xml  | 19 +---
 .../kylin/provision/BuildCubeWithEngine.java| 12 +--
 pom.xml | 12 +--
 .../kylin/rest/security/AclHBaseStorage.java|  4 +-
 .../rest/security/MockAclHBaseStorage.java  |  8 +-
 .../apache/kylin/rest/security/MockHTable.java  | 95 
 .../rest/security/RealAclHBaseStorage.java  |  9 +-
 .../apache/kylin/rest/service/AclService.java   | 25 +++---
 .../apache/kylin/rest/service/CubeService.java  | 35 +++-
 .../apache/kylin/rest/service/QueryService.java | 24 +++--
 .../apache/kylin/rest/service/UserService.java  | 17 ++--
 .../kylin/storage/hbase/HBaseConnection.java| 44 -
 .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++
 .../kylin/storage/hbase/HBaseStorage.java   |  3 +-
 .../storage/hbase/cube/SimpleHBaseStore.java| 20 ++---
 .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +--
 .../storage/hbase/cube/v1/CubeStorageQuery.java |  4 +-
 .../hbase/cube/v1/RegionScannerAdapter.java | 10 ++-
 .../cube/v1/SerializedHBaseTupleIterator.java   |  4 +-
 .../observer/AggregateRegionObserver.java   |  4 +-
 .../observer/AggregationScanner.java| 14 ++-
 .../observer/ObserverAggregationCache.java  | 10 ++-
 .../coprocessor/observer/ObserverEnabler.java   |  4 +-
 .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 13 +--
 .../storage/hbase/cube/v2/CubeHBaseScanRPC.java |  9 +-
 .../coprocessor/endpoint/CubeVisitService.java  |  4 +-
 .../storage/hbase/steps/CubeHTableUtil.java | 16 ++--
 .../storage/hbase/steps/DeprecatedGCStep.java   | 23 ++---
 .../storage/hbase/steps/HBaseCuboidWriter.java  |  7 +-
 .../kylin/storage/hbase/steps/MergeGCStep.java  | 23 ++---
 .../storage/hbase/util/CleanHtableCLI.java  | 12 +--
 .../storage/hbase/util/CubeMigrationCLI.java| 36 
 .../hbase/util/CubeMigrationCheckCLI.java   | 17 ++--
 .../hbase/util/DeployCoprocessorCLI.java| 27 +++---
 .../hbase/util/ExtendCubeToHybridCLI.java   |  8 +-
 .../hbase/util/GridTableHBaseBenchmark.java | 34 +++
 .../kylin/storage/hbase/util/HBaseClean.java| 18 ++--
 .../hbase/util/HBaseRegionSizeCalculator.java   | 35 
 .../kylin/storage/hbase/util/HBaseUsage.java|  9 +-
 .../storage/hbase/util/HbaseStreamingInput.java | 30 +++
 .../hbase/util/HtableAlterMetadataCLI.java  |  9 +-
 .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++--
 .../kylin/storage/hbase/util/PingHBaseCLI.java  | 15 ++--
 .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +--
 .../storage/hbase/util/StorageCleanupJob.java   | 20 +++--
 .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++--
 .../observer/AggregateRegionObserverTest.java   | 26 ++
 .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java |  5 +-
 .../org/apache/kylin/tool/CubeMigrationCLI.java | 19 ++--
 .../kylin/tool/ExtendCubeToHybridCLI.java   |  8 +-
 50 files changed, 417 insertions(+), 472 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/examples/test_case_data/sandbox/hbase-site.xml
--
diff --git a/examples/test_case_data/sandbox/hbase-site.xml 
b/examples/test_case_data/sandbox/hbase-site.xml
index 46d5345..734908e 100644
--- a/examples/test_case_data/sandbox/hbase-site.xml
+++ b/examples/test_case_data/sandbox/hbase-site.xml
@@ -190,22 +190,5 @@
 zookeeper.znode.parent
 /hbase-unsecure
 
-
-hbase.client.pause
-100
-General client pause value.  Used mostly as value to wait
-before running a retry of a failed get, region lookup, etc.
-See hbase.client.retries.number for description of how we backoff 
from
-this initial pause amount and how this pause works w/ 
retries.
-
-
-hbase.client.retries.number
-5
-Maximum retries.  Used as maximum for all retryable
-operations such as the getting of a cell's value, starting a row 
update,
-etc.  Retry interval is a rough function based on 
hbase.client.pause.  At
-first we retry at this interval but then with backoff, we pretty 
quickly reach
-

[1/3] kylin git commit: KYLIN-2277 return correct columns for select * [Forced Update!]

2016-12-15 Thread lidong
Repository: kylin
Updated Branches:
  refs/heads/yang22-hbase1.x 6317d2dce -> 8705eea69 (forced update)


KYLIN-2277 return correct columns for select *


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

Branch: refs/heads/yang22-hbase1.x
Commit: ed497fe73bddffaf9373599c216400b323242833
Parents: 75ded9b
Author: Yang Li 
Authored: Tue Dec 13 23:45:55 2016 +0800
Committer: Yang Li 
Committed: Wed Dec 14 21:29:50 2016 +0800

--
 .../calcite/sql2rel/SqlToRelConverter.java  | 62 +++-
 .../kylin/metadata/model/FunctionDesc.java  |  4 +-
 .../apache/kylin/query/ITKylinQueryTest.java|  6 ++
 .../org/apache/kylin/query/KylinTestBase.java   | 21 +++
 .../resources/query/sql_timeout/query01.sql |  2 +-
 5 files changed, 91 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/ed497fe7/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 d223cdf..cf36f61 100644
--- 
a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ 
b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -67,6 +67,7 @@ import org.apache.calcite.rel.stream.Delta;
 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.RelDataTypeFactory.FieldInfoBuilder;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexCall;
@@ -194,6 +195,7 @@ import static org.apache.calcite.util.Static.RESOURCE;
  * - getInSubqueryThreshold(), was `20`, now `Integer.MAX_VALUE`
  * - isTrimUnusedFields(), override to false
  * - AggConverter.translateAgg(...), skip column reading for COUNT(COL), for 
https://jirap.corp.ebay.com/browse/KYLIN-104
+ * - convertQuery(), call hackSelectStar() at the end
  */
 
 /**
@@ -529,6 +531,8 @@ public class SqlToRelConverter {
  *the query will be part of a view.
  */
 public RelRoot convertQuery(SqlNode query, final boolean needsValidation, 
final boolean top) {
+SqlNode origQuery = query; /* OVERRIDE POINT */
+
 if (needsValidation) {
 query = validator.validate(query);
 }
@@ -553,7 +557,63 @@ public class SqlToRelConverter {
 }
 
 final RelDataType validatedRowType = 
validator.getValidatedNodeType(query);
-return RelRoot.of(result, validatedRowType, 
query.getKind()).withCollation(collation);
+return hackSelectStar(origQuery, RelRoot.of(result, validatedRowType, 
query.getKind()).withCollation(collation));
+}
+
+/* OVERRIDE POINT */
+private RelRoot hackSelectStar(SqlNode query, RelRoot root) {
+/*
+ * Rel tree is like:
+ * 
+ *   LogicalSort (optional)
+ *|- LogicalProject
+ *|- OLAPTableScan
+ */
+LogicalProject rootPrj = null;
+LogicalSort rootSort = null;
+if (root.rel instanceof LogicalProject) {
+rootPrj = (LogicalProject) root.rel;
+} else if (root.rel instanceof LogicalSort && root.rel.getInput(0) 
instanceof LogicalProject) {
+rootPrj = (LogicalProject) root.rel.getInput(0);
+rootSort = (LogicalSort) root.rel;
+} else {
+return root;
+}
+
+if 
(!rootPrj.getInput().getClass().getSimpleName().equals("OLAPTableScan"))
+return root;
+
+RelNode scan = rootPrj.getInput();
+if (rootPrj.getRowType().getFieldCount() < 
scan.getRowType().getFieldCount())
+return root;
+
+RelDataType inType = rootPrj.getRowType();
+List inFields = inType.getFieldNames();
+List projExp = new ArrayList<>();
+List> projFields = new ArrayList<>();
+FieldInfoBuilder projTypeBuilder = 
getCluster().getTypeFactory().builder();
+FieldInfoBuilder validTypeBuilder = 
getCluster().getTypeFactory().builder();
+for (int i = 0; i < inFields.size(); i++) {
+if (!inFields.get(i).startsWith("_KY_")) {
+projExp.add(rootPrj.getProjects().get(i));
+projFields.add(Pair.of(projFields.size(), inFields.get(i)));
+

[2/3] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

2016-12-15 Thread lidong
http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
index a150607..56f867a 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
@@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
@@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication {
 protected static final Logger logger = 
LoggerFactory.getLogger(CleanHtableCLI.class);
 
 private void clean() throws IOException {
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = 
HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+Admin hbaseAdmin = conn.getAdmin();
 
 for (HTableDescriptor descriptor : hbaseAdmin.listTables()) {
 String name = descriptor.getNameAsString().toLowerCase();
@@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication {
 System.out.println();
 
 descriptor.setValue(IRealizationConstants.HTableOwner, 
"dl-ebay-ky...@ebay.com");
-hbaseAdmin.modifyTable(descriptor.getNameAsString(), 
descriptor);
+
hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), 
descriptor);
 }
 }
 hbaseAdmin.close();

http://git-wip-us.apache.org/repos/asf/kylin/blob/8705eea6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
index 2e682b1..f47bf31 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
@@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-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.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
@@ -88,7 +89,7 @@ public class CubeMigrationCLI {
 private static ResourceStore srcStore;
 private static ResourceStore dstStore;
 private static FileSystem hdfsFS;
-private static HBaseAdmin hbaseAdmin;
+private static Admin hbaseAdmin;
 
 public static final String ACL_INFO_FAMILY = "i";
 private static final String ACL_TABLE_NAME = "_acl";
@@ -133,8 +134,8 @@ public class CubeMigrationCLI {
 
 checkAndGetHbaseUrl();
 
-Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-hbaseAdmin = new HBaseAdmin(conf);
+Connection conn = HBaseConnection.get(srcConfig.getStorageUrl());
+hbaseAdmin = conn.getAdmin();
 
 hdfsFS = FileSystem.get(new Configuration());
 
@@ -232,6 +233,7 @@ public class CubeMigrationCLI {
 operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] 
{ item, cube.getName() }));
 }
 }
+
 private static void addCubeAndModelIntoProject(CubeInstance srcCube, 
String cubeName, String projectName) throws IOException {
 String projectResPath = 
ProjectInstance.concatResourcePath(projectName);
 if (!dstStore.exists(projectResPath))
@@ -325,8 +327,8 @@ public class 

kylin git commit: KYLIN-2180: refactor ProjectRequest

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/master 3003d9fba -> 911bdd00a


KYLIN-2180: refactor ProjectRequest

Signed-off-by: Li Yang 


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

Branch: refs/heads/master
Commit: 911bdd00afb9176af594fe97cbc0a639f376da2d
Parents: 3003d9f
Author: kangkaisen 
Authored: Sun Dec 11 17:17:40 2016 +0800
Committer: Li Yang 
Committed: Fri Dec 16 11:18:15 2016 +0800

--
 .../rest/controller/ProjectController.java  | 48 ++
 .../rest/request/CreateProjectRequest.java  | 57 
 .../kylin/rest/request/ProjectRequest.java  | 47 +
 .../rest/request/UpdateProjectRequest.java  | 66 ---
 .../kylin/rest/service/ProjectService.java  | 23 +++
 .../rest/controller/ProjectControllerTest.java  | 69 
 webapp/app/js/controllers/page.js   | 27 +++-
 7 files changed, 143 insertions(+), 194 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/911bdd00/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
--
diff --git 
a/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
 
b/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
index 05af82c..a6edece 100644
--- 
a/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
+++ 
b/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
@@ -24,13 +24,13 @@ import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.persistence.AclEntity;
+import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.rest.constant.Constant;
 import org.apache.kylin.rest.exception.BadRequestException;
 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.request.ProjectRequest;
 import org.apache.kylin.rest.service.AccessService;
 import org.apache.kylin.rest.service.CubeService;
 import org.apache.kylin.rest.service.ProjectService;
@@ -198,19 +198,22 @@ public class ProjectController extends BasicController {
 
 @RequestMapping(value = "", method = { RequestMethod.POST })
 @ResponseBody
-public ProjectInstance saveProject(@RequestBody CreateProjectRequest 
projectRequest) {
-if (StringUtils.isEmpty(projectRequest.getName())) {
-logger.info("Project name should not be empty.");
-throw new BadRequestException("Project name should not be empty.");
+
+public ProjectInstance saveProject(@RequestBody ProjectRequest 
projectRequest) {
+ProjectInstance projectDesc = deserializeProjectDesc(projectRequest);
+
+if (StringUtils.isEmpty(projectDesc.getName())) {
+throw new InternalErrorException("A project name must be given to 
create a project");
 }
-if (!StringUtils.containsOnly(projectRequest.getName(), 
VALID_PROJECTNAME)) {
-logger.info("Invalid Project name {}, only letters, numbers and 
underline supported.", projectRequest.getName());
+
+if (!StringUtils.containsOnly(projectDesc.getName(), 
VALID_PROJECTNAME)) {
+logger.info("Invalid Project name {}, only letters, numbers and 
underline supported.", projectDesc.getName());
 throw new BadRequestException("Invalid Project name, only letters, 
numbers and underline supported.");
 }
 
 ProjectInstance createdProj = null;
 try {
-createdProj = projectService.createProject(projectRequest);
+createdProj = projectService.createProject(projectDesc);
 } catch (Exception e) {
 logger.error("Failed to deal with the request.", e);
 throw new InternalErrorException(e.getLocalizedMessage());
@@ -221,15 +224,22 @@ public class ProjectController extends BasicController {
 
 @RequestMapping(value = "", method = { RequestMethod.PUT })
 @ResponseBody
-public ProjectInstance updateProject(@RequestBody UpdateProjectRequest 
projectRequest) {
-if (StringUtils.isEmpty(projectRequest.getFormerProjectName())) {
+public ProjectInstance updateProject(@RequestBody ProjectRequest 
projectRequest) {
+String formerProjectName = projectRequest.getFormerProjectName();
+ 

kylin git commit: KYLIN-2006 howto_use_distributed_scheduler

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/document b570e -> 1cc818aca


KYLIN-2006 howto_use_distributed_scheduler

Signed-off-by: Li Yang 


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

Branch: refs/heads/document
Commit: 1cc818aca6e25a10ba718cc55135f0c4e1e341ff
Parents: b570ebb
Author: kangkaisen 
Authored: Fri Dec 2 19:11:24 2016 +0800
Committer: Li Yang 
Committed: Fri Dec 16 10:24:49 2016 +0800

--
 website/_data/docs.yml  |  1 +
 .../howto/howto_use_distributed_scheduler.md| 16 
 2 files changed, 17 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/1cc818ac/website/_data/docs.yml
--
diff --git a/website/_data/docs.yml b/website/_data/docs.yml
index 5e5de00..e0f0c0d 100644
--- a/website/_data/docs.yml
+++ b/website/_data/docs.yml
@@ -57,3 +57,4 @@
   - howto/howto_jdbc
   - howto/howto_upgrade
   - howto/howto_ldap_and_sso
+  - howto/howto_use_distributed_scheduler

http://git-wip-us.apache.org/repos/asf/kylin/blob/1cc818ac/website/_docs16/howto/howto_use_distributed_scheduler.md
--
diff --git a/website/_docs16/howto/howto_use_distributed_scheduler.md 
b/website/_docs16/howto/howto_use_distributed_scheduler.md
new file mode 100644
index 000..6d92584
--- /dev/null
+++ b/website/_docs16/howto/howto_use_distributed_scheduler.md
@@ -0,0 +1,16 @@
+---
+layout: docs16
+title:  Use distributed job scheduler
+categories: howto
+permalink: /docs16/howto/howto_use_distributed_scheduler.html
+---
+
+Since Kylin 1.6.1, Kylin support distributed job scheduler.
+Which is more extensible, available and reliable than default job scheduler.
+To enable the distributed job scheduler, you need to set or update three 
configs in the kylin.properties:
+
+```
+1. kylin.job.scheduler.default=2
+2. 
kylin.job.lock=org.apache.kylin.storage.hbase.util.ZookeeperDistributedJobLock
+3. add all job servers and query servers to the kylin.server.cluster-servers
+```



kylin git commit: halfway

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2283 c1cd0ab69 -> aab00c0d1


halfway


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

Branch: refs/heads/KYLIN-2283
Commit: aab00c0d1d55023f053a84021cc1575a2df0a114
Parents: c1cd0ab
Author: Yang Li 
Authored: Fri Dec 16 06:24:31 2016 +0800
Committer: Yang Li 
Committed: Fri Dec 16 06:24:31 2016 +0800

--
 .../kylin/source/datagen/ColumnGenConfig.java   |  30 ++-
 .../kylin/source/datagen/ColumnGenerator.java   | 202 ++-
 2 files changed, 222 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/aab00c0d/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
 
b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
index 91f5366..f174eef 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
@@ -19,30 +19,34 @@
 package org.apache.kylin.source.datagen;
 
 import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.kylin.metadata.model.ColumnDesc;
 
 public class ColumnGenConfig {
 
+public static final String $RANDOM = "${RANDOM}";
+
 // discrete values
+boolean isDiscrete;
 List values;
 
 // random
 boolean isRandom;
-int randCardinality;
+String randFormat;
+int randStart;
+int randEnd;
 
 // ID
 boolean isID;
 int idStart;
 
-// null handling
+// general
+int cardinality;
 boolean genNull;
 double genNullPct;
+boolean order;
 
 public ColumnGenConfig(ColumnDesc col) {
 init(col.getName(), col.getDataGen());
@@ -53,17 +57,25 @@ public class ColumnGenConfig {
 Map config = Util.parseEqualCommaPairs(dataGen, 
"values");
 
 values = Arrays.asList(Util.parseString(config, "values", 
"").split("|"));
+if (values.size() == 1 && values.get(0).isEmpty())
+values.set(0, $RANDOM);
 
 if ("ID".equals(values.get(0))) {
 isID = true;
 idStart = (values.size() > 1) ? Integer.parseInt(values.get(1)) : 
0;
-} else {
+} else if (values.get(0).contains($RANDOM)) {
 isRandom = true;
-randCardinality = Util.parseInt(config, "cardinality", 
guessCardinality(col));
+randFormat = values.get(0);
+randStart = (values.size() > 1) ? Integer.parseInt(values.get(1)) 
: 0;
+randEnd = (values.size() > 2) ? Integer.parseInt(values.get(2)) : 
0;
+} else {
+isDiscrete = true;
 }
 
-genNull = Util.parseBoolean(config, "genNull", guessGenNull(col));
-genNullPct = Util.parseDouble(config, "genNullPct", 0.01);
+cardinality = Util.parseInt(config, "card", guessCardinality(col));
+genNull = Util.parseBoolean(config, "null", guessGenNull(col));
+genNullPct = Util.parseDouble(config, "nullPct", 0.01);
+order = Util.parseBoolean(config, "order", false);
 }
 
 private int guessCardinality(String col) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/aab00c0d/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
 
b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
index c4c4fe7..409a1e9 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
@@ -18,24 +18,224 @@
 
 package org.apache.kylin.source.datagen;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.TreeSet;
 
+import org.apache.kylin.metadata.datatype.DataType;
 import org.apache.kylin.metadata.model.ColumnDesc;
 
 public class ColumnGenerator {
 
+final private ColumnGenConfig conf;
 final private ColumnDesc targetCol;
 final private int targetRows;
 final private ModelDataGenerator 

kylin git commit: minor, fix NPE in OLAPTable

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/master 1c2c43cb8 -> 3003d9fba


minor, fix NPE in OLAPTable


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

Branch: refs/heads/master
Commit: 3003d9fba7c0b20a74785cbc431f9e708e775418
Parents: 1c2c43c
Author: Yang Li 
Authored: Fri Dec 16 07:57:33 2016 +0800
Committer: Yang Li 
Committed: Fri Dec 16 07:57:33 2016 +0800

--
 .../java/org/apache/kylin/query/schema/OLAPTable.java  | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/3003d9fb/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
--
diff --git a/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java 
b/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
index 06ffdba..c33c4ed 100644
--- a/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
+++ b/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
@@ -43,13 +43,13 @@ import 
org.apache.calcite.schema.impl.AbstractTableQueryable;
 import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.sql.type.SqlTypeUtil;
 import org.apache.calcite.util.ImmutableBitSet;
-import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.datatype.DataType;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.RealizationType;
@@ -198,14 +198,13 @@ public class OLAPTable extends AbstractQueryableTable 
implements TranslatableTab
 }
 }
 //2. All integer measures in non-cube realizations
-MetadataManager metadataManager = 
MetadataManager.getInstance(olapSchema.getConfig());
 for (IRealization realization : 
mgr.listAllRealizations(olapSchema.getProjectName())) {
 if (realization.getType() == RealizationType.INVERTED_INDEX && 
realization.getModel().isFactTable(sourceTable.getIdentity())) {
-DataModelDesc dataModelDesc = realization.getModel();
-for (String metricColumn : dataModelDesc.getMetrics()) {
-ColumnDesc columnDesc = 
metadataManager.getColumnDesc(dataModelDesc.getRootFactTable().getTableIdentity()
 + "." + metricColumn);
-if (columnDesc.getType().isIntegerFamily() && 
!columnDesc.getType().isBigInt())
-updateColumns.add(columnDesc);
+DataModelDesc model = realization.getModel();
+for (String metricColumn : model.getMetrics()) {
+TblColRef col = model.findColumn(metricColumn);
+if (col.getType().isIntegerFamily() && 
!col.getType().isBigInt())
+updateColumns.add(col.getColumnDesc());
 }
 }
 }



[kylin] Git Push Summary

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2277 [deleted] e73b4f097


kylin git commit: KYLIN-2131, load kafka config from kylin-kafka-consumer.properties

2016-12-15 Thread billyliu
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2131 [created] cedcca6e4


KYLIN-2131, load kafka config from kylin-kafka-consumer.properties


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

Branch: refs/heads/KYLIN-2131
Commit: cedcca6e42f9a38d8771c25e53bab5d64ef0de5a
Parents: 1c2c43c
Author: Billy Liu 
Authored: Thu Dec 15 19:18:32 2016 +0800
Committer: Billy Liu 
Committed: Thu Dec 15 19:18:32 2016 +0800

--
 .../kylin/job/streaming/Kafka10DataLoader.java  |  34 -
 build/conf/kylin-kafka-consumer.properties  |  19 +++
 .../localmeta/kylin-kafka-consumer.properties   |  19 +++
 .../sandbox/kylin-kafka-consumer.properties |  19 +++
 .../apache/kylin/source/kafka/KafkaSource.java  |   5 +-
 .../source/kafka/config/KafkaClusterConfig.java |   8 --
 .../kylin/source/kafka/config/KafkaConfig.java  |  11 --
 .../kafka/config/KafkaConsumerProperties.java   | 126 +++
 .../source/kafka/hadoop/KafkaFlatTableJob.java  |   7 +-
 .../source/kafka/hadoop/KafkaInputFormat.java   |   7 +-
 .../kafka/hadoop/KafkaInputRecordReader.java|  18 +--
 .../kylin/source/kafka/util/KafkaClient.java|  43 ++-
 .../config/KafkaConsumerPropertiesTest.java |  31 +
 webapp/app/js/model/streamingModel.js   |   2 -
 .../partials/cubeDesigner/streamingConfig.html  |  33 +
 15 files changed, 280 insertions(+), 102 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/cedcca6e/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java
--
diff --git 
a/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java 
b/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java
index 8c548be..c7a487a 100644
--- 
a/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java
+++ 
b/assembly/src/test/java/org/apache/kylin/job/streaming/Kafka10DataLoader.java
@@ -19,6 +19,7 @@
 package org.apache.kylin.job.streaming;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import javax.annotation.Nullable;
@@ -35,8 +36,6 @@ import org.slf4j.LoggerFactory;
 import com.google.common.base.Function;
 import com.google.common.collect.Collections2;
 
-import org.apache.kylin.source.kafka.util.KafkaClient;
-
 /**
  * Load prepared data into kafka(for test use)
  */
@@ -60,10 +59,7 @@ public class Kafka10DataLoader extends StreamDataLoader {
 }
 }), ",");
 
-Properties props = new Properties();
-props.put("acks", "1");
-props.put("retry.backoff.ms", "1000");
-KafkaProducer producer = KafkaClient.getKafkaProducer(brokerList, 
props);
+KafkaProducer producer = getKafkaProducer(brokerList, null);
 
 for (int i = 0; i < messages.size(); i++) {
 ProducerRecord keyedMessage = new 
ProducerRecord(clusterConfig.getTopic(), String.valueOf(i), 
messages.get(i));
@@ -73,4 +69,30 @@ public class Kafka10DataLoader extends StreamDataLoader {
 producer.close();
 }
 
+public static KafkaProducer getKafkaProducer(String brokers, Properties 
properties) {
+Properties props = constructDefaultKafkaProducerProperties(brokers, 
properties);
+KafkaProducer producer = new KafkaProducer(props);
+return producer;
+}
+
+private static Properties constructDefaultKafkaProducerProperties(String 
brokers, Properties properties) {
+Properties props = new Properties();
+props.put("retry.backoff.ms", "1000");
+props.put("bootstrap.servers", brokers);
+props.put("key.serializer", 
"org.apache.kafka.common.serialization.StringSerializer");
+props.put("value.serializer", 
"org.apache.kafka.common.serialization.StringSerializer");
+props.put("acks", "1");
+props.put("buffer.memory", 33554432);
+props.put("retries", 0);
+props.put("batch.size", 16384);
+props.put("linger.ms", 50);
+props.put("request.timeout.ms", "3");
+if (properties != null) {
+for (Map.Entry entry : properties.entrySet()) {
+props.put(entry.getKey(), entry.getValue());
+}
+}
+return props;
+}
+
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cedcca6e/build/conf/kylin-kafka-consumer.properties
--
diff --git a/build/conf/kylin-kafka-consumer.properties 

[kylin] Git Push Summary

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-1875 [deleted] be9dfe52c


kylin git commit: halfway

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2283 [created] c1cd0ab69


halfway


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

Branch: refs/heads/KYLIN-2283
Commit: c1cd0ab69276597c4462f7deccc384683c3f443f
Parents: 8d0b504
Author: Li Yang 
Authored: Thu Dec 15 18:51:00 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:51:00 2016 +0800

--
 .../apache/kylin/metadata/model/ColumnDesc.java |   8 ++
 .../apache/kylin/metadata/model/TableDesc.java  |   9 ++
 .../kylin/source/datagen/ColumnGenConfig.java   |  86 
 .../kylin/source/datagen/ColumnGenerator.java   |  41 ++
 .../source/datagen/ModelDataGenerator.java  | 130 +++
 .../kylin/source/datagen/TableGenConfig.java|  41 ++
 .../org/apache/kylin/source/datagen/Util.java   |  68 ++
 7 files changed, 383 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/c1cd0ab6/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
index 2da1f5e..7105ede 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
@@ -45,6 +45,10 @@ public class ColumnDesc implements Serializable {
 @JsonInclude(JsonInclude.Include.NON_NULL)
 private String comment;
 
+@JsonProperty("data_gen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+private String dataGen;
+
 // parsed from data type
 private DataType type;
 private DataType upgradedType;
@@ -148,6 +152,10 @@ public class ColumnDesc implements Serializable {
 public void setNullable(boolean nullable) {
 this.isNullable = nullable;
 }
+
+public String getDataGen() {
+return dataGen;
+}
 
 public void init(TableDesc table) {
 this.table = table;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c1cd0ab6/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
index ab8c465..e845da1 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
@@ -26,6 +26,7 @@ import 
org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.common.util.StringSplitter;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
@@ -47,6 +48,10 @@ public class TableDesc extends RootPersistentEntity 
implements ISourceAware {
 private int sourceType = ISourceAware.ID_HIVE;
 @JsonProperty("table_type")
 private String tableType;
+
+@JsonProperty("data_gen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+private String dataGen;
 
 private DatabaseDesc database = new DatabaseDesc();
 
@@ -160,6 +165,10 @@ public class TableDesc extends RootPersistentEntity 
implements ISourceAware {
 return getMaxColumnIndex() + 1;
 }
 
+public String getDataGen() {
+return dataGen;
+}
+
 public void init() {
 if (name != null)
 name = name.toUpperCase();

http://git-wip-us.apache.org/repos/asf/kylin/blob/c1cd0ab6/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
--
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
 
b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
new file mode 100644
index 000..91f5366
--- /dev/null
+++ 
b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not 

[9/9] kylin git commit: KYLIN 1875 update cube designer

2016-12-15 Thread liyang
KYLIN 1875 update cube designer

Signed-off-by: zhongjian 


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

Branch: refs/heads/master
Commit: a9230473e3c3bad774f930ad90f4479dcbe34fa0
Parents: 076fbcf
Author: chenzhx <346839...@qq.com>
Authored: Tue Dec 13 15:32:54 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/js/controllers/cubeAdvanceSetting.js |  5 --
 webapp/app/js/controllers/cubeDimensions.js | 75 ++--
 webapp/app/js/controllers/cubeEdit.js   | 60 +---
 webapp/app/js/controllers/cubeMeasures.js   | 21 +-
 webapp/app/js/controllers/modelDataModel.js | 11 ++-
 .../cubeDesigner/advanced_settings.html |  3 +-
 .../app/partials/cubeDesigner/dimensions.html   | 46 
 webapp/app/partials/cubeDesigner/measures.html  |  7 +-
 8 files changed, 104 insertions(+), 124 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeAdvanceSetting.js
--
diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js 
b/webapp/app/js/controllers/cubeAdvanceSetting.js
index 8192419..e557afa 100644
--- a/webapp/app/js/controllers/cubeAdvanceSetting.js
+++ b/webapp/app/js/controllers/cubeAdvanceSetting.js
@@ -38,12 +38,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function 
($scope, $modal,cubeConfi
   //rowkey
   $scope.convertedRowkeys = [];
   angular.forEach($scope.cubeMetaFrame.rowkey.rowkey_columns,function(item){
-//var _isDictionaries = item.encoding === "dict"?"true":"false";
-//var version=$scope.getTypeVersion(encoding);
 item.encoding=$scope.removeVersion(item.encoding);
-//var _isFixedLength = item.encoding.substring(0,12) === 
"fixed_length"?"true":"false";//fixed_length:12
-//var _isIntegerLength = item.encoding.substring(0,7) === 
"integer"?"true":"false";
-//var _isIntLength = item.encoding.substring(0,3) === "int"?"true":"false";
 var _encoding = item.encoding;
 var _valueLength ;
 var baseKey=item.encoding.replace(/:\d+/,'');

http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeDimensions.js
--
diff --git a/webapp/app/js/controllers/cubeDimensions.js 
b/webapp/app/js/controllers/cubeDimensions.js
index 7cb850b..e2787a5 100644
--- a/webapp/app/js/controllers/cubeDimensions.js
+++ b/webapp/app/js/controllers/cubeDimensions.js
@@ -18,7 +18,7 @@
 
 'use strict';
 
-KylinApp.controller('CubeDimensionsCtrl', function ($scope, 
$modal,MetaModel,cubesManager,SweetAlert) {
+KylinApp.controller('CubeDimensionsCtrl', function ($scope, 
$modal,MetaModel,cubesManager,SweetAlert, VdmUtil) {
 
 $scope.cubeManager = cubesManager;
 // Available columns list derived from cube data model.
@@ -27,10 +27,6 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, 
$modal,MetaModel,cub
 // Columns selected and disabled status bound to UI, group by table.
 $scope.selectedColumns = {};
 
-// Available tables cache: 1st is the fact table, next are lookup tables.
-$scope.availableTables = [];
-
-
 /**
  * Helper func to get columns that dimensions based on, three cases:
  * 1. normal dimension: column array.
@@ -40,17 +36,10 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, 
$modal,MetaModel,cub
 var dimCols = function (dim) {
 var referredCols = [];
 
-// Case 3.
 if (dim.derived && dim.derived.length) {
 referredCols = referredCols.concat(dim.derived);
 }
 
-// Case 2.
-//if (dim.hierarchy && dim.column.length) {
-//referredCols = referredCols.concat(dim.column);
-//}
-
-// Case 1.
 if (!dim.derived && dim.column) {
 referredCols.push(dim.column);
 }
@@ -60,52 +49,66 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, 
$modal,MetaModel,cub
 
 // Dump available columns plus column table name, whether is from lookup 
table.
 $scope.initColumns = function () {
-var factTable = $scope.metaModel.model.fact_table;
 
+var rootFactTable = 
VdmUtil.removeNameSpace($scope.metaModel.model.fact_table);
+
+if($scope.aliasName.length==0){
+  $scope.aliasName.push(rootFactTable);
+  
$scope.aliasTableMap[rootFactTable]=$scope.metaModel.model.fact_table;
+  
$scope.tableAliasMap[$scope.metaModel.model.fact_table]=rootFactTable;
+  

[3/9] kylin git commit: KYLIN 1875 update model designer

2016-12-15 Thread liyang
KYLIN 1875 update model designer

Signed-off-by: zhongjian 


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

Branch: refs/heads/master
Commit: d5b8c7f27820196400f43cdcd88b94206b581484
Parents: 91cf788
Author: chenzhx <346839...@qq.com>
Authored: Fri Dec 9 11:44:35 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/index.html   |   3 +
 webapp/app/js/controllers/cubeModel.js  | 191 +-
 .../js/controllers/modelConditionsSettings.js   |  84 ++
 webapp/app/js/controllers/modelDataModel.js | 254 +++
 webapp/app/js/controllers/modelDimensions.js|   6 +-
 webapp/app/js/controllers/modelEdit.js  | 100 +++-
 webapp/app/js/controllers/modelMeasures.js  |  29 ++-
 webapp/app/js/services/tree.js  |  48 +++-
 webapp/app/js/utils/utils.js|  24 +-
 .../modelDesigner/conditions_settings.html  |  57 ++---
 .../app/partials/modelDesigner/data_model.html  |  89 ---
 .../modelDesigner/model_dimensions.html |   4 +-
 .../partials/modelDesigner/model_measures.html  |  59 +++--
 13 files changed, 585 insertions(+), 363 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/d5b8c7f2/webapp/app/index.html
--
diff --git a/webapp/app/index.html b/webapp/app/index.html
index ad881d5..13b54c8 100644
--- a/webapp/app/index.html
+++ b/webapp/app/index.html
@@ -187,6 +187,9 @@
 
 
 
+
+
+
 
 
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5b8c7f2/webapp/app/js/controllers/cubeModel.js
--
diff --git a/webapp/app/js/controllers/cubeModel.js 
b/webapp/app/js/controllers/cubeModel.js
index b20a829..2c7de2c 100644
--- a/webapp/app/js/controllers/cubeModel.js
+++ b/webapp/app/js/controllers/cubeModel.js
@@ -18,8 +18,7 @@
 
 'use strict';
 
-KylinApp.controller('CubeModelCtrl', function ($location,$scope, 
$modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager)
 {
-
+KylinApp.controller('CubeModelCtrl', function ($location,$scope, 
$modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil)
 {
 $scope.modelsManager = modelsManager;
 
 $scope.buildGraph = function (model) {
@@ -45,193 +44,5 @@ KylinApp.controller('CubeModelCtrl', function 
($location,$scope, $modal,cubeConf
 };
 
 $scope.cubeConfig = cubeConfig;
-var DataModel = function () {
-return {
-name: '',
-fact_table: '',
-lookups: []
-};
-};
-
-var Lookup = function () {
-return {
-table: '',
-join: {
-type: '',
-primary_key: [],
-foreign_key: [],
-isCompatible:[],
-pk_type:[],
-fk_type:[]
-}
-};
-};
-
-// Initialize params.
-$scope.lookupState = {
-editing: false,
-editingIndex: -1,
-filter: ''
-};
-
-$scope.newLookup = Lookup();
-
-var lookupList = modelsManager.selectedModel.lookups;
-
-$scope.openLookupModal = function () {
-var modalInstance = $modal.open({
-templateUrl: 'dataModelLookupTable.html',
-controller: cubeModelLookupModalCtrl,
-backdrop: 'static',
-scope: $scope
-});
-modalInstance.result.then(function () {
-if (!$scope.lookupState.editing) {
-$scope.doneAddLookup();
-} else {
-$scope.doneEditLookup();
-}
-
-}, function () {
-$scope.cancelLookup();
-});
-};
-
-// Controller for cube model lookup modal.
-var cubeModelLookupModalCtrl = function ($scope, $modalInstance) {
-$scope.ok = function () {
-$modalInstance.close();
-};
-
-$scope.cancel = function () {
-$modalInstance.dismiss('cancel');
-};
-};
-
-$scope.editLookup = function (lookup) {
-$scope.lookupState.editingIndex = lookupList.indexOf(lookup);
-$scope.lookupState.editing = true;
-
-// Make a copy of model will be editing.
-$scope.newLookup = angular.copy(lookup);
-
-$scope.openLookupModal();
-};
-
-$scope.doneAddLookup = function () {
-// Push newLookup which bound user input data.
-

[5/9] kylin git commit: KYLIN 1875 model visualization

2016-12-15 Thread liyang
KYLIN 1875 model visualization

Signed-off-by: zhongjian 


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

Branch: refs/heads/master
Commit: 36a42d86f84e0b0ba69b44e809e68fcee5437d65
Parents: d5b8c7f
Author: chenzhx <346839...@qq.com>
Authored: Mon Dec 12 10:56:17 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/js/controllers/modelDataModel.js | 10 ++--
 webapp/app/js/controllers/models.js |  1 +
 webapp/app/js/services/tree.js  | 60 ++--
 .../app/partials/modelDesigner/data_model.html  |  8 +--
 webapp/app/partials/models/model_detail.html| 18 +-
 5 files changed, 26 insertions(+), 71 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/36a42d86/webapp/app/js/controllers/modelDataModel.js
--
diff --git a/webapp/app/js/controllers/modelDataModel.js 
b/webapp/app/js/controllers/modelDataModel.js
index d17af91..95a4c70 100644
--- a/webapp/app/js/controllers/modelDataModel.js
+++ b/webapp/app/js/controllers/modelDataModel.js
@@ -21,7 +21,7 @@
 KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, 
$modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil)
 {
 $scope.modelsManager = modelsManager;
 $scope.init = function (){
-  $scope.rootFactTable=$scope.modelsManager.selectedModel.fact_table;
+  $scope.FactTable={root:$scope.modelsManager.selectedModel.fact_table};
   
$scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]=$scope.modelsManager.selectedModel.fact_table;
   
$scope.tableAliasMap[$scope.modelsManager.selectedModel.fact_table]=VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table);
   
$scope.aliasName.push(VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table));
@@ -137,12 +137,12 @@ KylinApp.controller('ModelDataModelCtrl', function 
($location,$scope, $modal,cub
 };
 $scope.changeFactTable = function () {
 delete 
$scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)];
-
$scope.aliasTableMap[VdmUtil.removeNameSpace($scope.rootFactTable)]=$scope.rootFactTable;
+
$scope.aliasTableMap[VdmUtil.removeNameSpace($scope.FactTable.root)]=$scope.FactTable.root;
 delete 
$scope.tableAliasMap[$scope.modelsManager.selectedModel.fact_table];
-
$scope.tableAliasMap[$scope.rootFactTable]=VdmUtil.removeNameSpace($scope.rootFactTable);
+
$scope.tableAliasMap[$scope.FactTable.root]=VdmUtil.removeNameSpace($scope.FactTable.root);
 
$scope.aliasName.splice($scope.aliasName.indexOf(VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)),1);
-$scope.aliasName.push(VdmUtil.removeNameSpace($scope.rootFactTable));
-$scope.modelsManager.selectedModel.fact_table=$scope.rootFactTable;
+$scope.aliasName.push(VdmUtil.removeNameSpace($scope.FactTable.root));
+$scope.modelsManager.selectedModel.fact_table=$scope.FactTable.root;
 }
 $scope.changeJoinTable = function () {
 $scope.newLookup.alias=$scope.newLookup.table;

http://git-wip-us.apache.org/repos/asf/kylin/blob/36a42d86/webapp/app/js/controllers/models.js
--
diff --git a/webapp/app/js/controllers/models.js 
b/webapp/app/js/controllers/models.js
index 6fe2598..fb2c6d1 100644
--- a/webapp/app/js/controllers/models.js
+++ b/webapp/app/js/controllers/models.js
@@ -177,6 +177,7 @@ KylinApp.controller('ModelsCtrl', function ($scope, $q, 
$routeParams, $location,
   };
 
   var ModelDetailModalCtrl = function ($scope, $location, $modalInstance, 
scope) {
+modelsManager.selectedModel.visiblePage='metadata';
 $scope.cancel = function () {
   $modalInstance.dismiss('cancel');
 };

http://git-wip-us.apache.org/repos/asf/kylin/blob/36a42d86/webapp/app/js/services/tree.js
--
diff --git a/webapp/app/js/services/tree.js b/webapp/app/js/services/tree.js
index 3b444c6..08e290b 100755
--- a/webapp/app/js/services/tree.js
+++ b/webapp/app/js/services/tree.js
@@ -17,8 +17,8 @@
 */
 
 KylinApp.service('ModelGraphService', function (VdmUtil) {
-var tablesNodeList=[];
-var aliasList=[];
+var tablesNodeList={};
+  //  var aliasList=[];
 var margin = {top: 20, right: 100, bottom: 20, left: 100},
 width = 1100 - margin.right - 

[7/9] kylin git commit: KYLIN-2275, Remove dimensions cause wrong remove in advance settings

2016-12-15 Thread liyang
KYLIN-2275,Remove dimensions cause wrong remove in advance settings

Signed-off-by: zhongjian 


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

Branch: refs/heads/master
Commit: 076fbcfb616cee4b4696cae20178ad6dc8365b3c
Parents: 36a42d8
Author: luguosheng <550175...@qq.com>
Authored: Tue Dec 13 14:41:31 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/js/controllers/cubeEdit.js | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/076fbcfb/webapp/app/js/controllers/cubeEdit.js
--
diff --git a/webapp/app/js/controllers/cubeEdit.js 
b/webapp/app/js/controllers/cubeEdit.js
index 85bd4b1..b901e48 100755
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -662,14 +662,18 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, 
$routeParams, $locatio
 var mandatory = group.select_rule.mandatory_dims;
 if(mandatory && mandatory.length){
   var columnIndex = mandatory.indexOf(deprecatedItem);
-  group.select_rule.mandatory_dims.splice(columnIndex,1);
+  if(columnIndex>=0){
+group.select_rule.mandatory_dims.splice(columnIndex,1);
+  }
 }
 
 var hierarchys =  group.select_rule.hierarchy_dims;
 if(hierarchys && hierarchys.length){
   for(var i=0;i=0) {
+  group.select_rule.hierarchy_dims[i].splice(hierarchysIndex, 
1);
+}
   }
 
 }
@@ -678,7 +682,9 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, 
$routeParams, $locatio
 if(joints && joints.length){
   for(var i=0;i=0) {
+  group.select_rule.joint_dims[i].splice(jointIndex, 1);
+}
   }
 
 }



[1/9] kylin git commit: KYLIN 1875 minor,data model designer

2016-12-15 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/master 8d0b504bf -> 1c2c43cb8


KYLIN 1875 minor,data model designer

Signed-off-by: Li Yang 


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

Branch: refs/heads/master
Commit: 1c2c43cb88d2abc5a1ea1cbf18cbede02fe8c4f5
Parents: f55cc5c
Author: chenzhx <346839...@qq.com>
Authored: Thu Dec 15 17:45:13 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/js/controllers/cubeAdvanceSetting.js |  2 -
 webapp/app/js/controllers/cubeEdit.js   | 12 +
 webapp/app/js/controllers/modelDataModel.js | 47 ++--
 webapp/app/js/controllers/modelEdit.js  | 22 -
 .../modelDesigner/conditions_settings.html  |  4 +-
 .../app/partials/modelDesigner/data_model.html  | 24 +-
 6 files changed, 63 insertions(+), 48 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/1c2c43cb/webapp/app/js/controllers/cubeAdvanceSetting.js
--
diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js 
b/webapp/app/js/controllers/cubeAdvanceSetting.js
index e557afa..20af908 100644
--- a/webapp/app/js/controllers/cubeAdvanceSetting.js
+++ b/webapp/app/js/controllers/cubeAdvanceSetting.js
@@ -160,7 +160,6 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function 
($scope, $modal,cubeConfi
 if (aggregation_group) {
   list[index] = aggregation_group;
 }
-console.log($scope.cubeMetaFrame.aggregation_groups);
   };
 
   $scope.refreshAggregationJoint = function (list, index, 
aggregation_group,joinIndex,jointDim){
@@ -170,7 +169,6 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function 
($scope, $modal,cubeConfi
 if (aggregation_group) {
   list[index] = aggregation_group;
 }
-console.log($scope.cubeMetaFrame.aggregation_groups);
   };
 
   $scope.refreshIncludes = function (list, index, aggregation_groups) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/1c2c43cb/webapp/app/js/controllers/cubeEdit.js
--
diff --git a/webapp/app/js/controllers/cubeEdit.js 
b/webapp/app/js/controllers/cubeEdit.js
index d58f08f..a2b38f9 100755
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -328,6 +328,18 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, 
$routeParams, $locatio
 if (!modelsManager.getModels().length) {
   ModelDescService.query({model_name: 
$scope.cubeMetaFrame.model_name}, function (_model) {
 $scope.metaModel.model = _model;
+var rootFactTable = 
VdmUtil.removeNameSpace($scope.metaModel.model.fact_table);
+$scope.aliasName.push(rootFactTable);
+
$scope.aliasTableMap[rootFactTable]=$scope.metaModel.model.fact_table;
+
$scope.tableAliasMap[$scope.metaModel.model.fact_table]=rootFactTable;
+angular.forEach($scope.metaModel.model.lookups,function(joinTable){
+  if(!joinTable.alias){
+joinTable.alias=VdmUtil.removeNameSpace(joinTable.table);
+  }
+  $scope.aliasTableMap[joinTable.alias]=joinTable.table;
+  $scope.tableAliasMap[joinTable.table]=joinTable.alias;
+  $scope.aliasName.push(joinTable.alias);
+});
   });
 }
 $scope.state.cubeSchema = angular.toJson($scope.cubeMetaFrame, true);

http://git-wip-us.apache.org/repos/asf/kylin/blob/1c2c43cb/webapp/app/js/controllers/modelDataModel.js
--
diff --git a/webapp/app/js/controllers/modelDataModel.js 
b/webapp/app/js/controllers/modelDataModel.js
index b6edd43..3834e06 100644
--- a/webapp/app/js/controllers/modelDataModel.js
+++ b/webapp/app/js/controllers/modelDataModel.js
@@ -20,26 +20,13 @@
 
 KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, 
$modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil)
 {
 $scope.modelsManager = modelsManager;
+$scope.VdmUtil = VdmUtil;
 
angular.forEach($scope.modelsManager.selectedModel.lookups,function(joinTable){
   if(!joinTable.alias){
 joinTable.alias=VdmUtil.removeNameSpace(joinTable.table);
   }
 });
-$scope.init = function (){
-  $scope.FactTable={root:$scope.modelsManager.selectedModel.fact_table};
-  

[4/9] kylin git commit: minor, test query of group by pushdown

2016-12-15 Thread liyang
minor, test query of group by pushdown


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

Branch: refs/heads/master
Commit: 520b05f744b13ad4cbd37372ae70272099ea48a1
Parents: 8d0b504
Author: Yang Li 
Authored: Sat Dec 3 12:33:14 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 .../src/test/resources/query/sql_subquery/query02.sql| 11 +++
 1 file changed, 3 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/520b05f7/kylin-it/src/test/resources/query/sql_subquery/query02.sql
--
diff --git a/kylin-it/src/test/resources/query/sql_subquery/query02.sql 
b/kylin-it/src/test/resources/query/sql_subquery/query02.sql
index 3ecfb1b..81b4887 100644
--- a/kylin-it/src/test/resources/query/sql_subquery/query02.sql
+++ b/kylin-it/src/test/resources/query/sql_subquery/query02.sql
@@ -18,19 +18,14 @@
 
 SELECT
   week_beg_dt
-  ,sum(price) as sum_price
+  ,sum(price)
 FROM
 ( 
   select
 test_cal_dt.week_beg_dt
 ,test_kylin_fact.price
   from test_kylin_fact 
-inner JOIN edw.test_cal_dt as test_cal_dt
-  ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt
-inner JOIN test_category_groupings
-  ON test_kylin_fact.leaf_categ_id = test_category_groupings.leaf_categ_id 
AND test_kylin_fact.lstg_site_id = test_category_groupings.site_id
-inner JOIN edw.test_sites as test_sites
-  ON test_kylin_fact.lstg_site_id = test_sites.site_id
+  inner join edw.test_cal_dt as test_cal_dt
+on test_kylin_fact.cal_dt = test_cal_dt.cal_dt
 ) t
 group by week_beg_dt 
-order by week_beg_dt 
\ No newline at end of file



[8/9] kylin git commit: KYLIN 1875 update modify alias

2016-12-15 Thread liyang
KYLIN 1875 update modify alias

Signed-off-by: zhongjian 


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

Branch: refs/heads/master
Commit: f55cc5c446e8878d059019561894cc70bd0ab89b
Parents: e7cc152
Author: chenzhx <346839...@qq.com>
Authored: Wed Dec 14 16:33:31 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/css/AdminLTE.css |   5 +
 webapp/app/js/controllers/modelDataModel.js | 141 ---
 webapp/app/js/controllers/modelEdit.js  |   8 +-
 webapp/app/js/services/tree.js  |   3 +
 .../app/partials/modelDesigner/data_model.html  |  25 ++--
 5 files changed, 119 insertions(+), 63 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/f55cc5c4/webapp/app/css/AdminLTE.css
--
diff --git a/webapp/app/css/AdminLTE.css b/webapp/app/css/AdminLTE.css
index 6688457..857dbf7 100644
--- a/webapp/app/css/AdminLTE.css
+++ b/webapp/app/css/AdminLTE.css
@@ -4744,6 +4744,11 @@ Gradient Background colors
   opacity: 1;
   filter: alpha(opacity=100);
 }
+.model_graph svg{
+  width:1100px !important;
+  height:600px !important;
+}
+
 
 /*
  * Misc: print

http://git-wip-us.apache.org/repos/asf/kylin/blob/f55cc5c4/webapp/app/js/controllers/modelDataModel.js
--
diff --git a/webapp/app/js/controllers/modelDataModel.js 
b/webapp/app/js/controllers/modelDataModel.js
index a09101b..b6edd43 100644
--- a/webapp/app/js/controllers/modelDataModel.js
+++ b/webapp/app/js/controllers/modelDataModel.js
@@ -22,7 +22,7 @@ KylinApp.controller('ModelDataModelCtrl', function 
($location,$scope, $modal,cub
 $scope.modelsManager = modelsManager;
 
angular.forEach($scope.modelsManager.selectedModel.lookups,function(joinTable){
   if(!joinTable.alias){
-   joinTable.alias=VdmUtil.removeNameSpace(joinTable.table);
+joinTable.alias=VdmUtil.removeNameSpace(joinTable.table);
   }
 });
 $scope.init = function (){
@@ -110,10 +110,21 @@ KylinApp.controller('ModelDataModelCtrl', function 
($location,$scope, $modal,cub
 $scope.editLookup = function (lookup) {
 $scope.lookupState.editingIndex = lookupList.indexOf(lookup);
 $scope.lookupState.editing = true;
-
 // Make a copy of model will be editing.
 $scope.newLookup = angular.copy(lookup);
+$scope.newLookup.join.pk_type = [];
+$scope.newLookup.join.fk_type = [];
+$scope.newLookup.join.isCompatible=[];
 
$scope.newLookup.joinTable=VdmUtil.getNameSpaceTopName($scope.newLookup.join.foreign_key[0]);
+angular.forEach($scope.newLookup.join.primary_key,function(pk,index){
+$scope.newLookup.join.pk_type[index] = 
TableModel.getColumnType(VdmUtil.removeNameSpace(pk),$scope.newLookup.table);
+$scope.newLookup.join.fk_type[index] = 
TableModel.getColumnType(VdmUtil.removeNameSpace($scope.newLookup.join.foreign_key[index]),$scope.aliasTableMap[$scope.newLookup.joinTable]);
+
if($scope.newLookup.join.pk_type[index]!==$scope.newLookup.join.fk_type[index]){
+   $scope.newLookup.join.isCompatible[index]=false;
+}else{
+   $scope.newLookup.join.isCompatible[index]=true;
+}
+});
 $scope.openLookupModal();
 };
 
@@ -129,24 +140,51 @@ KylinApp.controller('ModelDataModelCtrl', function 
($location,$scope, $modal,cub
 
 $scope.doneEditLookup = function () {
 // Copy edited model to destination model.
-
$scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]=$scope.modelsManager.selectedModel.fact_table;
-
$scope.aliasName=[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)];
 angular.copy($scope.newLookup, 
lookupList[$scope.lookupState.editingIndex]);
-angular.forEach(lookupList,function(joinTable){
-  $scope.aliasName.push(joinTable.alias);
-  $scope.aliasTableMap[joinTable.alias]=joinTable.table;
- // $scope.tableAliasMap[joinTable.alias]=joinTable.table;
-});
+var oldAlias=$scope.aliasName[$scope.lookupState.editingIndex+1];
+var newAlias=$scope.newLookup.alias;
+if(oldAlias!=newAlias){
+  $scope.aliasName[$scope.lookupState.editingIndex+1]=newAlias;
+  for(var i=0;i<$scope.newLookup.join.primary_key.length;i++){
+

[2/9] kylin git commit: KYLIN 1875 update tooltip

2016-12-15 Thread liyang
KYLIN 1875 update tooltip

Signed-off-by: zhongjian 


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

Branch: refs/heads/master
Commit: e7cc152e69ce98cba7fd3be5251d334314f25828
Parents: a923047
Author: chenzhx <346839...@qq.com>
Authored: Tue Dec 13 15:57:34 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 webapp/app/partials/cubeDesigner/dimensions.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/e7cc152e/webapp/app/partials/cubeDesigner/dimensions.html
--
diff --git a/webapp/app/partials/cubeDesigner/dimensions.html 
b/webapp/app/partials/cubeDesigner/dimensions.html
index 8c1cdab..7fedeb6 100644
--- a/webapp/app/partials/cubeDesigner/dimensions.html
+++ b/webapp/app/partials/cubeDesigner/dimensions.html
@@ -57,7 +57,7 @@
 
 
 
-{{dimension.table}}
+{{dimension.table}}
 
 
 



[6/9] kylin git commit: minor sql fix, CI passed

2016-12-15 Thread liyang
minor sql fix, CI passed


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

Branch: refs/heads/master
Commit: 91cf788cebd66ffa8b56e37586fa3207c09f2d2e
Parents: 520b05f
Author: Yang Li 
Authored: Tue Dec 6 07:22:03 2016 +0800
Committer: Li Yang 
Committed: Thu Dec 15 18:57:36 2016 +0800

--
 kylin-it/src/test/resources/query/sql_subquery/query02.sql | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/91cf788c/kylin-it/src/test/resources/query/sql_subquery/query02.sql
--
diff --git a/kylin-it/src/test/resources/query/sql_subquery/query02.sql 
b/kylin-it/src/test/resources/query/sql_subquery/query02.sql
index 81b4887..e6751b7 100644
--- a/kylin-it/src/test/resources/query/sql_subquery/query02.sql
+++ b/kylin-it/src/test/resources/query/sql_subquery/query02.sql
@@ -18,7 +18,7 @@
 
 SELECT
   week_beg_dt
-  ,sum(price)
+  ,sum(price) as sum_price
 FROM
 ( 
   select