Bacause MAX_TOAST_CHUNK_SIZE is related on page layout version I need have toast chunk size more flexible.

Attached patch add three new columns into pg_class

relblocksize - which is always BLCKSZ. I put it there for fullness, but i could be use in future development to specify different BLCKSZ per relation.

relsegsize - currently it is always RELSEG_FILE. I performed basic adjustment in smgr.c and md.c. Now only smgropen contains reference to RELSEG_FILE. The problem how to do it fully dynamic is how to pass information rel_rd->relsegsize down into smgropen. One idea is to extend relfilenode, but I'm not sure about it.

relmaxitemsize - it is set to TOAST_MAX_CHUNK_SIZE. Other relation has this value set to zero for now. toast functions are fully aware about this setting and use it. This column will be convert to int2vector during pg_upgrade development (I need to track information for each page version).

Additional work could be add CRATE TABLE ... WITH chunksize=xxxx

Patch requires increase control file version and catalog version.

        thanks for your comments
                        Zdenek

--
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql

Attachment: pg_class.patch.gz
Description: GNU Zip compressed data

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

Reply via email to