db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yip Ng" <yipng...@gmail.com>
Subject Re: [jira] Commented: (DERBY-1261) Two triggers on same table cause "ERROR 54038: Maximum depth of nested triggers was exceeded."
Date Thu, 17 Aug 2006 17:10:51 GMT
>From what the problem description states, it seems so.  The symptoms of this
jira
matches those of DERBY-1652.  I'll leave it up to the reporter to decide if
it is a
duplicate.


On 8/17/06, Mike Matrigali <mikem_app@sbcglobal.net> wrote:
>
> does this mean you think it is fixed by 1652?
>
> Yip Ng (JIRA) wrote:
> >     [
> http://issues.apache.org/jira/browse/DERBY-1261?page=comments#action_12428581]
> >
> > Yip Ng commented on DERBY-1261:
> > -------------------------------
> >
> > This issue seems to be related to DERBY-1652.
> >
> >
> >>Two triggers on same table cause "ERROR 54038: Maximum depth of nested
> triggers was exceeded."
>
> >>----------------------------------------------------------------------------------------------
> >>
> >>                Key: DERBY-1261
> >>                URL: http://issues.apache.org/jira/browse/DERBY-1261
> >>            Project: Derby
> >>         Issue Type: Bug
> >>         Components: SQL
> >>   Affects Versions: 10.0.2.0
> >>        Environment: Embedded on Solaris x86
> >>           Reporter: Øystein Grøvlen
> >>
> >>Two triggers on same table may lead to self-recursion:
> >>ij> create table t3(i integer primary key, j integer, t timestamp);
> >>0 rows inserted/updated/deleted
> >>ij> create trigger tr3i after insert on t3 referencing new as new for
> each row mode db2sql update t3 set t = current_timestamp where i = new.i;
> >>0 rows inserted/updated/deleted
> >>ij> insert into t3 values (1, 1, NULL);
> >>1 row inserted/updated/deleted
> >>ij> create trigger tr3u after update on t3 referencing old as old for
> each row mode db2sql update t3 set t = current_timestamp where i = old.i;
> >>0 rows inserted/updated/deleted
> >>ij> insert into t3 values (2, 1, NULL);
> >>ERROR 54038: Maximum depth of nested triggers was exceeded.
> >>ij> update t3 set j=j+1;
> >>1 row inserted/updated/deleted
> >>ij> create trigger tr3u2 after update on t3 referencing old as old for
> each row mode db2sql update t3 set j = 0 where i = old.i and j > 2;
> >>0 rows inserted/updated/deleted
> >>ij> update t3 set j=j+1;
> >>ERROR 54038: Maximum depth of nested triggers was exceeded.
> >>From derby.log:
> >>2006-04-27 10:03:54.792 GMT Thread[main,5,main] (XID = 1274), (SESSIONID
> = 0), (DATABASE = testDB), (DRDAID = null), Cleanup action starting
> >>2006-04-27 10:03:54.792 GMT Thread[main,5,main] (XID = 1274), (SESSIONID
> = 0), (DATABASE = testDB), (DRDAID = null), Failed Statement is: insert into
> t3 values (2, 1, NULL)
> >>ERROR 54038: Maximum depth of nested triggers was exceeded.
> >>      at org.apache.derby.iapi.error.StandardException.newException(
> StandardException.java:301)
> >>      at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.pushTriggerExecutionContext
> (GenericLanguageConnectionContext.java:2104)
> >>      at
> org.apache.derby.impl.sql.execute.InternalTriggerExecutionContext.<init>(
> InternalTriggerExecutionContext.java:179)
> >>      at
> org.apache.derby.impl.sql.execute.GenericExecutionFactory.getTriggerExecutionContext
> (GenericExecutionFactory.java:302)
> >>      at org.apache.derby.impl.sql.execute.TriggerEventActivator.<init>(
> TriggerEventActivator.java:105)
> >>      at
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireBeforeTriggers(
> UpdateResultSet.java:798)
> >>      at org.apache.derby.impl.sql.execute.UpdateResultSet.open(
> UpdateResultSet.java:283)
> >>      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(
> GenericPreparedStatement.java:361)
> >>      at
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(
> GenericTriggerExecutor.java:169)
> >>      at
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger(
> RowTriggerExecutor.java:110)
> >>      at
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(
> TriggerEventActivator.java:277)
> >>      at
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(
> InsertResultSet.java:1134)
> >>      at org.apache.derby.impl.sql.execute.InsertResultSet.open(
> InsertResultSet.java:522)
> >>      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(
> GenericPreparedStatement.java:361)
> >>      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(
> EmbedStatement.java:1161)
> >>      at org.apache.derby.impl.jdbc.EmbedStatement.execute(
> EmbedStatement.java:567)
> >>      at org.apache.derby.impl.jdbc.EmbedStatement.execute(
> EmbedStatement.java:497)
> >>      at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:313)
> >>      at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java
> :433)
> >>      at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:310)
> >>      at org.apache.derby.impl.tools.ij.Main.go(Main.java:203)
> >>      at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:169)
> >>      at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:55)
> >>      at org.apache.derby.tools.ij.main(ij.java:60)
> >>Cleanup action completed
> >>2006-04-27 10:06:18.589 GMT Thread[main,5,main] (XID = 1293), (SESSIONID
> = 0), (DATABASE = testDB), (DRDAID = null), Cleanup action starting
> >>2006-04-27 10:06:18.589 GMT Thread[main,5,main] (XID = 1293), (SESSIONID
> = 0), (DATABASE = testDB), (DRDAID = null), Failed Statement is: update t3
> set j=j+1
> >>ERROR 54038: Maximum depth of nested triggers was exceeded.
> >>      at org.apache.derby.iapi.error.StandardException.newException(
> StandardException.java:301)
> >>      at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.pushTriggerExecutionContext
> (GenericLanguageConnectionContext.java:2104)
> >>      at
> org.apache.derby.impl.sql.execute.InternalTriggerExecutionContext.<init>(
> InternalTriggerExecutionContext.java:179)
> >>      at
> org.apache.derby.impl.sql.execute.GenericExecutionFactory.getTriggerExecutionContext
> (GenericExecutionFactory.java:302)
> >>      at org.apache.derby.impl.sql.execute.TriggerEventActivator.<init>(
> TriggerEventActivator.java:105)
> >>      at
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireBeforeTriggers(
> UpdateResultSet.java:798)
> >>      at org.apache.derby.impl.sql.execute.UpdateResultSet.open(
> UpdateResultSet.java:283)
> >>      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(
> GenericPreparedStatement.java:361)
> >>      at
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(
> GenericTriggerExecutor.java:169)
> >>      at
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger(
> RowTriggerExecutor.java:110)
> >>      at
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(
> TriggerEventActivator.java:277)
> >>      at
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTriggers(
> UpdateResultSet.java:825)
> >>      at org.apache.derby.impl.sql.execute.UpdateResultSet.open(
> UpdateResultSet.java:288)
> >>      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(
> GenericPreparedStatement.java:361)
> >>      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(
> EmbedStatement.java:1161)
> >>      at org.apache.derby.impl.jdbc.EmbedStatement.execute(
> EmbedStatement.java:567)
> >>      at org.apache.derby.impl.jdbc.EmbedStatement.execute(
> EmbedStatement.java:497)
> >>      at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:313)
> >>      at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java
> :433)
> >>      at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:310)
> >>      at org.apache.derby.impl.tools.ij.Main.go(Main.java:203)
> >>      at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:169)
> >>      at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:55)
> >>      at org.apache.derby.tools.ij.main(ij.java:60)
> >>Cleanup action completed
> >
> >
>
>

Mime
View raw message