Обсуждение: Are OIDs for pg_types constant?
Hi everyone,
I am writing a program that behaves like a Postgres backend and can see that if I select oid from pg_type that the type old’s could be returned in the Row Description message for the field’s data type and that seems to work.
However, I didn’t read anywhere that these are guaranteed to be constant/stable so I’d like to know if this is the case. For example: is the old for pg_type bool = 16 on every instance of Postgres?
Also does there exist any documentation decoding what the pg_type fields all mean?
Please let me know, thanks!
-Tyler
Tyler Brock <tyler.brock@gmail.com> writes: > I am writing a program that behaves like a Postgres backend and can see > that if I select oid from pg_type that the type old’s could be returned in > the Row Description message for the field’s data type and that seems to > work. > However, I didn’t read anywhere that these are guaranteed to be > constant/stable so I’d like to know if this is the case. For example: is > the old for pg_type bool = 16 on every instance of Postgres? Hand-assigned OIDs (those below 10000) are stable in released versions. Those above 10K might vary across installations or PG versions. You might find it interesting to read https://www.postgresql.org/docs/current/system-catalog-initial-data.html#SYSTEM-CATALOG-OID-ASSIGNMENT > Also does there exist any documentation decoding what the pg_type fields > all mean? https://www.postgresql.org/docs/current/catalog-pg-type.html regards, tom lane
Thank you Tom, this is exactly what I was looking for.
-Tyler
-Tyler
On Apr 20, 2022 at 11:23:59 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Tyler Brock <tyler.brock@gmail.com> writes:I am writing a program that behaves like a Postgres backend and can seethat if I select oid from pg_type that the type old’s could be returned inthe Row Description message for the field’s data type and that seems towork.However, I didn’t read anywhere that these are guaranteed to beconstant/stable so I’d like to know if this is the case. For example: isthe old for pg_type bool = 16 on every instance of Postgres?
Hand-assigned OIDs (those below 10000) are stable in released versions.
Those above 10K might vary across installations or PG versions. You
might find it interesting to read
https://www.postgresql.org/docs/current/system-catalog-initial-data.html#SYSTEM-CATALOG-OID-ASSIGNMENTAlso does there exist any documentation decoding what the pg_type fieldsall mean?
https://www.postgresql.org/docs/current/catalog-pg-type.html
regards, tom lane