A scrollable insensitive resultset can move backwards or forwards however cannot see changes made to the database that may be pass the query criteria for this result set.
Does that mean the TYPE_FORWARD_ONLY sees the changes to the underlying database?
How does it work internally? Because the query can potentially result into millions of rows. Since it's a scrollable resultset my understanding is that it doesn't fetch all the data at once but streams them to the resultset as the cursor moves ahead.
Hence I would like to understand how is this managed by the database? Does it create a copy of the rows that are in the ambit of the query which doesn't seem feasible to me?
Or is the insensitive thing only applicable to the rows that were fetched - which might lead to duplicates as inserts may push some rows after they are read down in order??
Please clarify and help me understand this. I use Oracle database.