/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
contrib/pageinspect/sql/checksum.sql
31 строка
1 KB
Tom Lane
Add an explicit test to catch changes in checksumming calculations.
08 мар 2020, 22:09
08 мар 2020, 22:09
38ce06c
Код
Авторство
О чём код?
-- -- 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; 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);