public class Join extends QueryPlan { private String selfColName; private Table otherTable; private String otherColName; public Table execute() throws Exception { Table result = table == null ? qPlan.execute() : table; return result.join(selfColName, otherTable, otherColName); }