exception handling different in selectable stored procedures ------------------------------------------------------------
Key: CORE-3768 URL: http://tracker.firebirdsql.org/browse/CORE-3768 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.1.4 Environment: Noticed in 2.1.4, also present in 2.1.5 snapshot Reporter: Philip Williams The automated rollback-to-savepoint seen in stored procedure calls does not occur if the procedure issues a SUSPEND; I don't think that's clearly documented in the few places that the automated-rollback is mentioned in various literature. I would prefer for it to be fixed, for consistency, but a good explanation/documentation could do just as well, I guess. create exception test_e1 'test'; create table real_a ( a1 integer ); commit; insert into real_a (a1) values (5); execute block as begin update real_a set a1 = 53; exception test_e1; end select a1 from real_a; -- will be 5, automated rollback in block execute block returns (b integer) as begin update real_a set a1 = 53; b = 99; suspend; exception test_e1; end select a1 from real_a; -- will be 53, 'suspend' seems to kill rollback execute block returns (b integer) as begin begin update real_a set a1 = 97; end exception test_e1; end select a1 from real_a; -- will not be 97 (the fact that it's in its own begin/end doesn't prevent rollback to savepoint, as CORE-1956 or CORE-1953 implied) execute block returns (b integer) as begin begin update real_a set a1 = 103; end exception test_e1; when any do begin end end select a1 from real_a; -- will be 103, because the exception was caught execute block returns (b integer) as begin begin update real_a set a1 = 107; suspend; end exception test_e1; end select a1 from real_a; -- will be 107, because apparently having a SUSPEND kills the savepoint, even though the exception is not caught execute block returns (b integer) as begin update real_a set a1 = 109; suspend; exception test_e1; end select a1 from real_a; -- will be 109: it's not about nested begin/end -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel