• Fujii Masao's avatar
    Move pg_lzcompress.c to src/common. · 40bede54
    Fujii Masao authored
    The meta data of PGLZ symbolized by PGLZ_Header is removed, to make
    the compression and decompression code independent on the backend-only
    varlena facility. PGLZ_Header is being used to store some meta data
    related to the data being compressed like the raw length of the uncompressed
    record or some varlena-related data, making it unpluggable once PGLZ is
    stored in src/common as it contains some backend-only code paths with
    the management of varlena structures. The APIs of PGLZ are reworked
    at the same time to do only compression and decompression of buffers
    without the meta-data layer, simplifying its use for a more general usage.
    
    On-disk format is preserved as well, so there is no incompatibility with
    previous major versions of PostgreSQL for TOAST entries.
    
    Exposing compression and decompression APIs of pglz makes possible its
    use by extensions and contrib modules. Especially this commit is required
    for upcoming WAL compression feature so that the WAL reader facility can
    decompress the WAL data by using pglz_decompress.
    
    Michael Paquier, reviewed by me.
    40bede54
Mkvcbuild.pm 24.5 KB