| CREATE TABLE test_hash (a int, b text); |
| INSERT INTO test_hash VALUES (1, 'one'); |
| CREATE INDEX test_hash_a_idx ON test_hash USING hash (a); |
| |
| \x |
| |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 0)); |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 1)); |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 2)); |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 3)); |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 4)); |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 5)); |
| SELECT hash_page_type(get_raw_page('test_hash_a_idx', 6)); |
| |
| |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', -1); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 0); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 1); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 2); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 3); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 4); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 5); |
| SELECT * FROM hash_bitmap_info('test_hash_a_idx', 6); |
| |
| |
| SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask, |
| lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM |
| hash_metapage_info(get_raw_page('test_hash_a_idx', 0)); |
| |
| SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask, |
| lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM |
| hash_metapage_info(get_raw_page('test_hash_a_idx', 1)); |
| |
| SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask, |
| lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM |
| hash_metapage_info(get_raw_page('test_hash_a_idx', 2)); |
| |
| SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask, |
| lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM |
| hash_metapage_info(get_raw_page('test_hash_a_idx', 3)); |
| |
| SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask, |
| lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM |
| hash_metapage_info(get_raw_page('test_hash_a_idx', 4)); |
| |
| SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask, |
| lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM |
| hash_metapage_info(get_raw_page('test_hash_a_idx', 5)); |
| |
| SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno, |
| hasho_bucket, hasho_flag, hasho_page_id FROM |
| hash_page_stats(get_raw_page('test_hash_a_idx', 0)); |
| |
| SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno, |
| hasho_bucket, hasho_flag, hasho_page_id FROM |
| hash_page_stats(get_raw_page('test_hash_a_idx', 1)); |
| |
| SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno, |
| hasho_bucket, hasho_flag, hasho_page_id FROM |
| hash_page_stats(get_raw_page('test_hash_a_idx', 2)); |
| |
| SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno, |
| hasho_bucket, hasho_flag, hasho_page_id FROM |
| hash_page_stats(get_raw_page('test_hash_a_idx', 3)); |
| |
| SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno, |
| hasho_bucket, hasho_flag, hasho_page_id FROM |
| hash_page_stats(get_raw_page('test_hash_a_idx', 4)); |
| |
| SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno, |
| hasho_bucket, hasho_flag, hasho_page_id FROM |
| hash_page_stats(get_raw_page('test_hash_a_idx', 5)); |
| |
| SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 0)); |
| SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 1)); |
| SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 2)); |
| SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 3)); |
| SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 4)); |
| SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 5)); |
| |
| -- Failure with non-hash index |
| CREATE INDEX test_hash_a_btree ON test_hash USING btree (a); |
| SELECT hash_bitmap_info('test_hash_a_btree', 0); |
| |
| -- Failure with various modes. |
| -- Suppress the DETAIL message, to allow the tests to work across various |
| -- page sizes and architectures. |
| \set VERBOSITY terse |
| -- invalid page size |
| SELECT hash_metapage_info('aaa'::bytea); |
| SELECT hash_page_items('bbb'::bytea); |
| SELECT hash_page_stats('ccc'::bytea); |
| SELECT hash_page_type('ddd'::bytea); |
| -- invalid special area size |
| SELECT hash_metapage_info(get_raw_page('test_hash', 0)); |
| SELECT hash_page_items(get_raw_page('test_hash', 0)); |
| SELECT hash_page_stats(get_raw_page('test_hash', 0)); |
| SELECT hash_page_type(get_raw_page('test_hash', 0)); |
| \set VERBOSITY default |
| |
| -- Tests with all-zero pages. |
| SHOW block_size \gset |
| SELECT hash_metapage_info(decode(repeat('00', :block_size), 'hex')); |
| SELECT hash_page_items(decode(repeat('00', :block_size), 'hex')); |
| SELECT hash_page_stats(decode(repeat('00', :block_size), 'hex')); |
| SELECT hash_page_type(decode(repeat('00', :block_size), 'hex')); |
| |
| DROP TABLE test_hash; |