You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "V.Narayanan (JIRA)" <de...@db.apache.org> on 2006/08/03 18:06:15 UTC

[jira] Updated: (DERBY-1554) IDENTITY_VAL_LOCAL() returned value is modified incorrectly by a multi-row INSERT statement.

     [ http://issues.apache.org/jira/browse/DERBY-1554?page=all ]

V.Narayanan updated DERBY-1554:
-------------------------------

    Attachment: DERBY-1554.diff
                DERBY-1554.stat

Hi,

If we could avoid calling the setIdentity() function in the GenericLanguageContext class when we have an multi-row insert the above bug would be fixed. I tried the same in the above patch with a single line fix and it seemed to work. 

I was going throught the earlier patch I submitted for 353 when I thought this small fix might resolve this issue. Pls do tell me if you see any problems with the above fix or if u see any case I might have missed.

Attaching relevant diff and stat files. I tested this patch only using the test case with this issue. I also tested test cases for 353 and 439. 

PLEASE NOTE THAT I HAVE NOT RUN DERBYALL on this patch.

thanx
Narayanan

> IDENTITY_VAL_LOCAL() returned value is modified incorrectly by a multi-row INSERT statement.
> --------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1554
>                 URL: http://issues.apache.org/jira/browse/DERBY-1554
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.0.0
>            Reporter: Daniel John Debrunner
>         Assigned To: Yip Ng
>             Fix For: 10.2.0.0
>
>         Attachments: DERBY-1554.diff, DERBY-1554.stat
>
>
> Changes made in DERBY-353 break the documented behaviour of IDENTITY_VAL_LOCAL(). Now the returned value is modified when a multi-row insert is performed.
> IDENTITY_VAL_LOCAL() should not be updated when this occurs.
> For this script the last value returned should be 2 (as in 10.1) but in 10.2 is 4
> create table ta (a int, b int generated always as identity);
> insert into ta(a) values 100;
> values IDENTITY_VAL_LOCAL();
> insert into ta(a) values 200;
> values IDENTITY_VAL_LOCAL();
> insert into ta(a) values 300,400;
> values IDENTITY_VAL_LOCAL();

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira