Thread: strange behavior on 8.1
Hi all, I have observed a strange behavior on 8.1 of an insert statement into a temporary table done from a delete trigger. I've attached a test case. Observe that the NOTICE saying the rows were inserted occurs all 5 times for the 8.0.3 server and only for the first 2 times for the 8.1 installation, and all further runs of the flush_test function yield no successful insert... Might worth to note that the 8.0.3 installation has 2 patches, one to disallow the locking of parent keys in foreign key triggers, and another one which changes time-stamp rounding behavior to "truncate". Any ideas why this happens ? Cheers, Csaba.
Attachment
Ok, I found a fix which works for me: don't use ON COMMIT DELETE ROWS on the temporary tables, but explicitly delete the rows once processed. However, I think it should work with ON COMMIT DELETE ROWS too, and it works fine indeed in 8.0.3. Cheers, Csaba. On Thu, 2005-11-17 at 16:22, Csaba Nagy wrote: > Hi all, > > I have observed a strange behavior on 8.1 of an insert statement into a > temporary table done from a delete trigger. > I've attached a test case. > Observe that the NOTICE saying the rows were inserted occurs all 5 times > for the 8.0.3 server and only for the first 2 times for the 8.1 > installation, and all further runs of the flush_test function yield no > successful insert... > Might worth to note that the 8.0.3 installation has 2 patches, one to > disallow the locking of parent keys in foreign key triggers, and another > one which changes time-stamp rounding behavior to "truncate". > > Any ideas why this happens ? > > Cheers, > Csaba. > > > ______________________________________________________________________ > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org
Csaba Nagy <nagy@ecircle-ag.com> writes: > I have observed a strange behavior on 8.1 of an insert statement into a > temporary table done from a delete trigger. In an assert-enabled build this dumps core, so I'd say you've found a bug ... regards, tom lane
Csaba Nagy <nagy@ecircle-ag.com> writes: > Ok, I found a fix which works for me: don't use ON COMMIT DELETE ROWS on > the temporary tables, but explicitly delete the rows once processed. > However, I think it should work with ON COMMIT DELETE ROWS too, and it > works fine indeed in 8.0.3. I found the bug, and indeed ON COMMIT DELETE ROWS is the only case where there's a significant chance of observing a problem. Thanks for the report! regards, tom lane