diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-02-05 20:16:42 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-02-05 20:16:42 +0000 |
commit | e24977f3a44fc59e7797f5124f3df920bc10a28e (patch) | |
tree | 65e0c28efa01487dc3a13e631ea7f98ea6748bf1 /src | |
parent | 7bcc6d98fb5c3bda2787ae085ef3ff3dbb65ae42 (diff) | |
download | postgresql-e24977f3a44fc59e7797f5124f3df920bc10a28e.tar.gz postgresql-e24977f3a44fc59e7797f5124f3df920bc10a28e.zip |
Allow qualified type names in CREATE CAST, DROP CAST. Also allow the
construction 'SETOF type[]' which for some reason was previously
overlooked (you'd have to name the array type directly to make it work).
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/parser/gram.y | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 22c07de7b5e..a7a3993e553 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.398 2003/02/03 14:04:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.399 2003/02/05 20:16:42 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -3229,7 +3229,7 @@ any_operator: * *****************************************************************************/ -CreateCastStmt: CREATE CAST '(' ConstTypename AS ConstTypename ')' +CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context { CreateCastStmt *n = makeNode(CreateCastStmt); @@ -3239,7 +3239,7 @@ CreateCastStmt: CREATE CAST '(' ConstTypename AS ConstTypename ')' n->context = (CoercionContext) $11; $$ = (Node *)n; } - | CREATE CAST '(' ConstTypename AS ConstTypename ')' + | CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context { CreateCastStmt *n = makeNode(CreateCastStmt); @@ -3257,7 +3257,7 @@ cast_context: AS IMPLICIT_P { $$ = COERCION_IMPLICIT; } ; -DropCastStmt: DROP CAST '(' ConstTypename AS ConstTypename ')' opt_drop_behavior +DropCastStmt: DROP CAST '(' Typename AS Typename ')' opt_drop_behavior { DropCastStmt *n = makeNode(DropCastStmt); n->sourcetype = $4; @@ -4948,9 +4948,10 @@ Typename: SimpleTypename opt_array_bounds $$ = $1; $$->arrayBounds = $2; } - | SETOF SimpleTypename + | SETOF SimpleTypename opt_array_bounds { $$ = $2; + $$->arrayBounds = $3; $$->setof = TRUE; } ; @@ -5173,6 +5174,8 @@ Bit: BitWithLength } ; +/* ConstBit is like Bit except "BIT" defaults to unspecified length */ +/* See notes for ConstCharacter, which addresses same issue for "CHAR" */ ConstBit: BitWithLength { $$ = $1; |