summaryrefslogtreecommitdiffstats
path: root/contrib/pageinspect/expected/checksum_1.out
blob: 6fb1b1b04dcff9d25abca381c06952c909ffccf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--
-- Verify correct calculation of checksums
--
-- Postgres' checksum algorithm produces different answers on little-endian
-- and big-endian machines.  The results of this test also vary depending
-- on the configured block size.  This test has several different expected
-- results files to handle the following possibilities:
--
--	BLCKSZ	end	file
--	8K	LE	checksum.out
--	8K	BE	checksum_1.out
--
-- In future we might provide additional expected-results files for other
-- block sizes, but there seems little point as long as so many other
-- test scripts also show false failures for non-default block sizes.
--
-- This is to label the results files with blocksize:
SHOW block_size;
 block_size 
------------
 8192
(1 row)

SHOW block_size \gset
-- Apply page_checksum() to some different data patterns and block numbers
SELECT blkno,
    page_checksum(decode(repeat('01', :block_size), 'hex'), blkno) AS checksum_01,
    page_checksum(decode(repeat('04', :block_size), 'hex'), blkno) AS checksum_04,
    page_checksum(decode(repeat('ff', :block_size), 'hex'), blkno) AS checksum_ff,
    page_checksum(decode(repeat('abcd', :block_size / 2), 'hex'), blkno) AS checksum_abcd,
    page_checksum(decode(repeat('e6d6', :block_size / 2), 'hex'), blkno) AS checksum_e6d6,
    page_checksum(decode(repeat('4a5e', :block_size / 2), 'hex'), blkno) AS checksum_4a5e
  FROM generate_series(0, 100, 50) AS a (blkno);
 blkno | checksum_01 | checksum_04 | checksum_ff | checksum_abcd | checksum_e6d6 | checksum_4a5e 
-------+-------------+-------------+-------------+---------------+---------------+---------------
     0 |      -16327 |        8766 |       -2722 |         13757 |        -11485 |        -31426
    50 |      -16281 |        8780 |       -2708 |         13771 |        -11503 |        -31440
   100 |      -16235 |        8866 |       -2758 |         13721 |        -11577 |        -31518
(3 rows)