Skip to content

Commit

Permalink
Fix for spark version 1.6.2 test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
manishgupta88 authored and gvramana committed Mar 16, 2017
1 parent c230b8c commit 06efc20
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 116 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ private void fillDimensionAndMeasureDetails(List<ColumnSchema> columnsInTable,
// to store the ordinal of the column group ordinal
int columnGroupOrdinal = 0;
int counter = 0;
int complexTypeOrdinal = 0;
int complexTypeOrdinal = -1;
while (counter < columnsInTable.size()) {
columnSchema = columnsInTable.get(counter);
if (columnSchema.isDimensionColumn()) {
Expand Down Expand Up @@ -366,7 +366,7 @@ else if (isComplexDimensionStarted || CarbonUtil.hasDataType(columnSchema.getDat
new DataType[] { DataType.ARRAY, DataType.STRUCT })) {
cardinalityIndexForComplexDimensionColumn.add(tableOrdinal);
carbonDimension =
new CarbonDimension(columnSchema, dimensonOrdinal++, -1, -1, complexTypeOrdinal++);
new CarbonDimension(columnSchema, dimensonOrdinal++, -1, -1, ++complexTypeOrdinal);
carbonDimension.initializeChildDimensionsList(columnSchema.getNumberOfChild());
complexDimensions.add(carbonDimension);
isComplexDimensionStarted = true;
Expand All @@ -379,9 +379,7 @@ else if (isComplexDimensionStarted || CarbonUtil.hasDataType(columnSchema.getDat
cardinalityIndexForComplexDimensionColumn.add(++tableOrdinal);
}
counter = dimensonOrdinal;
complexTypeOrdinal = carbonDimension.getListOfChildDimensions()
.get(carbonDimension.getListOfChildDimensions().size() - 1).getComplexTypeOrdinal();
complexTypeOrdinal++;
complexTypeOrdinal = assignComplexOrdinal(carbonDimension, complexTypeOrdinal);
continue;
} else {
// for no dictionary dimension
Expand Down Expand Up @@ -445,6 +443,24 @@ private int readAllComplexTypeChildrens(int dimensionOrdinal, int childCount,
return dimensionOrdinal;
}

/**
* Read all primitive/complex children and set it as list of child carbon dimension to parent
* dimension
*/
private int assignComplexOrdinal(CarbonDimension parentDimension, int complexDimensionOrdianl) {
for (int i = 0; i < parentDimension.getNumberOfChild(); i++) {
CarbonDimension dimension = parentDimension.getListOfChildDimensions().get(i);
if (dimension.getNumberOfChild() > 0) {
dimension.setComplexTypeOridnal(++complexDimensionOrdianl);
complexDimensionOrdianl = assignComplexOrdinal(dimension, complexDimensionOrdianl);
} else {
parentDimension.getListOfChildDimensions().get(i)
.setComplexTypeOridnal(++complexDimensionOrdianl);
}
}
return complexDimensionOrdianl;
}

/**
* Below method will fill the key generator detail of both the type of key
* generator. This will be required for during both query execution and data
Expand Down
Loading

0 comments on commit 06efc20

Please sign in to comment.