> Well, it is strange, but it's acting per SQL spec.
> As stated at [1]:
>> If the expression is row-valued, then IS NULL is true when the row
>> expression itself is null or when all the row's fields are null, while
>> IS NOT NULL is true when the row expression itself is non-null and all
>> the row's fields are non-null. Because of this behavior, IS NULL and
>> IS NOT NULL do not always return inverse results for row-valued
>> expressions; in particular, a row-valued expression that contains both
>> null and non-null fields will return false for both tests.
> The fact that the added column is of XML type isn't relevant here; what's relevant is that it has a null value.
> regards, tom lane
> [1] https://www.postgresql.org/docs/current/functions-comparison.html
Thanks for the Explanation. The solution is clear then - just test part of the record or "flatten" the record with a
castto text.
Best regards,
Wilm.