Andrew Dunstan <and...@dunslane.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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers