Search in sources :

Example 51 with GroupSymbol

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

the class TestAccessNode method testShouldExecuteUpdate.

@Test
public void testShouldExecuteUpdate() throws Exception {
    Update update = new Update();
    // $NON-NLS-1$
    update.setGroup(new GroupSymbol("test"));
    // $NON-NLS-1$ //$NON-NLS-2$
    update.addChange(new ElementSymbol("e1"), new Constant("1"));
    assertTrue(RelationalNodeUtil.shouldExecute(update, false));
    update.setChangeList(new SetClauseList());
    assertFalse(RelationalNodeUtil.shouldExecute(update, false));
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Constant(org.teiid.query.sql.symbol.Constant) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) SetClauseList(org.teiid.query.sql.lang.SetClauseList) Update(org.teiid.query.sql.lang.Update) Test(org.junit.Test)

Example 52 with GroupSymbol

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

the class TestResolver method testStoredQueryTransformationWithVariable4.

@Test
public void testStoredQueryTransformationWithVariable4() throws Exception {
    // $NON-NLS-1$
    Command command = QueryParser.getQueryParser().parseCommand("EXEC pm1.sq2(pm1.sq2.in)");
    // resolve
    try {
        // Construct command metadata
        // $NON-NLS-1$
        GroupSymbol sqGroup = new GroupSymbol("pm1.sq5");
        ArrayList sqParams = new ArrayList();
        // $NON-NLS-1$
        ElementSymbol in = new ElementSymbol("pm1.sq5.in1");
        in.setType(DataTypeManager.DefaultDataClasses.STRING);
        sqParams.add(in);
        Map externalMetadata = new HashMap();
        externalMetadata.put(sqGroup, sqParams);
        QueryResolver.resolveCommand(command, metadata);
        // $NON-NLS-1$
        fail("Expected exception on invalid variable pm1.sq2.in");
    } catch (QueryResolverException e) {
        // $NON-NLS-1$
        assertEquals("TEIID31119 Symbol pm1.sq2.\"in\" is specified with an unknown group context", e.getMessage());
    }
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) CreateProcedureCommand(org.teiid.query.sql.proc.CreateProcedureCommand) HashMap(java.util.HashMap) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap) SymbolMap(org.teiid.query.sql.util.SymbolMap) QueryResolverException(org.teiid.api.exception.query.QueryResolverException) Test(org.junit.Test)

Example 53 with GroupSymbol

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

the class TestResolver method testCriteria1.

@Test
public void testCriteria1() {
    CompareCriteria expected = new CompareCriteria();
    // $NON-NLS-1$
    ElementSymbol es = new ElementSymbol("pm1.g1.e1");
    // $NON-NLS-1$
    GroupSymbol gs = new GroupSymbol("pm1.g1");
    es.setGroupSymbol(gs);
    expected.setLeftExpression(es);
    expected.setOperator(CompareCriteria.EQ);
    // $NON-NLS-1$
    expected.setRightExpression(new Constant("abc"));
    // $NON-NLS-1$
    Criteria actual = helpResolveCriteria("pm1.g1.e1 = 'abc'");
    // $NON-NLS-1$
    assertEquals("Did not match expected criteria", expected, actual);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Constant(org.teiid.query.sql.symbol.Constant) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol) Test(org.junit.Test)

Example 54 with GroupSymbol

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

the class Create method clone.

/**
 * @see org.teiid.query.sql.lang.Command#clone()
 * @since 5.5
 */
public Object clone() {
    Create copy = new Create();
    GroupSymbol copyTable = table.clone();
    copy.setTable(copyTable);
    copy.columns = new ArrayList<Column>(columns.size());
    for (Column column : columns) {
        Column copyColumn = new Column();
        copyColumn.setName(column.getName());
        copyColumn.setRuntimeType(column.getRuntimeType());
        copyColumn.setAutoIncremented(column.isAutoIncremented());
        copyColumn.setNullType(column.getNullType());
        copy.columns.add(copyColumn);
    }
    copy.primaryKey = LanguageObject.Util.deepClone(primaryKey, ElementSymbol.class);
    copyMetadataState(copy);
    copy.setTableMetadata(this.tableMetadata);
    copy.on = this.on;
    copy.commitAction = this.commitAction;
    return copy;
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Column(org.teiid.metadata.Column) GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol)

Example 55 with GroupSymbol

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

the class Delete method clone.

/**
 * Return a copy of this Delete.
 */
public Object clone() {
    GroupSymbol copyGroup = null;
    if (group != null) {
        copyGroup = group.clone();
    }
    Criteria copyCrit = null;
    if (criteria != null) {
        copyCrit = (Criteria) criteria.clone();
    }
    Delete copy = new Delete(copyGroup, copyCrit);
    copyMetadataState(copy);
    return copy;
}
Also used : GroupSymbol(org.teiid.query.sql.symbol.GroupSymbol)

Aggregations

GroupSymbol (org.teiid.query.sql.symbol.GroupSymbol)299 ElementSymbol (org.teiid.query.sql.symbol.ElementSymbol)146 Test (org.junit.Test)108 ArrayList (java.util.ArrayList)92 MultipleElementSymbol (org.teiid.query.sql.symbol.MultipleElementSymbol)59 Expression (org.teiid.query.sql.symbol.Expression)52 PlanNode (org.teiid.query.optimizer.relational.plantree.PlanNode)50 Constant (org.teiid.query.sql.symbol.Constant)48 List (java.util.List)43 HashSet (java.util.HashSet)32 Query (org.teiid.query.sql.lang.Query)31 From (org.teiid.query.sql.lang.From)29 SymbolMap (org.teiid.query.sql.util.SymbolMap)29 Select (org.teiid.query.sql.lang.Select)26 Criteria (org.teiid.query.sql.lang.Criteria)22 TempMetadataID (org.teiid.query.metadata.TempMetadataID)21 LinkedList (java.util.LinkedList)20 Command (org.teiid.query.sql.lang.Command)20 Set (java.util.Set)17 CompareCriteria (org.teiid.query.sql.lang.CompareCriteria)17