With reference to the post 
http://archives.postgresql.org/pgsql-patches/2008-02/msg00104.phpand as stated 
by -hackers and -patchers, I am submitting the diff -c output as an attachment. 
Thanks, Kenneth 
_________________________________________________________________
Tried the new MSN Messenger? It’s cool! Download now.
http://messenger.msn.com/Download/Default.aspx?mkt=en-in
Index: describe.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/bin/psql/describe.c,v
retrieving revision 1.164
diff -c -r1.164 describe.c
*** describe.c  1 Jan 2008 19:45:56 -0000       1.164
--- describe.c  3 Mar 2008 04:10:55 -0000
***************
*** 1106,1117 ****
                                   *result3 = NULL,
                                   *result4 = NULL,
                                   *result5 = NULL,
!                                  *result6 = NULL;
                int                     check_count = 0,
                                        index_count = 0,
                                        foreignkey_count = 0,
                                        rule_count = 0,
                                        trigger_count = 0,
                                        inherits_count = 0;
                int                     count_footers = 0;
  
--- 1106,1119 ----
                                   *result3 = NULL,
                                   *result4 = NULL,
                                   *result5 = NULL,
!                                  *result6 = NULL,
!                                  *result7 = NULL;
                int                     check_count = 0,
                                        index_count = 0,
                                        foreignkey_count = 0,
                                        rule_count = 0,
                                        trigger_count = 0,
+                                       referenceby_count = 0,
                                        inherits_count = 0;
                int                     count_footers = 0;
  
***************
*** 1244,1251 ****
                else
                        inherits_count = PQntuples(result6);
  
!               footers = pg_malloc_zero((index_count + check_count + 
rule_count + trigger_count + foreignkey_count + inherits_count + 7 + 1)
!                                                                * 
sizeof(*footers));
  
                /* print indexes */
                if (index_count > 0)
--- 1246,1268 ----
                else
                        inherits_count = PQntuples(result6);
  
!               /* reference_by count */
! 
!                 printfPQExpBuffer(&buf,"SELECT 
c.conname,n.nspname,p2.relname,pg_catalog.pg_get_constraintdef(c.oid, true)\n"
!                                       "FROM pg_catalog.pg_class p, 
pg_catalog.pg_constraint c,  pg_catalog.pg_class p2 \n"
!                                       ",pg_catalog.pg_namespace n WHERE p.oid 
= '%s' AND c.confrelid = '%s'\n" 
!                                       "AND c.conrelid = p2.oid AND n.oid 
=p2.relnamespace", oid,oid);
! 
!                 result7 = PSQLexec(buf.data, false);
!                 if (!result7)
!                         goto error_return;
!                 else
!                         referenceby_count = PQntuples(result7);
! 
! 
!                 footers = pg_malloc_zero((index_count + check_count + 
rule_count + trigger_count + foreignkey_count + inherits_count + 
referenceby_count +  7 + 1) * sizeof(*footers));
! 
! 
  
                /* print indexes */
                if (index_count > 0)
***************
*** 1481,1486 ****
--- 1498,1529 ----
                        }
                }
  
+               /* print reference count details */
+                 if (referenceby_count > 0)
+                 {
+                         printfPQExpBuffer(&buf, _("Refrenced by :"));
+                         footers[count_footers++] = pg_strdup(buf.data);
+                         for (i = 0; i < referenceby_count; i++)
+                         {
+                                 const char *refbydef;
+                                 const char *usingpos;
+                                 printfPQExpBuffer(&buf, _("  \"%s\" IN 
%s.%s"),
+                                                                    
PQgetvalue(result7,i,0),
+                                                                  
PQgetvalue(result7,i,1),
+                                                                  
PQgetvalue(result7,i,2));
+ 
+                                 /* Everything after "FOREIGN KEY " is echoed 
verbatim */
+                                 refbydef = PQgetvalue(result7, i, 3);
+                                 usingpos = strstr(refbydef, "FOREIGN KEY ");
+                                 if (usingpos)
+                                         refbydef = usingpos + 12;
+                                 appendPQExpBuffer(&buf, "%s",refbydef);
+ 
+                                 footers[count_footers++] = 
pg_strdup(buf.data);
+                         }
+                  }
+ 
+ 
                /* print inherits */
                for (i = 0; i < inherits_count; i++)
                {
--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your Subscription:
http://mail.postgresql.org/mj/mj_wwwusr?domain=postgresql.org&extra=pgsql-patches

Reply via email to