@Override public RaiseStatement clone() { return new RaiseStatement((Expression) this.expression.clone(), warning); }
@Override public RaiseStatement clone() { return new RaiseStatement((Expression) this.expression.clone(), warning); }
@Override public RaiseStatement clone() { return new RaiseStatement((Expression) this.expression.clone(), warning); }
private List<Statement> rewriteStatements(List<Statement> statements) throws TeiidComponentException { Iterator<Statement> stmtIter = statements.iterator(); List<Statement> newStmts = new ArrayList<Statement>(statements.size()); // plan each statement in the block while(stmtIter.hasNext()) { Statement stmnt = stmtIter.next(); try { rewriteStatement(stmnt, newStmts); } catch (TeiidProcessingException e) { /* * defer the processing of the exception until runtime as there may be an exception handler */ RaiseStatement raise = new RaiseStatement(new Constant(e)); newStmts.add(raise); break; } } return newStmts; }
final public RaiseStatement errorStatement(ParseInfo info) throws ParseException { Expression errMsg = null; jj_consume_token(ERROR); errMsg = expression(info); ExceptionExpression ee = new ExceptionExpression(); ee.setMessage(errMsg); {if (true) return new RaiseStatement(ee);} throw new Error("Missing return statement in function"); }
final public RaiseStatement errorStatement(ParseInfo info) throws ParseException { Expression errMsg = null; jj_consume_token(ERROR); errMsg = expression(info); ExceptionExpression ee = new ExceptionExpression(); ee.setMessage(errMsg); {if (true) return new RaiseStatement(ee);} throw new Error("Missing return statement in function"); }
final public RaiseStatement errorStatement(ParseInfo info) throws ParseException { Expression errMsg = null; jj_consume_token(ERROR); errMsg = expression(info); ExceptionExpression ee = new ExceptionExpression(); ee.setMessage(errMsg); {if (true) return new RaiseStatement(ee);} throw new Error("Missing return statement in function"); }
final public RaiseStatement raiseStatement(ParseInfo info) throws ParseException { Expression err = null; boolean warning = false; jj_consume_token(RAISE); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SQLWARNING: jj_consume_token(SQLWARNING); warning = true; break; default: jj_la1[25] = jj_gen; ; } err = exceptionReference(info); {if (true) return new RaiseStatement(err, warning);} throw new Error("Missing return statement in function"); }
final public RaiseStatement raiseStatement(ParseInfo info) throws ParseException { Expression err = null; boolean warning = false; jj_consume_token(RAISE); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SQLWARNING: jj_consume_token(SQLWARNING); warning = true; break; default: jj_la1[24] = jj_gen; ; } err = exceptionReference(info); {if (true) return new RaiseStatement(err, warning);} throw new Error("Missing return statement in function"); }
public static final RaiseStatement sample2() { return new RaiseStatement(new Constant("b")); //$NON-NLS-1$ }
public static final RaiseStatement sample1() { return new RaiseStatement(new Constant("a")); //$NON-NLS-1$ }
@Test public void testRaiseErrorStatement() { RaiseStatement errStmt = new RaiseStatement(new Constant("My Error")); //$NON-NLS-1$ helpTest(errStmt, "RAISE 'My Error';"); //$NON-NLS-1$ }
@Test public void testRaiseErrorStatementWithExpression() { RaiseStatement errStmt = new RaiseStatement(new ElementSymbol("a")); //$NON-NLS-1$ helpTest(errStmt, "RAISE a;"); //$NON-NLS-1$ }
@Test public void testErrorStatement() throws Exception { ExceptionExpression ee = new ExceptionExpression(); ee.setMessage(new Constant("Test only")); RaiseStatement errStmt = new RaiseStatement(ee); helpStmtTest("ERROR 'Test only';", "RAISE SQLEXCEPTION 'Test only';", //$NON-NLS-1$ //$NON-NLS-2$ errStmt); }
@Test public void testBlock1() { Delete d1 = new Delete(); d1.setGroup(new GroupSymbol("g")); //$NON-NLS-1$ CommandStatement cmdStmt = new CommandStatement(d1); AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1))); //$NON-NLS-1$ RaiseStatement errStmt = new RaiseStatement(new Constant("My Error")); //$NON-NLS-1$ Block b = new Block(); b.addStatement(cmdStmt); b.addStatement(assigStmt); b.addStatement(errStmt); helpTest(b, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND"); //$NON-NLS-1$ }
@Test public void testCreateUpdateProcedure1() { Delete d1 = new Delete(); d1.setGroup(new GroupSymbol("g")); //$NON-NLS-1$ CommandStatement cmdStmt = new CommandStatement(d1); AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1))); //$NON-NLS-1$ RaiseStatement errStmt = new RaiseStatement(new Constant("My Error")); //$NON-NLS-1$ Block b = new Block(); b.addStatement(cmdStmt); b.addStatement(assigStmt); b.addStatement(errStmt); CreateProcedureCommand cup = new CreateProcedureCommand(b); helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND"); //$NON-NLS-1$ }
@Test public void testCreateUpdateProcedure2() { Delete d1 = new Delete(); d1.setGroup(new GroupSymbol("g")); //$NON-NLS-1$ CommandStatement cmdStmt = new CommandStatement(d1); AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1))); //$NON-NLS-1$ RaiseStatement errStmt = new RaiseStatement(new Constant("My Error")); //$NON-NLS-1$ Block b = new Block(); b.addStatement(cmdStmt); b.addStatement(assigStmt); b.addStatement(errStmt); CreateProcedureCommand cup = new CreateProcedureCommand(b); helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND"); //$NON-NLS-1$ }
@Test public void testCreateUpdateProcedure3() { Delete d1 = new Delete(); d1.setGroup(new GroupSymbol("g")); //$NON-NLS-1$ CommandStatement cmdStmt = new CommandStatement(d1); AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1))); //$NON-NLS-1$ RaiseStatement errStmt = new RaiseStatement(new Constant("My Error")); //$NON-NLS-1$ Block b = new Block(); b.addStatement(cmdStmt); b.addStatement(assigStmt); b.addStatement(errStmt); CreateProcedureCommand cup = new CreateProcedureCommand(b); helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND"); //$NON-NLS-1$ }
@Test public void testRaiseErrorStatement() throws Exception { ExceptionExpression ee = new ExceptionExpression(); ee.setMessage(new Constant("Test only")); ee.setSqlState(new Constant("100")); ee.setParent(new ElementSymbol("e")); RaiseStatement errStmt = new RaiseStatement(ee, true); helpStmtTest("RAISE SQLWARNING SQLEXCEPTION 'Test only' SQLSTATE '100' chain e;", "RAISE SQLWARNING SQLEXCEPTION 'Test only' SQLSTATE '100' CHAIN e;", //$NON-NLS-1$ //$NON-NLS-2$ errStmt); }
@Test public void testBlockExceptionHandling() throws ParseException { CommandStatement cmdStmt = new CommandStatement(new Query(new Select(Arrays.asList(new MultipleElementSymbol())), new From(Arrays.asList(new UnaryFromClause(new GroupSymbol("x")))), null, null, null)); AssignmentStatement assigStmt = new AssignmentStatement(new ElementSymbol("a"), new Constant(new Integer(1))); //$NON-NLS-1$ RaiseStatement errStmt = new RaiseStatement(new Constant("My Error")); //$NON-NLS-1$ Block b = new Block(); b.setExceptionGroup("e"); b.addStatement(cmdStmt); b.addStatement(assigStmt); b.addStatement(errStmt, true); helpStmtTest("BEGIN\nselect * from x;\na = 1;\nexception e\nERROR 'My Error';\nEND", "BEGIN\nSELECT * FROM x;\na = 1;\nEXCEPTION e\nRAISE SQLEXCEPTION 'My Error';\nEND", b); //$NON-NLS-1$ }