Fixes in bloom contrib module missed during review
authorTeodor Sigaev <teodor@sigaev.ru>
Fri, 1 Apr 2016 17:09:13 +0000 (20:09 +0300)
committerTeodor Sigaev <teodor@sigaev.ru>
Fri, 1 Apr 2016 17:09:13 +0000 (20:09 +0300)
- macroses llike (var & FLAG) are changed to ((var & FLAG) != 0)
- do not copy uninitialized part of notFullPage array to page

contrib/bloom/bloom.h
contrib/bloom/blvacuum.c

index 50bf99bf034e4d44c66f2e43fb2b9c777e9c84d9..63095723c9a55331cc0bc97e3f1f77a5b8a813d5 100644 (file)
@@ -44,10 +44,14 @@ typedef BloomPageOpaqueData *BloomPageOpaque;
 /* Macros for accessing bloom page structures */
 #define BloomPageGetOpaque(page) ((BloomPageOpaque) PageGetSpecialPointer(page))
 #define BloomPageGetMaxOffset(page) (BloomPageGetOpaque(page)->maxoff)
-#define BloomPageIsMeta(page) (BloomPageGetOpaque(page)->flags & BLOOM_META)
-#define BloomPageIsDeleted(page) (BloomPageGetOpaque(page)->flags & BLOOM_DELETED)
-#define BloomPageSetDeleted(page) (BloomPageGetOpaque(page)->flags |= BLOOM_DELETED)
-#define BloomPageSetNonDeleted(page) (BloomPageGetOpaque(page)->flags &= ~BLOOM_DELETED)
+#define BloomPageIsMeta(page) \
+   ((BloomPageGetOpaque(page)->flags & BLOOM_META) != 0)
+#define BloomPageIsDeleted(page) \
+   ((BloomPageGetOpaque(page)->flags & BLOOM_DELETED) != 0)
+#define BloomPageSetDeleted(page) \
+   (BloomPageGetOpaque(page)->flags |= BLOOM_DELETED)
+#define BloomPageSetNonDeleted(page) \
+   (BloomPageGetOpaque(page)->flags &= ~BLOOM_DELETED)
 #define BloomPageGetData(page)     ((BloomTuple *)PageGetContents(page))
 #define BloomPageGetTuple(state, page, offset) \
    ((BloomTuple *)(PageGetContents(page) \
index fb8d9b8a5f614d8affd9ad3c3f2a904767fe6147..d976ce53305ebf82fade0ea967947fc43c4a3a6d 100644 (file)
@@ -142,7 +142,7 @@ blbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
        page = GenericXLogRegister(gxlogState, buffer, false);
 
        metaData = BloomPageGetMeta(page);
-       memcpy(metaData->notFullPage, notFullPage, sizeof(FreeBlockNumberArray));
+       memcpy(metaData->notFullPage, notFullPage, sizeof(BlockNumber) * countPage);
        metaData->nStart = 0;
        metaData->nEnd = countPage;