On Thu, Jan 23, 2014 at 2:28 AM, Heikki Linnakangas <[email protected]> wrote: > Compress GIN posting lists, for smaller index size. > > GIN posting lists are now encoded using varbyte-encoding, which allows them > to fit in much smaller space than the straight ItemPointer array format used > before. The new encoding is used for both the lists stored in-line in entry > tree items, and in posting tree leaf pages. > > To maintain backwards-compatibility and keep pg_upgrade working, the code > can still read old-style pages and tuples. Posting tree leaf pages in the > new format are flagged with GIN_COMPRESSED flag, to distinguish old and new > format pages. Likewise, entry tree tuples in the new format have a > GIN_ITUP_COMPRESSED flag set in a bit that was previously unused. > > This patch bumps GIN_CURRENT_VERSION from 1 to 2. New indexes created with > version 9.4 will therefore have version number 2 in the metapage, while old > pg_upgraded indexes will have version 1. The code treats them the same, but > it might be come handy in the future, if we want to drop support for the > uncompressed format.
I failed to compile HEAD because, ISTM, of this patch. ginvacuum.c:34: error: redefinition of typedef 'GinVacuumState' ../../../../src/include/access/gin_private.h:715: error: previous declaration of 'GinVacuumState' was here make[4]: *** [ginvacuum.o] Error 1 make[3]: *** [gin-recursive] Error 2 make[2]: *** [access-recursive] Error 2 make[2]: *** Waiting for unfinished jobs.... $ uname -a Darwin test.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 Regards, -- Fujii Masao -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
