diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 82d36cea023bda50c1d9ba2b135ad6ff6aaa5b03..bda5c932548ccafc8d7e68e4ec556129b34eb046 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.524 2006/01/22 20:03:16 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.525 2006/01/31 22:40:03 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -3672,7 +3672,7 @@ func_return: ; /* - * We would like to make the second production here be ColId attrs etc, + * We would like to make the %TYPE productions here be ColId attrs etc, * but that causes reduce/reduce conflicts. type_name is next best choice. */ func_type: Typename { $$ = $1; } @@ -3683,6 +3683,14 @@ func_type: Typename { $$ = $1; } $$->pct_type = true; $$->typmod = -1; } + | SETOF type_name attrs '%' TYPE_P + { + $$ = makeNode(TypeName); + $$->names = lcons(makeString($2), $3); + $$->pct_type = true; + $$->typmod = -1; + $$->setof = TRUE; + } ;