• Heikki Linnakangas's avatar
    Extend cube on-disk format to pack points more tightly. · 08612f45
    Heikki Linnakangas authored
    If the lower left and upper right corners of a cube are the same, set a
    flag in the cube header, and only store one copy of the coordinates. That
    cuts the on-disk size into half for the common case that the cube datatype
    is used to represent points rather than boxes.
    
    The new format is backwards-compatible with the old one, so pg_upgrade
    still works. However, to get the space savings, the data needs to be
    rewritten. A simple VACUUM FULL or REINDEX is not enough, as the old
    Datums will just be moved to the new heap/index as is. A pg_dump and
    reload, or something similar like casting to text and back, will do the
    trick.
    
    This patch deliberately doesn't update all the alternative expected output
    files, as I don't have access to machines that produce those outputs. I'm
    not sure if they are still relevant, but if they are, the buildfarm will
    tell us and produce the diff required to fix it. If none of the buildfarm
    animals need them, they should be removed altogether.
    
    Patch by Stas Kelvich.
    08612f45
cubedata.h 1.55 KB