Re: question about access custom enum type from C - Mailing list pgsql-hackers

From David Rowley
Subject Re: question about access custom enum type from C
Date
Msg-id CAApHDvowBG3OYutgpZ_hZ+jspMa4jqYPDZ8ZTpvr1evisDv9TA@mail.gmail.com
Whole thread Raw
In response to question about access custom enum type from C  (Dmitry Markman <dmarkman@mac.com>)
Responses Re: question about access custom enum type from C
Re: question about access custom enum type from C
List pgsql-hackers
(I think this is a better question for the general mailing list)

On Thu, 1 Sept 2022 at 16:28, Dmitry Markman <dmarkman@mac.com> wrote:
>
> Hi, when I’m trying to access values of my custom enum type I created with
>
> create type colors as enum ('red', 'green', 'brown', 'yellow', 'blue');
>
> I’m getting oid as 16387 and I can see it stored as a chars

You might see the names if you query the table, but all that's stored
in the table is the numerical value.

https://www.postgresql.org/docs/current/datatype-enum.html states "An
enum value occupies four bytes on disk.".

> is number 16387 is always OID for enum type?

I'm not sure where you got that number from. Perhaps it's the oid for
the pg_type record? The following would show it.

select oid,typname from pg_type where typname = 'colors';

> if not how I can get information about type of the result if it’s custom enum type

I'm not sure what you mean by "the result".  Maybe pg_typeof(column)
might be what you want? You can do: SELECT pg_typeof(myenumcol) FROM
mytable;

David



pgsql-hackers by date:

Previous
From: Justin Pryzby
Date:
Subject: Re: pg15b3: recovery fails with wal prefetch enabled
Next
From: Dmitry Markman
Date:
Subject: Re: question about access custom enum type from C