Add GUC log_temp_files to log the use of temporary files.
Bill Moran
This commit is contained in:
parent
1e0bf9041e
commit
be8a431881
|
@ -1,4 +1,4 @@
|
||||||
<!-- $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">
|
<chapter Id="runtime-config">
|
||||||
<title>Server Configuration</title>
|
<title>Server Configuration</title>
|
||||||
|
@ -2920,6 +2920,23 @@ SELECT * FROM parent WHERE key = 2400;
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</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>
|
</variablelist>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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:
|
* NOTES:
|
||||||
*
|
*
|
||||||
|
@ -50,6 +50,7 @@
|
||||||
#include "access/xact.h"
|
#include "access/xact.h"
|
||||||
#include "storage/fd.h"
|
#include "storage/fd.h"
|
||||||
#include "storage/ipc.h"
|
#include "storage/ipc.h"
|
||||||
|
#include "utils/guc.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -939,6 +940,7 @@ void
|
||||||
FileClose(File file)
|
FileClose(File file)
|
||||||
{
|
{
|
||||||
Vfd *vfdP;
|
Vfd *vfdP;
|
||||||
|
struct stat filestats;
|
||||||
|
|
||||||
Assert(FileIsValid(file));
|
Assert(FileIsValid(file));
|
||||||
|
|
||||||
|
@ -968,6 +970,19 @@ FileClose(File file)
|
||||||
{
|
{
|
||||||
/* reset flag so that die() interrupt won't cause problems */
|
/* reset flag so that die() interrupt won't cause problems */
|
||||||
vfdP->fdstate &= ~FD_TEMPORARY;
|
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))
|
if (unlink(vfdP->fileName))
|
||||||
elog(LOG, "failed to unlink \"%s\": %m",
|
elog(LOG, "failed to unlink \"%s\": %m",
|
||||||
vfdP->fileName);
|
vfdP->fileName);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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 $
|
||||||
*
|
*
|
||||||
*--------------------------------------------------------------------
|
*--------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -182,6 +182,7 @@ int log_min_error_statement = ERROR;
|
||||||
int log_min_messages = NOTICE;
|
int log_min_messages = NOTICE;
|
||||||
int client_min_messages = NOTICE;
|
int client_min_messages = NOTICE;
|
||||||
int log_min_duration_statement = -1;
|
int log_min_duration_statement = -1;
|
||||||
|
int log_temp_files = -1;
|
||||||
|
|
||||||
int num_temp_buffers = 1000;
|
int num_temp_buffers = 1000;
|
||||||
|
|
||||||
|
@ -1661,6 +1662,16 @@ static struct config_int ConfigureNamesInt[] =
|
||||||
PG_VERSION_NUM, PG_VERSION_NUM, PG_VERSION_NUM, NULL, NULL
|
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 */
|
/* End-of-list marker */
|
||||||
{
|
{
|
||||||
{NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL
|
{NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL
|
||||||
|
|
|
@ -333,6 +333,9 @@
|
||||||
#log_statement = 'none' # none, ddl, mod, all
|
#log_statement = 'none' # none, ddl, mod, all
|
||||||
#log_hostname = off
|
#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
|
# RUNTIME STATISTICS
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
* 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
|
#ifndef GUC_H
|
||||||
|
@ -123,6 +123,7 @@ extern int log_min_error_statement;
|
||||||
extern int log_min_messages;
|
extern int log_min_messages;
|
||||||
extern int client_min_messages;
|
extern int client_min_messages;
|
||||||
extern int log_min_duration_statement;
|
extern int log_min_duration_statement;
|
||||||
|
extern int log_temp_files;
|
||||||
|
|
||||||
extern int num_temp_buffers;
|
extern int num_temp_buffers;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue