Fix a couple of places where the plpgsql grammar would produce an unhelpful

'syntax error' message, rather than something that might draw one's
attention to a missing or wrong-type variable declaration.  Per recent
gripe.
This commit is contained in:
Tom Lane 2008-09-10 01:09:45 +00:00
parent ee33b95d9c
commit 3c221c3dae
1 changed files with 25 additions and 1 deletions

View File

@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.114 2008/09/02 20:37:55 tgl Exp $ * $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.115 2008/09/10 01:09:45 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -741,6 +741,18 @@ getdiag_target : T_SCALAR
check_assignable(yylval.scalar); check_assignable(yylval.scalar);
$$ = yylval.scalar->dno; $$ = yylval.scalar->dno;
} }
| T_ROW
{
yyerror("expected an integer variable");
}
| T_RECORD
{
yyerror("expected an integer variable");
}
| T_WORD
{
yyerror("expected an integer variable");
}
; ;
@ -1669,6 +1681,18 @@ cursor_variable : T_SCALAR
} }
$$ = (PLpgSQL_var *) yylval.scalar; $$ = (PLpgSQL_var *) yylval.scalar;
} }
| T_ROW
{
yyerror("expected a cursor or refcursor variable");
}
| T_RECORD
{
yyerror("expected a cursor or refcursor variable");
}
| T_WORD
{
yyerror("expected a cursor or refcursor variable");
}
; ;
exception_sect : exception_sect :