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

From Dmitry Markman
Subject Re: question about access custom enum type from C
Date
Msg-id 328C03C8-B08B-4259-85B1-5EAF400DB3BE@mac.com
Whole thread Raw
In response to Re: question about access custom enum type from C  (David Rowley <dgrowleyml@gmail.com>)
List pgsql-hackers
Hi David, thanks a lot for your answer

I got that number from

PQparamtype

I already see that 16387 is not a ‘constant’, if I have few custom types I got different numbers for them

thanks

dm



On Sep 1, 2022, at 12:49 AM, David Rowley <dgrowleyml@gmail.com> wrote:

(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: David Rowley
Date:
Subject: Re: question about access custom enum type from C
Next
From: Kyotaro Horiguchi
Date:
Subject: Re: pg15b3: recovery fails with wal prefetch enabled