Re: Get TupleDesc for extension-defined types

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Florents Tselai <florents(dot)tselai(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Get TupleDesc for extension-defined types
Date: 2024-09-18 10:09:04
Message-ID: CAFj8pRBNxc41dPC3JkCQKZSAnOH7s7zCHHNb+YTRZ0dyUCzmxQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

st 18. 9. 2024 v 9:04 odesílatel Florents Tselai <florents(dot)tselai(at)gmail(dot)com>
napsal:

> Correct me if I'm wrong,
> but for an extension that defines composite types,
> there's currently no easy way to get a TupleDesc, even for its own types.
>
> Something like
> TupleDesc get_extension_type_tupledesc(const char *extname, const char
> *typname)
>
> Here's a routine I've stolen borrowed from pramsey's code and have been
> using ever since.
>
> Could this be exposed in extension.h ? (probably without the version check)
>

I don't think this functionality is generally useful. Wrapping
TypeGetTupleDesc(typoid, NIL) is very specific, and probably this code
should be inside the extension.

Different question is API for searching in system catalog and dependencies.
I can imagine some functions like

Oid extid = get_extension_id(extname);
Oid objid = get_extension_object_id(extid, schema_can_be_null, name,
TYPEOID); // can be used for routine, table, ...

tupdesc = TypeGetTupleDesc(objid, NIL);

Regards

Pavel

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2024-09-18 10:11:49 Re: Get TupleDesc for extension-defined types
Previous Message shveta malik 2024-09-18 10:01:16 Re: Introduce XID age and inactive timeout based replication slot invalidation