From: Heikki Linnakangas on 23 Jun 2010 11:33 On 23/06/10 18:17, Leonardo F wrote: > in bufpage.h: > > "all blocks written out by an access method must be disk pages" > > but in > http://www.postgresql.org/docs/8.4/static/storage-page-layout.html > > "Actually, index access methods need not use this page format. All the > existing index methods do use this basic format, but the data kept on > index metapages usually doesn't follow the item layout rules." > > I'm not getting it: am I supposed to use the "disk page format" when > writing an index access method, or it's just a "good practice" because > it makes the handling easier? Given the docs it looks "recommended", > but the comment on the code sounds more "mandatory". It's recommened because it makes life easier. Even if you don't use the normal page format, I think you need to have the LSN at the beginning of the page. The rest is up to you. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
From: Tom Lane on 23 Jun 2010 14:24 Heikki Linnakangas <heikki.linnakangas(a)enterprisedb.com> writes: > On 23/06/10 18:17, Leonardo F wrote: >> I'm not getting it: am I supposed to use the "disk page format" when >> writing an index access method, or it's just a "good practice" because >> it makes the handling easier? Given the docs it looks "recommended", >> but the comment on the code sounds more "mandatory". > It's recommened because it makes life easier. Even if you don't use the > normal page format, I think you need to have the LSN at the beginning of > the page. The rest is up to you. The bufpage.h comment is ancient and might not be 100% gospel anymore. However, I believe the buffer manager does assume that any page in shared buffers has a standard page header including LSN. It definitely assumes there's an LSN, and I think we have validity checks on the other page header fields somewhere inside ReadBuffer. You don't however need to use the item-and-item-pointer-array structure if it's not useful to you. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
|
Pages: 1 Prev: testing plpython3u on 9.0beta2 Next: ECPG FETCH readahead |