mirror of
https://github.com/postgres/postgres.git
synced 2026-03-02 21:30:36 -05:00
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
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| conditional.c | ||
| Makefile | ||
| mbprint.c | ||
| print.c | ||
| psqlscan.l | ||
| simple_list.c | ||
| string_utils.c | ||