-<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.99 2006/12/12 21:30:33 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.100 2007/01/09 21:31:14 momjian Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
</listitem>
</varlistentry>
+ <varlistentry id="guc-log-temp-files" xreflabel="log_temp_files">
+ <term><varname>log_temp_files</varname> (<type>integer</type>)</term>
+ <indexterm>
+ <primary><varname>log_temp_files</> configuration parameter</primary>
+ </indexterm>
+ <listitem>
+ <para>
+ Controls whether temporary files are logged when deleted.
+ A value of zero logs all temporary files, and positive
+ values log only files whose size is equal or greater than
+ the specified number of bytes. Temporary files can be
+ created for sorts, hashes, and temporary results. The
+ default is <literal>-1</> (off).
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</sect2>
</sect1>
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.132 2007/01/05 22:19:37 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.133 2007/01/09 21:31:14 momjian Exp $
*
* NOTES:
*
#include "access/xact.h"
#include "storage/fd.h"
#include "storage/ipc.h"
+#include "utils/guc.h"
/*
void
FileClose(File file)
{
- Vfd *vfdP;
+ Vfd *vfdP;
+ struct stat filestats;
Assert(FileIsValid(file));
{
/* reset flag so that die() interrupt won't cause problems */
vfdP->fdstate &= ~FD_TEMPORARY;
+ PG_TRACE1(temp__file__cleanup, vfdP->fileName);
+ if (log_temp_files >= 0)
+ {
+ if (stat(vfdP->fileName, &filestats) == 0)
+ {
+ if (filestats.st_size >= log_temp_files)
+ ereport(LOG,
+ (errmsg("temp file: path \"%s\" size %lu",
+ vfdP->fileName, (unsigned long)filestats.st_size)));
+ }
+ else
+ elog(LOG, "Could not stat \"%s\": %m", vfdP->fileName);
+ }
if (unlink(vfdP->fileName))
elog(LOG, "failed to unlink \"%s\": %m",
vfdP->fileName);
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.365 2007/01/05 22:19:46 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.366 2007/01/09 21:31:14 momjian Exp $
*
*--------------------------------------------------------------------
*/
int log_min_messages = NOTICE;
int client_min_messages = NOTICE;
int log_min_duration_statement = -1;
+int log_temp_files = -1;
int num_temp_buffers = 1000;
&server_version_num,
PG_VERSION_NUM, PG_VERSION_NUM, PG_VERSION_NUM, NULL, NULL
},
+
+ {
+ {"log_temp_files", PGC_USERSET, LOGGING_WHAT,
+ gettext_noop("Log the use of temporary files larger than this size."),
+ gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
+ NULL
+ },
+ &log_temp_files,
+ -1, -1, INT_MAX, NULL, NULL
+ },
/* End-of-list marker */
{
#log_statement = 'none' # none, ddl, mod, all
#log_hostname = off
+#log_temp_files = -1 # Log temporary files equal or larger
+ # than the specified number of bytes.
+ # -1 disables; 0 logs all temp files
#---------------------------------------------------------------------------
# RUNTIME STATISTICS
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
- * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.77 2007/01/05 22:19:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.78 2007/01/09 21:31:17 momjian Exp $
*--------------------------------------------------------------------
*/
#ifndef GUC_H
extern int log_min_messages;
extern int client_min_messages;
extern int log_min_duration_statement;
+extern int log_temp_files;
extern int num_temp_buffers;