[HACKERS] access method: are disk pages mandatory?

2010-06-23 Thread Leonardo F
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.




-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] access method: are disk pages mandatory?

2010-06-23 Thread Heikki Linnakangas

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@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] access method: are disk pages mandatory?

2010-06-23 Thread Tom Lane
Heikki Linnakangas heikki.linnakan...@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@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers