From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | CREATE CAST too strict? |
Date: | 2008-07-09 14:09:35 |
Message-ID: | 200807091609.35876.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I noticed that some of the entries in pg_cast are shaped in a way that CREATE
CAST wouldn't let pass. For example, the cast from cidr to varchar is
effectively defined as
CREATE CAST (cidr AS varchar) WITH FUNCTION text(inet) AS ASSIGNMENT;
but CREATE CAST wouldn't allow this because the argument type of the function
doesn't match the source type of the cast and the return type of the function
doesn't match the target type. (These are two separate tests.)
I propose that we relax these two checks to test for binary-coercibility
instead, which is effectively what is expected and required here anyway.
The application is that I would like to create alias types for compatibility
that have a different name but behave mostly like an existing type. For that
I would like to reuse a few of these cast functions. Pretty much exactly how
text vs. varchar is handled. Citext might actually also benefit.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-07-09 14:45:07 | Re: Auto-explain patch |
Previous Message | Zdenek Kotala | 2008-07-09 13:18:32 | Re: [WIP] patch - Collation at database level |