Domain casting still not working right?
This particular case arose during work on the information schema:
-- good
select cast(55::oid AS varchar);
varchar
---------
55
(1 row)
-- bad
create domain test as varchar;
CREATE DOMAIN
select cast(55::oid AS test);
ERROR: Cannot cast type oid to test
--
Peter Eisentraut peter_e@gmx.net
It's because of the coerce_to_target_type string hack:
/*
* String hacks to get transparent conversions for char and varchar:
* if a coercion to text is available, use it for forced coercions to
* char(n) or varchar(n).
*
* This is pretty grotty, but seems easier to maintain than providing
* entries in pg_cast that parallel all the ones for text.
*/
This hack works on the provided target type and not on the base target
type. Attached is a patch to goto the base type for this hack (fix the
if)
On Fri, 2003-05-23 at 18:35, Peter Eisentraut wrote:
This particular case arose during work on the information schema:
-- good
select cast(55::oid AS varchar);
varchar
---------
55
(1 row)-- bad
create domain test as varchar;
CREATE DOMAIN
select cast(55::oid AS test);
ERROR: Cannot cast type oid to test
--
Rod Taylor <rbt@rbt.ca>
PGP Key: http://www.rbt.ca/rbtpub.asc