On Tue, Dec 16, 2025 at 9:51 AM Amit Kapila <[email protected]> wrote: > > On Mon, Dec 15, 2025 at 5:11 PM Dilip Kumar <[email protected]> wrote:
> > We could do this as a first step. See the proposal in email [1] where > we have discussed having two options instead of one. The first option > will be conflict_log_format and the values would be log and table. In > this case, the table would be an internally generated one. > > [1] - > https://www.postgresql.org/message-id/CAA4eK1KwqE2y%3D_k5Xc%3Def0S5JXG2x%3DoeWpDJ%2B%3D5k6Anzaw2gdw%40mail.gmail.com So I have put more thought on this and here is what I am proposing 1) Subscription Parameter: Son in first version the subscription parameter will be named 'conflict_log_format' which will accept 'log/table/both' default option would be log. 2) If conflict_log_format = log is provided then we do not need to do anything as this would work by default 3) If conflict_log_format = table/both is provided then we will generate a internal table name i.e. conflict_log_table_$subid$ and the table will be created in the current schema 4) in pg_subscription we will still keep 2 field a) namespace id of the conflict log table b) the conflict log format = 'log/table'both' 5) If option is table/both the name can be generated on the fly whether we are creating the table or inserting conflict into the table. Question: 1) Shall we create a conflict log table in the current schema or we should consider anything else, IMHO the current schema should be fine and in the future when we add an option for conflict_log_table we will support schema qualified names as well? 2) In catalog I am storing the "conflict_log_format" option as a text field, is there any better way so that we can store in fixed format maybe enum value as an integer we can do e.g. from below enum we can store the integer value in system catalog for "conflict_log_format" field, not sure if we have done such think anywhere else? typedef enum ConflictLogFormat { CONFLICT_LOG_FORMAT_DEFAULT = 0, CONFLICT_LOG_FORMAT_LOG, CONFLICT_LOG_FORMAT_TABLE, CONFLICT_LOG_FORMAT_BOTH } ConflictLogFormat; -- Regards, Dilip Kumar Google
