ColumnMetadata getColumnMetadata(boolean hidden) { return new ColumnMetadata(columnName, type, comment, hidden); } }
public ThriftColumnHandle(ColumnMetadata columnMetadata) { this(columnMetadata.getName(), columnMetadata.getType(), columnMetadata.getComment(), columnMetadata.isHidden()); }
.filter(column -> column.getName().equals("ds")) .map(ColumnMetadata::getName) .collect(toList()); .map(column -> new ColumnMetadata( column.getName(), column.getType(), column.getComment(), columnExtraInfo(partitionedBy.contains(column.getName())), false)) .collect(toList());
@Override public Map<SchemaTableName, List<ColumnMetadata>> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix) { requireNonNull(prefix, "prefix is null"); ImmutableMap.Builder<SchemaTableName, List<ColumnMetadata>> tableColumns = ImmutableMap.builder(); for (SchemaTableName tableName : listTables(session, prefix.getSchemaName())) { ImmutableList.Builder<ColumnMetadata> columns = ImmutableList.builder(); for (ColumnMetadata column : tables.get(tableName).getColumns()) { columns.add(new ColumnMetadata(column.getName(), column.getType())); } tableColumns.put(tableName, columns.build()); } return tableColumns.build(); }
@Override public void renameColumn(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle source, String target) { ConnectorTableMetadata tableMetadata = getTableMetadata(session, tableHandle); SchemaTableName tableName = getTableName(tableHandle); ColumnMetadata columnMetadata = getColumnMetadata(session, tableHandle, source); List<ColumnMetadata> columns = new ArrayList<>(tableMetadata.getColumns()); columns.set(columns.indexOf(columnMetadata), new ColumnMetadata(target, columnMetadata.getType(), columnMetadata.getComment(), columnMetadata.isHidden())); tables.put(tableName, new ConnectorTableMetadata(tableName, ImmutableList.copyOf(columns), tableMetadata.getProperties(), tableMetadata.getComment())); }
public ColumnMetadata getColumn(String name) { return getColumns().stream() .filter(columnMetadata -> columnMetadata.getName().equals(name)) .findFirst() .orElseThrow(() -> new IllegalArgumentException(String.format("Invalid column name: %s", name))); } }
@Override public void addColumn(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnMetadata column) { HiveTableHandle handle = (HiveTableHandle) tableHandle; failIfAvroSchemaIsSet(handle); metastore.addColumn(handle.getSchemaName(), handle.getTableName(), column.getName(), toHiveType(typeTranslator, column.getType()), column.getComment()); }
private TableStatisticsMetadata getStatisticsCollectionMetadata(List<ColumnMetadata> columns, List<String> partitionedBy, boolean includeRowCount) { Set<ColumnStatisticMetadata> columnStatistics = columns.stream() .filter(column -> !partitionedBy.contains(column.getName())) .filter(column -> !column.isHidden()) .map(this::getColumnStatisticMetadata) .flatMap(List::stream) .collect(toImmutableSet()); Set<TableStatisticType> tableStatistics = includeRowCount ? ImmutableSet.of(ROW_COUNT) : ImmutableSet.of(); return new TableStatisticsMetadata(columnStatistics, tableStatistics, partitionedBy); }
private ColumnSchema toColumnSchema(ColumnMetadata columnMetadata) { String name = columnMetadata.getName(); ColumnDesign design = KuduTableProperties.getColumnDesign(columnMetadata.getProperties()); Type ktype = TypeHelper.toKuduClientType(columnMetadata.getType()); ColumnSchema.ColumnSchemaBuilder builder = new ColumnSchema.ColumnSchemaBuilder(name, ktype); builder.key(design.isPrimaryKey()).nullable(design.isNullable()); setEncoding(name, builder, design); setCompression(name, builder, design); setTypeAttributes(columnMetadata, builder); return builder.build(); }
public static Builder builder(List<ColumnMetadata> columns) { List<Type> columnTypes = new ArrayList<>(); for (ColumnMetadata column : columns) { columnTypes.add(column.getType()); } return builder(columnTypes); }
private static void assertPrimitiveField(Map<String, ColumnMetadata> map, String name, Type type, boolean partitionKey) { assertTrue(map.containsKey(name)); ColumnMetadata column = map.get(name); assertEquals(column.getType(), type, name); assertEquals(column.getExtraInfo(), columnExtraInfo(partitionKey)); }
protected static List<ColumnMetadata> filterNonHiddenColumnMetadata(Collection<ColumnMetadata> columnMetadatas) { return columnMetadatas.stream() .filter(columnMetadata -> !columnMetadata.isHidden()) .collect(toList()); }
private List<Expression> buildStatisticsRows(TableMetadata tableMetadata, Map<String, ColumnHandle> columnHandles, TableStatistics tableStatistics) { ImmutableList.Builder<Expression> rowsBuilder = ImmutableList.builder(); for (ColumnMetadata columnMetadata : tableMetadata.getColumns()) { if (columnMetadata.isHidden()) { continue; } String columnName = columnMetadata.getName(); Type columnType = columnMetadata.getType(); ColumnHandle columnHandle = columnHandles.get(columnName); ColumnStatistics columnStatistics = tableStatistics.getColumnStatistics().get(columnHandle); if (columnStatistics != null) { rowsBuilder.add(createColumnStatsRow(columnName, columnType, columnStatistics)); } else { rowsBuilder.add(createEmptyColumnStatsRow(columnName)); } } // Stats for whole table rowsBuilder.add(createTableStatsRow(tableStatistics)); return rowsBuilder.build(); }
.filter(column -> column.getName().equals("ds")) .map(ColumnMetadata::getName) .collect(toList()); .map(column -> new ColumnMetadata( column.getName(), column.getType(), column.getComment(), columnExtraInfo(partitionedBy.contains(column.getName())), false)) .collect(toList());
@Override public void renameColumn(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle source, String target) { ConnectorTableMetadata tableMetadata = getTableMetadata(session, tableHandle); SchemaTableName tableName = getTableName(tableHandle); ColumnMetadata columnMetadata = getColumnMetadata(session, tableHandle, source); List<ColumnMetadata> columns = new ArrayList<>(tableMetadata.getColumns()); columns.set(columns.indexOf(columnMetadata), new ColumnMetadata(target, columnMetadata.getType(), columnMetadata.getComment(), columnMetadata.isHidden())); tables.put(tableName, new ConnectorTableMetadata(tableName, ImmutableList.copyOf(columns), tableMetadata.getProperties(), tableMetadata.getComment())); }
public static ColumnMetadata findColumnMetadata(ConnectorTableMetadata tableMetadata, String columnName) { for (ColumnMetadata columnMetadata : tableMetadata.getColumns()) { if (columnName.equals(columnMetadata.getName())) { return columnMetadata; } } return null; }
private void setTypeAttributes(ColumnMetadata columnMetadata, ColumnSchema.ColumnSchemaBuilder builder) { if (columnMetadata.getType() instanceof DecimalType) { DecimalType type = (DecimalType) columnMetadata.getType(); ColumnTypeAttributes attributes = new ColumnTypeAttributes.ColumnTypeAttributesBuilder() .precision(type.getPrecision()) .scale(type.getScale()).build(); builder.typeAttributes(attributes); } }