• Tom Lane's avatar
    Allow no-op GiST support functions to be omitted. · d3a4f89d
    Tom Lane authored
    There are common use-cases in which the compress and/or decompress
    functions can be omitted, with the result being that we make no
    data transformation when storing or retrieving index values.
    Previously, you had to provide a no-op function anyway, but this
    patch allows such opclass support functions to be omitted.
    
    Furthermore, if the compress function is omitted, then the core code
    knows that the stored representation is the same as the original data.
    This means we can allow index-only scans without requiring a fetch
    function to be provided either.  Previously you had to provide a
    no-op fetch function if you wanted IOS to work.
    
    This reportedly provides a small performance benefit in such cases,
    but IMO the real reason for doing it is just to reduce the amount of
    useless boilerplate code that has to be written for GiST opclasses.
    
    Andrey Borodin, reviewed by Dmitriy Sarafannikov
    
    Discussion: https://postgr.es/m/CAJEAwVELVx9gYscpE=Be6iJxvdW5unZ_LkcAaVNSeOwvdwtD=A@mail.gmail.com
    d3a4f89d
gistutil.c 24.8 KB