On 02/25/2017 01:39 PM, Andrew Dunstan wrote: > > On 02/25/2017 01:34 PM, Tom Lane wrote: >> Andrew Dunstan <andrew.duns...@2ndquadrant.com> writes: >>> On 02/25/2017 12:04 PM, Tom Lane wrote: >>>> I think it'd be better to leave DirectFunctionCallN alone and just invent >>>> a small number of CallerFInfoFunctionCallN support functions (maybe N=1 >>>> and N=2 would be enough, at least for now). >>> See attached. >> Yeah, I like this better, except that instead of >> >> + * The callee should not look at anything except the fn_mcxt and fn_extra. >> + * Anything else is likely to be bogus. >> >> maybe >> >> + * It's recommended that the callee only use the fn_extra and fn_mcxt >> + * fields, as other fields will typically describe the calling function >> + * not the callee. Conversely, the calling function should not have >> + * used fn_extra, unless its use is known compatible with the callee's. >> >> > > OK, Works for me. Thanks. >
This works for the btree_gin case. However, there's a difficulty for btree_gist - in the puicksplit routine the cmp function is passed to qsort() so there is no chance to pass it an flinfo to set up the call to the real comparison routine. Implementing a custom sort routine to work around the problem seems a bridge too far. I can;t think of an alternative off hand. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers