diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2009-08-05 18:01:54 +0000 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2009-08-05 18:01:54 +0000 |
commit | 23dc89d2c385e8e362cb4b8186b4d4ad02242ac0 (patch) | |
tree | 670020a84a87526aaa6f0f9421c125da8194ef50 /src/backend/storage/file/fd.c | |
parent | f4095b4c4b24a6fd2c1c330e572c24c6a9c99ea9 (diff) | |
download | postgresql-23dc89d2c385e8e362cb4b8186b4d4ad02242ac0.tar.gz postgresql-23dc89d2c385e8e362cb4b8186b4d4ad02242ac0.zip |
Improve error messages in md.c. When a filesystem operation like open() or
fsync() fails, say "file" rather than "relation" when printing the filename.
This makes messages that display block numbers a bit confusing. For example,
in message 'could not read block 150000 of file "base/1234/5678.1"', 150000
is the block number from the beginning of the relation, ie. segment 0, not
150000th block within that segment. Per discussion, users aren't usually
interested in the exact location within the file, so we can live with that.
To ease constructing error messages, add FilePathName(File) function to
return the pathname of a virtual fd.
Diffstat (limited to 'src/backend/storage/file/fd.c')
-rw-r--r-- | src/backend/storage/file/fd.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index e0742701f1e..b608b2c311b 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.149 2009/06/11 14:49:01 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.150 2009/08/05 18:01:54 heikki Exp $ * * NOTES: * @@ -1319,6 +1319,20 @@ FileTruncate(File file, off_t offset) return returnCode; } +/* + * Return the pathname associated with an open file. + * + * The returned string points to an internal buffer, which is valid until + * the file is closed. + */ +char * +FilePathName(File file) +{ + Assert(FileIsValid(file)); + + return VfdCache[file].fileName; +} + /* * Routines that want to use stdio (ie, FILE*) should use AllocateFile |