I assume this will be safe for 7.3 using 7.2 files via pg_upgrade
because those old 7.2 files will just have the longer length, right?
---------------------------------------------------------------------------
Manfred Koizar wrote:
> This small patch makes the length of the null bitmap a multiple
> of 1 byte (has been a multiple of 4 bytes previously), thus saving
> MAXIMUM_ALIGNOF (4 or 8 on modern platforms) bytes per on-disk-tuple
> in certain cases (depending on number of attributes and if there is
> at least one null attribute).
>
> It passes make check for 7.2 and for cvs HEAD.
>
> Though it changes the on-disk-format, there's no need to initdb,
> because data offsets are stored in t_hoff for each tuple. So this
> patch can be applied to HEAD and to the 7.2 branch.
>
> Servus
> Manfred
>
>
> diff -r -u ../orig/src/include/access/htup.h src/include/access/htup.h
> --- ../orig/src/include/access/htup.h Mon Nov 5 18:46:31 2001
> +++ src/include/access/htup.h Sun May 5 08:03:29 2002
> @@ -17,7 +17,7 @@
> #include "storage/bufpage.h"
> #include "storage/relfilenode.h"
>
> -#define MinHeapTupleBitmapSize 32 /* 8 * 4 */
> +#define MinHeapTupleBitmapLen 1 /* in bytes, must be 2**n */
>
> /*
> * MaxHeapAttributeNumber limits the number of (user) columns in a table.
> @@ -57,7 +57,7 @@
>
> /* ^ - 31 bytes - ^ */
>
> - bits8 t_bits[MinHeapTupleBitmapSize / 8];
> + bits8 t_bits[MinHeapTupleBitmapLen];
> /* bit map of NULLs */
>
> /* MORE DATA FOLLOWS AT END OF STRUCT */
> @@ -225,8 +225,8 @@
> * Computes minimum size of bitmap given number of domains.
> */
> #define BITMAPLEN(NATTS) \
> - ((((((int)(NATTS) - 1) >> 3) + 4 - (MinHeapTupleBitmapSize >> 3)) \
> - & ~03) + (MinHeapTupleBitmapSize >> 3))
> + (((((int)(NATTS) - 1) >> 3) \
> + & ~(MinHeapTupleBitmapLen - 1)) + MinHeapTupleBitmapLen)
>
> /*
> * HeapTupleIsValid
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026