Select select = new Select();
select.addSymbol(new ElementSymbol("b"));//$NON-NLS-1$
query.setSelect(select);
From from = new From();
UnaryFromClause ufc = new UnaryFromClause();
ufc.setGroup(new GroupSymbol("t2")); //$NON-NLS-1$
UnaryFromClause ufc2 = new UnaryFromClause();
ufc2.setGroup(new GroupSymbol("t3")); //$NON-NLS-1$
List criteria = new ArrayList();
criteria.add(new CompareCriteria(new ElementSymbol("t2.a"), AbstractCompareCriteria.EQ, new ElementSymbol("t3.a")));//$NON-NLS-1$//$NON-NLS-2$
JoinPredicate joinPredicate = new JoinPredicate(ufc, ufc2, JoinType.JOIN_INNER, criteria);
joinPredicate.setOptional(true);
UnaryFromClause ufc3 = new UnaryFromClause();
ufc3.setGroup(new GroupSymbol("t1")); //$NON-NLS-1$
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); //$NON-NLS-1$