Re: Logical decoding output plug-in questions - Mailing list pgsql-general

From Andres Freund
Subject Re: Logical decoding output plug-in questions
Date
Msg-id 20150126222431.GA4655@awork2.anarazel.de
Whole thread Raw
In response to Logical decoding output plug-in questions  (Christophe Pettus <xof@thebuild.com>)
Responses Re: Logical decoding output plug-in questions
List pgsql-general
On 2015-01-26 13:00:29 -0800, Christophe Pettus wrote:
> * OutputPluginPrepareWrite, OutputPluginWrite -- last_write.  This is false if you are planning to do another
OutputPluginPrepareWrite/OutputPluginWritepair in the same invocation of the same callback function, yes? 

Yes. Important so the other side gets an appropriate LSN of the record
you're essentially sending feedback for. That's primarily important for sync rep,
but also also

> * On an UPDATE, it appears that data.tp.oldtuple is only not-NULL if a
> primary key field changed, and then it only includes primary key
> fields (the rest being NULL).  Correct?

What's in the old tuple depends on the configured replica identity.

> * pg_decode_startup -- is_init.  What's the situation under which this is true or false?

That's actually documented:
      The <literal>is_init</literal> parameter will be true when the
      replication slot is being created and false
      otherwise. <parameter>options</parameter> points to a struct of options
      that output plugins can set:

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


pgsql-general by date:

Previous
From: Spiros Ioannou
Date:
Subject: Re: How to access large objects in Postgresql c-language functions?
Next
From: Tim Smith
Date:
Subject: Re: Pattern matching ints