Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uk0md-00Eev3-Uy for pgsql-docs@arkaria.postgresql.org; Thu, 07 Aug 2025 13:35:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uk0mb-004gVZ-Pw for pgsql-docs@arkaria.postgresql.org; Thu, 07 Aug 2025 13:35:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uk0mb-004gVE-24 for pgsql-docs@lists.postgresql.org; Thu, 07 Aug 2025 13:35:49 +0000 Received: from fout-b2-smtp.messagingengine.com ([202.12.124.145]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1uk0mV-001E6C-2G for pgsql-docs@lists.postgresql.org; Thu, 07 Aug 2025 13:35:47 +0000 Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47]) by mailfout.stl.internal (Postfix) with ESMTP id 119821D00193; Thu, 7 Aug 2025 09:35:44 -0400 (EDT) Received: from phl-imap-05 ([10.202.2.95]) by phl-compute-07.internal (MEProxy); Thu, 07 Aug 2025 09:35:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eulerto.com; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1754573743; x=1754660143; bh=aYSsnnU8QvPXiPXUOtkgWmHe7AbMZVLD+ReaZ7PAiBY=; b= QsdphRfmj2RTP6t/ghqVld1uH1wG3HJTm3d2fhKmQNuak5o1Xfb+p8dIrNVElcCE mGuPO+oFpE6sJDiWDApFqY6gOWDM+DwCefNjanELW4BnHRw0PjXeNsdSjsD0EydM e9yXGx77Qnbb1uPlnbVpKAd8lKtc4OMTIlQgA1zCRa21CvhLHnlgIy3DqWsv0eDa XVk2qE08wLcWcFh/WOgx+MpTs6gotaIuKkYeiIRERleEIWWRfE32FjlIR2GV9tmV NS2l/kyn0YC1QU7RcPJQ7uGUIGdpC4UgmtXjexirLcg6GEyJ7bLQ9ycegFekjUX2 Z8XStU21yOOLoZV1muWShw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1754573743; x= 1754660143; bh=aYSsnnU8QvPXiPXUOtkgWmHe7AbMZVLD+ReaZ7PAiBY=; b=B BQBejk6d2TylZvIt9IFZlUODkzskADQq0PiVPcB8fQFIydXQDtasOoHOWlkYCTmS Leqw1hcI9yyISOzxXtL3+FcB7WB8ti63VwIeLl5Cz8A6W/bcLjbTnS1ZayYHu2Ht 171MxGOKLtQTF6PYYPD3nMYqfphbEhQNRV34DSevavrlPhjRbfxbgbjsh6XD0oNf 66oiXWsiJrjUqQIB/+bDUKaIhO+GWIP4PdSpWgoxtLWgnSHttPqvVW4z3Z+G3G/m tngyKWiVr9kyGe/keB8kLrhpAp4jLef/OIGMUf9Maf05vwyHHXySl7dKaICafBak zHtbc8mFRxmxZkQdj5mOQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvddutdejucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepofggfffhvfevkfgjfhfutgfgsehtqhertdertdejnecuhfhrohhmpedfgfhulhgv rhcuvfgrvhgvihhrrgdfuceovghulhgvrhesvghulhgvrhhtohdrtghomheqnecuggftrf grthhtvghrnhepfeekueejgeevteffueegffffgfefhedtgeduffejleduuedvhfeflefg jeegfeelnecuffhomhgrihhnpegvnhhtvghrphhrihhsvggusgdrtghomhenucevlhhush htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegvuhhlvghrsegvuhhl vghrthhordgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprh gtphhtthhopehpvghtvghrsegvihhsvghnthhrrghuthdrohhrghdprhgtphhtthhopehm rghsrghordhfuhhjihhisehgmhgrihhlrdgtohhmpdhrtghpthhtohepphhgshhqlhdqug hotghssehlihhsthhsrdhpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: i0c21471d:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 801261820074; Thu, 7 Aug 2025 09:35:43 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: Tc6c3b54adf12ab06 Date: Thu, 07 Aug 2025 10:35:23 -0300 From: "Euler Taveira" To: "Fujii Masao" , "Peter Eisentraut" Cc: pgsql-docs@lists.postgresql.org Message-Id: <2fc50bf9-d6bf-4318-bf3f-72d883f95ce9@app.fastmail.com> In-Reply-To: References: <900b7421-1f32-47c7-9ad2-4144dfd7b679@eisentraut.org> Subject: Re: Make pgoutput documentation easier to find Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Aug 6, 2025, at 10:48 AM, Fujii Masao wrote: > On Wed, Aug 6, 2025 at 8:36=E2=80=AFPM Peter Eisentraut wrote: >> >> On 03.08.25 03:32, Fujii Masao wrote: >> > The current documentation for pgoutput is buried in the logical str= eaming >> > replication protocol section (in protocol.sgml), and there's no ind= ex entry >> > for it. This makes it hard to discover and access, for example, whe= n trying >> > to look up the options it supports. >> > >> > I've often struggled to locate this information myself, so I'd like= to >> > propose moving the pgoutput documentation to the logical decoding s= ection >> > and adding an index entry. The attached patch does that. I think th= is change >> > will make it much easier for users to find the relevant details. >> >> This would move the documentation of pgoutput from "Internals" to >> "Server Programming". So it's a question of whether this is something >> we want to advertise that people can use directly. In the past, >> pgoutput was an implementation detail of logical replication. But I >> gather people are using it for other things now? > > I've heard that Debezium users, a tool for change data capture, can use > pgoutput as the logical decoding plugin. I also know users, including > some of my colleagues, who use pgoutput with pg_recvlogical to capture > messages inserted via pg_logical_emit_message(). > pgoutput is our defacto output plugin and I think we consider it a matur= e piece of code. If you are worried about compatibility, version 18 added the pg_get_loaded_modules() function to find the loadable module version -- = see commit 55527368bd07. There might be cases where you need to debug logical replication (confli= cts?) and you need to pass the exact output plugin options via SQL (pg_logical_slot_*_changes) to obtain the changes. If we keep it in the "Internals" chapter, it seems it is something to PostgreSQL developers (as the chapter description says); it is not. Adva= nced users can make good use of this. The new links will help users to find t= he moved information if you are searching it into the "Internals" section. Since you are proposing this change, I'm wondering if we shouldn't move "Writing Logical Decoding Output Plugins" to "Internals" chapter. It con= tains information to PostgreSQL developers. It is a bit off-topic for this thr= ead but we can also move part of the "Background Worker Processes", part of the "Archive Modules" and part of the "OAuth Validator Modules" section (2 subsections that describe the API) into "Internals" chapter. --=20 Euler Taveira EDB https://www.enterprisedb.com/