Re: Patch for COPY command

From: "Kevin Chase" <kevincha99(at)hotmail(dot)com>
To: pgsql-cygwin(at)postgresql(dot)org
Subject: Re: Patch for COPY command
Date: 2002-02-12 07:08:39
Message-ID: F22E2koAUaQMnihRnEX00016f2f@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-cygwin

No feedback so far. Should I just forward this to the patches list, or is
it customary for the maintainer to promote/package patches of interest to
the cygwin port?

--Kevin

>From: "Kevin Chase" <kevincha99(at)hotmail(dot)com>
>To: pgsql-cygwin(at)postgresql(dot)org
>Subject: [CYGWIN] Patch for COPY command
>Date: Sun, 27 Jan 2002 23:26:06 -0800
>
>I just started playing around with postgresql on cygwin, and hit my first
>snag. The COPY command assumes its input/output to have UNIX style line
>endings, which is an inconvenience since notepad is my favorite editor
>(seriously). Here's an obvious patch to src\backend\commands\copy.c which
>all platforms should be happy with (note: PG_BINARY_R,W should probably be
>"rb","wb" on all platforms rather than having the current ifdef for
>cygwin).
>
>I suspect there are other places in the code that should be using explicit
>text-mode open calls, but I don't have time to do an exhaustive search.
>
>--Kevin
>
>bash-2.05a$ diff -u copy.c.orig copy.c
>--- copy.c.orig Thu Aug 16 12:36:37 2001
>+++ copy.c Sun Jan 27 22:43:56 2002
>@@ -273,6 +273,7 @@
> Relation rel;
> const AclMode required_access = from ? ACL_WR : ACL_RD;
> int result;
>+ char *open_mode = NULL;
>
> /*
> * Open and lock the relation, using the appropriate lock type.
>@@ -326,7 +327,8 @@
> }
> else
> {
>- fp = AllocateFile(filename, PG_BINARY_R);
>+ open_mode = binary ? "rb" : "r";
>+ fp = AllocateFile(filename, open_mode);
> if (fp == NULL)
> elog(ERROR, "COPY command, running in
>backend with "
> "effective uid %d, could not open
>file '%s' for "
>@@ -370,7 +372,8 @@
> " COPY command.");
>
> oumask = umask((mode_t) 022);
>- fp = AllocateFile(filename, PG_BINARY_W);
>+ open_mode = binary ? "wb" : "w";
>+ fp = AllocateFile(filename, open_mode);
> umask(oumask);
>
> if (fp == NULL)
>
>
>
>_________________________________________________________________
>MSN Photos is the easiest way to share and print your photos:
>http://photos.msn.com/support/worldwide.aspx
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 3: if posting/reading through Usenet, please send an appropriate
>subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
>message can get through to the mailing list cleanly

_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx

Responses

Browse pgsql-cygwin by date

  From Date Subject
Next Message Dave Page 2002-02-12 08:24:59 Re: Patch for COPY command
Previous Message Jason Tishler 2002-02-11 21:06:14 Re: PostgreSQL 7.2 on Cygwin