The following bug has been logged on the website:
Bug reference: 12108
Logged by: OndÅej Bouda
Email address: bouda@edookit.com
PostgreSQL version: 9.3.5
Operating system: Windows 7
Description:
According to an older discussion [1], shell types may only be used by
functions implemented in C. Indeed, in current versions, functions in, e.g.,
SQL or PL/pgSQL cannot be defined if an argument type or the return type is
just a shell type.
This is not mentioned in the documentation, however. On the contrary, the
CREATE TYPE documentation suggests creating a shell type as the "tricky" way
to define a range type with a canonical function. Neither CREATE FUNCTION
documentation mentions such a limitation. Thus, when implementing an SQL or
PL/pgSQL prototype for some new canonical function, one gets stuck on an
unexpected error.
I suggest mentioning the limitation on the CREATE TYPE page, in the
paragraph saying how to specify the canonical function.
Regards,
OndÅej Bouda
[1]
http://postgresql.nabble.com/Chicken-egg-problem-with-range-types-td5717030.html