@Test public void testOptionalFromClause7() {
String sql = "SELECT b FROM t1, /*+ optional */ (t2 INNER JOIN t3 ON t2.a = t3.a)";
Query query = new Query();
Select select = new Select();
select.addSymbol(new ElementSymbol("b"));
query.setSelect(select);
From from = new From();
UnaryFromClause ufc = new UnaryFromClause();
ufc.setGroup(new GroupSymbol("t2"));
UnaryFromClause ufc2 = new UnaryFromClause();
ufc2.setGroup(new GroupSymbol("t3"));
List<Object> criteria = new ArrayList<Object>();
criteria.add(new CompareCriteria(new ElementSymbol("t2.a"), AbstractCompareCriteria.EQ, new ElementSymbol("t3.a")));
JoinPredicate joinPredicate = new JoinPredicate(ufc, ufc2, JoinType.JOIN_INNER, criteria);
joinPredicate.setOptional(true);
UnaryFromClause ufc3 = new UnaryFromClause();
ufc3.setGroup(new GroupSymbol("t1"));
from.addClause(ufc3);
from.addClause(joinPredicate);
query.setFrom(from);
TestParser.helpTest(sql, "SELECT b FROM t1, /*+ optional */ (t2 INNER JOIN t3 ON t2.a = t3.a)", query);
}