Improve getObjectDescription's display of pg_amop and pg_amproc entries.

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
This commit is contained in:
Tom Lane 2011-01-23 14:13:46 -05:00
parent de3c2d6e92
commit dd5f0db96b

View 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);