Обсуждение: pgsql: Add copy/equal support for XID lists

Поиск
Список
Период
Сортировка

pgsql: Add copy/equal support for XID lists

От
Alvaro Herrera
Дата:
Add copy/equal support for XID lists

Commit f10a025cfe97 added support for List to store Xids, but didn't
handle the new type in all cases.  Add some obviously necessary pieces.
As far as I am aware, this is all dead code as far as core code is
concerned, but it seems unacceptable not to have it in case third-party
code wants to rely on this type of list.  (Some parts of the List API
remain unimplemented, but that can be fixed as and when needed -- see
lack of list_intersection_oid, list_deduplicate_int as precedents.)

Discussion: https://postgr.es/m/20220708164534.nbejhgt4ajz35p65@alvherre.pgsql

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/5ca0fe5c8ad7987beee95669124c7e245f2816d8

Modified Files
--------------
src/backend/nodes/copyfuncs.c                    | 5 +++--
src/backend/nodes/equalfuncs.c                   | 8 ++++++++
src/test/modules/test_oat_hooks/test_oat_hooks.c | 3 +++
3 files changed, 14 insertions(+), 2 deletions(-)


Re: pgsql: Add copy/equal support for XID lists

От
Tom Lane
Дата:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> Add copy/equal support for XID lists

What about outfuncs/readfuncs?  I see that you fixed _outList,
but not its caller outNode:

    else if (IsA(obj, List) || IsA(obj, IntList) || IsA(obj, OidList))
        _outList(str, obj);

and the LEFT_PAREN case in nodeRead() doesn't know what to do either.

            regards, tom lane



Re: pgsql: Add copy/equal support for XID lists

От
Alvaro Herrera
Дата:
On 2022-Jul-12, Tom Lane wrote:

> What about outfuncs/readfuncs?  I see that you fixed _outList,
> but not its caller outNode:
> 
>     else if (IsA(obj, List) || IsA(obj, IntList) || IsA(obj, OidList))
>         _outList(str, obj);
> 
> and the LEFT_PAREN case in nodeRead() doesn't know what to do either.

Hmm, true -- naively grepping for OidList wasn't enough (moreso when I
failed to notice one occurrence).  This patch closes the holes you
mentioned.  I haven't found any others yet.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"La vida es para el que se aventura"

Вложения