Index: fd.c =================================================================== RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/storage/file/fd.c,v retrieving revision 1.59 diff -c -b -w -r1.59 fd.c *** fd.c 2000/06/02 15:57:24 1.59 --- fd.c 2000/06/13 08:16:06 *************** *** 841,849 **** elog(ERROR, "FileSeek: invalid whence: %d", whence); break; } ! } ! else VfdCache[file].seekPos = lseek(VfdCache[file].fd, offset, whence); return VfdCache[file].seekPos; } --- 841,863 ---- elog(ERROR, "FileSeek: invalid whence: %d", whence); break; } ! } else ! switch (whence) { ! case SEEK_SET: ! if (VfdCache[file].seekPos != offset) ! VfdCache[file].seekPos = lseek(VfdCache[file].fd, offset, whence); ! break; ! case SEEK_CUR: ! if (offset != 0); VfdCache[file].seekPos = lseek(VfdCache[file].fd, offset, whence); + break; + case SEEK_END: + VfdCache[file].seekPos = lseek(VfdCache[file].fd, offset, whence); + break; + default: + elog(ERROR, "FileSeek: invalid whence: %d", whence); + break; + } return VfdCache[file].seekPos; }