Tom Lane wrote:
> Definitely a necessary fix, but you missed what I think is actually
> causing the crashes:
>
> if (PointerIsValid(DatumGetPointer(datum)))
> ! repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = ObjectIdGetDatum(datum);
>
> should be
>
> if (PointerIsValid(DatumGetPointer(datum)))
> ! repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = datum;
>
> ObjectIdGetDatum probably is zeroing the high-order half of the pointer
> datum.
Doh, how could I miss that, on the very next line :-)
> I committed this along with some other cosmetic fixes.
Thanks.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com