public inbox for [email protected]
help / color / mirror / Atom feedFrom: Shlok Kyal <[email protected]>
To: Dilip Kumar <[email protected]>
Cc: Amit Kapila <[email protected]>
Cc: vignesh C <[email protected]>
Cc: Nisha Moond <[email protected]>
Cc: shveta malik <[email protected]>
Cc: Peter Smith <[email protected]>
Cc: Masahiko Sawada <[email protected]>
Cc: Bharath Rupireddy <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: Proposal: Conflict log history table for Logical Replication
Date: Mon, 29 Jun 2026 16:06:10 +0530
Message-ID: <CANhcyEVf-Yscauc6S6bPikkX7NN8pF3gKDo-szbnEOxeHRwsHg@mail.gmail.com> (raw)
In-Reply-To: <CAFiTN-v=-hNgJ4LSHBO9XCGzYe1gBeKEyNM4j2B4XV7HayMrsA@mail.gmail.com>
References: <CAFiTN-u5D5o_AGNbHRZHaOqAMWkxLf+hSk_r9X3gv6HbLOB5+g@mail.gmail.com>
<CALj2ACViThGQDYi-yeqUeHqG2Pozn2AiyvtDtjE6zhhbM0KsEA@mail.gmail.com>
<CAA4eK1+44b3vd_OWfiaVNtjf5Njb5cek09pmKRmttBByeg0NoA@mail.gmail.com>
<CAFiTN-v3L0WacCDx5dkOSonaZQbJfstXL4HrCPD1ahRdUsRnSg@mail.gmail.com>
<CALj2ACW63uuxh0fSoxEAF8OMWhz1dJKSkp268WJDzf5BUqCf5g@mail.gmail.com>
<CAFiTN-s9WWLOhW1TO27NtJwGf0bh2+MWyp3NEkZFeN_S5_p_rA@mail.gmail.com>
<CAA4eK1LxnsEx5sMbQkK5MHAgXKPROMQXQ0n=fKMwz+UsfKQaMQ@mail.gmail.com>
<CAD21AoDj+c4LXf2y4ESR-gVyv9d8V0G4R8R9pn-PcmT5zPzYcg@mail.gmail.com>
<CAA4eK1KokmAwNOL6bS-ip_E3F96PiQTjC4j-M+5vD1T6uUyi3Q@mail.gmail.com>
<CAFiTN-vFKE8E_N6h+peX9DP92mxCeFdm5A9Esn4DkLmNcZ-dOA@mail.gmail.com>
<CAFiTN-shLYf-fOTQ_dBf3Xfx05gxs_8d93MHZXyyz6w2Bg5geQ@mail.gmail.com>
<CAFiTN-tEgkKQHUikn6iBFCYf7XOObR7ncUq=OVh7WEk=6P4ymw@mail.gmail.com>
<CAFiTN-tQiakd8m+-d6WN6RpJXSv_JcropZ2oGzme4d1JudQhYg@mail.gmail.com>
<CAJpy0uDKbYWt+YPADj=4fHEvrGEWgnG1n_YsiGT_EZiZf0VSAw@mail.gmail.com>
<CAFiTN-t82BiXen+HfdR9jZyOpuSO92xonnUK=khXsiZWBfOxMA@mail.gmail.com>
<CAJpy0uAu2paxGAEffD=vaBTW9Jqbtxxawb8K8FgiASfeKPnGog@mail.gmail.com>
<CAJpy0uC0ZWgHOivJ102A1fMkppwK3RuSMafRPKyjwkmJrjhVUw@mail.gmail.com>
<CAFiTN-vFV9-zajrwjYHYyFnyQsooOAXW4CpxB5f-iT3APjOtoQ@mail.gmail.com>
<CAJpy0uBeU1dZgaqsSVKc=P=EVUKxRgVuHR8jDXFL-HLibbE-kQ@mail.gmail.com>
<CAA4eK1+FOkOxhzVLAnDymoNjp4i98H-L1+ZsWDgJEv-ndnTzTA@mail.gmail.com>
<CAFiTN-sVK6Bp+BawCJU_WpAXQSTX4OkKmce5EE4YNBgD-XSjZw@mail.gmail.com>
<CAA4eK1LbjV0bctib9wUnBpEkC+2rZFPnGuRtrKuc5AtUAzum+A@mail.gmail.com>
<CAFiTN-vq50N3QP9p3_SH+tJ8Pn=uRDb0X4qEcQZYcGW9AX88rQ@mail.gmail.com>
<CAFiTN-u3+zRGPESP5kUUfa6NxaWh1HL-gd1225KJ0Uvzi1urow@mail.gmail.com>
<CAA4eK1L4iNk6mNTC83PbYrRfUdtivH4U961PkdFfOO7mvc=USg@mail.gmail.com>
<CAFiTN-v+Mh64UfR5zb5rwgyGm6HS80XRSZ_XeaWkg8=+s9o3Kg@mail.gmail.com>
<CAFiTN-s3ZFHteQsiC3H4=AjTWxuwN-w69XQ3xL5X6YOMTua4pA@mail.gmail.com>
<CAJpy0uDe724nY59j-8hMapZ_Fru1Wo-NucF4Ea1B3Jrw=+J+UQ@mail.gmail.com>
<CAFiTN-uR=86L_5tyiA7n73EXCSCuDfQKfL5O=c8n7zZom8_ONQ@mail.gmail.com>
<CAD21AoDfOS-J0M9WbM3D20eGbSPzbfLQ-9XoYkxO4AZ9twqyvg@mail.gmail.com>
<CAFiTN-vMTg2X7vwfHLr5Gvy8ViV63_iaEcpHmM8V5GpA9-u8cg@mail.gmail.com>
<CAA4eK1+b2Ws0e_ZYJsgZAPn7VWndxAK_YM_QMKcfXst3e7F6Jg@mail.gmail.com>
<CAFiTN-v6hFKMPrSyTBsz=AtEETYMbOxrqvhZJsPQqKgQc4WCLw@mail.gmail.com>
<CAA4eK1KV3rYkaxys5fh-PtE9kq5xrFbiaRpOSPoRgQG494ek+g@mail.gmail.com>
<CAFiTN-utvu=QjY1QQ1a_TvkpkpvesMWo9M8wTFYLaOTPdpOJvw@mail.gmail.com>
<CAA4eK1+HoSOEqNwT3twArPNx4_D7hSUoEg2LnYhX8n9iUwhXgQ@mail.gmail.com>
<CAFiTN-tqmsfW0Sk=1RhzuduxqLrf9KEc8VOvBae+4aYxWTJwuA@mail.gmail.com>
<CAA4eK1JmCQ=DHe3HsqpX+P3mGDUd_Z7E7oAxdstK6822W6tuCw@mail.gmail.com>
<CAFiTN-uE4eAUYewuq3c5deAt3TtVork+H6rkUHRv68cOGr5rmQ@mail.gmail.com>
<CAFiTN-sJbhPX+LbA8YuQeYJpfGA2XA+OKXf8jCm04RoJOyzLvw@mail.gmail.com>
<CAJpy0uBPOyWj9itFjHzGXfrUuYS8KGmAvgdcV_9FPjWZ0EZz_w@mail.gmail.com>
<CAFiTN-s=iLE4qM4qmw9yXKqW09R_c_HqaSGeZXJ2EaTVfXss+g@mail.gmail.com>
<CAA4eK1KYo0vZpPSRc_4gVpa06-J39gxjs3tHFyckgkBfYJSfFA@mail.gmail.com>
<CAFiTN-vrKc6OWzrg6yvpwYcj79k=zkrDp3uwiZzjwrWLJAq6tw@mail.gmail.com>
<CAA4eK1LmvrfEgn1NUZZ=E3yMCjQdNZ5=_SBEry73-EmF6jM_PQ@mail.gmail.com>
<CAFiTN-vjfub5b3PqPQzfOw9BSjm8jt28ott+Hoz9CrRxJHzYkg@mail.gmail.com>
<CAFiTN-v=ANapYvRK+SOy2wJb4CSuD6Vb6_bTGuReM9Dv+3tucA@mail.gmail.com>
<CALDaNm1zEYoSdf2Ns-=UJRw95E5sbfpB0oaNUWtRJN27Q1Knhw@mail.gmail.com>
<CALDaNm3USsXVNBsfdpkp60HVgrTV4taWMk1xZYNBa7QUF=V0jg@mail.gmail.com>
<CAFiTN-sNg9ghLNkB2Kn0SwBGOub9acc99XZZU_d5NAcyW-yrEg@mail.gmail.com>
<CAJpy0uAF3EYcYdpTHdKMeXfvaPbNvnWrZUATrSLL1hqjao=33A@mail.gmail.com>
<CAFiTN-uikggCKp2LscTorKY5d3KF9j93DW0xebDcRX86G+ZsSw@mail.gmail.com>
<CAJpy0uDaOoVK8S3_xxTAcTDpfK1AY7tApw7nPOZG_gUz+DMi=Q@mail.gmail.com>
<CAA4eK1+AdeC5B9xrAXSKWGtTh-0d8xdD=fZttmOBm+c8o8thAQ@mail.gmail.com>
<CAFiTN-skBQAeuzuUd+PDK0Gqc8g+4x9ypBMwJhOrmW8ZCFKGSA@mail.gmail.com>
<CAJpy0uCdrsW5T+okq7xTOVxagje7FW3DOeY5B0CGKYa5VqF_tQ@mail.gmail.com>
<CAFiTN-u+_mFj9caYYFO7=_YHFXk5y=vvOm2H2=5hctYktmAVGA@mail.gmail.com>
<CALDaNm1aivk9KgQ5daeF6YZzuE+0wWc2yb7wb6qikNyvfPN0Sg@mail.gmail.com>
<CAJpy0uD6fTEUYJx3+yDbvB=VW7c5AaGoeSd7iwHdYYO=kYGn3g@mail.gmail.com>
<CALDaNm2YOOdJ25X1sJ+DYz37K6Qi4g0ZNFHb_pQMF9UqancnEA@mail.gmail.com>
<CAHut+PtMS5bENS0DVtBj+s3kUEOq61+hSkqLODjFB78egB0imQ@mail.gmail.com>
<CAFiTN-s_M83sfs+MHHbUrMesjsCPN4JWxY5MChCEiY1U-u7=9g@mail.gmail.com>
<CAFiTN-vj8NTm9w_L2XdhxJCub_RZw__YVUgfXa1B1kJzJctRNw@mail.gmail.com>
<CAJpy0uBDLnfhuSiev8W9ZMFNTzUmqhds2dKayUpLoN-z1dtsLA@mail.gmail.com>
<CAFiTN-uL9f0X+=Ep4BbAPvaTJA7S4XHM--G4BsnPJw4uJW7EGQ@mail.gmail.com>
<CAJpy0uDG=t-y_m8t1zpBzfz9viP3K8dyQgkruaraVT85UtTkrg@mail.gmail.com>
<CAFiTN-tR8Rhs8uhfbck0Ac4dd1MopvvYgjK39nWyNXRp9Z3Qww@mail.gmail.com>
<CAA4eK1Kf15UpNmpTTE2XyX=9PE_oTpOoy5xqg3rFWbxwwP4Rbg@mail.gmail.com>
<CAFiTN-tNqb0vjuadDz-as67ksSXa=aEK+JW=4b54RVmkUK1m2Q@mail.gmail.com>
<CAFiTN-vDCxx6ydUFo59L8qNBbierg4as3TGPPiavR7UZjYurzA@mail.gmail.com>
<CAHut+PsWms218ENALnytLEV4NpxjOrAYhChLDaMaeE65-vNgrQ@mail.gmail.com>
<CAFiTN-v9i9RmDvdUmtMUow4=b+nr0k7LKMyEQ+6ZF=EVdfBhBA@mail.gmail.com>
<CALDaNm2YTKwPDjt9OV49RgM0zbkWhMhNu228bj_7f+zzcPb-ew@mail.gmail.com>
<CAFiTN-t_4XvofM3an-WmykqnPE+9wf9U+o2M7p1CWd9eXkN88Q@mail.gmail.com>
<CAHut+PuaqNDfDu_3xkZR4OYxw-B7ew_WjpLXCBvMcSBJz2K6Xg@mail.gmail.com>
<CAFiTN-uqNN9S_hRuda_th5MEpywa15g+XO00yM6tNJ-spGRRJw@mail.gmail.com>
<CABdArM6QxXatkGefTHy__HgaYHBvbKesffeXzT8Vn-kvcvGK4w@mail.gmail.com>
<CAFiTN-tgMWr=TGPhs9BxaPuSC_jhM7sJJ4fHedE5W6=h40jLfA@mail.gmail.com>
<CABdArM5fgzfyC2mH3YGB8t8cJBHWqAG1BS6rJMk7mX-8=9d=Cg@mail.gmail.com>
<CABdArM568KF4WXdFX_aZkCiDK8R71Wpep0gC2a+cV8BMobwkrg@mail.gmail.com>
<CAFiTN-vQ0tu18BD3UmKPb0rzZyFMQAVgGbdpMA8iYLX7PZOqOA@mail.gmail.com>
<CALDaNm20PDtmG2E3qaTC+YuL5twv+c9k573wL3sb=OwgmZphxQ@mail.gmail.com>
<CAA4eK1LhOHa_TEznw+gFoq+w0vMvvsDG2g9Xq8Mwa8xZMY73og@mail.gmail.com>
<CAFiTN-vPDqrQ2rHykNgd+groFxqwBYFQF97R-Co2EmtUkV6MTg@mail.gmail.com>
<CAFiTN-vsd=wNiEPXPQhZnipAb--+mBUC01M-pcjBjbRockgCUA@mail.gmail.com>
<CAJpy0uCjSq_gUCJBfURhqtB6bLvkKSUL-sVXpaGKjEapv5+t+Q@mail.gmail.com>
<CAFiTN-uZ-LaStAY3NuCY-nb7GCB9joiHX7HtHEMseJ0xfnqVSg@mail.gmail.com>
<CAFiTN-vhJxRW5NQ628oidnk0KtHwKt11dW9-+vxqpXLTgjiYiA@mail.gmail.com>
<CALDaNm1cJURibYKY4+DuNosjM72C9oGheUF-roMyff__+AsKBw@mail.gmail.com>
<CAJpy0uD1_77TDAFc4jE-94X-WUus7Q3gGU0pXfC+Tticq1hFvA@mail.gmail.com>
<CAA4eK1LFcSc4XCj4mU-cv27F_6n6=+ehJ=YAsAnyBbz4Sv_tVg@mail.gmail.com>
<CAFiTN-s5ZtjXKrSbam7TNWJ9Ax-kCancXcestAnx2by7dK0-UA@mail.gmail.com>
<CAFiTN-u=Da32mXyz8jocEGtuLSG4ccXXj_aEzUTPp2zkLb3MVA@mail.gmail.com>
<CALDaNm1qY5e0thfsDB2uWXqZn4hgTWTxiUDwcF1hWA-jodsKYg@mail.gmail.com>
<CALDaNm1nFtv3dtdRdbqWo2Rf_av7XbxDfK1Orqjcqs_Su_cLRQ@mail.gmail.com>
<CABdArM7R498qC5Fr42aU_q-2Sc5QsT4dyKgmO_f6Uy=8oCAFXA@mail.gmail.com>
<CAFiTN-sRZ+Z_9B3ue2L4zkbcfmPjjcAjcR1C+px1PyAs+HGsSg@mail.gmail.com>
<CAFiTN-sdcjf9xJ2M-=ab5e4y662tTmFFiP4gHL44tC9PcQozcw@mail.gmail.com>
<CALDaNm2WNjaNxUijVkvT6y69D62rfCu8OMwU-Pf-84un2r_=ig@mail.gmail.com>
<CAHut+PvEP5uUR13xJ3gbNKGU49=Rg32DXMGZ2wL9jTcKHyN_=Q@mail.gmail.com>
<CALDaNm3Jb5AQTsFJFxYZZJCaheT7qToCZkEALfW-vsMMFxjOyQ@mail.gmail.com>
<CAHut+PtQn5U9i00qvBmjo0KBxyb+ZmBb38NzF91KnX4J86Jg_g@mail.gmail.com>
<CALDaNm1a1gzy0L38U394_4OFwGUS8ALgSONYj++VLimY0g9piQ@mail.gmail.com>
<CABdArM5X63AdtS99QKGjVijUd_Q_dV8QUDSo4nTHKJjn3JwtAg@mail.gmail.com>
<CAA4eK1+h=QV4Zi=PW8Zt2D6be5ki5Mu2HgdXcfUophptx6Mt_A@mail.gmail.com>
<CAFiTN-s-tuxar9Dp5He0CFa1pzfy1fmiwcBj6PtwD0hDodE5ng@mail.gmail.com>
<CAFiTN-sx=k+Th=uYsrLcS6YMZbPVi9Wrggn1w2Nzf9MLEU7YRQ@mail.gmail.com>
<CAFiTN-u5pcgAhXyJgj+p7-xmShtp0i8xA000tzjCLFQp_zMXUA@mail.gmail.com>
<CAFiTN-tRpS7b3qFqckqFtHETj0jyzj-8SxC1arjfwf-hQd47PQ@mail.gmail.com>
<CABdArM5Ka_m_GWhL_zZbeDPKmL-Wezwb4A-NHnO-v-fRDuhA-Q@mail.gmail.com>
<CAFiTN-sqEMAbZ2pTt=zMa=918NV7HVeXF4bCOF+swtzKnTy5yQ@mail.gmail.com>
<CALDaNm0WX0Vqoy2UQZh-2TpWraf4OYn28kWe9aGR=vxKwLA+bw@mail.gmail.com>
<CAJpy0uAA_XszCAcoBuCUM3VobD39DbMDwCPUT+XW7wFfE+_E8w@mail.gmail.com>
<CAFiTN-urKwsdyFvwz1go_C7jJFtLA8TJEhnaECAjuqkRk_1cXA@mail.gmail.com>
<CAJpy0uBhJGqD+OyA9Uk8bHyk61XWHEf3Le1QxkotwOLcQCqaZA@mail.gmail.com>
<CAFiTN-sbAXS6deUarPDunj2U+A6Dvhw_TASy4oMv4Tc63-_T9g@mail.gmail.com>
<CAJpy0uBaW7ziTsHOu_z37-epihxx3qGMjqdV+_-Z-RFjq5EOGg@mail.gmail.com>
<CAFiTN-sxVPbuqHjz99NGTz5UU0xgegsvpRa6=NkbP8_iW+X6-A@mail.gmail.com>
<CAJpy0uBs6D9ojMpz4MWgrxDbvRxqnvN+B+JnMNezBtuvhk_j9A@mail.gmail.com>
<CAFiTN-urmbTtk40RfLU8UMYtzk-_DLXwui3_G+TWp6XYKBphjw@mail.gmail.com>
<CABdArM5dtMEUw14-aDSht2Vh1tsgO67t_ZU8VQp=Ut7MwK5aEQ@mail.gmail.com>
<CAJpy0uBSY7zTH=4TvAOS=kj9vivBUc9NO+Vp6KNw-Na9RiAsMg@mail.gmail.com>
<CAFiTN-vqyo2=pgA_jUyQoWrOwUXxw1s3aYHcZBr_EHsztZN9jg@mail.gmail.com>
<CAJpy0uDGuaEvBym5VnE4mXJ_meo3jR7uG=c6wVbDAiuTjHcwrg@mail.gmail.com>
<CAA4eK1JhZYRMP_YYa1j3uAK6L4v057JDuM0+YLABOgAOYuwM8Q@mail.gmail.com>
<CABdArM6r0u6e2HQY3CQ15uZwOD2iTtVndecsNyK4R5tX9+eaNQ@mail.gmail.com>
<CAFiTN-tnBhCU8opWAjp1xYkjqGeXtQ1tfDZHbYBS7TifymXEvw@mail.gmail.com>
<CALDaNm0siWVCuTg6S8Xbk5SMHc91AX8Y+fAtOyV+cjwcpiFDWQ@mail.gmail.com>
<CAFiTN-vvJ42f4Bs679gVxBH8BpqmOskW1bnOUTUpy-x0L2wz_g@mail.gmail.com>
<CAA4eK1KsF+v3v6wOoWDWzj3fb_1kDi9dpf+aHdjz=2-k_C3mrg@mail.gmail.com>
<CALDaNm2GJYd6OBO9h=nTHuLt-Vg66nsGMv0GrvfX=S=nE3qqEg@mail.gmail.com>
<CAFiTN-tni=ADm_PrC2-H_6-4OdAqYNfUgQaFORdR6bnRNWrB1g@mail.gmail.com>
<CALDaNm3QaSpS6Er=9Q1Cj1Ry1QJoM8XaomyaFpp=_GKEp2MegQ@mail.gmail.com>
<CAA4eK1L7tSG6wEErAPd4MGO7yTXd-7fcWG74dgMqQ0Wz2Gw+hQ@mail.gmail.com>
<CAA4eK1L9XbR5Ecma-7cb_xChPMd=8Cy==yebPtY8SEVXUMhxtA@mail.gmail.com>
<CAFiTN-v=-hNgJ4LSHBO9XCGzYe1gBeKEyNM4j2B4XV7HayMrsA@mail.gmail.com>
On Sat, 27 Jun 2026 at 08:03, Dilip Kumar <[email protected]> wrote:
>
> On Fri, Jun 26, 2026 at 3:40 PM Amit Kapila <[email protected]> wrote:
> >
> > On Thu, Jun 25, 2026 at 4:57 PM Amit Kapila <[email protected]> wrote:
> > >
> > > On Thu, Jun 25, 2026 at 10:34 AM vignesh C <[email protected]> wrote:
> > > >
> > > > On Wed, 24 Jun 2026 at 19:27, Dilip Kumar <[email protected]> wrote:
> > > > >
> > > >
> > > > 2) jsonb supports indexing, whereas json does not. Was json chosen
> > > > here because inserts are faster due to the lack of parsing and binary
> > > > conversion?
> > > >
> > >
> > > I think it is more because the local/remote tuples are usually data
> > > which we want users to see as it was in original tables, using jsonb
> > > can change the ordering of columns or remove some space etc. We can
> > > add a comment on the lines of: "preserve the exact tuple
> > > representation (column order, formatting) for the audit record; the
> > > value is natively json so this avoids a per-conflict conversion". Now,
> > > this is true for tuple data but I am not so sure if the same thing
> > > applies to the replica_identity column in CLT. Would users ever want
> > > to query using ORDER/GROUP BY on replica_identity or use DISTINCT on
> > > it, because if that is possible then the current schema would result
> > > into ERROR as follows:
> > > postgres=# select * from pg_conflict.pg_conflict_log_16394 order by
> > > replica_identity;
> > > ERROR: could not identify an ordering operator for type json
> > >
> > > This needs more thoughts from the perspective of how users would like
> > > to fetch the data.
> > >
> >
> > The values stored for replica_identity are heterogeneous across the
> > table (different key shapes per relid), and for the RI-FULL case it
> > isn't even a stable identifier, two conflicts on the "same row" can
> > carry different whole-tuple JSON. So, I don't see a case for creating
> > an index on the RI column as well and rather users would like to see
> > the exact value used to find the local tuple. So, we can add a comment
> > on the lines: "The tuple/key columns (remote_tuple, replica_identity,
> > local_conflicts) are typed json rather than jsonb on purpose: they
> > hold an exact audit snapshot of the applied tuples and replica
> > identity, and json preserves the verbatim representation whereas jsonb
> > would normalize it. Indexing them (jsonb's main advantage) wouldn't
> > help anyway, as the conflict log is looked up by its scalar columns
> > (relid, conflict_type, commit timestamp) while these JSON columns are
> > per-conflict payload to inspect, not search keys."
>
> I have added this comments.
>
> > One more thing that bothers me is that it will be inconvenient for
> > users to identify whether logged values for replica_identity are for
> > an index or a complete tuple via replica identity full, so I propose
> > to add a boolean column replica_identity_full. I also considered to
> > add replica_identity_index but preferred a boolean instead because
> > this is a historical/audit row, and the index may be dropped or
> > replaced later, leaving a meaningless OID which is opposite of what an
> > audit record should do.
>
> I have added the column replica_identity_full and ordered the column as follows:
>
> static const ConflictLogColumnDef ConflictLogSchema[] = {
> <----------Other columns---------------->
> { .attname = "replica_identity_full", .atttypid = BOOLOID },
> { .attname = "replica_identity", .atttypid = JSONOID },
> { .attname = "remote_tuple", .atttypid = JSONOID },
> { .attname = "local_conflicts", .atttypid = JSONARRAYOID }
> };
>
> > The other question is whether we create an internal index on one of
> > the columns? Currently, there's no established query pattern to index
> > for. The plausible candidates are relid ("conflicts for table X"), or
> > remote_commit_ts (time-based cleanup) but those are guesses. Indexing
> > the JSON columns we've already ruled out (payload, not keys). Picking
> > an index before we know how people actually query/prune the table
> > risks indexing the wrong thing. We can cosider adding the index in
> > later versions or even in PG20 itself if we get some user feedback.
>
> Yeah, I think we can have index once the first patch is committed
> based on the usage pattern.
>
>
Hi Dilip,
I have tested the patches and have some comments:
1. In the error message, when we try to drop a conflict table, it is
referred system catalog:
postgres=# drop table pg_conflict.pg_conflict_log_16384 ;
ERROR: permission denied: "pg_conflict_log_16384" is a system catalog
But for other cases in the error message it is referred as conflict log table:
postgres=# alter table pg_conflict.pg_conflict_log_16384 set schema public;
ERROR: permission denied: "pg_conflict_log_16384" is a conflict log table
DETAIL: Conflict log tables are system-managed tables for logical
replication conflicts.
I think in the DROP case we should also refer to it as 'conflict log
table' instead of 'system catalog'?
Or Am I missing something here?
2. TRUNCATE and DELETE for conflict log tables are published when
outplugin is 'test_decoding':
Suppose conflict_log_tables have some entries then DELETE/TRUNCATE operations on
the conflict log tables are published. I have tested it with
replication slots with test_decoding plugin.
postgres=# truncate table pg_conflict.pg_conflict_log_16395;
TRUNCATE TABLE
postgres=# SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, NULL);
lsn | xid | data
------------+-----+---------------------------------------------------------------
0/01792290 | 717 | BEGIN 717
0/01792AD0 | 717 | table pg_conflict.pg_conflict_log_16395: TRUNCATE:
(no-flags)
0/01792C10 | 717 | COMMIT 717
(3 rows)
Is this expected?
postgres=# DELETE from pg_conflict.pg_conflict_log_16395 ;
DELETE 2
postgres=# SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, NULL);
lsn | xid |
data
------------+-----+------------------------------------------------------------------------
-----------------------------
0/017940A0 | 721 | BEGIN 721
0/017940A0 | 721 | table pg_conflict.pg_conflict_log_16395: DELETE:
(no-tuple-data)
0/017940D8 | 721 | table pg_conflict.pg_conflict_log_16395: DELETE:
(no-tuple-data)
0/01794140 | 721 | COMMIT 721
I tested the behaviour for pg_class, and noticed DELETE on pg_class do not get
published
postgres=# delete from pg_class where relname = 't';
DELETE 1
postgres=# SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, NULL);
lsn | xid | data
------------+-----+------------
0/0181C1D0 | 735 | BEGIN 735
0/0181D430 | 735 | COMMIT 735
(2 rows)
Also, I tested it with 'pgoutput' plugin and it don't emit any changes
postgres=# truncate table pg_conflict.pg_conflict_log_16395;
TRUNCATE TABLE
postgres=# SELECT * FROM pg_logical_slot_get_binary_changes(
'pgoutput_slot', NULL, NULL, 'proto_version', '1',
'publication_names', 'pub2');
lsn | xid | data
-----+-----+------
(0 rows)
postgres=# DELETE from pg_conflict.pg_conflict_log_16395 ;
DELETE 2
postgres=# SELECT * FROM pg_logical_slot_get_binary_changes(
'pgoutput_slot', NULL, NULL, 'proto_version', '1',
'publication_names', 'pub2');
lsn | xid | data
-----+-----+------
(0 rows)
Since conflict log tables are system-managed tables, I expected them
to behave similarly to pg_class with respect to logical decoding.
However, test_decoding emits DELETE and TRUNCATE changes for conflict
log tables. Is this expected?
Thanks,
Shlok Kyal
view thread (226+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: Proposal: Conflict log history table for Logical Replication
In-Reply-To: <CANhcyEVf-Yscauc6S6bPikkX7NN8pF3gKDo-szbnEOxeHRwsHg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox