You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2016/11/17 08:49:49 UTC
[1/3] kylin git commit: KYLIN-2201 fix combination check overflow
error
Repository: kylin
Updated Branches:
refs/heads/yang21 ac4e9ec56 -> d87b7a512
KYLIN-2201 fix combination check overflow error
Signed-off-by: Hongbin Ma <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/9bd6a2ab
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/9bd6a2ab
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/9bd6a2ab
Branch: refs/heads/yang21
Commit: 9bd6a2ab6b5fd8f11a80198012a519bfe4edac08
Parents: 02e723a
Author: Roger Shi <ro...@hotmail.com>
Authored: Thu Nov 17 11:07:17 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Thu Nov 17 11:50:09 2016 +0800
----------------------------------------------------------------------
.../org/apache/kylin/cube/model/CubeDesc.java | 6 +-
.../kylin/cube/AggregationGroupRuleTest.java | 11 +
.../org/apache/kylin/cube/CubeDescTest.java | 7 +
.../ut_cube_desc_combination_int_overflow.json | 398 +++++++++++++++++++
4 files changed, 419 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/9bd6a2ab/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 4195451..c914ebb 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
@@ -580,7 +580,7 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware {
throw new IllegalStateException("Aggregation group " + index + " select rule field not set");
}
- int combination = 1;
+ long combination = 1;
Set<String> includeDims = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
getDims(includeDims, agg.getIncludes());
@@ -598,7 +598,7 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware {
Set<String> jointDims = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
getDims(jointDimsList, jointDims, agg.getSelectRule().joint_dims);
if (jointDimsList.size() > 0) {
- combination = combination * (1 << jointDimsList.size());
+ combination = combination * (1L << jointDimsList.size());
}
if (!includeDims.containsAll(mandatoryDims) || !includeDims.containsAll(hierarchyDims) || !includeDims.containsAll(jointDims)) {
@@ -612,7 +612,7 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware {
normalDims.removeAll(hierarchyDims);
normalDims.removeAll(jointDims);
- combination = combination * (1 << normalDims.size());
+ combination = combination * (1L << normalDims.size());
if (combination > config.getCubeAggrGroupMaxCombination()) {
String msg = "Aggregation group " + index + " has too many combinations, use 'mandatory'/'hierarchy'/'joint' to optimize; or update 'kylin.cube.aggrgroup.max.combination' to a bigger value.";
http://git-wip-us.apache.org/repos/asf/kylin/blob/9bd6a2ab/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
----------------------------------------------------------------------
diff --git a/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java b/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
index 6c3d544..7fea440 100644
--- a/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
+++ b/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
@@ -115,6 +116,16 @@ public class AggregationGroupRuleTest {
assertEquals("Aggregation group 0 joint columns overlap with more than 1 dim in same hierarchy", (vContext.getResults()[0].getMessage()));
}
+ @Test
+ public void testCombinationIntOverflow() throws IOException {
+ ValidateContext vContext = new ValidateContext();
+ CubeDesc desc = JsonUtil.readValue(new FileInputStream(LocalFileMetadataTestCase.LOCALMETA_TEST_DATA + "/cube_desc/ut_cube_desc_combination_int_overflow.json"), CubeDesc.class);
+
+ IValidatorRule<CubeDesc> rule = getAggregationGroupRule();
+ rule.validate(desc, vContext);
+ assertEquals(1, vContext.getResults().length);
+ }
+
public AggregationGroupRule getAggregationGroupRule() {
AggregationGroupRule rule = new AggregationGroupRule() {
@Override
http://git-wip-us.apache.org/repos/asf/kylin/blob/9bd6a2ab/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 98cff43..597121b 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
@@ -194,6 +194,13 @@ public class CubeDescTest extends LocalFileMetadataTestCase {
}
@Test
+ public void testCombinationIntOverflow() throws Exception {
+ thrown.expect(IllegalStateException.class);
+ CubeDesc cubeDesc = CubeDescManager.getInstance(getTestConfig()).getCubeDesc("ut_cube_desc_combination_int_overflow");
+ cubeDesc.init(getTestConfig());
+ }
+
+ @Test
public void testSerialize() throws Exception {
CubeDesc desc = CubeDescManager.getInstance(getTestConfig()).getCubeDesc("test_kylin_cube_with_slr_desc");
String str = JsonUtil.writeValueAsIndentString(desc);
http://git-wip-us.apache.org/repos/asf/kylin/blob/9bd6a2ab/examples/test_case_data/localmeta/cube_desc/ut_cube_desc_combination_int_overflow.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/cube_desc/ut_cube_desc_combination_int_overflow.json b/examples/test_case_data/localmeta/cube_desc/ut_cube_desc_combination_int_overflow.json
new file mode 100644
index 0000000..ec6f8f4
--- /dev/null
+++ b/examples/test_case_data/localmeta/cube_desc/ut_cube_desc_combination_int_overflow.json
@@ -0,0 +1,398 @@
+{
+ "uuid" : "9e89e128-f13e-4209-82d2-973985114793",
+ "last_modified" : 1479207711845,
+ "name" : "ut_cube_desc_combination_int_overflow",
+ "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
+ } ],
+ "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"
+ }]
+ },
+ "hbase_mapping" : {
+ "column_family" : [ {
+ "name" : "F1",
+ "columns" : [ {
+ "qualifier" : "M",
+ "measure_refs" : [ "_COUNT_" ]
+ } ]
+ } ]
+ },
+ "aggregation_groups" : [ {
+ "includes" : [ "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"],
+ "select_rule" : {
+ "hierarchy_dims" : [ ],
+ "mandatory_dims" : [ ],
+ "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
[3/3] kylin git commit: KYLIN-2199 bug fix
Posted by ma...@apache.org.
KYLIN-2199 bug fix
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/d87b7a51
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/d87b7a51
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/d87b7a51
Branch: refs/heads/yang21
Commit: d87b7a51282ffb2e678af65c20b5a395a2347d49
Parents: 9bd6a2a
Author: Hongbin Ma <ma...@apache.org>
Authored: Thu Nov 17 16:46:59 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Thu Nov 17 16:48:53 2016 +0800
----------------------------------------------------------------------
.../org/apache/kylin/dimension/DimensionEncodingFactory.java | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/d87b7a51/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 242e003..b617a19 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
@@ -73,6 +73,12 @@ public abstract class DimensionEncodingFactory {
Map<String, Integer> result = Maps.newHashMap();
for (Pair<String, Integer> p : factoryMap.keySet()) {
+ if (result.containsKey(p.getFirst())) {
+ if (result.get(p.getFirst()) > p.getSecond()) {
+ continue;//skip small versions
+ }
+ }
+
result.put(p.getFirst(), p.getSecond());
}
result.put(DictionaryDimEnc.ENCODING_NAME, 1);
[2/3] kylin git commit: KYLIN-2197 fix gg group
buildMandatoryColumnMask
Posted by ma...@apache.org.
KYLIN-2197 fix gg group buildMandatoryColumnMask
Signed-off-by: Hongbin Ma <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/02e723ae
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/02e723ae
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/02e723ae
Branch: refs/heads/yang21
Commit: 02e723ae0c40847517c8e8c195cb723a5d70d275
Parents: ac4e9ec
Author: Li Yang <li...@apache.org>
Authored: Wed Nov 16 13:33:08 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Thu Nov 17 11:50:09 2016 +0800
----------------------------------------------------------------------
.../kylin/cube/model/AggregationGroup.java | 2 +-
.../kylin/cube/cuboid/CuboidSchedulerTest.java | 13 +
.../cube_desc/ut_large_dimension_number.json | 585 +++++++++++++++++++
.../model_desc/ut_large_dimension_number.json | 26 +
.../localmeta/table/DEFAULT.WIDE_TABLE.json | 217 +++++++
5 files changed, 842 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/02e723ae/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java b/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java
index 5f780d0..c7924c7 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java
@@ -124,7 +124,7 @@ public class AggregationGroup {
for (String dim : mandatory_dims) {
TblColRef hColumn = colNameAbbr.get(dim);
Integer index = rowKeyDesc.getColumnBitIndex(hColumn);
- mandatoryColumnMask |= 1 << index;
+ mandatoryColumnMask |= (1L << index);
}
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/02e723ae/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
----------------------------------------------------------------------
diff --git a/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java b/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
index ecb1200..bdceb0f 100644
--- a/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
+++ b/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.fail;
import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
import org.apache.kylin.cube.CubeDescManager;
@@ -283,6 +284,18 @@ public class CuboidSchedulerTest extends LocalFileMetadataTestCase {
assertEquals(cuboidScheduler.getCuboidCount(), sum);
}
+ @Test
+ public void testCuboid_onlyBaseCuboid() {
+ CubeDesc cube = getCubeDescManager().getCubeDesc("ut_large_dimension_number");
+ CuboidScheduler scheduler = new CuboidScheduler(cube);
+
+ Cuboid baseCuboid = Cuboid.getBaseCuboid(cube);
+ assertTrue(Cuboid.isValid(cube, baseCuboid.getId()));
+
+ List<Long> spanningChild = scheduler.getSpanningCuboid(baseCuboid.getId());
+ assertTrue(spanningChild.size() > 0);
+ }
+
public CubeDescManager getCubeDescManager() {
return CubeDescManager.getInstance(getTestConfig());
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/02e723ae/examples/test_case_data/localmeta/cube_desc/ut_large_dimension_number.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/cube_desc/ut_large_dimension_number.json b/examples/test_case_data/localmeta/cube_desc/ut_large_dimension_number.json
new file mode 100644
index 0000000..c0e8568
--- /dev/null
+++ b/examples/test_case_data/localmeta/cube_desc/ut_large_dimension_number.json
@@ -0,0 +1,585 @@
+{
+ "uuid" : "9e89e128-f13e-4209-82d2-973985114793",
+ "last_modified" : 1479207711845,
+ "name" : "ut_large_dimension_number",
+ "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
+ } ],
+ "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"
+ } ]
+ },
+ "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/02e723ae/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
new file mode 100644
index 0000000..38b070e
--- /dev/null
+++ b/examples/test_case_data/localmeta/model_desc/ut_large_dimension_number.json
@@ -0,0 +1,26 @@
+{
+ "uuid" : "dd250ea4-27f7-4450-b604-fcfdf3578f5a",
+ "last_modified" : 1479206338080,
+ "version" : "1.6.0",
+ "name" : "ut_large_dimension_number",
+ "owner" : "ADMIN",
+ "description" : "",
+ "fact_table" : "DEFAULT.WIDE_TABLE",
+ "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"]
+ }],
+ "metrics" : [ "A" ],
+ "filter_condition" : "",
+ "partition_desc" : {
+ "partition_date_column" : "DEFAULT.WIDE_TABLE.A",
+ "partition_time_column" : null,
+ "partition_date_start" : 0,
+ "partition_date_format" : "yyyyMMdd",
+ "partition_time_format" : "HH:mm:ss",
+ "partition_type" : "APPEND",
+ "partition_condition_builder" : "org.apache.kylin.metadata.model.PartitionDesc$DefaultPartitionConditionBuilder"
+ },
+ "capacity" : "MEDIUM"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/02e723ae/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
new file mode 100644
index 0000000..ef142d1
--- /dev/null
+++ b/examples/test_case_data/localmeta/table/DEFAULT.WIDE_TABLE.json
@@ -0,0 +1,217 @@
+{
+ "uuid" : "cd267e5b-6835-4db2-a861-8b78f38271fe",
+ "last_modified" : 1479202699684,
+ "version" : "1.6.0",
+ "name" : "WIDE_TABLE",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "A",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "2",
+ "name" : "B",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "3",
+ "name" : "C",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "4",
+ "name" : "D",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "5",
+ "name" : "E",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "6",
+ "name" : "F",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "7",
+ "name" : "G",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "8",
+ "name" : "H",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "9",
+ "name" : "I",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "10",
+ "name" : "J",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "11",
+ "name" : "K",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "12",
+ "name" : "L",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "13",
+ "name" : "M",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "14",
+ "name" : "N",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "15",
+ "name" : "O",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "16",
+ "name" : "P",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "17",
+ "name" : "Q",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "18",
+ "name" : "R",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "19",
+ "name" : "S",
+ "datatype" : "bigint"
+ }, {
+ "id" : "20",
+ "name" : "T",
+ "datatype" : "bigint"
+ }, {
+ "id" : "21",
+ "name" : "U",
+ "datatype" : "bigint"
+ }, {
+ "id" : "22",
+ "name" : "V",
+ "datatype" : "bigint"
+ }, {
+ "id" : "23",
+ "name" : "W",
+ "datatype" : "bigint"
+ }, {
+ "id" : "24",
+ "name" : "X",
+ "datatype" : "bigint"
+ }, {
+ "id" : "25",
+ "name" : "Y",
+ "datatype" : "bigint"
+ }, {
+ "id" : "26",
+ "name" : "Z",
+ "datatype" : "bigint"
+ }, {
+ "id" : "27",
+ "name" : "AA",
+ "datatype" : "bigint"
+ }, {
+ "id" : "28",
+ "name" : "AB",
+ "datatype" : "bigint"
+ }, {
+ "id" : "29",
+ "name" : "AC",
+ "datatype" : "bigint"
+ }, {
+ "id" : "30",
+ "name" : "AD",
+ "datatype" : "bigint"
+ }, {
+ "id" : "31",
+ "name" : "AE",
+ "datatype" : "bigint"
+ }, {
+ "id" : "32",
+ "name" : "AF",
+ "datatype" : "bigint"
+ }, {
+ "id" : "33",
+ "name" : "AG",
+ "datatype" : "bigint"
+ }, {
+ "id" : "34",
+ "name" : "AH",
+ "datatype" : "bigint"
+ }, {
+ "id" : "35",
+ "name" : "AI",
+ "datatype" : "bigint"
+ }, {
+ "id" : "36",
+ "name" : "AJ",
+ "datatype" : "bigint"
+ }, {
+ "id" : "37",
+ "name" : "AK",
+ "datatype" : "bigint"
+ }, {
+ "id" : "38",
+ "name" : "AL",
+ "datatype" : "bigint"
+ }, {
+ "id" : "39",
+ "name" : "AM",
+ "datatype" : "bigint"
+ }, {
+ "id" : "40",
+ "name" : "AN",
+ "datatype" : "bigint"
+ }, {
+ "id" : "41",
+ "name" : "AO",
+ "datatype" : "bigint"
+ }, {
+ "id" : "42",
+ "name" : "AP",
+ "datatype" : "bigint"
+ }, {
+ "id" : "43",
+ "name" : "AQ",
+ "datatype" : "bigint"
+ }, {
+ "id" : "44",
+ "name" : "AR",
+ "datatype" : "bigint"
+ }, {
+ "id" : "45",
+ "name" : "AS",
+ "datatype" : "bigint"
+ }, {
+ "id" : "46",
+ "name" : "AT",
+ "datatype" : "bigint"
+ }, {
+ "id" : "47",
+ "name" : "AU",
+ "datatype" : "bigint"
+ }, {
+ "id" : "48",
+ "name" : "AV",
+ "datatype" : "bigint"
+ }, {
+ "id" : "49",
+ "name" : "AW",
+ "datatype" : "bigint"
+ }, {
+ "id" : "50",
+ "name" : "AX",
+ "datatype" : "varchar(256)"
+ }, {
+ "id" : "51",
+ "name" : "AY",
+ "datatype" : "bigint"
+ }, {
+ "id" : "52",
+ "name" : "AZ",
+ "datatype" : "varchar(256)"
+ } ],
+ "source_type" : 0,
+ "database" : "DEFAULT"
+}
\ No newline at end of file