So I've got this patch (attached, against 8.2) The goal is to track temp file usage as an aid to server tuning (such as work_mem)
Most of the patch seems to work just dandy, except I'm getting weird sizes reported: 2006-12-29 17:46:21 EST [45558]: [575-1] LOG: temp file: size 140737488343776 path base/32861/pgsql_tmp/pgsql_tmp45558.554 Seems a bit odd to have a 140T file on a 130G partition ... I'm working on a FreeBSD 6.2 amd64 system. The headers show stat.st_size to be of type off_t, which appears to be a 64-bit int. I figured that %ld would be the correct format. Am I hitting something such as file sparseness? Is this entire endeavour doomed from the start? Or am I just making some sort of dumb mistake? Any pointers are welcome. -- Bill Moran Collaborative Fusion Inc.
diff -r src.orig/backend/storage/file/fd.c src/backend/storage/file/fd.c 52a53 > #include "utils/guc.h" 941c942,943 < Vfd *vfdP; --- > Vfd *vfdP; > struct stat filestats; 970a973,981 > if (fstat(vfdP->fd, &filestats)) { > if (trace_temp_files) > ereport(LOG, > (errmsg("temp file: size %ld path \"%s\"", > filestats.st_size, vfdP->fileName))); > PG_TRACE1(temp__file__cleanup, filestats.st_size); > } else { > elog(ERROR, "Could not stat \"%s\": %m", vfdP->fileName); > } diff -r src.orig/backend/utils/misc/guc.c src/backend/utils/misc/guc.c 183c183,184 < --- > bool trace_temp_files = false; > 1013c1014,1024 < --- > > { > {"trace_temp_files", PGC_USERSET, LOGGING_WHAT, > gettext_noop("Enables logging the usage of temp files."), > gettext_noop("Size and location of each temp file is reported."), > NULL > }, > &trace_temp_files, > false, NULL, NULL > }, > 1474c1485 < --- > diff -r src.orig/backend/utils/misc/postgresql.conf.sample src/backend/utils/misc/postgresql.conf.sample 335a336 > #trace_temp_files = off # Log usage of temporary files diff -r src.orig/include/utils/guc.h src/include/utils/guc.h 125a126 > extern bool trace_temp_files;
---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly