From 6a4f1bee35867565b5f65902db642a0d111be6e6 Mon Sep 17 00:00:00 2001 From: pgaddict Date: Mon, 27 Nov 2023 23:43:01 +0800 Subject: [PATCH v6 1/4] make event triggers facility react to ReindexStmt Move ReindexStmt moves from standard_ProcessUtility to ProcessUtilitySlow. By default ProcessUtilitySlow will call trigger related functions. So the event trigger facility able to support reindex statements. --- src/backend/tcop/utility.c | 10 ++++++---- src/include/tcop/cmdtaglist.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index e3ccf6c7..37161eda 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -960,10 +960,6 @@ standard_ProcessUtility(PlannedStmt *pstmt, (RecoveryInProgress() ? 0 : CHECKPOINT_FORCE)); break; - case T_ReindexStmt: - ExecReindex(pstate, (ReindexStmt *) parsetree, isTopLevel); - break; - /* * The following statements are supported by Event Triggers only * in some cases, so we "fast path" them in the other cases. @@ -1574,6 +1570,12 @@ ProcessUtilitySlow(ParseState *pstate, } break; + case T_ReindexStmt: + ExecReindex(pstate, (ReindexStmt *) parsetree, isTopLevel); + /* commandCollected done in the deep inside of ExecReindex */ + commandCollected = true; + break; + case T_CreateExtensionStmt: address = CreateExtension(pstate, (CreateExtensionStmt *) parsetree); break; diff --git a/src/include/tcop/cmdtaglist.h b/src/include/tcop/cmdtaglist.h index 553a3187..320ee915 100644 --- a/src/include/tcop/cmdtaglist.h +++ b/src/include/tcop/cmdtaglist.h @@ -194,7 +194,7 @@ PG_CMDTAG(CMDTAG_PREPARE, "PREPARE", false, false, false) PG_CMDTAG(CMDTAG_PREPARE_TRANSACTION, "PREPARE TRANSACTION", false, false, false) PG_CMDTAG(CMDTAG_REASSIGN_OWNED, "REASSIGN OWNED", false, false, false) PG_CMDTAG(CMDTAG_REFRESH_MATERIALIZED_VIEW, "REFRESH MATERIALIZED VIEW", true, false, false) -PG_CMDTAG(CMDTAG_REINDEX, "REINDEX", false, false, false) +PG_CMDTAG(CMDTAG_REINDEX, "REINDEX", true, false, false) PG_CMDTAG(CMDTAG_RELEASE, "RELEASE", false, false, false) PG_CMDTAG(CMDTAG_RESET, "RESET", false, false, false) PG_CMDTAG(CMDTAG_REVOKE, "REVOKE", true, false, false) -- 2.34.1