[
https://issues.apache.org/jira/browse/DERBY-4779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Siddharth Srivastava updated DERBY-4779:
----------------------------------------
Attachment: d4779.diff
The patch for this issue is attached. (The regression tests are going on)
The NPE doesn't occur after the concluding insert anymore.
Verified that the trigger is fired after insert:
ij> select * from dummy;
A
-----------
1
1 row selected
> NPE while inserting into a table which has a generated column and an insert
> trigger
> -----------------------------------------------------------------------------------
>
> Key: DERBY-4779
> URL: https://issues.apache.org/jira/browse/DERBY-4779
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.5.3.0, 10.6.1.0, 10.7.1.1
> Reporter: Rick Hillegas
> Assignee: Siddharth Srivastava
> Labels: derby_triage10_8
> Attachments: d4779.diff
>
>
> The following script generates an NPE on the concluding insert:
> connect 'jdbc:derby:memory:dummy;create=true';
> create function getRegion( v int )
> returns varchar( 20 )
> language java parameter style java deterministic no sql
> external name 'java.lang.Integer.toString'
> ;
> create table orders
> (
> orderID bigint primary key,
> salesPrice int not null,
> region generated always as ( getRegion( salesPrice ) )
> )
> ;
> create table dummy( a int );
> create trigger newOrderTrigger
> after insert on orders
> for each row
> insert into dummy( a ) values ( 1 )
> ;
> insert into orders( orderID, salesPrice ) values ( 1, 2 )
> ;
> ------------------------
> Here is the NPE:
> java.lang.NullPointerException
> at
> org.apache.derby.impl.sql.execute.DMLWriteResultSet.objectifyStreams(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
> Source)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.main(Unknown Source)
> at org.apache.derby.tools.ij.main(Unknown Source)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira