KYLIN-2850 Throw clear error message for more than 63 columns in rowkey

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

Branch: refs/heads/ranger
Commit: fae56af2166ac21b5737542ca4c9ad1fb5b7622b
Parents: 25d2fd9
Author: Roger Shi <rogershijich...@hotmail.com>
Authored: Wed Sep 6 12:47:49 2017 +0800
Committer: Roger Shi <rogershijich...@gmail.com>
Committed: Thu Sep 7 21:13:38 2017 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/cube/model/CubeDesc.java   |   5 +
 .../org/apache/kylin/cube/CubeDescTest.java     |  14 +
 .../localmeta/cube_desc/ut_78_rowkeys.json.bad  | 845 +++++++++++++++++++
 .../model_desc/ut_large_dimension_number.json   |   2 +-
 .../localmeta/table/DEFAULT.WIDE_TABLE.json     | 104 +++
 5 files changed, 969 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/fae56af2/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java 
b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index 0af74f2..ec77f70 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -96,6 +96,8 @@ public class CubeDesc extends RootPersistentEntity implements 
IEngineAware {
         }
     }
 
+    public static final int MAX_ROWKEY_SIZE = 64;
+
     public enum DeriveType implements java.io.Serializable {
         LOOKUP, PK_FK, EXTENDED_COLUMN
     }
