]> granicus.if.org Git - postgresql/commitdiff
Fix opclass/opfamily identity strings
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 18 Feb 2015 17:44:27 +0000 (14:44 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 18 Feb 2015 17:44:27 +0000 (14:44 -0300)
The original representation uses "opcname for amname", which is good
enough; but if we replace "for" with "using", we can apply the returned
identity directly in a DROP command, as in

DROP OPERATOR CLASS opcname USING amname

This slightly simplifies code using object identities to programatically
execute commands on these kinds of objects.

Note backwards-incompatible change:
The previous representation dates back to 9.3 when object identities
were introduced by commit f8348ea3, but we don't want to change the
behavior on released branches unnecessarily and so this is not
backpatched.

src/backend/catalog/objectaddress.c
src/test/regress/expected/object_address.out

index 2f407337fbf76d0e0643c5f51401af87c714edef..d899dd73fefc724fb8ace42eabb9a9d50ecfb1f5 100644 (file)
@@ -3533,7 +3533,7 @@ getObjectIdentityParts(const ObjectAddress *object,
                                appendStringInfoString(&buffer,
                                                                           quote_qualified_identifier(schema,
                                                                                                 NameStr(opcForm->opcname)));
-                               appendStringInfo(&buffer, " for %s",
+                               appendStringInfo(&buffer, " USING %s",
                                                                 quote_identifier(NameStr(amForm->amname)));
                                if (objname)
                                {
@@ -4070,7 +4070,7 @@ getOpFamilyIdentity(StringInfo buffer, Oid opfid, List **objname, List **objargs
        amForm = (Form_pg_am) GETSTRUCT(amTup);
 
        schema = get_namespace_name(opfForm->opfnamespace);
-       appendStringInfo(buffer, "%s for %s",
+       appendStringInfo(buffer, "%s USING %s",
                                         quote_qualified_identifier(schema,
                                                                                                NameStr(opfForm->opfname)),
                                         NameStr(amForm->amname));
index 05e0e12845ec9b8fe133a8bf5efdaf5ac9adcb10..dcf1b46ecd74c5a4b8bea00d2dd6299d3121ffd0 100644 (file)
@@ -373,11 +373,11 @@ SELECT (pg_identify_object(addr1.classid, addr1.objid, addr1.subobjid)).*,
  conversion                | pg_catalog | ascii_to_mic      | pg_catalog.ascii_to_mic                                              | t
  language                  |            | plpgsql           | plpgsql                                                              | t
  schema                    |            | addr_nsp          | addr_nsp                                                             | t
- operator class            | pg_catalog | int4_ops          | pg_catalog.int4_ops for btree                                        | t
+ operator class            | pg_catalog | int4_ops          | pg_catalog.int4_ops USING btree                                      | t
  operator                  | pg_catalog |                   | pg_catalog.+(integer,integer)                                        | t
  rule                      |            |                   | "_RETURN" on addr_nsp.genview                                        | t
  trigger                   |            |                   | t on addr_nsp.gentable                                               | t
- operator family           | pg_catalog | integer_ops       | pg_catalog.integer_ops for btree                                     | t
+ operator family           | pg_catalog | integer_ops       | pg_catalog.integer_ops USING btree                                   | t
  policy                    |            |                   | genpol on addr_nsp.gentable                                          | t
  collation                 | pg_catalog | "default"         | pg_catalog."default"                                                 | t
  text search dictionary    | addr_nsp   | addr_ts_dict      | addr_nsp.addr_ts_dict                                                | t