Hi,
 
Refering to this request http://momjian.us/mhonarc/patches_hold/msg00022.htmlI 
have created a patch. The output doesn't exaclty match with what is stated here 
http://momjian.us/mhonarc/patches_hold/msg00023.html. 
However, it does tell the required details in a similar format.
 
Comments?
 
 
Thanks,
Kenneth
osdb_pgarch=# \d htest           Table "public.htest"    Column    |     Type   
   | Modifiers--------------+---------------+----------- new_id       | integer 
      | not null test_name    | character(20) | test_cust_id | integer       
|Indexes:    "htest_pkey" PRIMARY KEY,  btree (new_id)Foreign-key constraints:  
  "htest_test_cust_id_fkey" FOREIGN KEY (test_cust_id) REFERENCES 
customers(customer_id)Refrenced by :  "htest_child_ctest_cust_id_fkey" IN 
public.htest_child(ctest_cust_id) REFERENCES htest(new_id)  
"htest_child1_ctest_cust_id_fkey" IN public.htest_child1(ctest_cust_id) 
REFERENCES htest(new_id)
 
 
diff describe.c_orig describe.c1109c1109,1110<                                  
*result6 = NULL;--->                                  *result6 = NULL,>         
                         *result7 = NULL;1114a1116>                             
            refof_count = 0,1247,1248c1249,1265<               footers = 
pg_malloc_zero((index_count + check_count + rule_count + trigger_count + 
foreignkey_count + inherits_count + 7 + 1)<                                     
                           * sizeof(*footers));--->               /* 
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>                         
refof_count = PQntuples(result7);>>>                 footers = 
pg_malloc_zero((index_count + check_count + rule_count + trigger_count + 
foreignkey_count + inherits_count + refof_count +  7 + 1) * 
sizeof(*footers));>>1483a1501,1526>               /* print reference count 
details */>                 if (refof_count > 0)>                 {>            
             printfPQExpBuffer(&buf, _("Refrenced by :"));>                     
    footers[count_footers++] = pg_strdup(buf.data);>                         
for (i = 0; i < refof_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);> 
                        }>                  }>
 
_________________________________________________________________
Tried the new MSN Messenger? It’s cool! Download now.
http://messenger.msn.com/Download/Default.aspx?mkt=en-in

Reply via email to