Search in sources :

Example 66 with Query

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

the class TestSetQueryParsing method testSingleValue.

@Test
public void testSingleValue() {
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("c1"));
    // $NON-NLS-1$
    select.addSymbol(new Constant("x"));
    Query query = new Query();
    query.setSelect(select);
    // $NON-NLS-1$
    TestParser.helpTest(// $NON-NLS-1$
    "values (c1, 'x')", // $NON-NLS-1$
    "SELECT c1, 'x'", query);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) Query(org.teiid.query.sql.lang.Query) SetQuery(org.teiid.query.sql.lang.SetQuery) Constant(org.teiid.query.sql.symbol.Constant) Select(org.teiid.query.sql.lang.Select) Test(org.junit.Test)

Example 67 with Query

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

the class TestSetQueryParsing method exampleSetQuery.

private SetQuery exampleSetQuery(Operation op) {
    // $NON-NLS-1$
    GroupSymbol g = new GroupSymbol("g");
    From from = new From();
    from.addGroup(g);
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("a"));
    Query query1 = new Query();
    query1.setSelect(select);
    query1.setFrom(from);
    // $NON-NLS-1$
    g = new GroupSymbol("h");
    from = new From();
    from.addGroup(g);
    select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("b"));
    Query query2 = new Query();
    query2.setSelect(select);
    query2.setFrom(from);
    SetQuery setQuery = new SetQuery(op);
    setQuery.setAll(false);
    setQuery.setLeftQuery(query1);
    setQuery.setRightQuery(query2);
    return setQuery;
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) SetQuery(org.teiid.query.sql.lang.SetQuery) Query(org.teiid.query.sql.lang.Query) SetQuery(org.teiid.query.sql.lang.SetQuery) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) Select(org.teiid.query.sql.lang.Select) From(org.teiid.query.sql.lang.From)

Example 68 with Query

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

the class TestSetQueryParsing method testTwoUnions.

/**
 * select c1 from g1 union select c2 from g2 union select c3 from g3
 */
@Test
public void testTwoUnions() {
    SetQuery setQuery = new SetQuery(Operation.UNION);
    setQuery.setAll(false);
    // $NON-NLS-1$
    GroupSymbol g = new GroupSymbol("g1");
    From from = new From();
    from.addGroup(g);
    Select select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("c1"));
    Query query = new Query();
    query.setSelect(select);
    query.setFrom(from);
    setQuery.setLeftQuery(query);
    // $NON-NLS-1$
    g = new GroupSymbol("g2");
    from = new From();
    from.addGroup(g);
    select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("c2"));
    query = new Query();
    query.setSelect(select);
    query.setFrom(from);
    setQuery.setRightQuery(query);
    // $NON-NLS-1$
    g = new GroupSymbol("g3");
    from = new From();
    from.addGroup(g);
    select = new Select();
    // $NON-NLS-1$
    select.addSymbol(new ElementSymbol("c3"));
    query = new Query();
    query.setSelect(select);
    query.setFrom(from);
    setQuery = new SetQuery(Operation.UNION, false, setQuery, query);
    // $NON-NLS-1$
    TestParser.helpTest(// $NON-NLS-1$
    "select c1 from g1 union select c2 from g2 union select c3 from g3", // $NON-NLS-1$
    "SELECT c1 FROM g1 UNION SELECT c2 FROM g2 UNION SELECT c3 FROM g3", setQuery);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) SetQuery(org.teiid.query.sql.lang.SetQuery) Query(org.teiid.query.sql.lang.Query) SetQuery(org.teiid.query.sql.lang.SetQuery) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) Select(org.teiid.query.sql.lang.Select) From(org.teiid.query.sql.lang.From) Test(org.junit.Test)

Example 69 with Query

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

the class TestExpressionEvaluator method testScalarSubquery2.

@Test
public void testScalarSubquery2() throws Exception {
    ScalarSubquery expr = new ScalarSubquery(new Query());
    ArrayList values = new ArrayList(1);
    values.add(null);
    helpTestWithValueIterator(expr, values, null);
}
Also used : Query(org.teiid.query.sql.lang.Query) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 70 with Query

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

the class TestExpressionEvaluator method testScalarSubquery.

@Test
public void testScalarSubquery() throws Exception {
    ScalarSubquery expr = new ScalarSubquery(new Query());
    ArrayList values = new ArrayList(1);
    // $NON-NLS-1$
    values.add("a");
    // $NON-NLS-1$
    Object expected = "a";
    helpTestWithValueIterator(expr, values, expected);
}
Also used : Query(org.teiid.query.sql.lang.Query) ArrayList(java.util.ArrayList) Test(org.junit.Test)

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