mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-12 18:34:36 +08:00
Add pipe parameter to COPY function to allow proper line termination.
This commit is contained in:
parent
3df163ad89
commit
9c48cae3e4
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/copy.sgml,v 1.42 2003/04/15 13:25:08 petere Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/ref/copy.sgml,v 1.43 2003/04/19 19:55:37 momjian Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ COPY <replaceable class="parameter">table</replaceable> [ ( <replaceable class="
|
|||||||
otherwise be taken as row or column delimiters. In particular, the
|
otherwise be taken as row or column delimiters. In particular, the
|
||||||
following characters <emphasis>must</> be preceded by a backslash if
|
following characters <emphasis>must</> be preceded by a backslash if
|
||||||
they appear as part of a column value: backslash itself,
|
they appear as part of a column value: backslash itself,
|
||||||
newline, and the current delimiter character.
|
newline, carriage return, and the current delimiter character.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -355,16 +355,16 @@ COPY <replaceable class="parameter">table</replaceable> [ ( <replaceable class="
|
|||||||
It is strongly recommended that applications generating COPY data convert
|
It is strongly recommended that applications generating COPY data convert
|
||||||
data newlines and carriage returns to the <literal>\n</> and
|
data newlines and carriage returns to the <literal>\n</> and
|
||||||
<literal>\r</> sequences respectively. At present it is
|
<literal>\r</> sequences respectively. At present it is
|
||||||
possible to represent a data carriage return without any special quoting,
|
possible to represent a data carriage return by a backslash and carriage
|
||||||
and to represent a data newline by a backslash and newline. However,
|
return, and to represent a data newline by a backslash and newline.
|
||||||
these representations will not be accepted by default in future releases.
|
However, these representations might not be accepted in future releases.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Note that the end of each row is marked by a Unix-style newline
|
<command>COPY TO</command> will terminate each row with a Unix-style
|
||||||
(<quote><literal>\n</></>). Presently, <command>COPY FROM</command> will not behave as
|
newline (<quote><literal>\n</></>), or carriage return/newline
|
||||||
desired if given a file containing DOS- or Mac-style newlines.
|
("\r\n") on MS Windows. <command>COPY FROM</command> can handle lines
|
||||||
This is expected to change in future releases.
|
ending with newlines, carriage returns, or carriage return/newlines.
|
||||||
</para>
|
</para>
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
|
||||||
@ -393,7 +393,7 @@ COPY <replaceable class="parameter">table</replaceable> [ ( <replaceable class="
|
|||||||
12-byte sequence <literal>PGBCOPY\n\377\r\n\0</> --- note that the zero byte
|
12-byte sequence <literal>PGBCOPY\n\377\r\n\0</> --- note that the zero byte
|
||||||
is a required part of the signature. (The signature is designed to allow
|
is a required part of the signature. (The signature is designed to allow
|
||||||
easy identification of files that have been munged by a non-8-bit-clean
|
easy identification of files that have been munged by a non-8-bit-clean
|
||||||
transfer. This signature will be changed by newline-translation
|
transfer. This signature will be changed by end-of-line-translation
|
||||||
filters, dropped zero bytes, dropped high bits, or parity changes.)
|
filters, dropped zero bytes, dropped high bits, or parity changes.)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.192 2003/04/19 00:02:29 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.193 2003/04/19 19:55:37 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -114,7 +114,7 @@ static int server_encoding;
|
|||||||
*/
|
*/
|
||||||
static void SendCopyBegin(bool binary);
|
static void SendCopyBegin(bool binary);
|
||||||
static void ReceiveCopyBegin(bool binary);
|
static void ReceiveCopyBegin(bool binary);
|
||||||
static void SendCopyEnd(bool binary);
|
static void SendCopyEnd(bool binary, bool pipe);
|
||||||
static void CopySendData(void *databuf, int datasize);
|
static void CopySendData(void *databuf, int datasize);
|
||||||
static void CopySendString(const char *str);
|
static void CopySendString(const char *str);
|
||||||
static void CopySendChar(char c);
|
static void CopySendChar(char c);
|
||||||
@ -178,7 +178,7 @@ ReceiveCopyBegin(bool binary)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
SendCopyEnd(bool binary)
|
SendCopyEnd(bool binary, bool pipe)
|
||||||
{
|
{
|
||||||
if (!binary)
|
if (!binary)
|
||||||
CopySendData("\\.\n", 3);
|
CopySendData("\\.\n", 3);
|
||||||
@ -680,7 +680,7 @@ DoCopy(const CopyStmt *stmt)
|
|||||||
if (!pipe)
|
if (!pipe)
|
||||||
FreeFile(copy_file);
|
FreeFile(copy_file);
|
||||||
else if (IsUnderPostmaster && !is_from)
|
else if (IsUnderPostmaster && !is_from)
|
||||||
SendCopyEnd(binary);
|
SendCopyEnd(binary, pipe);
|
||||||
pfree(attribute_buf.data);
|
pfree(attribute_buf.data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user