• Tom Lane's avatar
    Make BufFileCreateTemp() ensure that temp tablespaces are set up. · 93f03dad
    Tom Lane authored
    If PrepareTempTablespaces() has never been called in the current
    transaction, OpenTemporaryFile() will fall back to using the default
    tablespace, which is a bug if the user wanted temp files placed elsewhere.
    gistInitBuildBuffers() appears to have this disease already, and it
    seems like an easy trap for future coders to fall into.
    
    We discussed other ways to close this gap, but none of them are prettier
    or more reliable than just having BufFileCreateTemp do it.  In particular,
    having fd.c do this creates layering issues that we could do without.
    
    Per suggestion from Melanie Plageman.  Arguably this is a bug fix, but
    nobody seems very excited about back-patching, so change in HEAD only.
    
    Discussion: https://postgr.es/m/CAAKRu_YwzjuGAmmaw4-8XO=OVFGR1QhY_Pq-t3wjb9ribBJb_Q@mail.gmail.com
    93f03dad
buffile.c 21.8 KB