aboutsummaryrefslogtreecommitdiff
path: root/doc/man/copy.l
diff options
context:
space:
mode:
Diffstat (limited to 'doc/man/copy.l')
-rw-r--r--doc/man/copy.l177
1 files changed, 0 insertions, 177 deletions
diff --git a/doc/man/copy.l b/doc/man/copy.l
deleted file mode 100644
index 943d4219305..00000000000
--- a/doc/man/copy.l
+++ /dev/null
@@ -1,177 +0,0 @@
-.\" This is -*-nroff-*-
-.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/doc/man/Attic/copy.l,v 1.4 1996/10/30 06:19:53 scrappy Exp $
-.TH COPY SQL 11/05/95 Postgres95 Postgres95
-.SH NAME
-copy \(em copy data to or from a class from or to a Unix file.
-.SH SYNOPSIS
-.nf
-\fBcopy\fP [\fBbinary\fP] classname [\fBwith oids\fP]
- \fBto\fP|\fBfrom '\fPfilename\fB'\fP|\fBstdin\fR|\fBstdout\fR
- [\fBusing delimiters '\fPdelim\fB'\fP]
-.fi
-.SH DESCRIPTION
-.BR Copy
-moves data between Postgres classes and standard Unix files. The
-keyword
-.BR binary
-changes the behavior of field formatting, as described below.
-.IR Classname
-is the name of an existing class.
-The keyword
-.BR "with oids"
-copies the internal unique object id (OID) for each row.
-.IR Classname
-is the name of an existing class.
-.IR Filename
-is the absolute Unix pathname of the file. In place of a filename, the
-keywords
-.BR "stdin" " and " "stdout"
-can be used so that input to
-.BR copy
-can be written by a Libpq application and output from the
-.BR copy
-command can be read by a Libpq application.
-.PP
-The
-.BR binary
-keyword will force all data to be stored/read as binary objects rather
-than as ASCII text. It is somewhat faster than the normal
-.BR copy
-command, but is not generally portable, and the files generated are
-somewhat larger, although this factor is highly dependent on the data
-itself.
-When copying in, the
-.BR "with oids"
-keyword should only be used on an empty database because
-the loaded oids could conflict with existing oids.
-By default, a ASCII
-.BR copy
-uses a tab (\\t) character as a delimiter. The delimiter may also be changed
-to any other single-character with the use of
-.BR "using delimiters" .
-Characters in data fields which happen to match the delimiter character
-will be quoted.
-.PP
-You must have read access on any class whose values are read by the
-.BR copy
-command, and either write or append access to a class to which values
-are being appended by the
-.BR copy
-command.
-.SH FORMAT OF OUTPUT FILES
-.SS "ASCII COPY FORMAT"
-When
-.BR copy
-is used without the
-.BR binary
-keyword, the file generated will have each instance on a line, with
-each attribute separated by the delimiter character. Embedded delimiter
-characters will be preceeded by a backslash character (\\). The
-attribute values themselves are strings generated by the output function
-associated with each attribute type. The output function for a type
-should not try to generate the backslash character; this will be handled
-by
-.BR copy
-itself.
-.PP
-The actual format for each instance is
-.nf
-<attr1><tab><attr2><tab>...<tab><attrn><newline>
-.fi
-The oid is placed on the beginning of the line if specified.
-.PP
-If
-.BR copy
-is sending its output to standard output instead of a file, it will
-send a backslash(\\) and a period (.) followed immediately by a newline,
-on a line by themselves, when it is done. Similarly, if
-.BR copy
-is reading from standard input, it will expect a backslash (\\) and
-a period (.) followed
-by a newline, as the first three characters on a line, to denote
-end-of-file. However,
-.BR copy
-will terminate (followed by the backend itself) if a true EOF is
-encountered.
-.PP
-The backslash character has special meaning.
-.BR NULL
-attributes are output as \\N.
-A literal backslash character is output as two consecutive backslashes.
-A literal tab character is represented as a backslash and a tab.
-A literal newline character is represented as a backslash and a newline.
-When loading ASCII data not generated by Postgres95, you will need to
-convert backslash characters (\\) to double-backslashes (\\\\) so
-they are loaded properly.
-.SS "BINARY COPY FORMAT"
-In the case of
-.BR "copy binary" ,
-the first four bytes in the file will be the number of instances in
-the file. If this number is
-.IR zero,
-the
-.BR "copy binary"
-command will read until end of file is encountered. Otherwise, it
-will stop reading when this number of instances has been read.
-Remaining data in the file will be ignored.
-.PP
-The format for each instance in the file is as follows. Note that
-this format must be followed
-.BR EXACTLY .
-Unsigned four-byte integer quantities are called uint32 in the below
-description.
-.nf
-The first value is:
- uint32 number of tuples
-then for each tuple:
- uint32 total length of data segment
- uint32 oid (if specified)
- uint32 number of null attributes
- [uint32 attribute number of first null attribute
- ...
- uint32 attribute number of nth null attribute],
- <data segment>
-.fi
-.bp
-.SS "ALIGNMENT OF BINARY DATA"
-On Sun-3s, 2-byte attributes are aligned on two-byte boundaries, and
-all larger attributes are aligned on four-byte boundaries. Character
-attributes are aligned on single-byte boundaries. On other machines,
-all attributes larger than 1 byte are aligned on four-byte boundaries.
-Note that variable length attributes are preceded by the attribute's
-length; arrays are simply contiguous streams of the array element
-type.
-.SH "SEE ALSO"
-insert(l), create table(l), vacuum(l), libpq.
-.SH BUGS
-Files used as arguments to the
-.BR copy
-command must reside on or be accessible to the the database server
-machine by being either on local disks or a networked file system.
-.PP
-.BR Copy
-stops operation at the first error. This should not lead to problems
-in the event of a
-.BR "copy from" ,
-but the target relation will, of course, be partially modified in a
-.BR "copy to" .
-The
-.IR vacuum (l)
-query should be used to clean up after a failed
-.BR "copy" .
-.PP
-Because Postgres operates out of a different directory than the user's
-working directory at the time Postgres is invoked, the result of copying
-to a file \*(lqfoo\*(rq (without additional path information) may
-yield unexpected results for the naive user. In this case,
-\*(lqfoo\*(rq will wind up in
-.SM $PGDATA\c
-/foo. In general, the full pathname should be used when specifying
-files to be copied.
-.PP
-.BR Copy
-has virtually no error checking, and a malformed input file will
-likely cause the backend to crash. You should avoid using
-.BR copy
-for input whenever possible.