Forget close an open relation in ReorderBufferProcessTXN()

Поиск
Список
Период
Сортировка
От Japin Li
Тема Forget close an open relation in ReorderBufferProcessTXN()
Дата
Msg-id MEYP282MB166933B1AB02B4FE56E82453B64D9@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM
обсуждение исходный текст
Ответы Re: Forget close an open relation in ReorderBufferProcessTXN()  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
The RelationIdGetRelation() comment says:

> Caller should eventually decrement count. (Usually,
> that happens by calling RelationClose().)

However, it doesn't do it in ReorderBufferProcessTXN().
I think we should close it, here is a patch that fixes it. Thoughts?

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.


diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index 52d06285a2..aac6ffc602 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -2261,7 +2261,10 @@ ReorderBufferProcessTXN(ReorderBuffer *rb, ReorderBufferTXN *txn,
                                                                elog(ERROR, "could not open relation with OID %u",
relid);

                                                        if (!RelationIsLogicallyLogged(relation))
+                                                       {
+                                                               RelationClose(relation);
                                                                continue;
+                                                       }

                                                        relations[nrelations++] = relation;
                                                }



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Truncate in synchronous logical replication failed
Следующее
От: Julien Rouhaud
Дата:
Сообщение: Re: Bogus collation version recording in recordMultipleDependencies