diff options
Diffstat (limited to 'src/backend/parser')
-rw-r--r-- | src/backend/parser/gram.y | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 6b88096e8e1..3460fea56ba 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -337,6 +337,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type <list> alter_table_cmds alter_type_cmds %type <list> alter_identity_column_option_list %type <defelt> alter_identity_column_option +%type <node> set_statistics_value %type <list> createdb_opt_list createdb_opt_items copy_opt_list transaction_mode_list @@ -2446,18 +2447,18 @@ alter_table_cmd: n->missing_ok = true; $$ = (Node *) n; } - /* ALTER TABLE <name> ALTER [COLUMN] <colname> SET STATISTICS <SignedIconst> */ - | ALTER opt_column ColId SET STATISTICS SignedIconst + /* ALTER TABLE <name> ALTER [COLUMN] <colname> SET STATISTICS */ + | ALTER opt_column ColId SET STATISTICS set_statistics_value { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = $3; - n->def = (Node *) makeInteger($6); + n->def = $6; $$ = (Node *) n; } - /* ALTER TABLE <name> ALTER [COLUMN] <colnum> SET STATISTICS <SignedIconst> */ - | ALTER opt_column Iconst SET STATISTICS SignedIconst + /* ALTER TABLE <name> ALTER [COLUMN] <colnum> SET STATISTICS */ + | ALTER opt_column Iconst SET STATISTICS set_statistics_value { AlterTableCmd *n = makeNode(AlterTableCmd); @@ -2469,7 +2470,7 @@ alter_table_cmd: n->subtype = AT_SetStatistics; n->num = (int16) $3; - n->def = (Node *) makeInteger($6); + n->def = $6; $$ = (Node *) n; } /* ALTER TABLE <name> ALTER [COLUMN] <colname> SET ( column_parameter = value [, ... ] ) */ @@ -3070,6 +3071,11 @@ alter_identity_column_option: } ; +set_statistics_value: + SignedIconst { $$ = (Node *) makeInteger($1); } + | DEFAULT { $$ = NULL; } + ; + PartitionBoundSpec: /* a HASH partition */ FOR VALUES WITH '(' hash_partbound ')' |