[ http://issues.apache.org/jira/browse/DERBY-1554?page=comments#action_12425618 ] Yip Ng commented on DERBY-1554: -------------------------------
Hi Narayanan It is failing in this case also, the result should be null. I think the rowCount comparison cannot be used to determine whether to set the identity val or not. It should be based on the source resultset type. ij> create table t1 (i int generated by default as identity, j int); 0 rows inserted/updated/deleted ij> create table t2 (i int); 0 rows inserted/updated/deleted ij> insert into t2 values 10; 1 row inserted/updated/deleted ij> insert into t1 (i) select i from t2; 1 row inserted/updated/deleted ij> values identity_val_local(); 1 ------------------------------- 10 1 row selected > 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