> > More to the point, I think we have to assume old-style interface if we
> > see ... LANGUAGE 'C' with no other decoration, because any other
> > assumption is guaranteed to break all existing user-defined functions.
>
> Just successfully loading an old-style C function doesn't
> guarantee that it works anyway. I pointed out before that the
> changes due to TOAST require each function that takes
> arguments of varlen types to expect toasted values. Worst
> case a dump might reload and anything works fine, but a month
> later the first toasted value appears and the old-style C
> function corrupts the data without a single warning.
>
> We need to WARN, WARN and explicitly WARN users of selfmade C
> functions about this in any possible place!
Imho the better solution would be, to always detoast values before we pass
them to old-style C-functions. And toast the return value when the function returns.
Andreas