示例#1
0
  private void validate(GTInfo info) {
    if (hasAggregation()) {
      if (aggrGroupBy.intersects(aggrMetrics)) throw new IllegalStateException();
      if (aggrMetrics.cardinality() != aggrMetricsFuncs.length) throw new IllegalStateException();

      if (columns == null) columns = ImmutableBitSet.EMPTY;

      columns = columns.or(aggrGroupBy);
      columns = columns.or(aggrMetrics);
    }

    if (columns == null) columns = info.colAll;

    this.selectedColBlocks = info.selectColumnBlocks(columns);

    if (hasFilterPushDown()) {
      validateFilterPushDown(info);
    }
  }