diff options
author | Nathan Bossart <nathan@postgresql.org> | 2023-07-19 15:26:43 -0700 |
---|---|---|
committer | Nathan Bossart <nathan@postgresql.org> | 2023-07-19 15:26:43 -0700 |
commit | 018b61f81b4aa3c85e2d671d056681ff5c765475 (patch) | |
tree | 82b87095015a4ec68706c8afbc7a1706e11139db | |
parent | d65ddaca93f6f31e76b15bc1001f5cabb6a46c9d (diff) | |
download | postgresql-018b61f81b4aa3c85e2d671d056681ff5c765475.tar.gz postgresql-018b61f81b4aa3c85e2d671d056681ff5c765475.zip |
Rearrange CLUSTER rules in gram.y.
This change moves the unparenthesized syntax for CLUSTER to the end
of the ClusterStmt rules in preparation for a follow-up commit that
will move this syntax to the "Compatibility" section of the CLUSTER
documentation. The documentation for the CLUSTER syntaxes has also
been consolidated.
Suggested-by: Melanie Plageman
Discussion https://postgr.es/m/CAAKRu_bc5uHieG1976kGqJKxyWtyQt9yvktjsVX%2Bi7NOigDjOA%40mail.gmail.com
-rw-r--r-- | doc/src/sgml/ref/cluster.sgml | 5 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 27 |
2 files changed, 15 insertions, 17 deletions
diff --git a/doc/src/sgml/ref/cluster.sgml b/doc/src/sgml/ref/cluster.sgml index 0ed29a5c6d4..e308e2ce912 100644 --- a/doc/src/sgml/ref/cluster.sgml +++ b/doc/src/sgml/ref/cluster.sgml @@ -21,9 +21,8 @@ PostgreSQL documentation <refsynopsisdiv> <synopsis> -CLUSTER [VERBOSE] <replaceable class="parameter">table_name</replaceable> [ USING <replaceable class="parameter">index_name</replaceable> ] -CLUSTER ( <replaceable class="parameter">option</replaceable> [, ...] ) <replaceable class="parameter">table_name</replaceable> [ USING <replaceable class="parameter">index_name</replaceable> ] -CLUSTER [VERBOSE] +CLUSTER [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] <replaceable class="parameter">table_name</replaceable> [ USING <replaceable class="parameter">index_name</replaceable> ] +CLUSTER [ VERBOSE ] [ <replaceable class="parameter">table_name</replaceable> [ USING <replaceable class="parameter">index_name</replaceable> ] ] <phrase>where <replaceable class="parameter">option</replaceable> can be one of:</phrase> diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index edb6c00ece6..91793cb2eff 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11553,33 +11553,32 @@ CreateConversionStmt: /***************************************************************************** * * QUERY: - * CLUSTER [VERBOSE] <qualified_name> [ USING <index_name> ] - * CLUSTER [ (options) ] <qualified_name> [ USING <index_name> ] - * CLUSTER [VERBOSE] + * CLUSTER (options) <qualified_name> [ USING <index_name> ] + * CLUSTER [VERBOSE] [ <qualified_name> [ USING <index_name> ] ] * CLUSTER [VERBOSE] <index_name> ON <qualified_name> (for pre-8.3) * *****************************************************************************/ ClusterStmt: - CLUSTER opt_verbose qualified_name cluster_index_specification + CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification { ClusterStmt *n = makeNode(ClusterStmt); - n->relation = $3; - n->indexname = $4; - n->params = NIL; - if ($2) - n->params = lappend(n->params, makeDefElem("verbose", NULL, @2)); + n->relation = $5; + n->indexname = $6; + n->params = $3; $$ = (Node *) n; } - - | CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification + /* unparenthesized VERBOSE kept for pre-14 compatibility */ + | CLUSTER opt_verbose qualified_name cluster_index_specification { ClusterStmt *n = makeNode(ClusterStmt); - n->relation = $5; - n->indexname = $6; - n->params = $3; + n->relation = $3; + n->indexname = $4; + n->params = NIL; + if ($2) + n->params = lappend(n->params, makeDefElem("verbose", NULL, @2)); $$ = (Node *) n; } | CLUSTER opt_verbose |