db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Korneliussen <Andreas.Kornelius...@Sun.COM>
Subject Re: [jira] Commented: (DERBY-690) Add scrollable, updatable, insensitive result sets
Date Wed, 01 Mar 2006 15:06:13 GMT
Daniel John Debrunner wrote:
> Bernt M. Johnsen wrote:
> 
> 
> 
>>We should also strive to make "insensitivity" as close to the SQL
>>defintion as possible (SQL 2003 p. 96):
>>
>>   A change to SQL-data is said to be independent of a cursor CR if
>>   and only if it is not made by an <update statement: positioned> or a
>>   <delete statement: positioned> that is positioned on CR.
>>
>>   A change to SQL-data is said to be significant to CR if and only if
>>   it is independent of CR, and, had it been committed before CR was
>>   opened, would have caused the table associated with the cursor to
>>   be different in any respect.
>>
>>   A change to SQL-data is said to be visible to CR if and only if it
>>   has an effect on CR by inserting a row in CR, deleting a row from
>>   CR, changing the value of a column of a row of CR, or reordering
>>   the rows of CR.
>>
>>   [...]
>>
>>   - If the cursor is insensitive, then significant changes are not visible.
> 
> 
> Does JDBC's definition of INSENSITIVE line up with SQL's?
> 
> JDBC 3.0 (14.1.1) (and JDBC 4.0 16.1.1)
> 
>>The result set is insensitive to changes made to the underlying data source while
>>it is open. It contains the rows that satisfy the query at either the time the query
is
>>executed or as the rows are retrieved.
> 
> 
> SQL seems to say that if an update happens while the cursor is open then
> an insensitive cursor will not see it.
> 
> JDBC says you might see it, due to the "as the rows are retrieved".
> 


I interpreted the JDBC a bit differently: it just says which rows are in 
the resultset, not if you see the updates.


  - JDBC 3.0 spec: "The result set is insensitive to changes made to the
  underlying data source while it is open. It contains the rows that
  satisfy the query at either the time the query is executed or as the
  rows are retrieved."

To me, this says more about which rows are in the resultset - if they 
satisfy the query at execute time, or at retrieve time, they may go into 
the resultset.


Andreas

> Dan.
> 
> 


Mime
View raw message