Re: get_cast_func syscache utility function

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

In response to

Responses

Browse pgsql-hackers by date

  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