On Fri, Jan 14, 2022 at 5:48 AM Peter Smith <smithpb2...@gmail.com> wrote: > > On Thu, Jan 13, 2022 at 5:49 PM Peter Smith <smithpb2...@gmail.com> wrote: > > > > 4. src/backend/replication/pgoutput/pgoutput.c - pgoutput_row_filter > > comments > > > > + > > +/* > > + * Change is checked against the row filter, if any. > > + * > > + * If it returns true, the change is replicated, otherwise, it is not. > > + * > > + * FOR INSERT: evaluates the row filter for new tuple. > > + * FOR DELETE: evaluates the row filter for old tuple. > > + * For UPDATE: evaluates the row filter for old and new tuple. If both > > + * evaluations are true, it sends the UPDATE. If both evaluations are > > false, it > > + * doesn't send the UPDATE. If only one of the tuples matches the row > > filter > > + * expression, there is a data consistency issue. Fixing this issue > > requires a > > + * transformation. > > + * > > + * Transformations: > > + * Updates are transformed to inserts and deletes based on the > > + * old tuple and new tuple. The new action is updated in the > > + * action parameter. If not updated, action remains as update. > > + * > > + * Case 1: old-row (no match) new-row (no match) -> (drop change) > > + * Case 2: old-row (no match) new row (match) -> INSERT > > + * Case 3: old-row (match) new-row (no match) -> DELETE > > + * Case 4: old-row (match) new row (match) -> UPDATE > > + * > > + * If the change is to be replicated this function returns true, else > > false. > > + * > > + * Examples: > > > > The function header comment says the same thing 2x about the return values. > > > > The 1st text "If it returns true, the change is replicated, otherwise, > > it is not." should be replaced by the better wording of the 2nd text > > ("If the change is to be replicated this function returns true, else > > false."). Then, that 2nd text can be removed (from where it is later > > in this same comment). > > Hi Hou-san, thanks for all the v64 updates! > > I think the above comment was only partly fixed. > > The v64-0001 comment still says: > + * If it returns true, the change is replicated, otherwise, it is not. > ... ... > > But maybe it is best to rearrange the whole thing like: > "Returns true if the change is to be replicated, else false." >
+1 to change as per this suggestion. -- With Regards, Amit Kapila.