[28/48] kylin git commit: KYLIN-2494 ensure model has no dup among dimensions and measures

2017-03-12 Thread liyang
KYLIN-2494 ensure model has no dup among dimensions and measures


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

Branch: refs/heads/master-hbase0.98
Commit: 182ed009400629dee1bd7ad0121224cacfd07668
Parents: 2dfffde
Author: Li Yang 
Authored: Thu Mar 9 18:03:26 2017 +0800
Committer: Li Yang 
Committed: Thu Mar 9 18:03:26 2017 +0800

--
 .../apache/kylin/common/KylinConfigBase.java|  4 
 .../kylin/metadata/model/DataModelDesc.java | 22 +---
 .../kylin/metadata/model/DataModelDescTest.java | 11 ++
 .../test_kylin_inner_join_model_desc.json   |  1 +
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
--
diff --git 
a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java 
b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 02b2d4b..ad02fe2 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -329,10 +329,6 @@ abstract public class KylinConfigBase implements 
Serializable {
 return 
Boolean.parseBoolean(getOptional("kylin.cube.allow-appear-in-multiple-projects",
 "false"));
 }
 
-public boolean allowModelDimensionMetricsOverlap() {
-return 
Boolean.parseBoolean(getOptional("kylin.model.allow-dimension-metrics-overlap", 
"false"));
-}
-
 // 

 // JOB
 // 


