Re: Missing break statement after transformCallStmt in transformStmt

2018-03-06 Thread Michael Paquier
On Wed, Mar 07, 2018 at 11:30:53AM +0530, Ashutosh Bapat wrote:
> Commit 76b6aa41f41db66004b1c430f17a546d4102fbe7 a new case for
> CallStmt in transformStmt but forgot to add a break statement at the
> end of the case. This doesn't create any problems since the default
> case to which it continues without break doesn't change the result.
> But this is going to cause problems in future when somebody adds a
> case after CallStmt.

Indeed, this code is quite lucky to be able to run, and I can see that
the code path is stressed.  What surprises me the most is that Coverity
did not complain about that, but wait... They are in maintenance mode
since the 20th of February:
https://twitter.com/CoverityScan/status/966068113941979136
--
Michael


signature.asc
Description: PGP signature


Missing break statement after transformCallStmt in transformStmt

2018-03-06 Thread Ashutosh Bapat
HI,
Commit 76b6aa41f41db66004b1c430f17a546d4102fbe7 a new case for
CallStmt in transformStmt but forgot to add a break statement at the
end of the case. This doesn't create any problems since the default
case to which it continues without break doesn't change the result.
But this is going to cause problems in future when somebody adds a
case after CallStmt.

Here's patch with fix.
-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index c3a9617..cf1a34e 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -325,6 +325,7 @@ transformStmt(ParseState *pstate, Node *parseTree)
 		case T_CallStmt:
 			result = transformCallStmt(pstate,
 	   (CallStmt *) parseTree);
+			break;
 
 		default: