if (StringUtil.startsWithIgnoreCase(hint, "make")) { //$NON-NLS-1$ if (hint.equalsIgnoreCase(Option.MAKENOTDEP)) { fromClause.setMakeNotDep(true); } else if (StringUtil.startsWithIgnoreCase(hint, Option.MAKEDEP)) { Option.MakeDep option = new Option.MakeDep();
if (StringUtil.startsWithIgnoreCase(hint, "make")) { //$NON-NLS-1$ if (hint.equalsIgnoreCase(Option.MAKENOTDEP)) { fromClause.setMakeNotDep(true); } else if (StringUtil.startsWithIgnoreCase(hint, Option.MAKEDEP)) { Option.MakeDep option = new Option.MakeDep();
if (StringUtil.startsWithIgnoreCase(hint, "make")) { //$NON-NLS-1$ if (hint.equalsIgnoreCase(Option.MAKENOTDEP)) { fromClause.setMakeNotDep(true); } else if (StringUtil.startsWithIgnoreCase(hint, Option.MAKEDEP)) { Option.MakeDep option = new Option.MakeDep();
@Test public void testOptionMakeNotDepInline3(){ GroupSymbol g1 = new GroupSymbol("db.g1"); //$NON-NLS-1$ GroupSymbol g2 = new GroupSymbol("db.g2"); //$NON-NLS-1$ GroupSymbol g3 = new GroupSymbol("db.g3"); //$NON-NLS-1$ ElementSymbol a = new ElementSymbol("a"); //$NON-NLS-1$ ElementSymbol b = new ElementSymbol("b"); //$NON-NLS-1$ ElementSymbol c = new ElementSymbol("c"); //$NON-NLS-1$ List<Object> crits = new ArrayList<Object>(); crits.add(new CompareCriteria(a, CompareCriteria.EQ, b)); JoinPredicate jp = new JoinPredicate(new UnaryFromClause(g1), new UnaryFromClause(g2), JoinType.JOIN_INNER, crits); jp.getLeftClause().setMakeNotDep(true); List<Object> crits2 = new ArrayList<Object>(); crits2.add(new CompareCriteria(a, CompareCriteria.EQ, c)); JoinPredicate jp2 = new JoinPredicate(jp, new UnaryFromClause(g3), JoinType.JOIN_LEFT_OUTER, crits2); jp2.getRightClause().setMakeNotDep(true); From from = new From(); from.addClause(jp2); Select select = new Select(); select.addSymbol(a); Query query = new Query(); query.setSelect(select); query.setFrom(from); TestParser.helpTest("Select a From (db.g1 MAKENOTDEP JOIN db.g2 ON a = b) LEFT OUTER JOIN db.g3 MAKENOTDEP ON a = c", //$NON-NLS-1$ "SELECT a FROM (/*+ MAKENOTDEP */ db.g1 INNER JOIN db.g2 ON a = b) LEFT OUTER JOIN /*+ MAKENOTDEP */ db.g3 ON a = c", //$NON-NLS-1$ query); }
@Test public void testDepOptions2() { GroupSymbol a = new GroupSymbol("a"); //$NON-NLS-1$ GroupSymbol b = new GroupSymbol("b"); //$NON-NLS-1$ ElementSymbol x = new ElementSymbol("a.x", true); //$NON-NLS-1$ ElementSymbol y = new ElementSymbol("b.y", true); //$NON-NLS-1$ Criteria criteria = new CompareCriteria(x, CompareCriteria.EQ, new Function("func", new Expression[] {y})); //$NON-NLS-1$ JoinPredicate predicate = new JoinPredicate(new UnaryFromClause(a), new UnaryFromClause(b), JoinType.JOIN_INNER, Arrays.asList(new Object[] {criteria})); From from = new From(Arrays.asList(predicate)); predicate.getLeftClause().setMakeNotDep(true); predicate.getRightClause().setMakeDep(true); Select select = new Select(Arrays.asList(x, y)); Query query = new Query(select, from, null, null, null, null, null); TestParser.helpTest("Select a.x, b.y From a MAKENOTDEP INNER JOIN b MAKEDEP ON a.x = func(b.y)", //$NON-NLS-1$ "SELECT a.x, b.y FROM /*+ MAKENOTDEP */ a INNER JOIN /*+ MAKEDEP */ b ON a.x = func(b.y)", //$NON-NLS-1$ query); }
@Test public void testOptionMakeNotDepInline4(){ GroupSymbol g1 = new GroupSymbol("db.g1"); //$NON-NLS-1$ GroupSymbol g2 = new GroupSymbol("c", "db.g2"); //$NON-NLS-1$ //$NON-NLS-2$ ElementSymbol a = new ElementSymbol("a"); //$NON-NLS-1$ ElementSymbol b = new ElementSymbol("b"); //$NON-NLS-1$ CompareCriteria crit = new CompareCriteria(a, CompareCriteria.EQ, b); From from = new From(); FromClause clause = new UnaryFromClause(g1); clause.setMakeNotDep(true); from.addClause(clause); FromClause clause1 = new UnaryFromClause(g2); clause1.setMakeNotDep(true); from.addClause(clause1); Select select = new Select(); select.addSymbol(a); Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setCriteria(crit); TestParser.helpTest("Select a From db.g1 MAKENOTDEP, db.g2 AS c MAKENOTDEP WHERE a = b", //$NON-NLS-1$ "SELECT a FROM /*+ MAKENOTDEP */ db.g1, /*+ MAKENOTDEP */ db.g2 AS c WHERE a = b", //$NON-NLS-1$ query); }
@Test public void testOptionMakeNotDepInline1(){ GroupSymbol g1 = new GroupSymbol("db.g1"); //$NON-NLS-1$ GroupSymbol g2 = new GroupSymbol("db.g2"); //$NON-NLS-1$ ElementSymbol a = new ElementSymbol("a"); //$NON-NLS-1$ ElementSymbol b = new ElementSymbol("b"); //$NON-NLS-1$ List<Object> crits = new ArrayList<Object>(); crits.add(new CompareCriteria(a, CompareCriteria.EQ, b)); JoinPredicate jp = new JoinPredicate(new UnaryFromClause(g1), new UnaryFromClause(g2), JoinType.JOIN_INNER, crits); jp.getRightClause().setMakeNotDep(true); From from = new From(); from.addClause(jp); Select select = new Select(); select.addSymbol(a); Query query = new Query(); query.setSelect(select); query.setFrom(from); TestParser.helpTest("Select a From db.g1 JOIN db.g2 MAKENOTDEP ON a = b", //$NON-NLS-1$ "SELECT a FROM db.g1 INNER JOIN /*+ MAKENOTDEP */ db.g2 ON a = b", //$NON-NLS-1$ query); }
@Test public void testOptionMakeNotDepInline2(){ GroupSymbol g1 = new GroupSymbol("db.g1"); //$NON-NLS-1$ GroupSymbol g2 = new GroupSymbol("db.g2"); //$NON-NLS-1$ ElementSymbol a = new ElementSymbol("a"); //$NON-NLS-1$ ElementSymbol b = new ElementSymbol("b"); //$NON-NLS-1$ List<Object> crits = new ArrayList<Object>(); crits.add(new CompareCriteria(a, CompareCriteria.EQ, b)); JoinPredicate jp = new JoinPredicate(new UnaryFromClause(g1), new UnaryFromClause(g2), JoinType.JOIN_INNER, crits); jp.getLeftClause().setMakeNotDep(true); From from = new From(); from.addClause(jp); Select select = new Select(); select.addSymbol(a); Query query = new Query(); query.setSelect(select); query.setFrom(from); TestParser.helpTest("Select a From db.g1 MAKENOTDEP JOIN db.g2 ON a = b", //$NON-NLS-1$ "SELECT a FROM /*+ MAKENOTDEP */ db.g1 INNER JOIN db.g2 ON a = b", //$NON-NLS-1$ query); }
case MAKENOTDEP: jj_consume_token(MAKENOTDEP); clause.setMakeNotDep(true); break; default:
case MAKENOTDEP: jj_consume_token(MAKENOTDEP); clause.setMakeNotDep(true); break; default:
case MAKENOTDEP: jj_consume_token(MAKENOTDEP); clause.setMakeNotDep(true); break; default: