model.getColumnLocalDictGenMap().get(spec.getFieldName()); DataType dataType = DataTypes.STRING; if (DataTypes.VARCHAR == spec.getSchemaDataType()) { dataType = DataTypes.VARCHAR; columnPageEncoderMeta, pageSize, localDictionaryGenerator, false); } else { if (DataTypeUtil.isPrimitiveColumn(spec.getSchemaDataType())) { if (spec.getSchemaDataType() == DataTypes.TIMESTAMP) { columnPageEncoderMeta = new ColumnPageEncoderMeta(spec, DataTypes.LONG, columnCompressor); } else { columnPageEncoderMeta = new ColumnPageEncoderMeta(spec, spec.getSchemaDataType(), columnCompressor); if (DataTypes.isDecimal(spec.getSchemaDataType())) { page = ColumnPage.newDecimalPage(columnPageEncoderMeta, pageSize); } else { } else if (DataTypeUtil.isPrimitiveColumn(spec.getSchemaDataType())) { if (spec.getSchemaDataType() == DataTypes.TIMESTAMP) { page.setStatsCollector(PrimitivePageStatsCollector.newInstance(DataTypes.LONG)); } else { page.setStatsCollector( PrimitivePageStatsCollector.newInstance(spec.getSchemaDataType()));
private ColumnPageEncoder createEncoderForDimensionLegacy(TableSpec.DimensionSpec dimensionSpec) { switch (dimensionSpec.getColumnType()) { case GLOBAL_DICTIONARY: return new DictDimensionIndexCodec( dimensionSpec.isInSortColumns(), dimensionSpec.isInSortColumns() && dimensionSpec.isDoInvertedIndex()) .createEncoder(null); case DIRECT_DICTIONARY: return new DirectDictDimensionIndexCodec( dimensionSpec.isInSortColumns(), dimensionSpec.isInSortColumns() && dimensionSpec.isDoInvertedIndex()) .createEncoder(null); case PLAIN_VALUE: return new HighCardDictDimensionIndexCodec( dimensionSpec.isInSortColumns(), dimensionSpec.isInSortColumns() && dimensionSpec.isDoInvertedIndex(), dimensionSpec.getSchemaDataType() == DataTypes.VARCHAR) .createEncoder(null); default: throw new RuntimeException("unsupported dimension type: " + dimensionSpec.getColumnType()); } }
Object[] noDictAndComplex = WriteStepRowUtil.getNoDictAndComplexDimension(row); for (int i = 0; i < noDictAndComplex.length; i++) { if (noDictionaryDimensionSpec.get(i).getSchemaDataType() == DataTypes.VARCHAR) { byte[] valueWithLength = addIntLengthToByteArray((byte[]) noDictAndComplex[i]);