Commit ff494304 authored by Teodor Sigaev's avatar Teodor Sigaev

Fix datatype for number of heap tuples during last cleanup

It appears that new fields introduced in 857f9c36 have inconsistent datatypes:
BTMetaPageData.btm_last_cleanup_num_heap_tuples is of float4 type,
while xl_btree_metadata.last_cleanup_num_heap_tuples is of double type.
IndexVacuumInfo.num_heap_tuples, which is a source of values for
both former fields is of double type.  So, make both those fields in
BTMetaPageData and xl_btree_metadata use float8 type in order to match the
precision of the source.  That shouldn't be double type, because we always
use types with explicit width in WAL.

Patch introduces incompatibility of on-disk format since 857f9c36 commit, but
that versions never was released, so just bump catalog version to avoid
possible confusion.

Author: Alexander Korortkov
parent f97f0c92
......@@ -105,7 +105,7 @@ typedef struct BTMetaPageData
/* following fields are available since page version 3 */
TransactionId btm_oldest_btpo_xact; /* oldest btpo_xact among of
* deleted pages */
float4 btm_last_cleanup_num_heap_tuples; /* number of heap tuples
float8 btm_last_cleanup_num_heap_tuples; /* number of heap tuples
* during last cleanup */
} BTMetaPageData;
......
......@@ -52,7 +52,7 @@ typedef struct xl_btree_metadata
BlockNumber fastroot;
uint32 fastlevel;
TransactionId oldest_btpo_xact;
double last_cleanup_num_heap_tuples;
float8 last_cleanup_num_heap_tuples;
} xl_btree_metadata;
/*
......
......@@ -53,6 +53,6 @@
*/
/* yyyymmddN */
#define CATALOG_VERSION_NO 201804091
#define CATALOG_VERSION_NO 201804191
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment