On Fri, Dec 16, 2011 at 12:06, Alvaro Herrera
<alvhe...@commandprompt.com> wrote:

> Yeah.  Nikhil, Alex, this is the merged patch.  Have a look that it
> still works for you (particularly the pg_dump bits) and I'll commit it.
> I adjusted the regression test a bit too.

Other than the version checks seem to be off by one looks fine. I
assume I/we missed that in the original patch. I also adjusted the
version check in describe.c to be consistent with the other version
checks in that file (>= 90200 instead of > 90100).

(Also, nice catch on "false AS as r.conisonly" in describe.c)

--

*** a/src/bin/pg_dump/pg_dump.c
--- b/src/bin/pg_dump/pg_dump.c
***************
*** 5996,6003 **** getTableAttrs(TableInfo *tblinfo, int numTables)
                                                  tbinfo->dobj.name);

                        resetPQExpBuffer(q);
!                       if (g_fout->remoteVersion >= 90100)
                        {
                                appendPQExpBuffer(q, "SELECT tableoid, oid, 
conname, "
                                                   
"pg_catalog.pg_get_constraintdef(oid) AS consrc, "
                                                                  "conislocal, 
convalidated, conisonly "
--- 5996,6004 ----
                                                  tbinfo->dobj.name);

                        resetPQExpBuffer(q);
!                       if (g_fout->remoteVersion >= 90200)
                        {
+                               /* conisonly is new in 9.2 */
                                appendPQExpBuffer(q, "SELECT tableoid, oid, 
conname, "
                                                   
"pg_catalog.pg_get_constraintdef(oid) AS consrc, "
                                                                  "conislocal, 
convalidated, conisonly "
***************
*** 6007,6012 **** getTableAttrs(TableInfo *tblinfo, int numTables)
--- 6008,6026 ----
                                                                  "ORDER BY 
conname",
                                                                  
tbinfo->dobj.catId.oid);
                        }
+                       else if (g_fout->remoteVersion >= 90100)
+                       {
+                               /* conisvalidated is new in 9.1 */
+                               appendPQExpBuffer(q, "SELECT tableoid, oid, 
conname, "
+                                                  
"pg_catalog.pg_get_constraintdef(oid) AS consrc, "
+                                                                 "conislocal, 
convalidated, "
+                                                                 "false as 
conisonly "
+                                                                 "FROM 
pg_catalog.pg_constraint "
+                                                                 "WHERE 
conrelid = '%u'::pg_catalog.oid "
+                                                                 "   AND 
contype = 'c' "
+                                                                 "ORDER BY 
conname",
+                                                                 
tbinfo->dobj.catId.oid);
+                       }
                        else if (g_fout->remoteVersion >= 80400)
                        {
                                appendPQExpBuffer(q, "SELECT tableoid, oid, 
conname, "
*** a/src/bin/psql/describe.c
--- b/src/bin/psql/describe.c
***************
*** 1783,1789 **** describeOneTableDetails(const char *schemaname,
                {
                        char *is_only;

!                       if (pset.sversion > 90100)
                                is_only = "r.conisonly";
                        else
                                is_only = "false AS conisonly";
--- 1783,1789 ----
                {
                        char *is_only;

!                       if (pset.sversion >= 90200)
                                is_only = "r.conisonly";
                        else
                                is_only = "false AS conisonly";

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to