/** * @return true if column is measure, otherwise false */ public Boolean isMeasure() { return !isDimension(); }
public static boolean[] getNoDictionaryMapping(CarbonColumn[] carbonColumns) { List<Boolean> noDictionaryMapping = new ArrayList<Boolean>(); for (CarbonColumn column : carbonColumns) { // for complex type need to break the loop if (column.isComplex()) { break; } if (!column.hasEncoding(Encoding.DICTIONARY) && column.isDimension()) { noDictionaryMapping.add(true); } else if (column.isDimension()) { noDictionaryMapping.add(false); } } return ArrayUtils .toPrimitive(noDictionaryMapping.toArray(new Boolean[noDictionaryMapping.size()])); }
/** * Preparing the boolean [] to map whether the dimension use inverted index or not. */ public static boolean[] getIsUseInvertedIndex(DataField[] fields) { List<Boolean> isUseInvertedIndexList = new ArrayList<Boolean>(); for (DataField field : fields) { if (field.getColumn().isUseInvertedIndex() && field.getColumn().isDimension()) { isUseInvertedIndexList.add(true); } else if (field.getColumn().isDimension()) { isUseInvertedIndexList.add(false); } } return ArrayUtils .toPrimitive(isUseInvertedIndexList.toArray(new Boolean[isUseInvertedIndexList.size()])); }
public DataType[] getMeasureDataType() { List<Integer> measureIndexes = new ArrayList<>(dataFields.length); int measureCount = 0; for (int i = 0; i < dataFields.length; i++) { if (!dataFields[i].getColumn().isDimension()) { measureIndexes.add(i); measureCount++; } } DataType[] type = new DataType[measureCount]; for (int i = 0; i < type.length; i++) { type[i] = dataFields[measureIndexes.get(i)].getColumn().getDataType(); } return type; }
/** * Preparing the boolean [] to map whether the dimension is no Dictionary or not. */ public static boolean[] getNoDictionaryMapping(DataField[] fields) { List<Boolean> noDictionaryMapping = new ArrayList<Boolean>(); for (DataField field : fields) { // for complex type need to break the loop if (field.getColumn().isComplex()) { break; } if (!field.hasDictionaryEncoding() && field.getColumn().isDimension()) { noDictionaryMapping.add(true); } else if (field.getColumn().isDimension()) { noDictionaryMapping.add(false); } } return ArrayUtils .toPrimitive(noDictionaryMapping.toArray(new Boolean[noDictionaryMapping.size()])); }
/** * Preparing the boolean [] to map whether the dimension is varchar data type or not. */ public static boolean[] getIsVarcharColumnMapping(DataField[] fields) { List<Boolean> isVarcharColumnMapping = new ArrayList<Boolean>(); for (DataField field : fields) { // for complex type need to break the loop if (field.getColumn().isComplex()) { break; } if (field.getColumn().isDimension()) { isVarcharColumnMapping.add( field.getColumn().getColumnSchema().getDataType() == DataTypes.VARCHAR); } } return ArrayUtils.toPrimitive( isVarcharColumnMapping.toArray(new Boolean[isVarcharColumnMapping.size()])); }
/** * Get the data types of the no dictionary and the complex dimensions of the table * * @return */ public CarbonColumn[] getNoDictAndComplexDimensions() { List<Integer> noDicOrCompIndexes = new ArrayList<>(dataFields.length); int noDicCount = 0; for (int i = 0; i < dataFields.length; i++) { if (dataFields[i].getColumn().isDimension() && ( !(dataFields[i].getColumn().hasEncoding(Encoding.DICTIONARY)) || dataFields[i].getColumn() .isComplex())) { noDicOrCompIndexes.add(i); noDicCount++; } } CarbonColumn[] dims = new CarbonColumn[noDicCount]; for (int i = 0; i < dims.length; i++) { dims[i] = dataFields[noDicOrCompIndexes.get(i)].getColumn(); } return dims; }
public static void updateIndexOfColumnExpression(Expression exp, int dimOridnalMax) { // if expression is null, not require to update index. if (exp == null) { return; } if (exp.getChildren() == null || exp.getChildren().size() == 0) { if (exp instanceof ColumnExpression) { ColumnExpression ce = (ColumnExpression) exp; CarbonColumn column = ce.getCarbonColumn(); if (column.isDimension()) { ce.setColIndex(column.getOrdinal()); } else { ce.setColIndex(dimOridnalMax + column.getOrdinal()); } } } else { if (exp.getChildren().size() > 0) { List<Expression> children = exp.getChildren(); for (int i = 0; i < children.size(); i++) { updateIndexOfColumnExpression(children.get(i), dimOridnalMax); } } } }
public void setDataFields(DataField[] dataFields) { this.dataFields = dataFields; // set counts for each column category for (DataField dataField : dataFields) { CarbonColumn column = dataField.getColumn(); if (column.isDimension()) { dimensionCount++; if (column.isComplex()) { if (!dataField.hasDictionaryEncoding()) { complexNonDictionaryColumnCount++; } else { complexDictionaryColumnCount++; } } else if (!dataField.hasDictionaryEncoding()) { noDictionaryCount++; } } if (column.isMeasure()) { measureCount++; } } }
filterMap = new int[storageColumns.length]; for (int i = 0; i < storageColumns.length; i++) { if (storageColumns[i].isDimension()) { if (isFiltlerDimensions[storageColumns[i].getOrdinal()]) { isRequired[i] = true;
logHolder.getColumnMessageMap().put(dataField.getColumn().getColName(), message); if (dataField.getColumn().isDimension()) { logHolder.setReason(message); try { if (dataField.getColumn().isDimension()) { String dateFormat = null; if (dataField.getColumn().getDataType() == DataTypes.DATE) {
throws IOException { if (dataField.getColumn().isDimension()) { if (dataField.getColumn().hasEncoding(Encoding.DIRECT_DICTIONARY) && !dataField.getColumn().isComplex()) {
for (int i = 0; i < carbonColumns.length; i++) { CarbonColumn carbonColumn = carbonColumns[i]; if (carbonColumn.isDimension()) { if (carbonColumn.hasEncoding(Encoding.DIRECT_DICTIONARY)) { DirectDictionaryGenerator generator = DirectDictionaryKeyGeneratorFactory