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
            Reporter: Kathey Marsden
         Assigned To: Yip Ng
             Fix For: 10.1.3.2


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

        

Reply via email to