diff options
author | Michael Paquier | 2021-04-07 05:35:26 +0000 |
---|---|---|
committer | Michael Paquier | 2021-04-07 05:35:26 +0000 |
commit | 4c0239cb7a7775e3183cb575e62703d71bf3302d (patch) | |
tree | 39bc8c4da4b6c03d7caadf9bf5922df8fddf11f3 | |
parent | 9afffcb833d3c5e59a328a2af674fac7e7334fc1 (diff) |
Remove redundant memset(0) calls for page init of some index AMs
Bloom, GIN, GiST and SP-GiST rely on PageInit() to initialize the
contents of a page, and this routine fills entirely a page with zeros
for a size of BLCKSZ, including the special space. Those index AMs have
been using an extra memset() call to fill with zeros the special page
space, or even the whole page, which is not necessary as PageInit()
already does this work, so let's remove them. GiST was not doing this
extra call, but has commented out a system call that did so since
6236991.
While on it, remove one MAXALIGN() for SP-GiST as PageInit() takes care
of that. This makes the whole page initialization logic more consistent
across all index AMs.
Author: Bharath Rupireddy
Reviewed-by: Vignesh C, Mahendra Singh Thalor
Discussion: https://postgr.es/m/CALj2ACViOo2qyaPT7krWm4LRyRTw9kOXt+g6PfNmYuGA=YHj9A@mail.gmail.com
-rw-r--r-- | contrib/bloom/blinsert.c | 1 | ||||
-rw-r--r-- | contrib/bloom/blutils.c | 1 | ||||
-rw-r--r-- | src/backend/access/gin/ginutil.c | 1 | ||||
-rw-r--r-- | src/backend/access/gist/gistutil.c | 2 | ||||
-rw-r--r-- | src/backend/access/spgist/spgutils.c | 3 |
5 files changed, 1 insertions, 7 deletions
diff --git a/contrib/bloom/blinsert.c b/contrib/bloom/blinsert.c index d37ceef753..c34a640d1c 100644 --- a/contrib/bloom/blinsert.c +++ b/contrib/bloom/blinsert.c @@ -63,7 +63,6 @@ flushCachedPage(Relation index, BloomBuildState *buildstate) static void initCachedPage(BloomBuildState *buildstate) { - memset(buildstate->data.data, 0, BLCKSZ); BloomInitPage(buildstate->data.data, 0); buildstate->count = 0; } diff --git a/contrib/bloom/blutils.c b/contrib/bloom/blutils.c index 1e505b1da5..754de008d4 100644 --- a/contrib/bloom/blutils.c +++ b/contrib/bloom/blutils.c @@ -411,7 +411,6 @@ BloomInitPage(Page page, uint16 flags) PageInit(page, BLCKSZ, sizeof(BloomPageOpaqueData)); opaque = BloomPageGetOpaque(page); - memset(opaque, 0, sizeof(BloomPageOpaqueData)); opaque->flags = flags; opaque->bloom_page_id = BLOOM_PAGE_ID; } diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c index 6b9b04cf42..cdd626ff0a 100644 --- a/src/backend/access/gin/ginutil.c +++ b/src/backend/access/gin/ginutil.c @@ -348,7 +348,6 @@ GinInitPage(Page page, uint32 f, Size pageSize) PageInit(page, pageSize, sizeof(GinPageOpaqueData)); opaque = GinPageGetOpaque(page); - memset(opaque, 0, sizeof(GinPageOpaqueData)); opaque->flags = f; opaque->rightlink = InvalidBlockNumber; } diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c index 1ff1bf816f..8dcd53c457 100644 --- a/src/backend/access/gist/gistutil.c +++ b/src/backend/access/gist/gistutil.c @@ -761,8 +761,6 @@ gistinitpage(Page page, uint32 f) PageInit(page, pageSize, sizeof(GISTPageOpaqueData)); opaque = GistPageGetOpaque(page); - /* page was already zeroed by PageInit, so this is not needed: */ - /* memset(&(opaque->nsn), 0, sizeof(GistNSN)); */ opaque->rightlink = InvalidBlockNumber; opaque->flags = f; opaque->gist_page_id = GIST_PAGE_ID; diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c index 72cbde7e0b..8d99c9b762 100644 --- a/src/backend/access/spgist/spgutils.c +++ b/src/backend/access/spgist/spgutils.c @@ -677,9 +677,8 @@ SpGistInitPage(Page page, uint16 f) { SpGistPageOpaque opaque; - PageInit(page, BLCKSZ, MAXALIGN(sizeof(SpGistPageOpaqueData))); + PageInit(page, BLCKSZ, sizeof(SpGistPageOpaqueData)); opaque = SpGistPageGetOpaque(page); - memset(opaque, 0, sizeof(SpGistPageOpaqueData)); opaque->flags = f; opaque->spgist_page_id = SPGIST_PAGE_ID; } |