From: | tgl(at)postgresql(dot)org (Tom Lane) |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Modify logtape.c so that the initial LogicalTapeSetCreate call |
Date: | 2006-02-19 05:58:36 |
Message-ID: | 20060219055836.5EB4E9DC82D@postgresql.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
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)
From | Date | Subject | |
---|---|---|---|
Next Message | James William Pye | 2006-02-19 06:12:26 | python - pq: Fix error handling in Query and Function. |
Previous Message | Tom Lane | 2006-02-19 05:54:06 | pgsql: Improve tuplesort.c to support variable merge order. |