On Monday, January 14, 2013 6:48 PM Boszormenyi Zoltan wrote:
2013-01-14 07:47 keltezéssel, Amit kapila írta:
> On Sunday, January 13, 2013 2:45 PM Boszormenyi Zoltan wrote:
> 2013-01-13 05:49 keltezéssel, Amit kapila írta:
>> On Sunday, January 13, 2013 12:41 AM Tom Lane wrote:
>> Boszormenyi Zoltan <zb@cybertec.at> writes:
>>>> I can think of below ways to generate tmp file
>>>> 1. Generate session specific tmp file name during operation. This will be similar to what is
>>>> currently being done in OpenTemporaryFileinTablespace() to generate a tempfilename.
>>>> 2. Generate global tmp file name. For this we need to maintain global counter.
>>>> 3. Always generate temp file with same name "postgresql.auto.conf.tmp", as at a time only one
>>>> session is allowed to operate.
>>> What's wrong with mkstemp("config_dir/postgresql.auto.conf.XXXXXX")
>>> that returns a file descriptor for an already created file with a unique name?
>> I think for Windows exactly same behavior API might not exist, we might need to use GetTempFileName.
>> It will generate some different kind of name, which means cleanup also need to take care of different kind of names.
>> So if this is right, I think it might not be very appropriate to use it.
> In that case (and also because the LWLock still serialize the whole procedure)
> you can use GetTempFileName() on Windows and tempnam(3) for non-Windows.
> GetTempFileName() and tempnam() return the constructed temporary file name
> out of the directory and the filename prefix components.
Okay, I shall work on this based on your suggestion.
With Regards,
Amit Kapila.