/** * @return if column is dimension return true, else false. */ public Boolean isDimension() { return columnSchema.isDimensionColumn(); }
/** * Below method will be used to get the number of dimension column * in carbon column schema * * @param columnSchemaList column schema list * @return number of dimension column */ public static int getNumberOfDimensionColumns(List<ColumnSchema> columnSchemaList) { int numberOfDimensionColumns = 0; ColumnSchema columnSchema = null; for (int i = 0; i < columnSchemaList.size(); i++) { columnSchema = columnSchemaList.get(i); if (columnSchema.isDimensionColumn()) { numberOfDimensionColumns++; } else { break; } } return numberOfDimensionColumns; }
/** * Below method will be used to get the number of dimension column * in carbon column schema * * @param columnSchemaList column schema list * @return number of dimension column */ private int getNumberOfDimensionColumns(List<ColumnSchema> columnSchemaList) { int numberOfDimensionColumns = 0; int previousColumnGroupId = -1; ColumnSchema columnSchema = null; for (int i = 0; i < columnSchemaList.size(); i++) { columnSchema = columnSchemaList.get(i); if (columnSchema.isDimensionColumn()) { numberOfDimensionColumns++; } else { break; } } return numberOfDimensionColumns; }
private List<ColumnSchema> reArrangeColumnSchema(List<ColumnSchema> columnSchemas) { List<ColumnSchema> newColumnSchema = new ArrayList<>(columnSchemas.size()); // add sort columns first for (ColumnSchema columnSchema : columnSchemas) { if (columnSchema.isSortColumn()) { newColumnSchema.add(columnSchema); } } // add other dimension columns for (ColumnSchema columnSchema : columnSchemas) { if (!columnSchema.isSortColumn() && columnSchema.isDimensionColumn()) { newColumnSchema.add(columnSchema); } } // add measure columns for (ColumnSchema columnSchema : columnSchemas) { if (!columnSchema.isDimensionColumn()) { newColumnSchema.add(columnSchema); } } return newColumnSchema; }
/** * @param dictionaryColumnCardinality * @param wrapperColumnSchemaList * @return It returns formatted cardinality by adding -1 value for NoDictionary columns */ public static int[] getFormattedCardinality(int[] dictionaryColumnCardinality, List<ColumnSchema> wrapperColumnSchemaList) { List<Integer> cardinality = new ArrayList<>(); int counter = 0; for (int i = 0; i < wrapperColumnSchemaList.size(); i++) { if (CarbonUtil.hasEncoding(wrapperColumnSchemaList.get(i).getEncodingList(), Encoding.DICTIONARY)) { cardinality.add(dictionaryColumnCardinality[counter]); counter++; } else if (!wrapperColumnSchemaList.get(i).isDimensionColumn()) { continue; } else { cardinality.add(-1); } } return ArrayUtils.toPrimitive(cardinality.toArray(new Integer[cardinality.size()])); }
public static List<org.apache.carbondata.format.ColumnSchema> getColumnSchemaListAndCardinality( List<Integer> cardinality, int[] dictionaryColumnCardinality, List<ColumnSchema> wrapperColumnSchemaList) { List<org.apache.carbondata.format.ColumnSchema> columnSchemaList = new ArrayList<org.apache.carbondata.format.ColumnSchema>( CarbonCommonConstants.DEFAULT_COLLECTION_SIZE); SchemaConverter schemaConverter = new ThriftWrapperSchemaConverterImpl(); int counter = 0; for (int i = 0; i < wrapperColumnSchemaList.size(); i++) { columnSchemaList .add(schemaConverter.fromWrapperToExternalColumnSchema(wrapperColumnSchemaList.get(i))); if (CarbonUtil.hasEncoding(wrapperColumnSchemaList.get(i).getEncodingList(), org.apache.carbondata.core.metadata.encoder.Encoding.DICTIONARY)) { cardinality.add(dictionaryColumnCardinality[counter]); counter++; } else if (!wrapperColumnSchemaList.get(i).isDimensionColumn()) { continue; } else { cardinality.add(-1); } } return columnSchemaList; }
while (counter < columnsInTable.size()) { columnSchema = columnsInTable.get(counter); if (columnSchema.isDimensionColumn()) { tableOrdinal++;
int index = columnsInTable.indexOf(dimension.getDimension().getColumnSchema()); if (index > -1) { if (!columnsInTable.get(index).isDimensionColumn()) { ProjectionMeasure measure = new ProjectionMeasure( new CarbonMeasure(columnsInTable.get(index), dimension.getDimension().getOrdinal(), int index = columnsInTable.indexOf(measure.getMeasure().getColumnSchema()); if (index > -1) { if (columnsInTable.get(index).isDimensionColumn()) { ProjectionDimension dimension = new ProjectionDimension( new CarbonDimension(columnsInTable.get(index), measure.getMeasure().getOrdinal(),
for (int i = 0; i < childCount; i++) { ColumnSchema columnSchema = listOfColumns.get(dimensionOrdinal); if (columnSchema.isDimensionColumn()) { if (columnSchema.getNumberOfChild() > 0) { CarbonDimension complexDimension =
for (int i = 0; i < childCount; i++) { ColumnSchema columnSchema = listOfColumns.get(dimensionOrdinal); if (columnSchema.isDimensionColumn()) { if (columnSchema.getNumberOfChild() > 0) { CarbonDimension complexDimension =
if (!dataFileFooter.getColumnInTable().get(i).isDimensionColumn()) { DataType dataType = dataFileFooter.getColumnInTable().get(i).getDataType(); SerializableComparator comparator = Comparator.getComparator(dataType);
if (column.isDimensionColumn() && (column.getDataType().equals(DataTypes.STRING) || column.getDataType().equals(DataTypes.VARCHAR)) && !column .hasEncoding(Encoding.DICTIONARY)) { if (column.isDimensionColumn() && (column.getDataType().equals(DataTypes.STRING) || column.getDataType().equals(DataTypes.VARCHAR)) && !column .hasEncoding(Encoding.DICTIONARY)) { continue; if (column.isDimensionColumn() && (column.getDataType().equals(DataTypes.STRING) || column.getDataType().equals(DataTypes.VARCHAR)) && !column.hasEncoding(Encoding.DICTIONARY)
for (int i = 0; i < listOfColumns.size(); i++) { ColumnSchema columnSchema = listOfColumns.get(i); if (columnSchema.isDimensionColumn()) { if (columnSchema.getNumberOfChild() > 0) { CarbonDimension complexDimension =
/** * traverse through the columns of complex column specified in local dictionary include, * and set local dictionary for all the string and varchar child columns * @param allColumns * @param dimensionOrdinal * @param childColumnCount * @return */ private static int setLocalDictForComplexColumns(List<ColumnSchema> allColumns, int dimensionOrdinal, int childColumnCount) { for (int i = 0; i < childColumnCount; i++) { ColumnSchema column = allColumns.get(dimensionOrdinal); if (column.getNumberOfChild() > 0) { dimensionOrdinal++; setLocalDictForComplexColumns(allColumns, dimensionOrdinal, column.getNumberOfChild()); } else { if (column.isDimensionColumn() && (column.getDataType().equals(DataTypes.STRING) || column.getDataType().equals(DataTypes.VARCHAR)) && !column.hasEncoding(Encoding.DICTIONARY)) { column.setLocalDictColumn(true); } } dimensionOrdinal++; } return dimensionOrdinal; }
true, encoders, wrapperColumnSchema.isDimensionColumn()); thriftColumnSchema.setColumn_group_id(-1); if (DataTypes.isDecimal(wrapperColumnSchema.getDataType())) {
if (!newColumn.isDimensionColumn()) { measures.add(newColumn); } else if (DataTypes.isStructType(field.getDataType()) || DataTypes