提交 3acca18d 编写于 作者: T Tom Lane

Fix ancient memory leak in index_create(): RelationInitIndexAccessInfo

was being called twice in normal operation, leading to a leak of one set
of relcache subsidiary info.  Per report from Jeff Gold.
上级 252600fa
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.257 2005/06/20 02:07:47 neilc Exp $ * $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.258 2005/06/25 16:53:49 tgl Exp $
* *
* *
* INTERFACE ROUTINES * INTERFACE ROUTINES
...@@ -704,13 +704,21 @@ index_create(Oid heapRelationId, ...@@ -704,13 +704,21 @@ index_create(Oid heapRelationId,
} }
/* /*
* Fill in the index strategy structure with information from the * Advance the command counter so that we can see the newly-entered
* catalogs. First we must advance the command counter so that we * catalog tuples for the index.
* will see the newly-entered index catalog tuples.
*/ */
CommandCounterIncrement(); CommandCounterIncrement();
RelationInitIndexAccessInfo(indexRelation); /*
* In bootstrap mode, we have to fill in the index strategy structure
* with information from the catalogs. If we aren't bootstrapping,
* then the relcache entry has already been rebuilt thanks to sinval
* update during CommandCounterIncrement.
*/
if (IsBootstrapProcessingMode())
RelationInitIndexAccessInfo(indexRelation);
else
Assert(indexRelation->rd_indexcxt != NULL);
/* /*
* If this is bootstrap (initdb) time, then we don't actually fill in * If this is bootstrap (initdb) time, then we don't actually fill in
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册