Re: Backward reading
От | Gregory Stark |
---|---|
Тема | Re: Backward reading |
Дата | |
Msg-id | 87odb09xde.fsf@oxford.xeocode.com обсуждение исходный текст |
Ответ на | Re: Backward reading (Simon Riggs <simon@2ndquadrant.com>) |
Ответы |
Re: Backward reading
|
Список | pgsql-hackers |
"Simon Riggs" <simon@2ndquadrant.com> writes: > On Fri, 2008-02-01 at 19:25 +0100, mac_man2005@hotmail.it wrote: >> PostgreSQL allows "backward reading" tuples writing the tuple's length >> after and before the tuple proper, in case a 'randomAccess' is >> requested. >> >> Is there any example of backward reading tuples into PostgreSQL code? > > Don't think so, but we don't always use randomAccess anyway. Sounds like > we might be able to drop the length at the end of each tuple in those > cases... We already do. We only generate the "frozen" tape when we think it might be necessary. I think the easiest (possibly only?) way to trigger this case is to run the query in a cursor like: postgres=# set enable_indexscan = off; SET postgres=# explain select * from h order by i; QUERY PLAN ----------------------------------------------------------------Sort (cost=61772.22..62022.20 rows=99994 width=512) SortKey: i -> Seq Scan on h (cost=0.00..7666.94 rows=99994 width=512) (3 rows) postgres=# begin; BEGIN postgres=# declare c cursor for select * from h order by i; DECLARE CURSOR postgres=# fetch 5 from c;i | r ---+------1 | 103522 | 150343 | 919044 | 890585 | 87001 (5 rows) postgres=# fetch backward 5 from c;i | r ---+------4 | 890583 | 919042 | 150341 | 10352 (4 rows) -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's RemoteDBA services!
В списке pgsql-hackers по дате отправления: