if (colSchema.getDataType() == DataTypes.STRING || colSchema.getDataType() == DataTypes.VARCHAR) { colSchema.setLocalDictColumn(true); allColumns.set(index, colSchema);
|| column.getDataType().equals(DataTypes.VARCHAR)) && !column .hasEncoding(Encoding.DICTIONARY)) { column.setLocalDictColumn(true); .hasEncoding(Encoding.DICTIONARY)) { if (!Arrays.asList(listOfDictionaryExcludeColumns).contains(column.getColumnName())) { column.setLocalDictColumn(true); for (String dictColumn : listOfDictionaryIncludeColumns) { if (dictColumn.trim().equalsIgnoreCase(column.getColumnName())) { column.setLocalDictColumn(true);
/** * 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; }