From c8dab02bfc003ae7bd59096919042d7840f3c194 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Mon, 28 Apr 2025 17:35:15 +0300 Subject: [PATCH] Use iunlogged build for gist_indexsortbuild_flush_ready_pages --- src/backend/access/gist/gistbuild.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c index 3a6c9d3d6fe..07bc00dd49e 100644 --- a/src/backend/access/gist/gistbuild.c +++ b/src/backend/access/gist/gistbuild.c @@ -587,6 +587,8 @@ gist_indexsortbuild_flush_ready_pages(GISTBuildState *state) if (state->ready_num_pages == 0) return; + smgr_start_unlogged_build(state->indexrel->rd_smgr); + for (int i = 0; i < state->ready_num_pages; i++) { Page page = state->ready_pages[i]; @@ -604,10 +606,14 @@ gist_indexsortbuild_flush_ready_pages(GISTBuildState *state) state->pages_written++; } + smgr_finish_unlogged_build_phase_1(state->indexrel->rd_smgr); + if (RelationNeedsWAL(state->indexrel)) log_newpages(&state->indexrel->rd_node, MAIN_FORKNUM, state->ready_num_pages, state->ready_blknos, state->ready_pages, true); + smgr_end_unlogged_build(state->indexrel->rd_smgr); + for (int i = 0; i < state->ready_num_pages; i++) pfree(state->ready_pages[i]);