Allow REPLICA IDENTITY with CREATE TABLE statement

From: Kirill Reshke <reshkekirill(at)gmail(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Allow REPLICA IDENTITY with CREATE TABLE statement
Date: 2025-08-07 13:01:11
Message-ID: CALdSSPh5qtZWe5Hww4G361oZZjabQRR4H7RV6s2EBbVJNUqtew@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers!

In the nearby thread[0], enhancements for CREATE TABLE LIKE/REPLICA
IDENTITY were proposed.

> To me, it makes sense to copy the replica identity definition if
INCLUDING INDEXES or INCLUDING CONSTRAINTS is given.

I agree that this can be beneficial.

But I decided to start with some simpler task, which is also sane (to
my belief) and can be used to improve user experience with this
feature. This is to allow you to specify REPLICA IDENTITY with CREATE
TABLE statement. Currently, it requires 2 (two) DDL statements to
define RI for relation (that is CREATE TABLE + ALTER TABLE). My patch
indent to enhance this.

This was actually proposed 12 years ago in the original thread, see
[1]. But at that time this was not considered vital for logical
replication to work, so was abandoned.

My v1 patch misses documentation and tests, yes, but this is just the
initial version to receive feedback, if this has a chance of being
committed or not, and general thoughts on the subject.

WDYT?

[0] https://www.postgresql.org/message-id/202508061804.wwf4zc7npayp%40alvherre.pgsql
[1] https://www.postgresql.org/message-id/20131021181629.GI2968%40awork2.anarazel.de
--
Best regards,
Kirill Reshke

Attachment Content-Type Size
0001-Allow-to-explicitly-set-REPLICA-IDENTITY-with-relati.patch application/octet-stream 7.4 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Xuneng Zhou 2025-08-07 13:01:13 Re: Proposal: Limitations of palloc inside checkpointer
Previous Message Dilip Kumar 2025-08-07 12:35:09 Re: Conflict detection for update_deleted in logical replication