PostgreSQL is one of the few platforms (actually, it is the only one known) that clearly implements
null to be different from the empty string “”. Oracle does it somewhat, depending on the context.
Given the amount of different platforms, we have found it necessary for Invantive SQL in this case to make
null and the empty string have the same semantics. Specifically on PostgreSQL this can lead to the error
itgenrst007 about a missing value when inserting an empty string in a not-null column.
I am sorry, but the logic to rewrite the empty string to null is deeply integrated and there is no easy possibility to circumvent it. Although it can be an annoyance, the problem only occurs on specific scenarios on PostgreSQL and the range of issues on other platforms due to making the two values have different semantics are significantly larger.
The following workarounds might be possible outside of Invantive:
- make the column nullable;
- add a trigger on the PostgreSQL table to rewrite
null into the empty PostgreSQL-string again (possible taking the client program into consideration whether to do this).