diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index d5fee4ba1c9767b90864e93cc423d1fdf0b2000f..5260f88c5c022f9aeff529b0e58196f922a29c7b 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -51,7 +51,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.113 2007/01/05 22:19:21 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.114 2007/01/09 22:00:59 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1105,8 +1105,8 @@ heap_deformtuple(HeapTuple tuple, Datum *values, char *nulls) { - int i; - bool *isnull = (bool *) palloc(tupleDesc->natts * sizeof(bool)); + int i; + bool *isnull = (bool *) palloc(tupleDesc->natts * sizeof(bool)); heap_deform_tuple(tuple, tupleDesc, values, isnull); diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index e41f792410f87917f6242484c1950b3392aea591..170096c6188b98f4f25632e009c4013ba22bce0b 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.223 2007/01/05 22:19:22 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.224 2007/01/09 22:00:59 momjian Exp $ * * * INTERFACE ROUTINES diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 8cce4306c5f0960ee2f70f454304b5126d9629cb..bc22e08484a6f66a3f55314a09f25836a4ae5ae0 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.168 2007/01/05 22:19:29 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.169 2007/01/09 22:00:59 momjian Exp $ * *------------------------------------------------------------------------- */ diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index 71d12e33c3c9dd8eda60656ed6224f53efc45406..3c9e7daa966ea04298708c77734e56f714a7c76a 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -8,7 +8,7 @@ * 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.134 2007/01/09 22:03:51 momjian Exp $ * * NOTES: * @@ -52,6 +52,7 @@ #include "cdb/cdbfilerep.h" #include "storage/fd.h" #include "storage/ipc.h" +#include "utils/guc.h" #include "utils/workfile_mgr.h" /* Debug_filerep_print guc temporaly added for troubleshooting */ @@ -1030,7 +1031,8 @@ OpenNamedFile(const char *fileName, void FileClose(File file) { - Vfd *vfdP; + Vfd *vfdP; + struct stat filestats; Assert(FileIsValid(file)); @@ -1060,6 +1062,18 @@ FileClose(File file) { /* reset flag so that die() interrupt won't cause problems */ vfdP->fdstate &= ~FD_TEMPORARY; + 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(DEBUG1, "failed to unlink \"%s\": %m", vfdP->fileName); diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index c1f256037bd1b0470af45148469ef15f2c17ee57..ee34256dab0fbf7d7a98d2f99c7a6435212acbcc 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -11,7 +11,7 @@ * Written by Peter Eisentraut . * * 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.367 2007/01/09 22:16:46 momjian Exp $ * *-------------------------------------------------------------------- */ @@ -204,6 +204,7 @@ int log_min_error_statement = ERROR; int log_min_messages = WARNING; int client_min_messages = NOTICE; int log_min_duration_statement = -1; +int log_temp_files = -1; int num_temp_buffers = 1000; @@ -1725,6 +1726,16 @@ static struct config_int ConfigureNamesInt[] = &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 number of kilobytes."), + gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."), + GUC_UNIT_KB + }, + &log_temp_files, + -1, -1, INT_MAX, NULL, NULL + }, { {"pgstat_track_activity_query_size", PGC_POSTMASTER, UNGROUPED, diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index bbe42358c2ff841883cf3f8aeabf59907f1ef808..684653e28d88e08a65df6326dad3c7c189c53db1 100755 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -269,6 +269,9 @@ optimizer_analyze_root_partition = on # stats collection on root partitions #log_hostname = off #log_statement = 'none' # none, mod, ddl, all +#log_temp_files = -1 # Log temporary files equal or larger + # than the specified number of kilobytes. + # -1 disables; 0 logs all temp files #log_timezone = unknown # actually, defaults to TZ environment # setting diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index b6c4d377599e3bc908862832e64c0d28ae7e2947..57f39a0f48669fd7e975954d2fd52cf4c9d8537a 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.118 2007/01/05 22:19:51 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.119 2007/01/09 22:01:00 momjian Exp $ * *------------------------------------------------------------------------- */ diff --git a/src/include/access/htup.h b/src/include/access/htup.h index 706597af052066cb8d86274cc4a1ea2eca1d5b16..45d781012dedf916920b16f4ce08efea414cf461 100644 --- a/src/include/access/htup.h +++ b/src/include/access/htup.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.88 2007/01/05 22:19:51 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.89 2007/01/09 22:01:00 momjian Exp $ * *------------------------------------------------------------------------- */ diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index 9b8f0f70277998d0f4ad2d59fa0ab21f3484de0d..28932d52c72962f1b50bc1172da36cf97ac74ae9 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -8,7 +8,7 @@ * Copyright (c) 2000-2008, PostgreSQL Global Development Group * Written by Peter Eisentraut . * - * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.76.2.1 2009/12/09 21:58:30 tgl Exp $ + * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.78 2007/01/09 21:31:17 momjian Exp $ *-------------------------------------------------------------------- */ #ifndef GUC_H @@ -275,6 +275,7 @@ extern int log_min_error_statement; 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; diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c index 0c339821cd6104998d22c8c76cc84c88e2019878..845958111a8baedc20d62f7d93bd2664205e5387 100644 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.182 2007/01/05 22:20:02 momjian Exp $ + * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.183 2007/01/09 22:01:00 momjian Exp $ * *------------------------------------------------------------------------- */