Commit Graph

151 Commits

Author SHA1 Message Date
Itagaki Takahiro 3cba8240a1 Add ENCODING option to COPY TO/FROM and file_fdw.
File encodings can be specified separately from client encoding.
If not specified, client encoding is used for backward compatibility.

Cases when the encoding doesn't match client encoding are slower
than matched cases because we don't have conversion procs for other
encodings. Performance improvement would be be a future work.

Original patch by Hitoshi Harada, and modified by me.
2011-02-21 14:32:40 +09:00
Magnus Hagander 9f2e211386 Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
Tom Lane f826f8fc69 Add missing close brackets in old-style COPY syntax diagram.
Spotted by Evan Carroll.
2010-06-17 17:03:57 +00:00
Tom Lane 854b5eb510 Improve COPY documentation to clarify that it doesn't copy data to or from
child tables.  Per gripe from Jaime Casanova.
2010-04-30 19:49:06 +00:00
Robert Haas 33980a0640 Fix various instances of "the the".
Two of these were pointed out by Erik Rijkers; the rest I found.
2010-04-23 23:21:44 +00:00
Peter Eisentraut 6dcce3985b Remove unnecessary xref endterm attributes and title ids
The endterm attribute is mainly useful when the toolchain does not support
automatic link target text generation for a particular situation.  In  the
past, this was required by the man page tools for all reference page links,
but that is no longer the case, and it now actually gets in the way of
proper automatic link text generation.  The only remaining use cases are
currently xrefs to refsects.
2010-04-03 07:23:02 +00:00
Bruce Momjian edf344a5e3 Revert recent COPY manual change about encoding; add mention of "server". 2010-02-23 21:38:35 +00:00
Bruce Momjian 1180b64075 Make documentation more direct about the handling of COPY files based on
the client encoding.
2010-02-23 05:17:33 +00:00
Tom Lane 50a90fac40 Stamp HEAD as 9.0devel, and update various places that were referring to 8.5
(hope I got 'em all).  Per discussion, this release will be 9.0 not 8.5.
2010-02-17 04:19:41 +00:00
Tom Lane 923413ac6d Define a new, more extensible syntax for COPY options.
This is intentionally similar to the recently revised syntax for EXPLAIN
options, ie, (name value, ...).  The old syntax is still supported for
backwards compatibility, but we intend that any options added in future
will be provided only in the new syntax.

Robert Haas, Emmanuel Cecchet
2009-09-21 20:10:21 +00:00
Peter Eisentraut f7e508a759 Make the placeholder naming in the synopses of the SQL help more consistent 2009-09-19 10:23:27 +00:00
Tom Lane 726725d4d9 A bit more wordsmithing on the COPY CSV NULL business. 2009-09-18 20:01:13 +00:00
Bruce Momjian ef9619609a CSV NULL Documentation
Update docs to clearly explain NULL value matching behavior, per Andrew.

Backpatch to 8.4.X.
2009-09-17 21:49:15 +00:00
Bruce Momjian 41a40fe4a2 CVS NULL Documentation
Clearify documentation of CVS's output of NULL values, per suggestion
from Magnus.

Backpatch to 8.4.X.
2009-09-17 21:13:01 +00:00
Tom Lane a2367f89ff Add a note warning that COPY BINARY is very datatype-specific.
Per a complaint from Gordon Shannon.
2009-09-05 23:58:01 +00:00
Andrew Dunstan de7531a971 Allow * as parameter for FORCE QUOTE for COPY CSV. Itagaki Takahiro. 2009-07-25 00:07:14 +00:00
Tom Lane c87c31f10b Ooops, forgot to update COPY reference page to mention column privileges. 2009-02-06 21:22:49 +00:00
Peter Eisentraut d129255077 Set SQL man pages to be section 7 by default, and only transform them to
another section if required by the platform (instead of the old way of
building them in section "l" and always transforming them to the
platform-specific section).

This speeds up the installation on common platforms, and it avoids some
funny business with the man page tools and build process.
2008-11-14 10:22:48 +00:00
Tom Lane df7641e25a Add a new GUC variable called "IntervalStyle" that decouples interval output
from DateStyle, and create a new interval style that produces output matching
the SQL standard (at least for interval values that fall within the standard's
restrictions).  IntervalStyle is also used to resolve the conflict between the
standard and traditional Postgres rules for interpreting negative interval
input.

Ron Mayer
2008-11-09 00:28:35 +00:00
Tom Lane 74fd3d1b23 Fix COPY documentation to not imply that HEADER can be used outside CSV mode.
Per gripe from Bill Thoen.
2008-10-10 21:46:34 +00:00
Andrew Dunstan c7d7c15bb1 Document the fact that COPY always uses the client encoding. 2008-01-16 22:07:04 +00:00
Bruce Momjian c228448910 Update docs/error message for CSV quote/escape --- must be ASCII.
Backpatch doc change to 8.2.X.
2007-04-18 02:28:22 +00:00
Bruce Momjian 739425dbe3 Document that the COPY delimiter must be an ASCII byte, rather than a
multi-byte value.  It can also be a single-byte encoded character if
the client and server versions match.

Backpatch to 8.2.X.
2007-04-18 00:17:56 +00:00
Bruce Momjian e81c138e18 Update reference documentation on may/can/might:
Standard English uses "may", "can", and "might" in different ways:

        may - permission, "You may borrow my rake."

        can - ability, "I can lift that log."

        might - possibility, "It might rain today."

Unfortunately, in conversational English, their use is often mixed, as
in, "You may use this variable to do X", when in fact, "can" is a better
choice.  Similarly, "It may crash" is better stated, "It might crash".
2007-01-31 23:26:05 +00:00
Tom Lane b5b1eb80b7 Documentation for VALUES lists. Joe Conway and Tom Lane 2006-09-18 19:54:01 +00:00
Bruce Momjian 32cebaecff Remove emacs info from footer of SGML files. 2006-09-16 00:30:20 +00:00
Tom Lane 85188ab883 Extend COPY to support COPY (SELECT ...) TO ...
Bernd Helmle
2006-08-30 23:34:22 +00:00
Bruce Momjian 9d483b7bcf Suggest Win32 users user E'' strings and double backslashes used for
patch separators in COPY.

Backpatch doubleing backslashes suggestion to 8.1.
2006-04-22 03:03:11 +00:00
Tom Lane 023570f5e3 Make the COPY command return a command tag that includes the number of
rows copied.  Backend side of Volkan Yazici's recent patch, with
corrections and documentation.
2006-03-03 19:54:10 +00:00
Bruce Momjian 9c72df4e86 Update COPY CSV \. wording for externally created files. 2005-12-28 14:38:32 +00:00
Bruce Momjian 87289ff35c Add regression tests for CSV and \., and add automatic quoting of a
single column dump that has a \. value, so the load works properly.  I
also added documentation describing this issue.
2005-12-28 03:25:32 +00:00
Neil Conway fc8f4bac0e Fix assorted typos in the documentation, and use American spelling
rather than British. Patch from Michael Fuhr.
2005-10-15 20:12:33 +00:00
Bruce Momjian 7d43349ab5 Fix capitalization of example. 2005-10-13 14:44:58 +00:00
Bruce Momjian 3d50e107ad Remove extra <para> 2005-10-13 02:00:09 +00:00
Andrew Dunstan 2739e1d1c2 Add a note about CSV lines with trailing spaces.
Suggestion by Darcy Buskermolen, reworded by me.
2005-09-05 14:44:05 +00:00
Bruce Momjian 202e6e73e6 Add support for \x hex escapes in COPY.
Sergey Ten
2005-06-02 01:21:22 +00:00
Bruce Momjian b63990c6a8 Add COPY WITH CVS HEADER to allow a heading line as the first line in
COPY.

Andrew Dunstan
2005-05-07 02:22:49 +00:00
Bruce Momjian 051ecca022 Remove documentation that CSV didn't handle carriage returns and line
feeds properly.
2005-05-06 03:38:05 +00:00
Tom Lane 4e94ea9fc9 More minor updates and copy-editing. 2005-01-04 00:39:53 +00:00
Peter Eisentraut 5ec30faee6 Spell checker run 2004-12-13 18:05:10 +00:00
Bruce Momjian 8408f65252 Rework libpq threaded SIGPIPE handling to avoid interference with
calling applications.  This is done by blocking sigpipe in the libpq
thread and using sigpending/sigwait to possibily discard any sigpipe we
generated.
2004-12-02 15:32:54 +00:00
Peter Eisentraut a420b76ca5 Correctly name the Windows operating systems 2004-11-27 21:56:05 +00:00
Neil Conway a51e54cf5b Document a limitation of COPY's new CSV mode. Doc patch from Andrew
Dunstan, editorializing by Neil Conway.
2004-11-17 02:50:06 +00:00
Neil Conway ec7a6bd9a2 Replace "--" and "---" with "&mdash;" as appropriate, for better-looking
output.
2004-11-15 06:32:15 +00:00
Bruce Momjian 49d3d9cf40 Change COPY CSV keyword to be:
FORCE QUOTE to force quotes
	FORCE NOT NULL to quote null input values
2004-04-21 00:34:18 +00:00
Bruce Momjian 862b20b382 Complete TODO item:
o -Allow dump/load of CSV format

This adds new keywords to COPY and \copy:

        CSV - enable CSV mode (comma separated variable)
        QUOTE - specify quote character
        ESCAPE - specify escape character
        FORCE - force quoting of specified column
	LITERAL - suppress null comparison for columns

Doc changes included.  Regression updates coming from Andrew.
2004-04-19 17:22:31 +00:00
Neil Conway 7fb5a9992c This patch makes some SGML markup more consistent and makes a small
improvement to the SSL auth docs.
2003-12-13 23:59:07 +00:00
PostgreSQL Daemon 969685ad44 $Header: -> $PostgreSQL Changes ... 2003-11-29 19:52:15 +00:00
Tom Lane 0eceaaf9b7 Modify COPY FROM to match the null-value string against the column value
before it is de-backslashed, not after.  This allows the null string \N
to be reliably distinguished from the data value \N (which must be
represented as \\N).  Per bug report from Manfred Koizar ... but it's
amazing this hasn't been reported before ...
Also, be consistent about encoding conversion for null string: the form
specified in the command is in the server encoding, but what is sent
to/from client must be in client encoding.  This never worked quite
right before either.
2003-10-06 02:38:53 +00:00
Tom Lane 444af9e0e8 Minor copy-editing. 2003-09-30 01:56:11 +00:00
Peter Eisentraut 5d00f984d8 Make the SQL command synopses appear less random. 2003-09-22 00:16:58 +00:00
Bruce Momjian 2a5b6a7c9b This patch fixes a few missed GUC variables that were still upper case,
makes a few more small improvements to runtime.sgml, and makes some SGML
conventions more consistent.

Neil Conway
2003-09-11 21:42:20 +00:00
Tom Lane d4019b7cd3 Remove a bunch of content-free Diagnostics sections, as per previous
discussion.  (Still have some work to do editing the remainder.)
2003-09-09 18:28:53 +00:00
Peter Eisentraut c326d8f4f2 Add/edit index entries. 2003-08-31 17:32:24 +00:00
Bruce Momjian f7d9aa8fbf The attached patch adds some clarification to the documentation of the
binary format read/created by COPY BINARY. It also mentions the
contrib/binarycopy module.

Lee Kindness.
2003-08-17 04:33:02 +00:00
Tom Lane b1ee615a7f COPY BINARY uses the new binary I/O routines. Update a few more datatypes
so that COPY BINARY regression test passes.
2003-05-09 21:19:50 +00:00
Tom Lane 1718f4c66c Update COPY BINARY file format spec to reflect recent decisions about
external representation of binary data.
2003-05-07 22:23:27 +00:00
Bruce Momjian 7773434999 Make it clear it is the server version that determines if crlf is used. Idea from Joe Conway. 2003-04-20 01:52:55 +00:00
Bruce Momjian 9c48cae3e4 Add pipe parameter to COPY function to allow proper line termination. 2003-04-19 19:55:37 +00:00
Peter Eisentraut 7c084d148f Bring SQL ref pages to consistent format, part 1. 2003-04-15 13:25:08 +00:00
Bruce Momjian 54f7338fa1 This patch implements holdable cursors, following the proposal
(materialization into a tuple store) discussed on pgsql-hackers earlier.
I've updated the documentation and the regression tests.

Notes on the implementation:

- I needed to change the tuple store API slightly -- it assumes that it
won't be used to hold data across transaction boundaries, so the temp
files that it uses for on-disk storage are automatically reclaimed at
end-of-transaction. I added a flag to tuplestore_begin_heap() to control
this behavior. Is changing the tuple store API in this fashion OK?

- in order to store executor results in a tuple store, I added a new
CommandDest. This works well for the most part, with one exception: the
current DestFunction API doesn't provide enough information to allow the
Executor to store results into an arbitrary tuple store (where the
particular tuple store to use is chosen by the call site of
ExecutorRun). To workaround this, I've temporarily hacked up a solution
that works, but is not ideal: since the receiveTuple DestFunction is
passed the portal name, we can use that to lookup the Portal data
structure for the cursor and then use that to get at the tuple store the
Portal is using. This unnecessarily ties the Portal code with the
tupleReceiver code, but it works...

The proper fix for this is probably to change the DestFunction API --
Tom suggested passing the full QueryDesc to the receiveTuple function.
In that case, callers of ExecutorRun could "subclass" QueryDesc to add
any additional fields that their particular CommandDest needed to get
access to. This approach would work, but I'd like to think about it for
a little bit longer before deciding which route to go. In the mean time,
the code works fine, so I don't think a fix is urgent.

- (semi-related) I added a NO SCROLL keyword to DECLARE CURSOR, and
adjusted the behavior of SCROLL in accordance with the discussion on
-hackers.

- (unrelated) Cleaned up some SGML markup in sql.sgml, copy.sgml

Neil Conway
2003-03-27 16:51:29 +00:00
Peter Eisentraut bc49968764 Add more appropriate markup. 2002-09-21 18:32:54 +00:00
Bruce Momjian f7e089b3fa Back out password packet length check.
Improve wording of pre-7.3 syntax mention.
2002-08-30 16:00:41 +00:00
Bruce Momjian cafebdd4d8 Add comment on old sytax for SELECT FOR UPDATE/LIMIT and COPY. 2002-08-30 03:18:23 +00:00
Tom Lane 5f9ba042a7 Neil's patch claimed a column list didn't work for COPY BINARY.
Which was true when he submitted it, but is so no longer.
2002-08-04 05:22:02 +00:00
Bruce Momjian 6b64704e4f This patch fixes a probably harmless write of uninitialized memory in
the statistics collector and makes a number of corrections to the
documentation for SET, SHOW, and COPY.

Neil Conway
2002-08-04 05:09:36 +00:00
Tom Lane 38bb77a5d1 ALTER TABLE DROP COLUMN works. Patch by Christopher Kings-Lynne,
code review by Tom Lane.  Remaining issues: functions that take or
return tuple types are likely to break if one drops (or adds!)
a column in the table defining the type.  Need to think about what
to do here.

Along the way: some code review for recent COPY changes; mark system
columns attnotnull = true where appropriate, per discussion a month ago.
2002-08-02 18:15:10 +00:00
Bruce Momjian 874148fe34 IMPROVED VERSION APPLIED:
The attached patch completes the following TODO item:

    * Generate failure on short COPY lines rather than pad NULLs

I also restructed a lot of the existing COPY code, did some code
review on the column list patch sent in by Brent Verner a little
while ago, and added some regression tests. I also added an
explicit check (and resultant error) for extra data before
the end-of-line.

Neil Conway
2002-07-30 16:55:06 +00:00
Bruce Momjian a90db34b54 The attached patch (against HEAD) implements
COPY x (a,d,c,b) from stdin;
  COPY x (a,c) to stdout;

as well as the corresponding changes to pg_dump to use the new
functionality.  This functionality is not available when using
the BINARY option.  If a column is not specified in the COPY FROM
statement, its default values will be used.

In addition to this functionality, I tweaked a couple of the
error messages emitted by the new COPY <options> checks.

Brent Verner
2002-07-18 04:43:51 +00:00
Bruce Momjian c2c2fd57ee Improve COPY syntax to use WITH clause, keep backward compatibility. 2002-06-20 16:00:44 +00:00
Tom Lane fa613fa1ea Fix obsolete statement about permissions on COPY ref page, and confusion
about TO/FROM direction in several places.
2002-05-14 18:47:58 +00:00
Tom Lane 0c1fe3d2b9 Update SQL-command reference pages for schema features. 2002-04-23 02:07:16 +00:00
Peter Eisentraut b6ea172ace Spell checking and markup additions 2002-03-22 19:20:45 +00:00
Tom Lane 9832a235c5 Modify COPY TO to emit carriage returns and newlines as backslash escapes
(backslash-r, backslash-n) for protection against newline-conversion
munging.  In future we will also tweak COPY FROM, but this part of the
change should be backwards-compatible.  Per pghackers discussion.
Also, update COPY reference page to describe the backslash conversions
more completely and accurately.
2002-02-12 21:25:41 +00:00
Peter Eisentraut bf43bed848 Spell-check and markup police 2002-01-20 22:19:57 +00:00
Thomas G. Lockhart 03a321d214 Use PostgreSQL consistantly throughout docs. Before, usage was split evenly
between Postgres and PostgreSQL.
2001-12-08 03:24:40 +00:00
Tom Lane 969cc16c69 Enforce restriction that COPY DELIMITERS string must be exactly one
character; replace strchr() search with simple comparison to speed up
COPY IN.  Per discussion in pghackers.
2001-12-04 21:19:57 +00:00
Peter Eisentraut 351a0c1736 Replace ASCII-quotes with proper markup. 2001-09-13 15:55:24 +00:00
Peter Eisentraut 89a1ea4207 Put some kind of grammatical uniformity in the <refpurpose> lines. 2001-09-03 12:57:50 +00:00
Tom Lane 6568939852 Mention that COPY cannot be used on a view (per recent suggestion).
Other small improvements.
2001-08-10 23:09:30 +00:00
Peter Eisentraut 96147a6d1c Make UPDATE and DELETE privileges distinct. Add REFERENCES and TRIGGER
privileges.  INSERT and COPY FROM now require INSERT (only).  Add
privileges regression test.
2001-05-27 09:59:30 +00:00
Peter Eisentraut 027f144e39 Terminology cleanup: class -> table, instance -> row, attribute -> column,
etc.
2001-01-13 23:58:55 +00:00
Tom Lane 676cf18c5b New file format for COPY BINARY, in accordance with pghackers discussions
of early December 2000.  COPY BINARY is now TOAST-safe.
2001-01-03 20:04:10 +00:00
Bruce Momjian b32685a999 Add proofreader's changes to docs.
Fix misspelling of disbursion to dispersion.
2000-10-05 19:48:34 +00:00
Bruce Momjian ec37ea1cc1 Cleanups 2000-07-22 02:39:10 +00:00
Bruce Momjian 3296e6fe68 More cleanup 2000-04-18 23:44:58 +00:00
Bruce Momjian 74d1478c6e Rename binary object to binary format. 2000-04-18 23:43:24 +00:00
Bruce Momjian bb72dc21f0 Update COPY manual page for \N. 2000-04-18 23:21:04 +00:00
Bruce Momjian 1dcf5907c4 Fix \N mention in manual 2000-04-18 18:41:15 +00:00
Thomas G. Lockhart 97710d9f5a Fix typo in tag. 1999-12-17 14:52:51 +00:00
Bruce Momjian bcaabc5698 Depending on my interpreting (and programming) skills, this might solve
anywhere from zero to two TODO items.

* Allow flag to control COPY input/output of NULLs

I got this:
COPY table .... [ WITH NULL AS 'string' ]
which does what you'd expect. The default is \N, otherwise you can use
empty strings, etc. On Copy In this acts like a filter: every data item
that looks like 'string' becomes a NULL. Pretty straightforward.

This also seems to be related to

* Make postgres user have a password by default

If I recall this discussion correctly, the problem was actually that the
default password for the postgres (or any) user is in fact "\N", because
of the way copy is used. With this change, the file pg_pwd is copied out
with nulls as empty strings, so if someone doesn't have a password, the
password is just '', which one would expect from a new account. I don't
think anyone really wants a hard-coded default password.

Peter Eisentraut                  Sernanders väg 10:115
1999-12-14 00:08:21 +00:00
Bruce Momjian 60f3e6b3a5 Make USING in COPY optional. 1999-10-29 23:52:22 +00:00
Thomas G. Lockhart a27512e634 Complete merge of all old man page information.
ecpg reference page still needs formatting.
1999-07-22 15:09:15 +00:00
Thomas G. Lockhart a4ac2f458e Fix markup for docbook2man man page generation.
No big deal; fixed lots of other markup at the same time.
Bigest change: make sure there is no whitespace
 in front of <term> contents.
This will probably help the other output types too.
1999-07-06 17:16:42 +00:00
Thomas G. Lockhart b106421473 More complete info from Oliver Elphick. 1999-02-13 03:32:43 +00:00
Bruce Momjian 4390b0bfbe Add TEMP tables/indexes. Add COPY pfree(). Other cleanups. 1999-02-02 03:45:56 +00:00
Thomas G. Lockhart a75f2d21a8 Clean up to ensure tag completion as required by the newest versions
of Norm's Modular Style Sheets and jade/docbook.
From Vince Vielhaber <vev@michvhf.com>.
1998-12-29 02:24:47 +00:00
Thomas G. Lockhart 3d83e28b2b Minor cleanup in markup, especially in the Output section. 1998-10-30 19:34:40 +00:00
Thomas G. Lockhart d2a907c6ad Markup and editing adjustments... 1998-09-16 14:43:12 +00:00
Thomas G. Lockhart 6866cbc7c7 Very minor formatting fixup in the refentry id field to remove
the trailing "-1". This makes a cleaner html output file name.
Clean up a few refpurpose fields.
1998-09-07 15:58:31 +00:00