diff options
Diffstat (limited to 'src/backend/parser/gram.y')
-rw-r--r-- | src/backend/parser/gram.y | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 7e48958ae85..4b5009b636d 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -404,7 +404,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type <boolean> copy_from opt_program %type <ival> opt_column event cursor_options opt_hold opt_set_data -%type <objtype> reindex_type drop_type comment_type security_label_type +%type <objtype> drop_type comment_type security_label_type %type <node> fetch_args limit_clause select_limit_value offset_clause select_offset_value @@ -7198,41 +7198,48 @@ opt_if_exists: IF_P EXISTS { $$ = TRUE; } *****************************************************************************/ ReindexStmt: - REINDEX reindex_type qualified_name opt_force + REINDEX INDEX qualified_name opt_force { ReindexStmt *n = makeNode(ReindexStmt); - n->kind = $2; + n->kind = REINDEX_OBJECT_INDEX; n->relation = $3; n->name = NULL; $$ = (Node *)n; } + | REINDEX TABLE qualified_name opt_force + { + ReindexStmt *n = makeNode(ReindexStmt); + n->kind = REINDEX_OBJECT_TABLE; + n->relation = $3; + n->name = NULL; + $$ = (Node *)n; + } + | REINDEX SCHEMA name opt_force + { + ReindexStmt *n = makeNode(ReindexStmt); + n->kind = REINDEX_OBJECT_SCHEMA; + n->name = $3; + n->relation = NULL; + $$ = (Node *)n; + } | REINDEX SYSTEM_P name opt_force { ReindexStmt *n = makeNode(ReindexStmt); - n->kind = OBJECT_DATABASE; + n->kind = REINDEX_OBJECT_SYSTEM; n->name = $3; n->relation = NULL; - n->do_system = true; - n->do_user = false; $$ = (Node *)n; } | REINDEX DATABASE name opt_force { ReindexStmt *n = makeNode(ReindexStmt); - n->kind = OBJECT_DATABASE; + n->kind = REINDEX_OBJECT_DATABASE; n->name = $3; n->relation = NULL; - n->do_system = true; - n->do_user = true; $$ = (Node *)n; } ; -reindex_type: - INDEX { $$ = OBJECT_INDEX; } - | TABLE { $$ = OBJECT_TABLE; } - ; - opt_force: FORCE { $$ = TRUE; } | /* EMPTY */ { $$ = FALSE; } ; |