On 3/27/18 12:47, Tom Lane wrote: > Here's an updated patch that adjusts the output format per discussion: > > - context identifier at the end of the line, so it's easier to see the > numbers > > - identifiers truncated at 100 bytes, control characters replaced by > spaces > > Also, I hacked things so that dynahash hash tables continue to print > the way they did before, since the hash table name is really what > you want to see there. > > Sample output is same test case as last time (dump at end of plpgsql.sql > regression test script). > > Barring objection I plan to push this shortly.
Cool. How about this one as well: diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index 75a6dde32b..c08dc260e2 100644 --- a/src/backend/utils/mmgr/portalmem.c +++ b/src/backend/utils/mmgr/portalmem.c @@ -200,6 +200,7 @@ CreatePortal(const char *name, bool allowDup, bool dupSilent) portal->portalContext = AllocSetContextCreate(TopPortalContext, "PortalContext", ALLOCSET_SMALL_SIZES); + MemoryContextCopySetIdentifier(portal->portalContext, name); /* create a resource owner for the portal */ portal->resowner = ResourceOwnerCreate(CurTransactionResourceOwner, The term CopySetIdentifier has confused me a bit. (What's a "set identifier"?) Maybe use CopyAndSetIdentifier? (We similarly have MemoryContextResetAndDeleteChildren.) I'm also not clear why this doesn't undo the previous optimization that preferred making the identifier a compile time-constant. Aren't we now just going back to doing a pstrdup() every time? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services