Re: question about access custom enum type from C

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: Dmitry Markman <dmarkman(at)mac(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: question about access custom enum type from C
Date: 2022-09-01 04:49:33
Message-ID: CAApHDvowBG3OYutgpZ_hZ+jspMa4jqYPDZ8ZTpvr1evisDv9TA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)mac(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitry Markman 2022-09-01 05:03:10 Re: question about access custom enum type from C
Previous Message Justin Pryzby 2022-09-01 04:47:53 Re: pg15b3: recovery fails with wal prefetch enabled