"Rajesh Kumar Mallah" <mallah.rajesh@gmail.com> writes:
> IMHO for major version mismatch psql should not present the
> user with a prompt at all as certain commands are most likely
> not work.
The analogy you're drawing with pg_dump is faulty. There are at least
three good reasons for psql to be more forgiving of version mismatches
than pg_dump is:
1. pg_dump is commonly run noninteractively (eg, from a cron job) where
any mere warning will likely go unnoticed. So it has to raise a hard
error to get the DBA's attention. psql's backslash commands are far
less likely to be used noninteractively, and a failure is usually pretty
obvious to a human user.
2. pg_dump is critical: if it dumps an unusable backup due to not
understanding the system catalogs of a newer server, the DBA who needs
that backup later will be badly screwed. psql's backslash commands,
again, are not so critical.
3. psql offers a pretty decent amount of functionality even if some of
its backslash commands don't work, whereas a dump that is wrong is worse
than useless. So the use-case for operating with a version mismatch is
much wider for psql.
So I think we have the right tradeoffs in this regard now.
regards, tom lane