[ http://issues.apache.org/jira/browse/DERBY-1652?page=all ]
Mike Matrigali updated DERBY-1652: ---------------------------------- I reproduced the out of memory on my machine in a clean codeline so do not believe it is caused by this patch. I also have reported DERBY-1701 for those out of memory errors which have been showing up in the public regression test runs on a number of platforms. I committed this patch as is, feeling the comments above were not worth holding up the patch. They seem like good things to do, but not necessary to hold up the fix. m1_142:97>svn commit Sending java\engine\org\apache\derby\impl\sql\execute\CreateTriggerConstantAction.java Sending java\engine\org\apache\derby\impl\store\raw\data\OverflowInputStream.java Sending java\testing\org\apache\derbyTesting\functionTests\master\triggerGeneral.out Sending java\testing\org\apache\derbyTesting\functionTests\tests\lang\triggerGeneral.sql Sending java\testing\org\apache\derbyTesting\functionTests\tests\lang\updatableResultSet.java Transmitting file data ..... Committed revision 431698. > Update trigger updating the same rows as the original update does not throw > an exception ERROR 54038: "Maximum depth of nested triggers was exceeded" as > it should > ------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-1652 > URL: http://issues.apache.org/jira/browse/DERBY-1652 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.0.2.0, 10.2.0.0, 10.1.3.1 > Reporter: Kathey Marsden > Assigned To: Yip Ng > Fix For: 10.2.0.0, 10.1.3.2 > > Attachments: derby1652-10.1.3-diff.txt, derby1652-10.1.3-stat.txt, > derby1652-trunk-diff01.txt, derby1652-trunk-stat01.txt > > > Execution of an update trigger that updates the same row as the original > update will recurse forever and exceed the maximum nesting level of 16 so > should throw the exception: > ERROR 54038: "Maximum depth of nested triggers was exceeded" > However, it does not always throw the exception. For example: > CREATE TABLE "TEST" ( > > "TESTID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START > WITH 1, > INCREMENT BY 1), > > "INFO" INTEGER NOT NULL, > > "TIMESTAMP" TIMESTAMP NOT NULL DEFAULT > '1980-01-01-00.00.00.000000' > ); > > CREATE TRIGGER UPDATE_TEST > AFTER UPDATE ON TEST > REFERENCING OLD AS OLD > FOR EACH ROW MODE DB2SQL > UPDATE TEST SET TIMESTAMP = CURRENT_TIMESTAMP WHERE > TESTID = OLD.TESTID; > INSERT INTO TEST (INFO) VALUES > (1), > (2), > (3); > UPDATE TEST SET INFO = 1 WHERE TESTID = 2; > Does not throw an exception: > However, If the derby jars are updated to a new version, the correct > exception is thrown. > Replace derby jars with new version > Execute the following in ij: > UPDATE TEST SET INFO = 1 WHERE TESTID = 2; > ERROR 54038: Maximum depth of nested triggers was exceeded. > Note: This issue stemmed from the Invalid issue, DERBY-1603, because a user > hit the exception after upgrade and thought the exception after upgrade, not > the lack of exception before upgrade was the problem. This may be a common > user error, so we need a release note to help mitigate the issue. I will > add one shortly after confirming the correct trigger syntax. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
