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 * 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 || if (typename == NULL ||
!IsA(typename, TypeName)) !IsA(typename, TypeName))
goto fail; goto fail;
if (typename->setof)
goto fail;
*type_id = typenameTypeId(typename); *type_id = typenameTypeId(typename);
*typmod = typename->typmod; *typmod = typename->typmod;