pg_dump is a utility for dumping out a postgres database into a script
file containing query commands.  The script files are in a ASCII
format and can be used to reconstruct the database, even on other
machines and other architectures.  pg_dump will produce the queries
necessary to re-generate all user-defined types, functions, tables,
indices, aggregates, and operators.  In addition, all the data is
copied out in ASCII format so that it can be readily copied in again.

The sources in this directory can be used to build two different
versions of the program.  The two versions require different
versions of libpq, and the same binary cannot serve both purposes.

If you are using:

==============================
	Postgres95
==============================

	To build:

	   % gmake clean install

	This version of the program will read in your postgres95
database and output the schema and the data tuples in SQL only.
(The SQL->POSTQUEL direction is not supported.)  The dumps are useful
for moving from one postgres95 installation to another.


How to use pg_dump:
-------------------

The command line options are fairly self explanatory.  Use -help to
see the command line options.   recommend using -v to get
more verbose descriptions of what pg_dump is doing.

After running pg_dump, one should examine the output script file for any 
warnings, especially in light of the limitations listed below.

A typical use of pg_dump:

	%  pg_dump -v -f oldDB.dump  oldDB
	%  createdb newDB
 	%  psql newDB < oldDB.dump


Caveats and limitations:
------------------------

pg_dump has a few limitations.  The limitations mostly stem from
difficulty in extracting certain meta-information from the system
catalogs.   

   rules and views:  
	pg_dump does not understand user-defined rules and views and
	will fail to dump them properly.  (This is due to the fact that
	rules are stored as plans in the catalogs and not textually)
	
   partial indices:
	pg_dump does not understand partial indices. (The reason is
	the same as above.  Partial index predicates are stored as plans)
	
   source text of POSTQUEL functions:
	pg_dump does not convert the source text of a user-defined
	POSTQUEL function into SQL.  Manual intervention is required.

   large objects:
	pg_dump does not handle large objects.  Inversion large
	objects are ignored and must be dealt with manually.

   oid preservation:
 	pg_dump does not preserve oid's while dumping.  If you have
	stored oid's explicitly in tables in user-defined attributes,
	and are using them as keys, then the output scripts will not
	regenerate your database correctly. 

pg_dump requires postgres95 beta0.03 or later.

Bug-reporting
--------------

If you should find a problem with pg_dump, it is very important that
you provide a (small) sample database which illustrates the problem.
Please send bugs, questions, and feedback to the
	postgres95@postgres.berkeley.edu



