visitor.visit(this);
}
@Override
public PlanString getPlanString() {
PlanString planStr = new PlanString(this).appendTitle(" on " + getTableName());
if (hasAlias()) {
planStr.appendTitle(" as ").appendTitle(alias);
}
if (hasQual()) {
planStr.addExplan("filter: ").appendExplain(this.qual.toString());
}
if (hasTargets()) {
planStr.addExplan("target list: ");
boolean first = true;
for (Target target : targets) {
if (!first) {
planStr.appendExplain(", ");
}
planStr.appendExplain(target.toString());
first = false;
}
}
planStr.addDetail("out schema: ").appendDetail(getOutSchema().toString());
planStr.addDetail("in schema: ").appendDetail(getInSchema().toString());
if (inputPaths != null) {
planStr.addExplan("num of filtered paths: ").appendExplain(""+ inputPaths.length);
int i = 0;
for (Path path : inputPaths) {
planStr.addDetail((i++) + ": ").appendDetail(path.toString());
}
}
return planStr;
}