public inbox for [email protected]
help / color / mirror / Atom feedFrom: Tom Lane <[email protected]>
To: Malcolm Matalka <[email protected]>
Cc: [email protected]
Subject: Re: Object IDs in Parse message
Date: Tue, 03 Sep 2019 16:24:39 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
Malcolm Matalka <[email protected]> writes:
> Hello, I'm implementing my own pgsql client for fun and I'm trying to
> understand how to send a Parse message. The final parameter to Parse is
> a series of Int32s with the description:
> Specifies the object ID of the parameter data type. Placing a zero here
> is equivalent to leaving the type unspecified.
> But where do I find the list of object IDs?
SELECT oid, typname FROM pg_type;
> If so, It's not clear how to express some things. For example there is
> a MONEYARRAYOID, but no MONEYOID.
For historical reasons, the macro for money's OID is CASHOID.
There's no grandfathered symbol for money[], though, so that
gets a name constructed per standard rules (cf form_pg_type_symbol
in genbki.pl).
However, I fail to see why a generic client would need to know that.
If you're hard-wiring OIDs into your code for anything beyond very
basic types like int4, you're probably doing it wrong. Remember
that PG is an extensible system and you may be called on to handle
queries that deal with non-built-in types, so even if you had
code for everything appearing in pg_type_d.h, it wouldn't be
exhaustive. Better to look up type OIDs at runtime. In the case
of Parse messages, you likely want to let the backend resolve
the parameter types anyway, ie just send zeroes.
regards, tom lane
view thread (6+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: Object IDs in Parse message
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox