Search in sources :

Example 86 with Query

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

the class TestAccessNode method testOpen_Defect16059_2.

@Test
public void testOpen_Defect16059_2() throws Exception {
    // $NON-NLS-1$
    Query query = (Query) TestResolver.helpResolve("SELECT e1, e2 FROM pm1.g1 WHERE e2 = 5 AND ? IS NOT NULL", RealMetadataFactory.example1Cached());
    IsNullCriteria nullCrit = (IsNullCriteria) ((CompoundCriteria) query.getCriteria()).getCriteria(1);
    nullCrit.setExpression(new Constant(null));
    helpTestOpen(query, null, false);
}
Also used : Query(org.teiid.query.sql.lang.Query) Constant(org.teiid.query.sql.symbol.Constant) IsNullCriteria(org.teiid.query.sql.lang.IsNullCriteria) Test(org.junit.Test)

Example 87 with Query

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

the class TestStaticSymbolMappingVisitor method testVisitSubquerySetCriteria.

public void testVisitSubquerySetCriteria() {
    SubquerySetCriteria ssc = new SubquerySetCriteria();
    // $NON-NLS-1$
    ssc.setExpression(new Function("length", new Expression[] { exampleElement(true, 0) }));
    ssc.setCommand(new Query());
    helpTest(ssc, getSymbolMap());
}
Also used : Function(org.teiid.query.sql.symbol.Function) Query(org.teiid.query.sql.lang.Query) Expression(org.teiid.query.sql.symbol.Expression) SubquerySetCriteria(org.teiid.query.sql.lang.SubquerySetCriteria)

Example 88 with Query

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

the class TestCorrelatedReferenceCollectorVisitor method testDeepNesting.

@Test
public void testDeepNesting() throws Exception {
    String sql = "select * from bqt1.smalla where exists (select intnum from bqt1.smalla x where smalla.intnum = x.intnum and exists (select intnum from bqt1.smalla where exists (select intnum from bqt1.smalla x where smalla.intnum = x.intnum)))";
    Command command = TestResolver.helpResolve(sql, RealMetadataFactory.exampleBQTCached());
    command = QueryRewriter.rewrite(command, RealMetadataFactory.exampleBQTCached(), null);
    command = ((ExistsCriteria) ((Query) command).getCriteria()).getCommand();
    LinkedList<Reference> correlatedReferences = new LinkedList<Reference>();
    GroupSymbol gs = new GroupSymbol("bqt1.smalla");
    ResolverUtil.resolveGroup(gs, RealMetadataFactory.exampleBQTCached());
    CorrelatedReferenceCollectorVisitor.collectReferences(command, Arrays.asList(gs), correlatedReferences, RealMetadataFactory.exampleBQTCached());
    assertEquals(1, correlatedReferences.size());
}
Also used : Query(org.teiid.query.sql.lang.Query) Command(org.teiid.query.sql.lang.Command) Reference(org.teiid.query.sql.symbol.Reference) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) LinkedList(java.util.LinkedList) Test(org.junit.Test)

Example 89 with Query

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

the class TestSubqueryFromClause method example2.

public static SubqueryFromClause example2() {
    Query query = new Query();
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("c"));
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("d"));
    query.setSelect(select);
    From from = new From();
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("m.g2"));
    query.setFrom(from);
    CompareCriteria crit = new CompareCriteria();
    // $NON-NLS-1$
    crit.setLeftExpression(new ElementSymbol("c"));
    crit.setRightExpression(new Constant(new Integer(10)));
    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 90 with Query

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

the class TestSubqueryFromClause method example3.

public static SubqueryFromClause 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 SubqueryFromClause("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) CompareCriteria(org.teiid.query.sql.lang.CompareCriteria) SubqueryFromClause(org.teiid.query.sql.lang.SubqueryFromClause)

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