On 14.02.22 10:16, Amit Kapila wrote:
I think exposing LSN is a better approach as it doesn't have the dangers of wraparound. And, I think users can use it with the existing function pg_replication_origin_advance() which will save us from adding additional code for this feature. We can explain/expand in docs how users can use the error information from view/error_logs and use the existing function to skip conflicting transactions. We might want to even expose error_origin to make it a bit easier for users but not sure. I feel the need for the new syntax (and then added code complexity due to that) isn't warranted if we expose error_LSN and let users use it with the existing functions.
Well, the whole point of this feature is to provide a higher-level interface instead of pg_replication_origin_advance(). Replication origins are currently not something the users have to deal with directly. We already document that you can use pg_replication_origin_advance() to skip erroring transactions. But that seems unsatisfactory. It'd be like using pg_surgery to fix unique constraint violations.