mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
Support the old signature of BRIN consistent function
Commita1c649d889
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 commit72ccf55cb9
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: Mark Dilger <hornschnorter@gmail.com> Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com> Reviewed-by: Masahiko Sawada <masahiko.sawada@enterprisedb.com> Reviewed-by: John Naylor <john.naylor@enterprisedb.com> Discussion: https://postgr.es/m/c1138ead-7668-f0e1-0638-c3be3237e812@2ndquadrant.com
This commit is contained in:
@ -476,6 +476,19 @@ typedef struct BrinOpcInfo
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><function>bool consistent(BrinDesc *bdesc, BrinValues *column,
|
||||
ScanKey key)</function></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Returns whether the ScanKey is consistent with the given indexed
|
||||
values for a range.
|
||||
The attribute number to use is passed as part of the scan key.
|
||||
This is an older backward-compatible variant of the consistent function.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><function>bool addValue(BrinDesc *bdesc, BrinValues *column,
|
||||
Datum newval, bool isnull)</function></term>
|
||||
|
Reference in New Issue
Block a user