summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2008-10-29 11:24:53 +0000
committerPeter Eisentraut <peter_e@gmx.net>2008-10-29 11:24:53 +0000
commitf7ad874ca860f95f050641cbe6f325b7a2afe0b9 (patch)
treead3ac63bdd873b2135f2a3654f22fe72d66042ba /src/backend/parser
parentf7ef575fb72cf5f9e0a6fb530e52c4ff13588f12 (diff)
downloadpostgresql-f7ad874ca860f95f050641cbe6f325b7a2afe0b9.tar.gz
Since SQL:2003, the array size specification in the SQL ARRAY syntax has
been optional.
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y16
1 files changed, 13 insertions, 3 deletions
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: