part_strategy does not need its very own keyword classification.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 20 May 2020 00:09:59 +0000 (20:09 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 20 May 2020 00:09:59 +0000 (20:09 -0400)
This should be plain old ColId.  Making it so makes the grammar less
complicated, and makes the compiled tables a kilobyte or so smaller
(likely because they don't have to deal with a keyword classification
that's not used anyplace else).

src/backend/parser/gram.y

index a24b30f06f1cdc1f2de2aaddfd733393b8e14aba..e66b850e1a9704583b104707cfc25f0c5b7d4ced 100644 (file)
@@ -595,7 +595,6 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
 %type <boolean> opt_if_not_exists
 %type <ival>   generated_when override_kind
 %type <partspec>   PartitionSpec OptPartitionSpec
-%type <str>            part_strategy
 %type <partelem>   part_elem
 %type <list>       part_params
 %type <partboundspec> PartitionBoundSpec
@@ -3894,7 +3893,7 @@ OptPartitionSpec: PartitionSpec   { $$ = $1; }
            | /*EMPTY*/         { $$ = NULL; }
        ;
 
-PartitionSpec: PARTITION BY part_strategy '(' part_params ')'
+PartitionSpec: PARTITION BY ColId '(' part_params ')'
                {
                    PartitionSpec *n = makeNode(PartitionSpec);
 
@@ -3906,10 +3905,6 @@ PartitionSpec: PARTITION BY part_strategy '(' part_params ')'
                }
        ;
 
-part_strategy: IDENT                   { $$ = $1; }
-               | unreserved_keyword    { $$ = pstrdup($1); }
-       ;
-
 part_params:   part_elem                       { $$ = list_make1($1); }
            | part_params ',' part_elem         { $$ = lappend($1, $3); }
        ;