db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-4779) NPE while inserting into a table which has a generated column and an insert trigger
Date Mon, 20 Jun 2011 19:06:47 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052162#comment-13052162
] 

Rick Hillegas commented on DERBY-4779:
--------------------------------------

Hi Siddharth,

You seem to be calling assertTriggerStatus() in order to confirm the behavior of the table
and trigger you added. That method verifies the behavior of triggers which call the report_proc
procedure. Your trigger doesn't call report_proc. Instead, your trigger just inserts into
a dummy table. To verify the operation of your trigger, you need to verify the contents of
the dummy table. To fix the test, I would do one of the following:

1) Rewrite your trigger so that it calls report_proc like the other triggers in test_007_basicTriggers().

2) Or rewrite your assertion to invoke assertResults() rather than assertTriggerStatus().

Hope this helps,
-Rick

> 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, test1.diff, testreport.txt
>
>
> 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

        

Mime
View raw message