diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-12-15 20:15:17 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-12-15 20:15:17 +0000 |
commit | 84dbd5a8f60cdb27270ffc1f105cf1b1bb3c1ddc (patch) | |
tree | 1a34f98cff9458f20ffead2053ae96f9447992b2 | |
parent | c3d6c7d8f98c3ed73fd6c50c9c6e958a8c450c90 (diff) | |
download | postgresql-84dbd5a8f60cdb27270ffc1f105cf1b1bb3c1ddc.tar.gz postgresql-84dbd5a8f60cdb27270ffc1f105cf1b1bb3c1ddc.zip |
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 ...
-rw-r--r-- | src/backend/parser/parse_type.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c index 4b4e8ae4987..b8218d32aad 100644 --- a/src/backend/parser/parse_type.c +++ b/src/backend/parser/parse_type.c @@ -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; |