Обсуждение: pgsql: Modify logtape.c so that the initial LogicalTapeSetCreate call

Поиск
Список
Период
Сортировка

pgsql: Modify logtape.c so that the initial LogicalTapeSetCreate call

От
tgl@postgresql.org (Tom Lane)
Дата:
Log Message:
-----------
Modify logtape.c so that the initial LogicalTapeSetCreate call only
allocates the control data.  The per-tape buffers are allocated only
on first use.  This saves memory in situations where tuplesort.c
overestimates the number of tapes needed (ie, there are fewer runs
than tapes).  Also, this makes legitimate the coding in inittapes()
that includes tape buffer space in the maximum-memory calculation:
when inittapes runs, we've already expended the whole allowed memory
on tuple storage, and so we'd better not allocate all the tape buffers
until we've flushed some tuples out of memory.

Modified Files:
--------------
    pgsql/src/backend/utils/sort:
        logtape.c (r1.17 -> r1.18)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/sort/logtape.c.diff?r1=1.17&r2=1.18)