I wrote:
> Another possibility that just occurred to me is to call the validator
> like this:
>
> if (OidIsValid(fdwvalidator))
> {
> Datum valarg = result;
>
> /* pass a null options list as an empty array */
> if (DatumGetPointer(valarg) == NULL)
> valarg = construct_empty_array(TEXTOID);
> OidFunctionCall2(fdwvalidator, valarg, ObjectIdGetDatum(catalogId));
> }
> This would avoid messing with the semantics of empty options lists
> throughout foreigncmds.c, and also avoid requiring validators to deal
> with null arguments.
Not hearing any objections, I've fixed it that way.
regards, tom lane