From f7ad874ca860f95f050641cbe6f325b7a2afe0b9 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 29 Oct 2008 11:24:53 +0000 Subject: Since SQL:2003, the array size specification in the SQL ARRAY syntax has been optional. --- src/backend/parser/gram.y | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/backend/parser') diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 4759e04134..8b44e5b6ba 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.631 2008/10/28 14:09:45 petere Exp $ + * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.632 2008/10/29 11:24:53 petere Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -7124,19 +7124,29 @@ Typename: SimpleTypename opt_array_bounds $$->arrayBounds = $3; $$->setof = TRUE; } + /* SQL standard syntax, currently only one-dimensional */ | SimpleTypename ARRAY '[' Iconst ']' { - /* SQL99's redundant syntax */ $$ = $1; $$->arrayBounds = list_make1(makeInteger($4)); } | SETOF SimpleTypename ARRAY '[' Iconst ']' { - /* SQL99's redundant syntax */ $$ = $2; $$->arrayBounds = list_make1(makeInteger($5)); $$->setof = TRUE; } + | SimpleTypename ARRAY + { + $$ = $1; + $$->arrayBounds = list_make1(makeInteger(-1)); + } + | SETOF SimpleTypename ARRAY + { + $$ = $2; + $$->arrayBounds = list_make1(makeInteger(-1)); + $$->setof = TRUE; + } ; opt_array_bounds: -- cgit v1.2.1