aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/parser/gram.y41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index d38393f9865..56278f56e5d 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.586 2007/04/02 22:20:53 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.587 2007/04/08 00:26:34 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -209,7 +209,7 @@ static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args)
%type <str> relation_name copy_file_name
database_name access_method_clause access_method attr_name
- index_name name file_name
+ index_name name file_name cluster_index_specification
%type <list> func_name handler_name qual_Op qual_all_Op subquery_Op
opt_class opt_validator
@@ -5084,7 +5084,7 @@ opt_check_option:
/*****************************************************************************
*
* QUERY:
- * load "filename"
+ * LOAD "filename"
*
*****************************************************************************/
@@ -5346,25 +5346,18 @@ CreateConversionStmt:
/*****************************************************************************
*
* QUERY:
- * cluster <index_name> on <qualified_name>
- * cluster <qualified_name>
- * cluster
+ * CLUSTER <qualified_name> [ USING <index_name> ]
+ * CLUSTER
+ * CLUSTER <index_name> ON <qualified_name> (for pre-8.3)
*
*****************************************************************************/
ClusterStmt:
- CLUSTER index_name ON qualified_name
- {
- ClusterStmt *n = makeNode(ClusterStmt);
- n->relation = $4;
- n->indexname = $2;
- $$ = (Node*)n;
- }
- | CLUSTER qualified_name
+ CLUSTER qualified_name cluster_index_specification
{
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = $2;
- n->indexname = NULL;
+ n->indexname = $3;
$$ = (Node*)n;
}
| CLUSTER
@@ -5374,13 +5367,27 @@ ClusterStmt:
n->indexname = NULL;
$$ = (Node*)n;
}
+ /* kept for pre-8.3 compatibility */
+ | CLUSTER index_name ON qualified_name
+ {
+ ClusterStmt *n = makeNode(ClusterStmt);
+ n->relation = $4;
+ n->indexname = $2;
+ $$ = (Node*)n;
+ }
+ ;
+
+cluster_index_specification:
+ USING index_name { $$ = $2; }
+ | /*EMPTY*/ { $$ = NULL; }
;
+
/*****************************************************************************
*
* QUERY:
- * vacuum
- * analyze
+ * VACUUM
+ * ANALYZE
*
*****************************************************************************/