LCOV - differential code coverage report
Current view: top level - src/include/storage - checksum_block_internal.h Coverage Total Hit UNC GNC
Current: bed3ffbf9d952be6c7d739d068cdce44c046dfb7 vs 574581b50ac9c63dd9e4abebb731a3b67e5b50f6 Lines: 100.0 % 11 11 11
Current Date: 2026-05-05 10:23:31 +0900 Functions: - 0 0
Baseline: lcov-20260505-025707-baseline Branches: 66.7 % 30 20 10 20
Baseline Date: 2026-05-05 10:27:06 +0900 Line coverage date bins:
Legend: Lines:     hit not hit
Branches: + taken - not taken # not executed
(30,360] days: 100.0 % 11 11 11
Branch coverage date bins:
(30,360] days: 66.7 % 30 20 10 20

 Age         Owner                    Branch data    TLA  Line data    Source code
                                  1                 :                : /*-------------------------------------------------------------------------
                                  2                 :                :  *
                                  3                 :                :  * checksum_block_internal.h
                                  4                 :                :  *    Core algorithm for page checksums, semi-private to checksum_impl.h
                                  5                 :                :  *    and checksum.c.
                                  6                 :                :  *
                                  7                 :                :  * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
                                  8                 :                :  * Portions Copyright (c) 1994, Regents of the University of California
                                  9                 :                :  *
                                 10                 :                :  * src/include/storage/checksum_block_internal.h
                                 11                 :                :  *
                                 12                 :                :  *-------------------------------------------------------------------------
                                 13                 :                :  */
                                 14                 :                : 
                                 15                 :                : /* there is deliberately not an #ifndef CHECKSUM_BLOCK_INTERNAL_H here */
                                 16                 :                : 
                                 17                 :                : uint32      sums[N_SUMS];
   31 john.naylor@postgres       18                 :GNC     2712054 : uint32      result = 0;
                                 19                 :                : uint32      i,
                                 20                 :                :             j;
                                 21                 :                : 
                                 22                 :                : /* ensure that the size is compatible with the algorithm */
                                 23                 :                : Assert(sizeof(PGChecksummablePage) == BLCKSZ);
                                 24                 :                : 
                                 25                 :                : /* initialize partial checksums to their corresponding offsets */
                                 26                 :        2712054 : memcpy(sums, checksumBaseOffsets, sizeof(checksumBaseOffsets));
                                 27                 :                : 
                                 28                 :                : /* main checksum calculation */
                                 29   [ +  +  -  - ]:      176283510 : for (i = 0; i < (uint32) (BLCKSZ / (sizeof(uint32) * N_SUMS)); i++)
                                            [ +  + ]
                                 30   [ +  +  -  - ]:     5727858048 :     for (j = 0; j < N_SUMS; j++)
                                            [ +  + ]
                                 31                 :     5554286592 :         CHECKSUM_COMP(sums[j], page->data[i][j]);
                                 32                 :                : 
                                 33                 :                : /* finally add in two rounds of zeroes for additional mixing */
                                 34   [ +  +  -  - ]:        8136162 : for (i = 0; i < 2; i++)
                                            [ +  + ]
                                 35   [ +  +  -  - ]:      178995564 :     for (j = 0; j < N_SUMS; j++)
                                            [ +  + ]
                                 36                 :      173571456 :         CHECKSUM_COMP(sums[j], 0);
                                 37                 :                : 
                                 38                 :                : /* xor fold partial checksums together */
                                 39   [ +  +  -  - ]:       89497782 : for (i = 0; i < N_SUMS; i++)
                                            [ +  + ]
                                 40                 :       86785728 :     result ^= sums[i];
                                 41                 :                : 
                                 42                 :        2712054 : return result;
        

Generated by: LCOV version 2.5.0-beta