use of org.teiid.query.sql.proc.AssignmentStatement in project teiid by teiid.
the class TestAssignmentStatement method testEquivalence.
public void testEquivalence() {
AssignmentStatement s1 = sample1();
AssignmentStatement s1a = sample1();
int equals = 0;
UnitTestUtil.helpTestEquivalence(equals, s1, s1a);
}
use of org.teiid.query.sql.proc.AssignmentStatement in project teiid by teiid.
the class TestProcedureResolving method testProcedureScoping.
@Test
public void testProcedureScoping() throws Exception {
StringBuffer proc = // $NON-NLS-1$
new StringBuffer("FOR EACH ROW").append(// $NON-NLS-1$
"\nBEGIN").append(// $NON-NLS-1$
"\n declare integer e1 = 1;").append(// $NON-NLS-1$
"\n e1 = e1;").append(// $NON-NLS-1$
"\n LOOP ON (SELECT pm1.g1.e1 FROM pm1.g1) AS loopCursor").append(// $NON-NLS-1$
"\n BEGIN").append(// $NON-NLS-1$
"\n variables.e1 = convert(e1, integer);").append(// $NON-NLS-1$
"\n END").append(// $NON-NLS-1$
"\nEND");
// $NON-NLS-1$
String userUpdateStr = "UPDATE vm1.g1 SET e1='x'";
TriggerAction command = helpResolveUpdateProcedure(proc.toString(), userUpdateStr, Table.TriggerEvent.UPDATE);
Block block = command.getBlock();
AssignmentStatement assStmt = (AssignmentStatement) block.getStatements().get(1);
assertEquals(ProcedureReservedWords.VARIABLES, assStmt.getVariable().getGroupSymbol().getName());
assertEquals(ProcedureReservedWords.VARIABLES, ((ElementSymbol) assStmt.getExpression()).getGroupSymbol().getName());
Block inner = ((LoopStatement) block.getStatements().get(2)).getBlock();
assStmt = (AssignmentStatement) inner.getStatements().get(0);
ElementSymbol value = ElementCollectorVisitor.getElements(assStmt.getExpression(), false).iterator().next();
// $NON-NLS-1$
assertEquals("loopCursor", value.getGroupSymbol().getName());
}
use of org.teiid.query.sql.proc.AssignmentStatement in project teiid by teiid.
the class TestSQLStringVisitor method testCreateUpdateProcedure2.
@Test
public void testCreateUpdateProcedure2() {
Delete d1 = new Delete();
// $NON-NLS-1$
d1.setGroup(new GroupSymbol("g"));
CommandStatement cmdStmt = new CommandStatement(d1);
// $NON-NLS-1$
AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1)));
// $NON-NLS-1$
RaiseStatement errStmt = new RaiseStatement(new Constant("My Error"));
Block b = new Block();
b.addStatement(cmdStmt);
b.addStatement(assigStmt);
b.addStatement(errStmt);
CreateProcedureCommand cup = new CreateProcedureCommand(b);
// $NON-NLS-1$
helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND");
}
use of org.teiid.query.sql.proc.AssignmentStatement in project teiid by teiid.
the class TestSQLStringVisitor method testAssignmentStatement1.
@Test
public void testAssignmentStatement1() {
// $NON-NLS-1$
AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1)));
// $NON-NLS-1$
helpTest(assigStmt, "a = 1;");
}
use of org.teiid.query.sql.proc.AssignmentStatement in project teiid by teiid.
the class TestSQLStringVisitor method testAssignmentStatement2.
@Test
public void testAssignmentStatement2() {
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);
// $NON-NLS-1$
AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), q1);
// $NON-NLS-1$
helpTest(assigStmt, "a = (SELECT x FROM g);");
}
Aggregations