aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-12-15 20:15:17 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-12-15 20:15:17 +0000
commit84dbd5a8f60cdb27270ffc1f105cf1b1bb3c1ddc (patch)
tree1a34f98cff9458f20ffead2053ae96f9447992b2
parentc3d6c7d8f98c3ed73fd6c50c9c6e958a8c450c90 (diff)
downloadpostgresql-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.c4
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;