Search in sources :

Example 16 with MultipleElementSymbol

use of org.teiid.query.sql.symbol.MultipleElementSymbol in project teiid by teiid.

the class TestOptionsAndHints method testCacheMultipleComments.

@Test
public void testCacheMultipleComments() {
    // $NON-NLS-1$
    String sql = "/* hello */ /*+ cache */ /* world */ SELECT * FROM t1";
    Query query = new Query();
    Select select = new Select();
    select.addSymbol(new MultipleElementSymbol());
    query.setSelect(select);
    From from = new From();
    UnaryFromClause ufc = new UnaryFromClause();
    from.addClause(ufc);
    // $NON-NLS-1$
    ufc.setGroup(new GroupSymbol("t1"));
    query.setFrom(from);
    query.setCacheHint(new CacheHint());
    // $NON-NLS-1$
    TestParser.helpTest(sql, "/*+ cache */ SELECT * FROM t1", query);
}
Also used : MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) Test(org.junit.Test)

Example 17 with MultipleElementSymbol

use of org.teiid.query.sql.symbol.MultipleElementSymbol in project teiid by teiid.

the class TestOptionsAndHints method testOptionalFromClause1_3.

@Test
public void testOptionalFromClause1_3() {
    // $NON-NLS-1$
    String sql = "SELECT * FROM /*+ optional  */ t1, t2";
    Query query = new Query();
    Select select = new Select();
    select.addSymbol(new MultipleElementSymbol());
    query.setSelect(select);
    From from = new From();
    UnaryFromClause ufc = new UnaryFromClause();
    // $NON-NLS-1$
    ufc.setGroup(new GroupSymbol("t1"));
    ufc.setOptional(true);
    from.addClause(ufc);
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("t2"));
    query.setFrom(from);
    // $NON-NLS-1$
    TestParser.helpTest(sql, "SELECT * FROM /*+ optional */ t1, t2", query);
}
Also used : MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) Test(org.junit.Test)

Example 18 with MultipleElementSymbol

use of org.teiid.query.sql.symbol.MultipleElementSymbol in project teiid by teiid.

the class TestOptionsAndHints method testOptionalFromClause2.

@Test
public void testOptionalFromClause2() {
    // $NON-NLS-1$
    String sql = "SELECT * FROM t1, /*+ optional */ t2";
    Query query = new Query();
    Select select = new Select();
    select.addSymbol(new MultipleElementSymbol());
    query.setSelect(select);
    From from = new From();
    // $NON-NLS-1$
    from.addGroup(new GroupSymbol("t1"));
    UnaryFromClause ufc = new UnaryFromClause();
    // $NON-NLS-1$
    ufc.setGroup(new GroupSymbol("t2"));
    ufc.setOptional(true);
    from.addClause(ufc);
    query.setFrom(from);
    // $NON-NLS-1$
    TestParser.helpTest(sql, "SELECT * FROM t1, /*+ optional */ t2", query);
}
Also used : MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) Test(org.junit.Test)

Example 19 with MultipleElementSymbol

use of org.teiid.query.sql.symbol.MultipleElementSymbol in project teiid by teiid.

the class TestSetQueryParsing method createTestQuery.

private Query createTestQuery(String group) {
    GroupSymbol g = new GroupSymbol(group);
    From from = new From();
    from.addGroup(g);
    Select select = new Select();
    select.addSymbol(new MultipleElementSymbol());
    Query query1 = new Query();
    query1.setSelect(select);
    query1.setFrom(from);
    return query1;
}
Also used : MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) 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 20 with MultipleElementSymbol

use of org.teiid.query.sql.symbol.MultipleElementSymbol in project teiid by teiid.

the class CommandBuilder method expandAllSymbol.

/**
 * Convert the "*" in "select * from..." to the list of column names for the data source.
 */
protected void expandAllSymbol(Command command) {
    if (command instanceof Query) {
        Query query = (Query) command;
        Select select = query.getSelect();
        List<Expression> originalSymbols = select.getSymbols();
        List<Expression> expandedSymbols = new ArrayList<Expression>();
        for (Iterator<Expression> i = originalSymbols.iterator(); i.hasNext(); ) {
            Expression next = i.next();
            if (next instanceof MultipleElementSymbol) {
                MultipleElementSymbol allSymbol = (MultipleElementSymbol) next;
                expandedSymbols.addAll(allSymbol.getElementSymbols());
            } else {
                expandedSymbols.add(next);
            }
        }
        select.setSymbols(expandedSymbols);
    }
}
Also used : MultipleElementSymbol(org.teiid.query.sql.symbol.MultipleElementSymbol) Query(org.teiid.query.sql.lang.Query) Expression(org.teiid.query.sql.symbol.Expression) Select(org.teiid.query.sql.lang.Select) ArrayList(java.util.ArrayList)

Aggregations

MultipleElementSymbol (org.teiid.query.sql.symbol.MultipleElementSymbol)41 GroupSymbol (org.teiid.query.sql.symbol.GroupSymbol)29 Test (org.junit.Test)27 Select (org.teiid.query.sql.lang.Select)19 Query (org.teiid.query.sql.lang.Query)14 From (org.teiid.query.sql.lang.From)12 SetQuery (org.teiid.query.sql.lang.SetQuery)11 ArrayList (java.util.ArrayList)10 Limit (org.teiid.query.sql.lang.Limit)10 UnaryFromClause (org.teiid.query.sql.lang.UnaryFromClause)10 Constant (org.teiid.query.sql.symbol.Constant)7 ElementSymbol (org.teiid.query.sql.symbol.ElementSymbol)7 Reference (org.teiid.query.sql.symbol.Reference)5 List (java.util.List)3 Expression (org.teiid.query.sql.symbol.Expression)2 Collection (java.util.Collection)1 QueryValidatorException (org.teiid.api.exception.query.QueryValidatorException)1 MultiSourceElement (org.teiid.dqp.internal.process.multisource.MultiSourceElement)1 TempMetadataID (org.teiid.query.metadata.TempMetadataID)1 PlanNode (org.teiid.query.optimizer.relational.plantree.PlanNode)1