Re: 0x1A in control file on Windows

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: 0x1A in control file on Windows
Дата
Msg-id 48D9D703.8030506@hagander.net
обсуждение исходный текст
Ответ на Re: 0x1A in control file on Windows  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: [BUGS] 0x1A in control file on Windows  (Magnus Hagander <magnus@hagander.net>)
Re: [BUGS] 0x1A in control file on Windows  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Andrew Dunstan wrote:
> 
> 
> Tom Lane wrote:
>> Bruce Momjian <bruce@momjian.us> writes:
>>  
>>> Tom Lane wrote:
>>>    
>>>> Well, why is that a bug?  If the platform is so silly as to define text
>>>> files that way, who are we to argue?
>>>>       
>>
>>  
>>> The problem is that our pg_controldata might have binary values that
>>> contain 0x1a that will be confused by the operating system as
>>> end-of-file.
>>>     
>>
>> pg_controldata is certainly already being read as binary. 
> 
> Umm, no, it is in the backend I believe but not in the utilities. Hence
> the original bug report. We need to add the binary flag in
> pg_controldata.c and pg_resetxlog.c.

Right.
I'll go ahead and put that part in (I find two locations - the one in
the original patch, and the extra one Heikki noticed).


>>  The
>> discussion here is about *text* files, particularly configuration
>> files.  Why should we not adhere to the platform standard about
>> what a text file is?
>>
>> If you need a positive reason why this might be a bad idea, consider the
>> idea that someone is examining postgresql.conf with a text editor that
>> stops reading at control-Z.  He might not be able to see items that the
>> postmaster is treating as valid.
>>
>>            
>>   
> 
> Yes, exactly right. We certainly can't just open everything in binary
> mode. Magnus did say that all the current config files are opened in
> text mode as far as he could see.

The point being that the config files are opened with AllocateFile(),
which in turn calls fopen(). It doesn't use open(). The proposal was
only to make all *open()* calls do it binary. I was under the impression
that on Unix, that's what open() did, so we should behave the same?

//Magnus


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: WIP patch: Collation support
Следующее
От: Greg Stark
Дата:
Сообщение: Re: Common Table Expressions (WITH RECURSIVE) patch