public ComputedStatistics build() { return new ComputedStatistics(groupingColumns, groupingValues, tableStatistics, columnStatistics); } }
private static List<String> getPartitionValues(ComputedStatistics statistics, List<String> partitionColumns, List<Type> partitionColumnTypes) { checkArgument(statistics.getGroupingColumns().equals(partitionColumns), "Unexpected grouping. Partition columns: %s. Grouping columns: %s", partitionColumns, statistics.getGroupingColumns()); Page partitionColumnsPage = new Page(1, statistics.getGroupingValues().toArray(new Block[] {})); return createPartitionValues(partitionColumnTypes, partitionColumnsPage, 0); }
private ComputedStatistics getComputedStatistics(Page page, int position) { ImmutableList.Builder<String> groupingColumns = ImmutableList.builder(); ImmutableList.Builder<Block> groupingValues = ImmutableList.builder(); descriptor.getGrouping().forEach((column, channel) -> { groupingColumns.add(column); groupingValues.add(page.getBlock(channel).getSingleValueBlock(position)); }); ComputedStatistics.Builder statistics = ComputedStatistics.builder(groupingColumns.build(), groupingValues.build()); descriptor.getTableStatistics().forEach((type, channel) -> statistics.addTableStatistic(type, page.getBlock(channel).getSingleValueBlock(position))); descriptor.getColumnStatistics().forEach((metadata, channel) -> statistics.addColumnStatistic(metadata, page.getBlock(channel).getSingleValueBlock(position))); return statistics.build(); }
assertEquals(getOnlyElement(tableFinisher.getComputedStatistics()).getColumnStatistics().size(), 1); Block expectedStatisticsBlock = new LongArrayBlockBuilder(null, 1) .writeLong(7) .closeEntry() .build(); assertBlockEquals(BIGINT, getOnlyElement(tableFinisher.getComputedStatistics()).getColumnStatistics().get(statisticMetadata), expectedStatisticsBlock);
public ComputedStatistics build() { return new ComputedStatistics(groupingColumns, groupingValues, tableStatistics, columnStatistics); } }