Thread: Use of PG_BINARY_R and "r"

Use of PG_BINARY_R and "r"

From
Bruce Momjian
Date:
I am seeing conflicting usage of PG_BINARY_R and "r" in AllocateFile()
calls.  Is there a logic of when to use one or the other, or is this
just badly maintained code?

The significant difference is:#ifdef __CYGWIN__#define PG_BINARY    O_BINARY#define PG_BINARY_R "rb"#define PG_BINARY_W
"wb"#else#definePG_BINARY    0#define PG_BINARY_R "r"#define PG_BINARY_W "w"#endif
 

For example, in 7.2 I see pg_hba.conf opened with "r" and pg_ident.conf
opened with PG_BINARY_R.

My assumption is that text files should use "r" and binary files use
PG_BINARY_R.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Use of PG_BINARY_R and "r"

From
Tom Lane
Date:
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> My assumption is that text files should use "r" and binary files use
> PG_BINARY_R.

I believe that's correct.  It seems kinda inconsistent though.

> For example, in 7.2 I see pg_hba.conf opened with "r" and pg_ident.conf
> opened with PG_BINARY_R.

The latter is clearly wrong, since pg_ident.conf is not binary.

Is there any interest in defining#define PG_TEXT_R "r"#define PG_TEXT_W "w"
so that AllocateFile is always called with one of this set of macros?
Or is that just silly?
        regards, tom lane


Re: Use of PG_BINARY_R and "r"

From
Bruce Momjian
Date:
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > My assumption is that text files should use "r" and binary files use
> > PG_BINARY_R.
> 
> I believe that's correct.  It seems kinda inconsistent though.
> 
> > For example, in 7.2 I see pg_hba.conf opened with "r" and pg_ident.conf
> > opened with PG_BINARY_R.
> 
> The latter is clearly wrong, since pg_ident.conf is not binary.
> 
> Is there any interest in defining
>     #define PG_TEXT_R "r"
>     #define PG_TEXT_W "w"
> so that AllocateFile is always called with one of this set of macros?
> Or is that just silly?

I kind of like that.  The problem I think is that we use "r" in some
places so people assume it is just like ordinary open() args, which it
is unless it is a binary file, where you have to use the macro.  That
seems kind of confusing.

However, we don't do this very often so just cleaning up what we have
may be enough.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026