http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/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 1c85f09..0a303ec 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
@@ -453,23 +453,21 @@ public class DataModelDesc extends RootPersistentEntity {
 }
 
 private boolean validate() {
+
+// ensure no dup between dimensions/metrics
+for (ModelDimensionDesc dim : dimensions) {
+String table = dim.getTable();
+for (String c : dim.getColumns()) {
+TblColRef dcol = findColumn(table, c);
+metrics = ArrayUtils.removeElement(metrics, 
dcol.getIdentity());
+}
+}
+
 Set mcols = new HashSet<>();
 for (String m : metrics) {
 mcols.add(findColumn(m));
 }
 
-if 
(!KylinConfig.getInstanceFromEnv().allowModelDimensionMetricsOverlap()) {
-// validate no dup between dimensions/metrics
-for (ModelDimensionDesc dim : dimensions) {
-String table = dim.getTable();
-for (String c : dim.getColumns()) {
-TblColRef dcol = findColumn(table, c);
-if (mcols.contains(dcol))
-throw new IllegalStateException(dcol + " cannot be 
both dimension and metrics at the same time in " + this);
-}
-}
-}
-
 // validate PK/FK are in dimensions
 boolean pkfkDimAmended = false;
 for (Chain chain : joinsTree.tableChains.values()) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
--
diff --git 
a/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
 
b/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
index 0cfa1f4..b319423 100644
--- 
a/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
+++ 
b/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
@@ -19,7 +19,9 @@
 package org.apache.kylin.metadata.model;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.kylin.common.util.JsonUtil;
 import 

[01/14] kylin git commit: KYLIN-2494 ensure model has no dup among dimensions and measures [Forced Update!]

2017-03-11 Thread billyliu
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2360 7c16323bd -> 28d66fc65 (forced update)


KYLIN-2494 ensure model has no dup among dimensions and measures


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

Branch: refs/heads/KYLIN-2360
Commit: 182ed009400629dee1bd7ad0121224cacfd07668
Parents: 2dfffde
Author: Li Yang 
Authored: Thu Mar 9 18:03:26 2017 +0800
Committer: Li Yang 
Committed: Thu Mar 9 18:03:26 2017 +0800

--
 .../apache/kylin/common/KylinConfigBase.java|  4 
 .../kylin/metadata/model/DataModelDesc.java | 22 +---
 .../kylin/metadata/model/DataModelDescTest.java | 11 ++
 .../test_kylin_inner_join_model_desc.json   |  1 +
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
--
diff --git 
a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java 
b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 02b2d4b..ad02fe2 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -329,10 +329,6 @@ abstract public class KylinConfigBase implements 
Serializable {
 return 
Boolean.parseBoolean(getOptional("kylin.cube.allow-appear-in-multiple-projects",
 "false"));
 }
 
-public boolean allowModelDimensionMetricsOverlap() {
-return 
Boolean.parseBoolean(getOptional("kylin.model.allow-dimension-metrics-overlap", 
"false"));
-}
-
 // 

 // JOB
 // 


http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/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 1c85f09..0a303ec 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
@@ -453,23 +453,21 @@ public class DataModelDesc extends RootPersistentEntity {
 }
 
 private boolean validate() {
+
+// ensure no dup between dimensions/metrics
+for (ModelDimensionDesc dim : dimensions) {
+String table = dim.getTable();
+for (String c : dim.getColumns()) {
+TblColRef dcol = findColumn(table, c);
+metrics = ArrayUtils.removeElement(metrics, 
dcol.getIdentity());
+}
+}
+
 Set mcols = new HashSet<>();
 for (String m : metrics) {
 mcols.add(findColumn(m));
 }
 
-if 
(!KylinConfig.getInstanceFromEnv().allowModelDimensionMetricsOverlap()) {
-// validate no dup between dimensions/metrics
-for (ModelDimensionDesc dim : dimensions) {
-String table = dim.getTable();
-for (String c : dim.getColumns()) {
-TblColRef dcol = findColumn(table, c);
-if (mcols.contains(dcol))
-throw new IllegalStateException(dcol + " cannot be 
both dimension and metrics at the same time in " + this);
-}
-}
-}
-
 // validate PK/FK are in dimensions
 boolean pkfkDimAmended = false;
 for (Chain chain : joinsTree.tableChains.values()) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
--
diff --git 
a/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
 
b/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
index 0cfa1f4..b319423 100644
--- 
a/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
+++ 
b/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
@@ -19,7 +19,9 @@
 package org.apache.kylin.metadata.model;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.lang.ArrayUtils;
 

kylin git commit: KYLIN-2494 ensure model has no dup among dimensions and measures

2017-03-09 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/master 2dfffde26 -> 182ed0094


KYLIN-2494 ensure model has no dup among dimensions and measures


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

Branch: refs/heads/master
Commit: 182ed009400629dee1bd7ad0121224cacfd07668
Parents: 2dfffde
Author: Li Yang 
Authored: Thu Mar 9 18:03:26 2017 +0800
Committer: Li Yang 
Committed: Thu Mar 9 18:03:26 2017 +0800

--
 .../apache/kylin/common/KylinConfigBase.java|  4 
 .../kylin/metadata/model/DataModelDesc.java | 22 +---
 .../kylin/metadata/model/DataModelDescTest.java | 11 ++
 .../test_kylin_inner_join_model_desc.json   |  1 +
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
--
diff --git 
a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java 
b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 02b2d4b..ad02fe2 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -329,10 +329,6 @@ abstract public class KylinConfigBase implements 
Serializable {
 return 
Boolean.parseBoolean(getOptional("kylin.cube.allow-appear-in-multiple-projects",
 "false"));
 }
 
-public boolean allowModelDimensionMetricsOverlap() {
-return 
Boolean.parseBoolean(getOptional("kylin.model.allow-dimension-metrics-overlap", 
"false"));
-}
-
 // 

 // JOB
 // 


http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/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 1c85f09..0a303ec 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
@@ -453,23 +453,21 @@ public class DataModelDesc extends RootPersistentEntity {
 }
 
 private boolean validate() {
+
+// ensure no dup between dimensions/metrics
+for (ModelDimensionDesc dim : dimensions) {
+String table = dim.getTable();
+for (String c : dim.getColumns()) {
+TblColRef dcol = findColumn(table, c);
+metrics = ArrayUtils.removeElement(metrics, 
dcol.getIdentity());
+}
+}
+
 Set mcols = new HashSet<>();
 for (String m : metrics) {
 mcols.add(findColumn(m));
 }
 
-if 
(!KylinConfig.getInstanceFromEnv().allowModelDimensionMetricsOverlap()) {
-// validate no dup between dimensions/metrics
-for (ModelDimensionDesc dim : dimensions) {
-String table = dim.getTable();
-for (String c : dim.getColumns()) {
-TblColRef dcol = findColumn(table, c);
-if (mcols.contains(dcol))
-throw new IllegalStateException(dcol + " cannot be 
both dimension and metrics at the same time in " + this);
-}
-}
-}
-
 // validate PK/FK are in dimensions
 boolean pkfkDimAmended = false;
 for (Chain chain : joinsTree.tableChains.values()) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/182ed009/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
--
diff --git 
a/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
 
b/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
index 0cfa1f4..b319423 100644
--- 
a/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
+++ 
b/core-metadata/src/test/java/org/apache/kylin/metadata/model/DataModelDescTest.java
@@ -19,7 +19,9 @@
 package org.apache.kylin.metadata.model;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.lang.ArrayUtils;
 import