On 06/29/2011 05:34 PM, Joe Conway wrote:
> The third key passed to SearchSysCache is CStringGetTextDatum(provider).
> Ultimately FunctionCall2Coll gets called with collation == 0 and
> varstr_cmp fails due to the ambiguity.
> 
> Is there something new that should be used in place of
> CStringGetTextDatum that would convey a collation here?

(Sorry about replying to myself again...)

In fmgr.h we have:

8<-------------------------
/* These macros allow the collation argument to be omitted (with a
default of
 * InvalidOid, ie, no collation).  They exist mostly for backwards
 * compatibility of source code.
 */
#define DirectFunctionCall1(func, arg1) \
        DirectFunctionCall1Coll(func, InvalidOid, arg1)
#define DirectFunctionCall2(func, arg1, arg2) \
        DirectFunctionCall2Coll(func, InvalidOid, arg1, arg2)
#define DirectFunctionCall3(func, arg1, arg2, arg3) \
        DirectFunctionCall3Coll(func, InvalidOid, arg1, arg2, arg3)
[...]
8<--------------------------

Perhaps instead of InvalidOid here we should be using DEFAULT_COLLATION_OID?

Joe

-- 
Joe Conway
credativ LLC: http://www.credativ.us
Linux, PostgreSQL, and general Open Source
Training, Service, Consulting, & 24x7 Support

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to