• Tomas Vondra's avatar
    Support the old signature of BRIN consistent function · a681e3c1
    Tomas Vondra authored
    Commit a1c649d8 changed the signature of the BRIN consistent function
    by adding a new required parameter.  Treating the parameter as optional,
    which would make the change backwards incompatibile, was rejected with
    the justification that there are few out-of-core extensions, so it's not
    worth adding making the code more complex, and it's better to deal with
    that in the extension.
    
    But after further thought, that would be rather problematic, because
    pg_upgrade simply dumps catalog contents and the same version of an
    extension needs to work on both PostgreSQL versions. Supporting both
    variants of the consistent function (with 3 or 4 arguments) makes that
    possible.
    
    The signature is not the only thing that changed, as commit 72ccf55c
    moved handling of IS [NOT] NULL keys from the support procedures. But
    this change is backward compatible - handling the keys in exension is
    unnecessary, but harmless. The consistent function will do a bit of
    unnecessary work, but it should be very cheap.
    
    This also undoes most of the changes to the existing opclasses (minmax
    and inclusion), making them use the old signature again. This should
    make backpatching simpler.
    
    Catversion bump, because of changes in pg_amproc.
    
    Author: Tomas Vondra <tomas.vondra@postgresql.org>
    Author: Nikita Glukhov <n.gluhov@postgrespro.ru>
    Reviewed-by: default avatarMark Dilger <hornschnorter@gmail.com>
    Reviewed-by: default avatarAlexander Korotkov <aekorotkov@gmail.com>
    Reviewed-by: default avatarMasahiko Sawada <masahiko.sawada@enterprisedb.com>
    Reviewed-by: default avatarJohn Naylor <john.naylor@enterprisedb.com>
    Discussion: https://postgr.es/m/c1138ead-7668-f0e1-0638-c3be3237e812@2ndquadrant.com
    a681e3c1
pg_proc.dat 578 KB