Re: PgOutput Replication Message Format - Differentiate between explicit NULL and Omitted Columns during Insert - Mailing list pgsql-general

From Tom Lane
Subject Re: PgOutput Replication Message Format - Differentiate between explicit NULL and Omitted Columns during Insert
Date
Msg-id 1834632.1680704685@sss.pgh.pa.us
Whole thread Raw
In response to PgOutput Replication Message Format - Differentiate between explicit NULL and Omitted Columns during Insert  (Pranav Hegde <pranavh4@gmail.com>)
List pgsql-general
Pranav Hegde <pranavh4@gmail.com> writes:
> Currently in the PgOutput messages for Insert statements, there is no way
> to differentiate if the column was explicitly set to null in the insert
> statement, or whether that column was omitted in the insert statement and
> thus set to null (or default value)

Nope.  Replication works at the data level, it has no idea how that
data was formed originally.

> Thus we are not able to identify which column was explicitly set to null
> and which column was set to the default value.
> This causes issues when we are parsing the message, especially in libraries
> such as Debezium, where it returns the default value for the column, even
> though in the actual SQL query we set that column to be explicitly null.

If you have code that changes the data supplied, that code is wrong.
We are not likely to change the replication protocol to support it.

            regards, tom lane



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Possible old and fixed bug in Postgres?
Next
From: Steve Rogerson
Date:
Subject: Re: Possible old and fixed bug in Postgres?