]> granicus.if.org Git - postgresql/commitdiff
Disallow SETOF in the input of parseTypeString(). Formerly it was
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 15 Dec 2004 20:15:17 +0000 (20:15 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 15 Dec 2004 20:15:17 +0000 (20:15 +0000)
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 ...

src/backend/parser/parse_type.c

index 4b4e8ae49877b36034c2552db59524cd6f518c33..b8218d32aad54f1f339b8e82a812338bf57a672d 100644 (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;