aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-02-05 20:16:42 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-02-05 20:16:42 +0000
commite24977f3a44fc59e7797f5124f3df920bc10a28e (patch)
tree65e0c28efa01487dc3a13e631ea7f98ea6748bf1 /src
parent7bcc6d98fb5c3bda2787ae085ef3ff3dbb65ae42 (diff)
downloadpostgresql-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.y13
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;