I think the proposed idea of applying record::text explicit coercion to a whole-row reference in the IS NOT NULL condition in the CASE WHEN conversion would work as expected as you explained, but I'm concerned that the cost wouldn't be negligible when the foreign table has a lot of columns.
That's right, if the foreign server doesn't optimize the case for IS NOT NULL, which it doesn't :)
I am happy to use any cheaper means e.g a function which counts number of columns in a record. All we need here is a way to correctly identify when a record is null and not null in the way we want (as described upthread). I didn't find any quickly. Do you have any suggestions?
--
Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company