diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/modules/test_tidstore/expected/test_tidstore.out | 28 | ||||
| -rw-r--r-- | src/test/modules/test_tidstore/sql/test_tidstore.sql | 10 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/test/modules/test_tidstore/expected/test_tidstore.out b/src/test/modules/test_tidstore/expected/test_tidstore.out index 0ae2f970dac..06c610e84c2 100644 --- a/src/test/modules/test_tidstore/expected/test_tidstore.out +++ b/src/test/modules/test_tidstore/expected/test_tidstore.out @@ -36,6 +36,20 @@ SELECT do_set_block_offsets(blk, array_agg(off)::int2[]) (VALUES (0), (1), (:maxblkno / 2), (:maxblkno - 1), (:maxblkno)) AS blocks(blk), (VALUES (1), (2), (:maxoffset / 2), (:maxoffset - 1), (:maxoffset)) AS offsets(off) GROUP BY blk; +-- Test offsets embedded in the bitmap header. +SELECT do_set_block_offsets(501, array[greatest((random() * :maxoffset)::int, 1)]::int2[]); + do_set_block_offsets +---------------------- + 501 +(1 row) + +SELECT do_set_block_offsets(502, array_agg(DISTINCT greatest((random() * :maxoffset)::int, 1))::int2[]) + FROM generate_series(1, 3); + do_set_block_offsets +---------------------- + 502 +(1 row) + -- Add enough TIDs to cause the store to appear "full", compared -- to the allocated memory it started out with. This is easier -- with memory contexts in local memory. @@ -73,6 +87,20 @@ SELECT test_create(true); (1 row) +-- Test offsets embedded in the bitmap header. +SELECT do_set_block_offsets(501, array[greatest((random() * :maxoffset)::int, 1)]::int2[]); + do_set_block_offsets +---------------------- + 501 +(1 row) + +SELECT do_set_block_offsets(502, array_agg(DISTINCT greatest((random() * :maxoffset)::int, 1))::int2[]) + FROM generate_series(1, 3); + do_set_block_offsets +---------------------- + 502 +(1 row) + -- Random TIDs test. The offset numbers are randomized and must be -- unique and ordered. INSERT INTO hideblocks (blockno) diff --git a/src/test/modules/test_tidstore/sql/test_tidstore.sql b/src/test/modules/test_tidstore/sql/test_tidstore.sql index e5edfbb2649..bb31877b9a6 100644 --- a/src/test/modules/test_tidstore/sql/test_tidstore.sql +++ b/src/test/modules/test_tidstore/sql/test_tidstore.sql @@ -28,6 +28,11 @@ SELECT do_set_block_offsets(blk, array_agg(off)::int2[]) (VALUES (1), (2), (:maxoffset / 2), (:maxoffset - 1), (:maxoffset)) AS offsets(off) GROUP BY blk; +-- Test offsets embedded in the bitmap header. +SELECT do_set_block_offsets(501, array[greatest((random() * :maxoffset)::int, 1)]::int2[]); +SELECT do_set_block_offsets(502, array_agg(DISTINCT greatest((random() * :maxoffset)::int, 1))::int2[]) + FROM generate_series(1, 3); + -- Add enough TIDs to cause the store to appear "full", compared -- to the allocated memory it started out with. This is easier -- with memory contexts in local memory. @@ -49,6 +54,11 @@ SELECT test_destroy(); -- because unused static functions would raise warnings there. SELECT test_create(true); +-- Test offsets embedded in the bitmap header. +SELECT do_set_block_offsets(501, array[greatest((random() * :maxoffset)::int, 1)]::int2[]); +SELECT do_set_block_offsets(502, array_agg(DISTINCT greatest((random() * :maxoffset)::int, 1))::int2[]) + FROM generate_series(1, 3); + -- Random TIDs test. The offset numbers are randomized and must be -- unique and ordered. INSERT INTO hideblocks (blockno) |
