1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

Make UNKNOWN into an actual pseudo-type.

Previously, type "unknown" was labeled as a base type in pg_type, which
perhaps had some sense to it because you were allowed to create tables with
unknown-type columns.  But now that we don't allow that, it makes more
sense to label it a pseudo-type.  This has the additional effects of
forbidding use of "unknown" as a domain base type, cast source or target
type, PL function argument or result type, or plpgsql local variable type;
all of which seem like good holes to plug.

Discussion: https://postgr.es/m/CAH2L28uwwbL9HUM-WR=hromW1Cvamkn7O-g8fPY2m=_7muJ0oA@mail.gmail.com
This commit is contained in:
Tom Lane
2017-01-25 09:27:09 -05:00
parent 1e7c4bb004
commit d8d32d9a56
12 changed files with 26 additions and 17 deletions

View File

@ -160,8 +160,8 @@ CREATE [ OR REPLACE ] FUNCTION
</para>
<para>
Depending on the implementation language it might also be allowed
to specify <quote>pseudotypes</> such as <type>cstring</>.
Pseudotypes indicate that the actual argument type is either
to specify <quote>pseudo-types</> such as <type>cstring</>.
Pseudo-types indicate that the actual argument type is either
incompletely specified, or outside the set of ordinary SQL data types.
</para>
<para>
@ -199,7 +199,7 @@ CREATE [ OR REPLACE ] FUNCTION
can be a base, composite, or domain type,
or can reference the type of a table column.
Depending on the implementation language it might also be allowed
to specify <quote>pseudotypes</> such as <type>cstring</>.
to specify <quote>pseudo-types</> such as <type>cstring</>.
If the function is not supposed to return a value, specify
<type>void</> as the return type.
</para>