Rearrange CLUSTER rules in gram.y.
authorNathan Bossart <[email protected]>
Wed, 19 Jul 2023 22:26:43 +0000 (15:26 -0700)
committerNathan Bossart <[email protected]>
Wed, 19 Jul 2023 22:26:43 +0000 (15:26 -0700)
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

doc/src/sgml/ref/cluster.sgml
src/backend/parser/gram.y

index 0ed29a5c6d404ff3eeeb156bd54b7af873271004..e308e2ce912ec14acf126c006f8bff82a5ea0250 100644 (file)
@@ -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>
 
index edb6c00ece6294edb6c7db384a73505cffb372c1..91793cb2effb00fc2050e5f5829fcf1fa4385f88 100644 (file)
@@ -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