@@ -569,6 +571,9 @@ public class CubeDesc extends RootPersistentEntity 
implements IEngineAware {
 
         checkArgument(StringUtils.isNotBlank(name), "CubeDesc name is blank");
         checkArgument(StringUtils.isNotBlank(modelName), "CubeDesc (%s) has 
blank model name", name);
+        checkArgument(this.rowkey.getRowKeyColumns().length < MAX_ROWKEY_SIZE,
+                "Too many rowkeys (%s) in CubeDesc, please try to reduce 
dimension number or adopt derived dimensions",
+                this.rowkey.getRowKeyColumns().length);
 
         // note CubeDesc.name == CubeInstance.name
         List<ProjectInstance> ownerPrj = 
ProjectManager.getInstance(config).findProjects(RealizationType.CUBE, name);

http://git-wip-us.apache.org/repos/asf/kylin/blob/fae56af2/core-cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
----------------------------------------------------------------------
diff --git a/core-cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java 
b/core-cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
index 269c4ee..34ec190 100644
--- a/core-cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
+++ b/core-cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
@@ -383,6 +383,20 @@ public class CubeDescTest extends 
LocalFileMetadataTestCase {
     }
 
     @Test
+    public void testTooManyRowkeys() throws Exception {
+        File metaFile = new 
File(LocalFileMetadataTestCase.LOCALMETA_TEMP_DATA, 
"cube_desc/ut_78_rowkeys.json.bad");
+        Assert.assertTrue(metaFile.exists());
+        String path = metaFile.getPath();
+        metaFile.renameTo(new File(path.substring(0, path.length() - 4)));
+
+        thrown.expect(IllegalArgumentException.class);
+        thrown.expectMessage("Too many rowkeys (78) in CubeDesc, please try to 
reduce dimension number or adopt derived dimensions");
+        CubeDescManager.clearCache();
+        CubeDesc cubeDesc = 
CubeDescManager.getInstance(getTestConfig()).getCubeDesc("ut_78_rowkeys");
+        cubeDesc.init(getTestConfig());
+    }
+
+    @Test
     public void testSerialize() throws Exception {
         CubeDesc desc = 
CubeDescManager.getInstance(getTestConfig()).getCubeDesc(CUBE_WITH_SLR_DESC);
         String str = JsonUtil.writeValueAsIndentString(desc);

http://git-wip-us.apache.org/repos/asf/kylin/blob/fae56af2/examples/test_case_data/localmeta/cube_desc/ut_78_rowkeys.json.bad
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/cube_desc/ut_78_rowkeys.json.bad 
b/examples/test_case_data/localmeta/cube_desc/ut_78_rowkeys.json.bad
new file mode 100644
index 0000000..6b022c0
--- /dev/null
+++ b/examples/test_case_data/localmeta/cube_desc/ut_78_rowkeys.json.bad
@@ -0,0 +1,845 @@
+{
+  "uuid" : "9e89e128-f13e-4209-82d2-973985114793",
+  "last_modified" : 1479207711845,
+  "name" : "ut_78_rowkeys",
+  "model_name" : "ut_large_dimension_number",
+  "description" : "",
+  "null_string" : null,
+  "dimensions" : [ {
+    "name" : "DEFAULT.WIDE_TABLE.A",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "A",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.B",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "B",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.C",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "C",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.D",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "D",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.E",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "E",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.F",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "F",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.G",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "G",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.H",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "H",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.I",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "I",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.J",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "J",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.K",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "K",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.L",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "L",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.M",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "M",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.N",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "N",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.O",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "O",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.P",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "P",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.Q",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "Q",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.R",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "R",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.S",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "S",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.T",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "T",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.U",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "U",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.V",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "V",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.W",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "W",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.X",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "X",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.Y",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "Y",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.Z",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "Z",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AA",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AA",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AB",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AB",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AC",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AC",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AD",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AD",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AE",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AE",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AF",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AF",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AG",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AG",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AH",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AH",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AI",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AI",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AJ",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AJ",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AK",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AK",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AL",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AL",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AM",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AM",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AN",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AN",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AO",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AO",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AP",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AP",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AQ",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AQ",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AR",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AR",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AS",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AS",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AT",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AT",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AU",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AU",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AV",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AV",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AW",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AW",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AX",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AX",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AY",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AY",
+    "derived" : null
+  },{
+    "name" : "DEFAULT.WIDE_TABLE.AZ",
+    "table" : "DEFAULT.WIDE_TABLE",
+    "column" : "AZ",
+    "derived" : null
+  },{
+   "name" : "DEFAULT.WIDE_TABLE.BA",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BA",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BB",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BB",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BC",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BC",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BD",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BD",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BE",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BE",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BF",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BF",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BG",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BG",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BH",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BH",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BI",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BI",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BJ",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BJ",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BK",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BK",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BL",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BL",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BM",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BM",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BN",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BN",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BO",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BO",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BP",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BP",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BQ",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BQ",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BR",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BR",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BS",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BS",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BT",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BT",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BU",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BU",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BV",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BV",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BW",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BW",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BX",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BX",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BY",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BY",
+   "derived" : null
+ },{
+   "name" : "DEFAULT.WIDE_TABLE.BZ",
+   "table" : "DEFAULT.WIDE_TABLE",
+   "column" : "BZ",
+   "derived" : null
+ } ],
+  "measures" : [ {
+    "name" : "_COUNT_",
+    "function" : {
+      "expression" : "COUNT",
+      "parameter" : {
+        "type" : "constant",
+        "value" : "1",
+        "next_parameter" : null
+      },
+      "returntype" : "bigint"
+    },
+    "dependent_measure_ref" : null
+  } ],
+  "dictionaries" : [ ],
+  "rowkey" : {
+    "rowkey_columns" : [ {
+      "column" : "A",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "B",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "C",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "D",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "E",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "F",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "G",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "H",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "I",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "J",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "K",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "L",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "M",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "N",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "O",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "P",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "Q",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "R",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "S",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "T",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "U",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "V",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "W",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "X",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "Y",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "Z",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AA",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AB",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AC",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AD",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AE",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AF",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AG",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AH",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AI",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AJ",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AK",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AL",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AM",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AN",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AO",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AP",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AQ",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AR",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AS",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AT",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "AU",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "AV",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "AW",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "AX",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "AY",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "AZ",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    } , {
+      "column" : "BA",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BB",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BC",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BD",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BE",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BF",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BG",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BH",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BI",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BJ",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BK",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BL",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BM",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BN",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BO",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BP",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BQ",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BR",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BS",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BT",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }, {
+      "column" : "BU",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "BV",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "BW",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "BX",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "BY",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    },{
+      "column" : "BZ",
+      "encoding" : "dict",
+      "isShardBy" : false,
+      "index" : "eq"
+    }]
+  },
+  "hbase_mapping" : {
+    "column_family" : [ {
+      "name" : "F1",
+      "columns" : [ {
+        "qualifier" : "M",
+        "measure_refs" : [ "_COUNT_" ]
+      } ]
+    } ]
+  },
+  "aggregation_groups" : [ {
+    "includes" : [ "A", "B", "C", "D", "E" ],
+    "select_rule" : {
+      "hierarchy_dims" : [ ],
+      "mandatory_dims" : [ ],
+      "joint_dims" : [ ]
+    }
+  }, {
+    "includes" : [ "F", "G", "H", "I", "J", "K", "L", "M" ],
+    "select_rule" : {
+      "hierarchy_dims" : [ ],
+      "mandatory_dims" : [ "F" ],
+      "joint_dims" : [ ]
+    }
+  } ],
+  "signature" : "4NqJVcVIYRF5PkJ0jS+9Rg==",
+  "notify_list" : [ ],
+  "status_need_notify" : [ "ERROR", "DISCARDED", "SUCCEED" ],
+  "partition_date_start" : 1469923200000,
+  "partition_date_end" : 3153600000000,
+  "auto_merge_time_ranges" : [ 604800000, 2419200000 ],
+  "retention_range" : 0,
+  "engine_type" : 100,
+  "storage_type" : 100,
+  "override_kylin_properties" : {
+    "kylin.cube.algorithm" : "auto",
+    "kylin.cube.aggrgroup.max.combination" : "4096",
+    "kylin.job.cubing.inmem.sampling.percent" : "100",
+    "kylin.hbase.default.compression.codec" : "none"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/fae56af2/examples/test_case_data/localmeta/model_desc/ut_large_dimension_number.json
----------------------------------------------------------------------
diff --git 
a/examples/test_case_data/localmeta/model_desc/ut_large_dimension_number.json 
b/examples/test_case_data/localmeta/model_desc/ut_large_dimension_number.json
index 9eeb774..2c1b5ac 100644
--- 
a/examples/test_case_data/localmeta/model_desc/ut_large_dimension_number.json
+++ 
b/examples/test_case_data/localmeta/model_desc/ut_large_dimension_number.json
@@ -9,7 +9,7 @@
   "lookups" : [],
   "dimensions" : [ {
     "table" : "DEFAULT.WIDE_TABLE",
-    "columns" : ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", 
"M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", 
"AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", 
"AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ"]
+    "columns" : ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", 
"M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", 
"AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", 
"AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", 
"BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN", 
"BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY", "BZ"]
   }],
   "metrics" : [ ],
   "filter_condition" : "",

http://git-wip-us.apache.org/repos/asf/kylin/blob/fae56af2/examples/test_case_data/localmeta/table/DEFAULT.WIDE_TABLE.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/DEFAULT.WIDE_TABLE.json 
b/examples/test_case_data/localmeta/table/DEFAULT.WIDE_TABLE.json
index ef142d1..9b51fd2 100644
--- a/examples/test_case_data/localmeta/table/DEFAULT.WIDE_TABLE.json
+++ b/examples/test_case_data/localmeta/table/DEFAULT.WIDE_TABLE.json
@@ -211,6 +211,110 @@
     "id" : "52",
     "name" : "AZ",
     "datatype" : "varchar(256)"
+  }, {
+    "id" : "53",
+    "name" : "BA",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "54",
+    "name" : "BB",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "55",
+    "name" : "BC",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "56",
+    "name" : "BD",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "57",
+    "name" : "BE",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "58",
+    "name" : "BF",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "59",
+    "name" : "BG",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "60",
+    "name" : "BH",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "61",
+    "name" : "BI",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "62",
+    "name" : "BJ",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "63",
+    "name" : "BK",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "64",
+    "name" : "BL",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "65",
+    "name" : "BM",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "66",
+    "name" : "BN",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "67",
+    "name" : "BO",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "68",
+    "name" : "BP",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "69",
+    "name" : "BQ",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "70",
+    "name" : "BR",
+    "datatype" : "varchar(256)"
+  }, {
+    "id" : "71",
+    "name" : "BS",
+    "datatype" : "bigint"
+  }, {
+    "id" : "72",
+    "name" : "BT",
+    "datatype" : "bigint"
+  }, {
+    "id" : "73",
+    "name" : "BU",
+    "datatype" : "bigint"
+  }, {
+    "id" : "74",
+    "name" : "BV",
+    "datatype" : "bigint"
+  }, {
+    "id" : "75",
+    "name" : "BW",
+    "datatype" : "bigint"
+  }, {
+    "id" : "76",
+    "name" : "BX",
+    "datatype" : "bigint"
+  }, {
+    "id" : "77",
+    "name" : "BY",
+    "datatype" : "bigint"
+  }, {
+    "id" : "78",
+    "name" : "BZ",
+    "datatype" : "bigint"
   } ],
   "source_type" : 0,
   "database" : "DEFAULT"

Reply via email to