On 5/3/07, Bruce Momjian <bruce@momjian.us> wrote:
>
> Your patch has been added to the PostgreSQL unapplied patches list at:
>
This is an updated version of the patch.
Tom objections:
- fd.c is too low level for calling code from commands/tablespace.c.
This was fixed adding a second parameter to BufFileCreateTemp() to send
the tblspcOid (this function is called from executor/nodeHashJoin.c,
utils/sort/logtape.c and utils/sort/tuplestore.c). Are these places ok?
- RemovePgTempFilesInDir() has no support for removing temp files from
strange locations.
Per Tom suggestion temp files are now created in: base/pgsql_tmp and
pg_tblspc/$oid_tblspc/pgsql_tmp. So i just refactor RemovePgTempFiles()
to call RemovePgTempFilesInDir() with base and pg_tblspc/$oid_tblspc's
pgsql_tmp
Other changes in code:
fd.c:
functions make_database_relative() and FileNameOpenFile() were marked
as NOT_USED. objections to simply delete them?
also added OpenTempFileInTblspc() to create the tempfilepath and call
to PathNameOpenFile()
buffile.c:
also added a new tblspcOid field to BufFile struct to use it in extendBufFile()
Problems:
While the patch passes all the regression tests i still have a problem
when doin this:
sgerp=# set temp_tablespaces = '';
ERROR: tablespace "" does not exist
note that setting temp_tablespaces = '' from postgresql.conf works well.
maybe this is silly but it's too late for me... i will keep trying
tomorrow unless someone else has fixed it.
comments?
--
regards,
Jaime Casanova
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook