heikki@postgresql.org (Heikki Linnakangas) writes:
> Don't use OidIsValid to check the return value of transformGenericOptions,
> because transformGenericOptions returns an array, not an Oid. I'm not
> sure if this fixes the crashes seen in buildfarm, but it should be fixed
> anyway.
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.
I committed this along with some other cosmetic fixes.
Somebody still needs to fix the MSVC build scripts...
regards, tom lane