]> granicus.if.org Git - postgresql/commitdiff
Fix a few bogus statement type names in plpgsql error messages.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 18 Aug 2015 23:22:38 +0000 (19:22 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 18 Aug 2015 23:22:38 +0000 (19:22 -0400)
plpgsql's error location context messages ("PL/pgSQL function fn-name line
line-no at stmt-type") would misreport a CONTINUE statement as being an
EXIT, and misreport a MOVE statement as being a FETCH.  These are clear
bugs that have been there a long time, so back-patch to all supported
branches.

In addition, in 9.5 and HEAD, change the description of EXECUTE from
"EXECUTE statement" to just plain EXECUTE; there seems no good reason why
this statement type should be described differently from others that have
a well-defined head keyword.  And distinguish GET STACKED DIAGNOSTICS from
plain GET DIAGNOSTICS.  These are a bit more of a judgment call, and also
affect existing regression-test outputs, so I did not back-patch into
stable branches.

Pavel Stehule and Tom Lane

src/pl/plpgsql/src/pl_funcs.c

index b79a72fddc4b0c11b86945f1b87feb413123b125..75b040abc5d5cfb27d0faedf164136648b6acb55 100644 (file)
@@ -235,7 +235,7 @@ plpgsql_stmt_typename(PLpgSQL_stmt *stmt)
                case PLPGSQL_STMT_FOREACH_A:
                        return _("FOREACH over array");
                case PLPGSQL_STMT_EXIT:
-                       return "EXIT";
+                       return ((PLpgSQL_stmt_exit *) stmt)->is_exit ? "EXIT" : "CONTINUE";
                case PLPGSQL_STMT_RETURN:
                        return "RETURN";
                case PLPGSQL_STMT_RETURN_NEXT:
@@ -255,7 +255,7 @@ plpgsql_stmt_typename(PLpgSQL_stmt *stmt)
                case PLPGSQL_STMT_OPEN:
                        return "OPEN";
                case PLPGSQL_STMT_FETCH:
-                       return "FETCH";
+                       return ((PLpgSQL_stmt_fetch *) stmt)->is_move ? "MOVE" : "FETCH";
                case PLPGSQL_STMT_CLOSE:
                        return "CLOSE";
                case PLPGSQL_STMT_PERFORM: