summaryrefslogtreecommitdiff
path: root/src/include/access
diff options
context:
space:
mode:
authorJohn Naylor2024-04-07 05:27:34 +0000
committerJohn Naylor2024-04-08 07:39:49 +0000
commit8a1b31e6e59631807a08a4e9465134c343bbdf5e (patch)
tree72f147d6442438d8ce033c981a90a7b9c43a904c /src/include/access
parentbb766cde63b4f624d029b34c9cdd3d0a94fd5b46 (diff)
Use bump context for TID bitmaps stored by vacuum
Vacuum does not pfree individual entries, and only frees the entire storage space when finished with it. This allows using a bump context, eliminating the chunk header in each leaf allocation. Most leaf allocations will be 16 to 32 bytes, so that's a significant savings. TidStoreCreateLocal gets a boolean parameter to indicate that the created store is insert-only. This requires a separate tree context for iteration, since we free the iteration state after iteration completes. Discussion: https://postgr.es/m/CANWCAZac%3DpBePg3rhX8nXkUuaLoiAJJLtmnCfZsPEAS4EtJ%3Dkg%40mail.gmail.com Discussion: https://postgr.es/m/CANWCAZZQFfxvzO8yZHFWtQV+Z2gAMv1ku16Vu7KWmb5kZQyd1w@mail.gmail.com
Diffstat (limited to 'src/include/access')
-rw-r--r--src/include/access/tidstore.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/access/tidstore.h b/src/include/access/tidstore.h
index f05d7487837..32aa9995193 100644
--- a/src/include/access/tidstore.h
+++ b/src/include/access/tidstore.h
@@ -29,7 +29,7 @@ typedef struct TidStoreIterResult
OffsetNumber *offsets;
} TidStoreIterResult;
-extern TidStore *TidStoreCreateLocal(size_t max_bytes);
+extern TidStore *TidStoreCreateLocal(size_t max_bytes, bool insert_only);
extern TidStore *TidStoreCreateShared(size_t max_bytes, int tranche_id);
extern TidStore *TidStoreAttach(dsa_handle area_handle, dsa_pointer handle);
extern void TidStoreDetach(TidStore *ts);