Re: [HACKERS] 0x1A in control file on Windows

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Bruce Momjian <bruce(at)momjian(dot)us>, ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org, pgsql-bugs(at)postgresql(dot)org
Subject: Re: [HACKERS] 0x1A in control file on Windows
Date: 2008-09-24 05:58:27
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs pgsql-hackers

Andrew Dunstan wrote:
> Tom Lane wrote:
>> Bruce Momjian <bruce(at)momjian(dot)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.

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?


In response to


Browse pgsql-bugs by date

  From Date Subject
Next Message Heikki Linnakangas 2008-09-24 07:37:53 Re: BUG #4434: Error inserting into view - unrecognized node type: 313
Previous Message Tom Lane 2008-09-24 04:38:49 Re: BUG #4434: Error inserting into view - unrecognized node type: 313

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2008-09-24 06:36:56 Re: Common Table Expressions (WITH RECURSIVE) patch
Previous Message Magnus Hagander 2008-09-24 05:40:03 Re: WIP patch: Collation support