Re: updateable cursors & visibility
От | Hiroshi Inoue |
---|---|
Тема | Re: updateable cursors & visibility |
Дата | |
Msg-id | 003901c2f895$5ac28bf0$0e283ddb@PbgX обсуждение исходный текст |
Ответ на | Re: updateable cursors & visibility (Hannu Krosing <hannu@tm.ee>) |
Список | pgsql-hackers |
> -----Original Message----- > From: Hannu Krosing [mailto:hannu@tm.ee] > > Hiroshi Inoue kirjutas E, 31.03.2003 kell 19:08: > > > -----Original Message----- > > > From: Hannu Krosing [mailto:hannu@tm.ee] > > > > > > Hiroshi Inoue kirjutas E, 31.03.2003 kell 03:40: > > > > > > > 2) dynamic > > > > It can detect any changes made to the membership, order, > > > > and values of the result set after the cursor is opened. > > > > > > What would it mean in practice, i.e. if you are on the first > > > row in the > > > cursor and then update tha ORDER BY field so that your > row becomes the > > > last one, will the next FETCH move the cursor past end ? > > > > No. The row next to the old first row would be FETCHed. > > In what way would the _changes_made_to_the_order_ be reflected then ? Once a rowset is fetched, the membership or order in the rowset is fixed until the rowset is invalidated by another fetch operation and the fetch operation is executed for the rowset. > > > what happens, if the row you are on is removed from the > keyset, either > > > by current or any other backend ? > > > > The dynamic cursor doesn't see the row any longer. > > It seems to be doable with MVCC - "just" ;) check for visibility of > underlying tuples at each fetch. At least it does not seem any harder > for MVCC than for other CC methods. MVCC has no particular advantage at this point anyway. > > > > 3) keyset-driven > > > > It always detects changes to the values of rows. > > > > > > What about _new_ rows, > > > > It never detects new rows. > > Then I must have misunderstood the "can detect any changes made to the > membership, order, and values" part. I assumed that "any changes" wold > also include rows that magically become part of the query by either > changes in values or being inserted. It's a spec of dynamic cursors not of keyset-driven ones. > > > or rows that no more belong to the "keyset" ? > > > > They are the same as deleted ones. > > So they are no more visible to cursor ? Yes. regards, Hiroshi Inoue
В списке pgsql-hackers по дате отправления: