if (prj.findReferent().getSchema()!=null && prj.getFieldSchema()!=null) {
if (prj.getFieldSchema().type==DataType.BAG) {
sourceIsBag = true;
alias = prj.getFieldSchema().alias;
if (prj.getFieldSchema().schema!=null) {
LogicalFieldSchema tupleSchema = prj.getFieldSchema().schema.getField(0);
if (tupleSchema!=null && tupleSchema.schema!=null) {
schema = new LogicalSchema();
for (int i=0;i<tupleSchema.schema.size();i++)
schema.addField(tupleSchema.schema.getField(i));
}
}
}
else {
schema = new LogicalSchema();
schema.addField(prj.getFieldSchema());
}
} else if (!prj.isRangeOrStarProject()) {
schema = new LogicalSchema();
schema.addField(new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
}
return schema;
}