]> granicus.if.org Git - postgresql/commitdiff
Improve getObjectDescription's display of pg_amop and pg_amproc entries.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 23 Jan 2011 19:13:46 +0000 (14:13 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 23 Jan 2011 19:13:46 +0000 (14:13 -0500)
Include the lefttype/righttype columns explicitly (instead of assuming
the reader can deduce them from the operator or function description),
and move the operator or function description to the end of the string,
to make it clearer that it's a referenced object and not the amop or
amproc item itself.  Per extensive discussion of Andreas Karlsson's
original patch.

Andreas Karlsson, Tom Lane

src/backend/catalog/dependency.c

index ec8eb74954a9cc0ec3623dc42dfed462dc1a3533..ba0ea178ac016f21206bc22e9b6ffd6867b25c18 100644 (file)
@@ -2339,13 +2339,17 @@ getObjectDescription(const ObjectAddress *object)
 
                                /*
                                 * translator: %d is the operator strategy (a number), the
-                                * first %s is the textual form of the operator, and the
-                                * second %s is the description of the operator family.
+                                * first two %s's are data type names, the third %s is the
+                                * description of the operator family, and the last %s is the
+                                * textual form of the operator with arguments.
                                 */
-                               appendStringInfo(&buffer, _("operator %d %s of %s"),
+                               appendStringInfo(&buffer, _("operator %d (%s, %s) of %s: %s"),
                                                                 amopForm->amopstrategy,
-                                                                format_operator(amopForm->amopopr),
-                                                                opfam.data);
+                                                                format_type_be(amopForm->amoplefttype),
+                                                                format_type_be(amopForm->amoprighttype),
+                                                                opfam.data,
+                                                                format_operator(amopForm->amopopr));
+
                                pfree(opfam.data);
 
                                systable_endscan(amscan);
@@ -2385,14 +2389,18 @@ getObjectDescription(const ObjectAddress *object)
                                getOpFamilyDescription(&opfam, amprocForm->amprocfamily);
 
                                /*
-                                * translator: %d is the function number, the first %s is the
-                                * textual form of the function with arguments, and the second
-                                * %s is the description of the operator family.
+                                * translator: %d is the function number, the first two %s's
+                                * are data type names, the third %s is the description of the
+                                * operator family, and the last %s is the textual form of the
+                                * function with arguments.
                                 */
-                               appendStringInfo(&buffer, _("function %d %s of %s"),
+                               appendStringInfo(&buffer, _("function %d (%s, %s) of %s: %s"),
                                                                 amprocForm->amprocnum,
-                                                                format_procedure(amprocForm->amproc),
-                                                                opfam.data);
+                                                                format_type_be(amprocForm->amproclefttype),
+                                                                format_type_be(amprocForm->amprocrighttype),
+                                                                opfam.data,
+                                                                format_procedure(amprocForm->amproc));
+
                                pfree(opfam.data);
 
                                systable_endscan(amscan);