Disallow SETOF in the input of parseTypeString(). Formerly it was

silently ignored, allowing one to write bizarre things like
	DECLARE x setof int;
in plpgsql.  This has misled at least one novice into thinking that
plpgsql variables could be sets ...
This commit is contained in:
Tom Lane 2004-12-15 20:15:17 +00:00
parent c3d6c7d8f9
commit 84dbd5a8f6

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.71 2004/08/29 05:06:44 momjian Exp $
* $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.72 2004/12/15 20:15:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -453,6 +453,8 @@ parseTypeString(const char *str, Oid *type_id, int32 *typmod)
if (typename == NULL ||
!IsA(typename, TypeName))
goto fail;
if (typename->setof)
goto fail;
*type_id = typenameTypeId(typename);
*typmod = typename->typmod;