Search in sources :

Example 6 with Query

use of org.teiid.query.sql.lang.Query in project teiid by teiid.

the class DependentAccessNode method prepareNextCommand.

/**
 * @see org.teiid.query.processor.relational.AccessNode#prepareNextCommand(org.teiid.query.sql.lang.Command)
 */
protected boolean prepareNextCommand(Command atomicCommand) throws TeiidComponentException, TeiidProcessingException {
    Assertion.assertTrue(atomicCommand instanceof Query);
    Query query = (Query) atomicCommand;
    try {
        if (this.criteriaProcessor == null) {
            this.criteriaProcessor = new DependentCriteriaProcessor(this.maxSetSize, this.maxPredicates, this, query.getCriteria());
            this.criteriaProcessor.setPushdown(pushdown);
            this.criteriaProcessor.setUseBindings(useBindings);
            this.criteriaProcessor.setComplexQuery(complexQuery);
        }
        if (this.dependentCrit == null) {
            dependentCrit = criteriaProcessor.prepareCriteria();
        }
        query.setCriteria(dependentCrit);
    } catch (BlockedException be) {
        // $NON-NLS-1$
        throw new AssertionError("Should not block prior to declining the sort");
    // TODO: the logic could proactively decline the sort rather than throwing an exception
    }
    // walk up the tree and notify the parent join it is responsible for the sort
    if (sort && query.getOrderBy() != null && criteriaProcessor.hasNextCommand()) {
        declineSort();
    }
    if (!sort) {
        query.setOrderBy(null);
    }
    boolean result = RelationalNodeUtil.shouldExecute(atomicCommand, true);
    dependentCrit = null;
    criteriaProcessor.consumedCriteria();
    return result;
}
Also used : Query(org.teiid.query.sql.lang.Query) BlockedException(org.teiid.common.buffer.BlockedException)

Example 7 with Query

use of org.teiid.query.sql.lang.Query in project teiid by teiid.

the class TestSubqueryFromClause method example1.

// ################################## HELPERS ################################
public static SubqueryFromClause example1() {
    Query query = new Query();
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("a"));
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("b"));
    query.setSelect(select);
    From from = new From();
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("m.g"));
    query.setFrom(from);
    CompareCriteria crit = new CompareCriteria();
    // $NON-NLS-1$
    crit.setLeftExpression(new ElementSymbol("a"));
    crit.setRightExpression(new Constant(new Integer(5)));
    crit.setOperator(CompareCriteria.EQ);
    query.setCriteria(crit);
    // $NON-NLS-1$
    return new SubqueryFromClause("temp", query);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Query(org.teiid.query.sql.lang.Query) Constant(org.teiid.query.sql.symbol.Constant) Select(org.teiid.query.sql.lang.Select) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) From(org.teiid.query.sql.lang.From) CompareCriteria(org.teiid.query.sql.lang.CompareCriteria) SubqueryFromClause(org.teiid.query.sql.lang.SubqueryFromClause)

Example 8 with Query

use of org.teiid.query.sql.lang.Query in project teiid by teiid.

the class TestSubquerySetCriteria method example1.

public static SubquerySetCriteria example1() {
    Query query = new Query();
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("a"));
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("b"));
    query.setSelect(select);
    From from = new From();
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("m.g"));
    query.setFrom(from);
    CompareCriteria crit = new CompareCriteria();
    // $NON-NLS-1$
    crit.setLeftExpression(new ElementSymbol("a"));
    crit.setRightExpression(new Constant(new Integer(5)));
    crit.setOperator(CompareCriteria.EQ);
    query.setCriteria(crit);
    // $NON-NLS-1$
    return new SubquerySetCriteria(new ElementSymbol("temp"), query);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Query(org.teiid.query.sql.lang.Query) Constant(org.teiid.query.sql.symbol.Constant) Select(org.teiid.query.sql.lang.Select) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) From(org.teiid.query.sql.lang.From) SubquerySetCriteria(org.teiid.query.sql.lang.SubquerySetCriteria) CompareCriteria(org.teiid.query.sql.lang.CompareCriteria)

Example 9 with Query

use of org.teiid.query.sql.lang.Query in project teiid by teiid.

the class TestSubquerySetCriteria method example3.

public static SubquerySetCriteria example3() {
    Query query = new Query();
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("a"));
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("b"));
    query.setSelect(select);
    From from = new From();
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("m.g"));
    query.setFrom(from);
    CompareCriteria crit = new CompareCriteria();
    // $NON-NLS-1$
    crit.setLeftExpression(new ElementSymbol("a"));
    crit.setRightExpression(new Constant(new Integer(5)));
    crit.setOperator(CompareCriteria.EQ);
    query.setCriteria(crit);
    // $NON-NLS-1$
    return new SubquerySetCriteria(new ElementSymbol("temp2"), query);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Query(org.teiid.query.sql.lang.Query) Constant(org.teiid.query.sql.symbol.Constant) Select(org.teiid.query.sql.lang.Select) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) From(org.teiid.query.sql.lang.From) SubquerySetCriteria(org.teiid.query.sql.lang.SubquerySetCriteria) CompareCriteria(org.teiid.query.sql.lang.CompareCriteria)

Example 10 with Query

use of org.teiid.query.sql.lang.Query in project teiid by teiid.

the class TestLoopStatement method query1.

// ################################## TEST HELPERS ################################
public static final Query query1() {
    Query q1 = new Query();
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("x"));
    q1.setSelect(select);
    From from = new From();
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("g"));
    q1.setFrom(from);
    return q1;
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Query(org.teiid.query.sql.lang.Query) TestSetQuery(org.teiid.query.sql.lang.TestSetQuery) Select(org.teiid.query.sql.lang.Select) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) From(org.teiid.query.sql.lang.From)

Aggregations

Query (org.teiid.query.sql.lang.Query)97 Test (org.junit.Test)58 GroupSymbol (org.teiid.query.sql.symbol.GroupSymbol)31 Select (org.teiid.query.sql.lang.Select)30 ElementSymbol (org.teiid.query.sql.symbol.ElementSymbol)26 From (org.teiid.query.sql.lang.From)25 Constant (org.teiid.query.sql.symbol.Constant)22 SetQuery (org.teiid.query.sql.lang.SetQuery)21 MultipleElementSymbol (org.teiid.query.sql.symbol.MultipleElementSymbol)20 UnaryFromClause (org.teiid.query.sql.lang.UnaryFromClause)13 Limit (org.teiid.query.sql.lang.Limit)10 ArrayList (java.util.ArrayList)9 Expression (org.teiid.query.sql.symbol.Expression)9 SQLException (java.sql.SQLException)7 Reference (org.teiid.query.sql.symbol.Reference)7 CompareCriteria (org.teiid.query.sql.lang.CompareCriteria)6 ODataApplicationException (org.apache.olingo.server.api.ODataApplicationException)5 List (java.util.List)4 ODataLibraryException (org.apache.olingo.server.api.ODataLibraryException)4 TeiidProcessingException (org.teiid.core.TeiidProcessingException)4