Re: row filtering for logical replication
От | Amit Kapila |
---|---|
Тема | Re: row filtering for logical replication |
Дата | |
Msg-id | CAA4eK1KQSZWqAR6o0cL2bVgL9Y0Pm6wSHPiVv_KdD+wfvA+sdA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: row filtering for logical replication (Peter Smith <smithpb2250@gmail.com>) |
Ответы |
Re: row filtering for logical replication
|
Список | pgsql-hackers |
On Thu, Jan 20, 2022 at 7:51 AM Peter Smith <smithpb2250@gmail.com> wrote: > > Here are some review comments for v68-0001. > > > 3. src/backend/replication/pgoutput/pgoutput.c - pgoutput_row_filter_init > > + /* If no filter found, clean up the memory and return */ > + if (!has_filter) > + { > + if (entry->cache_expr_cxt != NULL) > + MemoryContextDelete(entry->cache_expr_cxt); > + > + entry->exprstate_valid = true; > + return; > + } > > IMO this should be refactored to have if/else, so the function has > just a single point of return and a single point where the > exprstate_valid is set. e.g. > > if (!has_filter) > { > /* If no filter found, clean up the memory and return */ > ... > } > else > { > /* Create or reset the memory context for row filters */ > ... > /* > * Now all the filters for all pubactions are known. Combine them when > * their pubactions are same. > ... > } > > entry->exprstate_valid = true; > This part of the code is changed in v68 which makes the current code more suitable as we don't need to deal with memory context in if part. I am not sure if it is good to add the else block here but I think that is just a matter of personal preference. -- With Regards, Amit Kapila.
В списке pgsql-hackers по дате отправления: