When building a list of relations for a parallel processing of a schema
or a database (or just a single-entry list for the non-parallel case
with the database name), the list is allocated and built on-the-fly for
each database processed, leaking after one database-level reindex is
done. This accumulates leaks when processing all databases, and could
become a visible issue with thousands of relations.
This is fixed by introducing a new routine in simple_list.c to free all
the elements in a simple list made of strings or OIDs. The header of
the list may be using a variable declaration or an allocated pointer,
so we don't have a routine to free this part to keep the interface
simple.
Per report from coverity for an issue introduced by
|
||
---|---|---|
.. | ||
po | ||
t | ||
.gitignore | ||
Makefile | ||
clusterdb.c | ||
common.c | ||
common.h | ||
createdb.c | ||
createuser.c | ||
dropdb.c | ||
dropuser.c | ||
nls.mk | ||
pg_isready.c | ||
reindexdb.c | ||
scripts_parallel.c | ||
scripts_parallel.h | ||
vacuumdb.c |