psql backward compatibility fix
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 7 Jul 2009 20:32:20 +0000 (20:32 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Tue, 7 Jul 2009 20:32:20 +0000 (20:32 +0000)
For servers older than 8.3, sort display of child tables by relname instead
of oid::regclass::text, because the cast from regclass to text did not work
back then.  The older display may be slightly worse when different schemas
are involved, but that should be rare enough.

src/bin/psql/describe.c

index 2671afde55b87753ad48b7f1c4e21dba219b5113..e89b99d6c1c04f89138cc9511353d7cb2521ae00 100644 (file)
@@ -1821,7 +1821,10 @@ describeOneTableDetails(const char *schemaname,
                PQclear(result);
 
                /* print child tables */
-               printfPQExpBuffer(&buf, "SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhrelid AND i.inhparent = '%s' ORDER BY c.oid::pg_catalog.regclass::text;", oid);
+               if (pset.sversion >= 80300)
+                       printfPQExpBuffer(&buf, "SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhrelid AND i.inhparent = '%s' ORDER BY c.oid::pg_catalog.regclass::text;", oid);
+               else
+                       printfPQExpBuffer(&buf, "SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhrelid AND i.inhparent = '%s' ORDER BY c.relname;", oid);
 
                result = PSQLexec(buf.data, false);
                if (!result)