mirror of
https://github.com/postgres/postgres.git
synced 2025-11-24 00:23:06 +03:00
Support syntax "CLUSTER table USING index", which is more logical.
Holger Schurig
This commit is contained in:
@@ -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
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user