PlanNode project1 = new PlanNode(Type.PROJECT, subquery1, selector("t2"));
project1.setProperty(Property.PROJECT_COLUMNS, columns(column("t2", "c21")));
PlanNode select1 = new PlanNode(Type.SELECT, project1, selector("t2"));
select1.setProperty(Property.SELECT_CRITERIA, new Comparison(new PropertyValue(selector("t2"), "c22"),
Operator.LESS_THAN,
new BindVariableName(Subquery.VARIABLE_PREFIX + "2")));
PlanNode source1 = new PlanNode(Type.SOURCE, select1, selector("t2"));
source1.setProperty(Property.SOURCE_NAME, selector("t2"));
source1.setProperty(Property.SOURCE_COLUMNS, context.getSchemata().getTable(selector("t2")).getColumns());
PlanNode mainQuery = new PlanNode(Type.ACCESS, expected, selector("t1"));
PlanNode project = new PlanNode(Type.PROJECT, mainQuery, selector("t1"));
project.setProperty(Property.PROJECT_COLUMNS, columns(column("t1", "c11"), column("t1", "c12")));
PlanNode select = new PlanNode(Type.SELECT, project, selector("t1"));
select.setProperty(Property.SELECT_CRITERIA, new SetCriteria(new PropertyValue(selector("t1"), "c13"),
new BindVariableName(Subquery.VARIABLE_PREFIX + "1")));
PlanNode source = new PlanNode(Type.SOURCE, select, selector("t1"));
source.setProperty(Property.SOURCE_NAME, selector("t1"));
source.setProperty(Property.SOURCE_COLUMNS, context.getSchemata().getTable(selector("t1")).getColumns());
// Compare the expected and actual plan ...