On Mon, 15 Apr 2024 at 10:33, Andres Freund <and...@anarazel.de> wrote: > - The new bump allocator has a fair amount of uncovered functionality: > > https://anarazel.de/postgres/cov/16-vs-HEAD-2024-04-14/src/backend/utils/mmgr/bump.c.gcov.html#L293
The attached adds a test to tuplesort to exercise BumpAllocLarge() > > https://anarazel.de/postgres/cov/16-vs-HEAD-2024-04-14/src/backend/utils/mmgr/bump.c.gcov.html#L613 I don't see a way to exercise those. They're meant to be "can't happen" ERRORs. I could delete them and use BogusFree, BogusRealloc, BogusGetChunkContext, BogusGetChunkSpace instead, but the ERROR message would be misleading. I think it's best just to leave this. David
diff --git a/src/test/regress/expected/tuplesort.out b/src/test/regress/expected/tuplesort.out index 0e8b5bf4a3..6dd97e7427 100644 --- a/src/test/regress/expected/tuplesort.out +++ b/src/test/regress/expected/tuplesort.out @@ -343,6 +343,19 @@ ORDER BY ctid DESC LIMIT 5; (5 rows) ROLLBACK; +---- +-- test sorting of large datums VALUES +---- +-- Ensure the order is correct and values look intact +SELECT LEFT(a,10),b FROM + (VALUES(REPEAT('a', 512 * 1024),1),(REPEAT('b', 512 * 1024),2)) v(a,b) +ORDER BY v.a DESC; + left | b +------------+--- + bbbbbbbbbb | 2 + aaaaaaaaaa | 1 +(2 rows) + ---- -- test forward and backward scans for in-memory and disk based tuplesort ---- diff --git a/src/test/regress/sql/tuplesort.sql b/src/test/regress/sql/tuplesort.sql index 658fe98dc5..8476e594e6 100644 --- a/src/test/regress/sql/tuplesort.sql +++ b/src/test/regress/sql/tuplesort.sql @@ -146,6 +146,15 @@ FROM abbrev_abort_uuids ORDER BY ctid DESC LIMIT 5; ROLLBACK; +---- +-- test sorting of large datums VALUES +---- + +-- Ensure the order is correct and values look intact +SELECT LEFT(a,10),b FROM + (VALUES(REPEAT('a', 512 * 1024),1),(REPEAT('b', 512 * 1024),2)) v(a,b) +ORDER BY v.a DESC; + ---- -- test forward and backward scans for in-memory and disk based tuplesort ----