Improve error reporting in opclasscmds.c
authorAlexander Korotkov <akorotkov@postgresql.org>
Tue, 31 Mar 2020 14:51:57 +0000 (17:51 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Tue, 31 Mar 2020 14:51:57 +0000 (17:51 +0300)
This commit improves error reporting introduced by 911e702077.  It puts
argument of errmsg() to the single line for easier grepping source for error
text.  Also it improves wording of errhint().

src/backend/commands/opclasscmds.c
src/test/regress/expected/alter_generic.out

index f1026de75654ce7c57ec02cfe0962bc114957e49..7322cbc154e6fe12f442a5c5bee7bb53eefdeecf 100644 (file)
@@ -1156,16 +1156,14 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
                (OidIsValid(member->righttype) && member->righttype != typeoid))
                ereport(ERROR,
                        (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
-                        errmsg("associated data types for opclass options "
-                               "parsing functions must match opclass input type")));
+                        errmsg("associated data types for opclass options parsing functions must match opclass input type")));
        }
        else
        {
            if (member->lefttype != member->righttype)
                ereport(ERROR,
                        (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
-                        errmsg("left and right associated data types for "
-                               "opclass options parsing functions must match")));
+                        errmsg("left and right associated data types for opclass options parsing functions must match")));
        }
 
        if (procform->prorettype != VOIDOID ||
@@ -1174,9 +1172,10 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
                     errmsg("invalid opclass options parsing function"),
-                    errhint("opclass options parsing function must have signature '%s'",
+                    errhint("Valid signature of opclass options parsing function is '%s'.",
                             "(internal) RETURNS void")));
    }
+
    /*
     * btree comparison procs must be 2-arg procs returning int4.  btree
     * sortsupport procs must take internal and return void.  btree in_range
index b2a451a83f35bf421bb7606244bef3119c05fae1..1e50b69ea50f3d8814bf793c2bb1fc93d2d1ad2b 100644 (file)
@@ -506,7 +506,7 @@ ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 test_opclass_options_
 ERROR:  function test_opclass_options_func(internal, text[], boolean) does not exist
 ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 (int4) btint42cmp(int4, int2);
 ERROR:  invalid opclass options parsing function
-HINT:  opclass options parsing function must have signature '(internal) RETURNS void'
+HINT:  Valid signature of opclass options parsing function is '(internal) RETURNS void'.
 ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 (int4, int2) btint42cmp(int4, int2);
 ERROR:  left and right associated data types for opclass options parsing functions must match
 ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 (int4) test_opclass_options_func(internal); -- Ok