diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/parser/gram.y | 41 |
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 * *****************************************************************************/ |