1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Simplify the implementations of the to_reg* functions.

Given the soft-input-error feature, we can reduce these functions
to be just thin wrappers around a soft-error call of the
corresponding datatype input function.  This means less code and
more certainty that the to_reg* functions match the normal input
behavior.

Notably, it also means that they will accept numeric OID input,
which they didn't before.  It's not clear to me if that omission
had more than laziness behind it, but it doesn't seem like
something we need to work hard to preserve.

Discussion: https://postgr.es/m/3910031.1672095600@sss.pgh.pa.us
This commit is contained in:
Tom Lane
2022-12-27 12:33:04 -05:00
parent 858e776c84
commit 3ea7329c9a
2 changed files with 63 additions and 159 deletions

View File

@ -24100,8 +24100,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regclass</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
@ -24118,8 +24117,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regcollation</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
@ -24136,8 +24134,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regnamespace</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
@ -24154,8 +24151,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regoper</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found or is ambiguous. Also unlike the cast, this does not accept
a numeric OID as input.
not found or is ambiguous.
</para></entry>
</row>
@ -24172,8 +24168,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regoperator</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
@ -24190,8 +24185,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regproc</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found or is ambiguous. Also unlike the cast, this does not accept
a numeric OID as input.
not found or is ambiguous.
</para></entry>
</row>
@ -24208,8 +24202,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regprocedure</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
@ -24226,8 +24219,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regrole</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
@ -24244,8 +24236,7 @@ SELECT collation for ('foo' COLLATE "de_DE");
obtained by casting the string to type <type>regtype</type> (see
<xref linkend="datatype-oid"/>); however, this function will return
<literal>NULL</literal> rather than throwing an error if the name is
not found. Also unlike the cast, this does not accept
a numeric OID as input.
not found.
</para></entry>
</row>
</tbody>