From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: get_cast_func syscache utility function |
Date: | 2014-11-05 15:10:45 |
Message-ID: | 2425.1415200245@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> On 11/04/2014 01:45 PM, Tom Lane wrote:
>> In short, I'd rather see this addressed through functions with slightly
>> higher-level APIs that are capable of covering more cases. In most cases
>> it'd be best if callers were using find_coercion_pathway() rather than
>> taking shortcuts.
> Well, then, do we really need a wrapper at all? Should we just be doing
> something like this?
> if (typoid >= FirstNormalObjectId)
> {
> Oid castfunc;
> CoercionPathType ctype;
> ctype = find_coercion_pathway(JSONOID, typoid,
> COERCION_EXPLICIT, &castfunc);
> if (ctype == COERCION_PATH_FUNC && OidIsValid(castfunc))
> {
> *tcategory = JSONTYPE_CAST;
> *outfuncoid = castfunc;
> }
> }
Well, of course, the question that immediately raises is why isn't this
code handling the other possible CoercionPathTypes ;-). But at least
it's pretty obvious from the code that you are ignoring such cases,
so yes I think this is better than what's there now.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2014-11-05 15:47:28 | Order of views in stats docs |
Previous Message | Petr Jelinek | 2014-11-05 15:07:24 | Re: Sequence Access Method WIP |