for (Operator oper : opers) {
// add a logical schema for dimensions that are pushed from
// predecessor of cube/rollup
if (oper instanceof ProjectExpression) {
LogicalSchema output = new LogicalSchema();
output.addField(new LogicalFieldSchema(
((ProjectExpression) oper).getColAlias(), null, DataType.NULL));
genOutputSchema.add(output);
} else if (oper instanceof UserFuncExpression) {
// add logical schema for dimensions specified in
// cube/rollup operator
LogicalSchema output = new LogicalSchema();
for (Operator op : ((UserFuncExpression) oper).getPlan().getSinks()) {
output.addField(new LogicalFieldSchema(((ProjectExpression) op)
.getFieldSchema()));
}
genOutputSchema.add(output);
}