If you run 6.5 pg_dump against a 7.0 database, or vice versa,
you get very obscure error messages:
	parseNumericArray: too many numbers
	getInherits(): SELECT failed.  Explanation from backend: 'ERROR:  Attribute 'inhrel' not found
(Quick, guess which is which ... you'll probably guess wrong.)

It's too late to do anything about the behavior of 6.5 pg_dump,
but we could change 7.0 and later pg_dump to check the database
version at startup and refuse to run if it's not the expected value.

A downside is that a pg_dump might refuse to dump a DB that it actually
would work with; that could be a pain in the neck, particularly in
development scenarios where you might not have kept the previous
compilation of pg_dump lying around.  Yet I think I prefer that to the
risk of an insidious incompatibility that causes pg_dump to run without
complaint yet generate a bogus dump.

Comments anyone?

			regards, tom lane

Mon, 03 Apr 2000 14:48:23 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Should pg_dump refuse to run if DB has different version?
On Mon, 3 Apr 2000, Tom Lane wrote:

> If you run 6.5 pg_dump against a 7.0 database, or vice versa,
> you get very obscure error messages:
> 	parseNumericArray: too many numbers
> 	getInherits(): SELECT failed.  Explanation from backend: 'ERROR:  Attribute 'inhrel' not found
> (Quick, guess which is which ... you'll probably guess wrong.)
> 
> It's too late to do anything about the behavior of 6.5 pg_dump,
> but we could change 7.0 and later pg_dump to check the database
> version at startup and refuse to run if it's not the expected value.
> 
> A downside is that a pg_dump might refuse to dump a DB that it actually
> would work with; that could be a pain in the neck, particularly in
> development scenarios where you might not have kept the previous
> compilation of pg_dump lying around.  Yet I think I prefer that to the
> risk of an insidious incompatibility that causes pg_dump to run without
> complaint yet generate a bogus dump.
> 
> Comments anyone?

Sounds reasonable to me ...



Mon, 3 Apr 2000 16:02:31 -0300 (ADT)
The Hermit Hacker <scrappy@hub.org>
Re: Should pg_dump refuse to run if DB has different
 version?
* Tom Lane <tgl@sss.pgh.pa.us> [000403 12:18] wrote:
> If you run 6.5 pg_dump against a 7.0 database, or vice versa,
> you get very obscure error messages:
> 	parseNumericArray: too many numbers
> 	getInherits(): SELECT failed.  Explanation from backend: 'ERROR:  Attribute 'inhrel' not found
> (Quick, guess which is which ... you'll probably guess wrong.)
> 
> It's too late to do anything about the behavior of 6.5 pg_dump,
> but we could change 7.0 and later pg_dump to check the database
> version at startup and refuse to run if it's not the expected value.
> 
> A downside is that a pg_dump might refuse to dump a DB that it actually
> would work with; that could be a pain in the neck, particularly in
> development scenarios where you might not have kept the previous
> compilation of pg_dump lying around.  Yet I think I prefer that to the
> risk of an insidious incompatibility that causes pg_dump to run without
> complaint yet generate a bogus dump.
> 
> Comments anyone?

It's a great idea and later down the road the versioning information
could be used to determine if it's actually possible to pg_dump
with a certain version, ie the pg_dump program can report its
version number to postgresql and postgresql can reply if it thinks
it's compatible with the version of pg_dump being used.

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."

Mon, 3 Apr 2000 12:32:51 -0700
Alfred Perlstein <bright@wintelcom.net>
Re: Should pg_dump refuse to run if DB has different version?
Ed Loehr <eloehr@austin.rr.com> writes:
> How about a pg_dump "force" option to run regardless of potential
> incompatibilities?

Good idea --- done.

			regards, tom lane

Tue, 04 Apr 2000 01:23:47 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: Should pg_dump refuse to run if DB has different version? 