final NamedSubqueriesNode newNode = new NamedSubqueriesNode(); final NamedSubqueryRoot namedSubquery = entry.getKey(); if (entry.getValue().size() == 0) { newNode.add(namedSubquery); processed.add(namedSubquery.getName()); iter.remove(); newNode.add(entry.getKey()); processed.add(entry.getKey().getName()); iter.remove();
/** * Part one of a two part unit test which verifies that we lift out a * {@link SubqueryRoot} which is marked the {@link QueryHints#RUN_ONCE} * query hint. In this version of the test, the query hint is present and we * verify that the sub-select is lifted out. */ public void test_query_hints_04b() throws Exception { final ASTContainer astContainer = new TestHelper("query-hints-04b") .runTest(); final NamedSubqueriesNode namedSubqueries = astContainer .getOptimizedAST().getNamedSubqueries(); assertNotNull(namedSubqueries); assertEquals(1, namedSubqueries.arity()); }
/** * Create a top-level SELECT query. * * @param varNodes * The projected variables. * @param namedSubQuery * A named subquery that is declared to that top-level query. * @param where * The WHERE clause of the top-level query. * @param flags * The flags to be applied to the resulting AST. */ protected QueryRoot select(final VarNode[] varNodes, final NamedSubqueryRoot namedSubQuery, final JoinGroupNode where, final HelperFlag... flags) { final QueryRoot rslt = select(varNodes, where, flags); rslt.getNamedSubqueriesNotNull().add(namedSubQuery); return rslt; }
/** * Return the node for the named subqueries. If the node does not exist then * it is created, set on the {@link QueryRoot} and returned. This helps out * with what is otherwise an awkward conditional construction pattern. */ public NamedSubqueriesNode getNamedSubqueriesNotNull() { NamedSubqueriesNode tmp = (NamedSubqueriesNode) getProperty(Annotations.NAMED_SUBQUERIES); if (tmp == null) { tmp = new NamedSubqueriesNode(); setProperty(Annotations.NAMED_SUBQUERIES, tmp); } return tmp; }
.getNamedSubqueries(); if (namedSubqueries != null && !namedSubqueries.isEmpty()) {
/** * Create a top-level SELECT query. * * @param varNodes * The projected variables. * @param namedSubQuery * A named subquery that is declared to that top-level query. * @param where * The WHERE clause of the top-level query. * @param flags * The flags to be applied to the resulting AST. */ protected QueryRoot select(final VarNode[] varNodes, final NamedSubqueryRoot namedSubQuery, final JoinGroupNode where, final HelperFlag... flags) { final QueryRoot rslt = select(varNodes, where, flags); rslt.getNamedSubqueriesNotNull().add(namedSubQuery); return rslt; }
/** * Return the node for the named subqueries. If the node does not exist then * it is created, set on the {@link QueryRoot} and returned. This helps out * with what is otherwise an awkward conditional construction pattern. */ public NamedSubqueriesNode getNamedSubqueriesNotNull() { NamedSubqueriesNode tmp = (NamedSubqueriesNode) getProperty(Annotations.NAMED_SUBQUERIES); if (tmp == null) { tmp = new NamedSubqueriesNode(); setProperty(Annotations.NAMED_SUBQUERIES, tmp); } return tmp; }
.getNamedSubqueries(); if (namedSubqueries != null && !namedSubqueries.isEmpty()) {
final NamedSubqueriesNode newNode = new NamedSubqueriesNode(); final NamedSubqueryRoot namedSubquery = entry.getKey(); if (entry.getValue().size() == 0) { newNode.add(namedSubquery); processed.add(namedSubquery.getName()); iter.remove(); newNode.add(entry.getKey()); processed.add(entry.getKey().getName()); iter.remove();
/** * Create a top-level SELECT query. * * @param varNodes * The projected variables. * @param namedSubQuery * A named subquery that is declared to that top-level query. * @param where * The WHERE clause of the top-level query. * @param flags * The flags to be applied to the resulting AST. */ protected QueryRoot select(final VarNode[] varNodes, final NamedSubqueryRoot namedSubQuery, final JoinGroupNode where, final HelperFlag... flags) { final QueryRoot rslt = select(varNodes, where, flags); rslt.getNamedSubqueriesNotNull().add(namedSubQuery); return rslt; }
/** * Part one of a two part unit test which verifies that we lift out a * {@link SubqueryRoot} which is marked the {@link QueryHints#RUN_ONCE} * query hint. In this version of the test, the query hint is present and we * verify that the sub-select is lifted out. */ public void test_query_hints_04b() throws Exception { final ASTContainer astContainer = new TestHelper("query-hints-04b") .runTest(); final NamedSubqueriesNode namedSubqueries = astContainer .getOptimizedAST().getNamedSubqueries(); assertNotNull(namedSubqueries); assertEquals(1, namedSubqueries.arity()); }
.getNamedSubqueries(); if (namedSubqueries == null || namedSubqueries.isEmpty()) {
final NamedSubqueriesNode namedSubqueries = new NamedSubqueriesNode(); namedSubqueries.add(namedSubquery);