private void validateCubeLatticeFilter(Lattice.Builder latticeBuilder) { if (latticeBuilder.filter != null) { ImmutableBitSet rCols = RelOptUtil.InputFinder.bits(latticeBuilder.filter); Set<Integer> dimSet = new HashSet<>(); for (Dimension dimension : dimensions) { dimSet.add(latticeBuilder.resolveColumn(dimension.qualifiedCol).ordinal); } ImmutableBitSet dims = ImmutableBitSet.of(dimSet); if (!dims.contains(rCols)) { throw new RuntimeException("Cube filter is only allowed on dimensions"); } } }
final Lattice.Column column = latticeBuilder.resolveColumn(dimension.qualifiedCol); QuarkTile.Column quarkColumn = new QuarkTile.Column(column, quarkTable.getFieldOrdinal(dimension.cubeColumn));
public void visit(JsonTile jsonTile) { assert tileBuilder == null; tileBuilder = Lattice.Tile.builder(); for (JsonMeasure jsonMeasure : jsonTile.measures) { jsonMeasure.accept(this); } for (Object dimension : jsonTile.dimensions) { final Lattice.Column column = latticeBuilder.resolveColumn(dimension); tileBuilder.addDimension(column); } latticeBuilder.addTile(tileBuilder.build()); tileBuilder = null; }
public void visit(JsonTile jsonTile) { assert tileBuilder == null; tileBuilder = Lattice.Tile.builder(); for (JsonMeasure jsonMeasure : jsonTile.measures) { jsonMeasure.accept(this); } for (Object dimension : jsonTile.dimensions) { final Lattice.Column column = latticeBuilder.resolveColumn(dimension); tileBuilder.addDimension(column); } latticeBuilder.addTile(tileBuilder.build()); tileBuilder = null; }