[ 
https://issues.apache.org/jira/browse/DERBY-6666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dag H. Wanvik updated DERBY-6666:
---------------------------------

    Attachment: derby-6666.diff

Uploading a first patch that removes this issue by adding push and push of the 
statement context to the lcc before we execute the internal query to check for 
check constraint violation. We had neglected to do this, which caused a problem 
for the logging since the statement context should always be properly 
initialized during execution.

I'll add a regression test in the next version of the patch.

> Deferred constraint validation fails with "dead statement" when query plan 
> logging is enabled
> ---------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6666
>                 URL: https://issues.apache.org/jira/browse/DERBY-6666
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.11.0.0
>            Reporter: Knut Anders Hatlen
>         Attachments: derby-6666.diff
>
>
> Run the following script with the {{derby.language.logQueryPlan}} system 
> property set to {{true}}:
> {code:sql}
> connect 'jdbc:derby:memory:db;create=true';
> create table t1(x int primary key);
> create table t2(y int, constraint c check(y > 0) initially deferred, 
> constraint fk foreign key(y) references t1 initially deferred);
> autocommit off;
> insert into t1 values -1, 1;
> insert into t2 values 1;
> update t2 set y = -1;
> delete from t1 where x = -1;
> commit;
> {code}
> The commit statement will fail with the following error message: "ERROR 
> 40XC0: Dead statement. This may be caused by catching a transaction severity 
> error inside this statement."
> If you run the script without setting the {{derby.language.logQueryPlan}} 
> system property, it will fail (correctly) with this error message: "ERROR 
> 23514: The transaction was aborted because of a deferred constraint 
> violation: Check constraint identified by 'C' defined on "APP"."T2" as '(y > 
> 0)'."



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to