Re: [PATCH 2/5] Make relpathbackend return a statically result instead of palloc()'ing it
Noah Misch <noah@leadboat.com>
From: Noah Misch <noah@leadboat.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2013-02-20T03:28:04Z
Lists: pgsql-hackers
On Tue, Jan 08, 2013 at 08:02:16PM -0500, Robert Haas wrote: > On Tue, Jan 8, 2013 at 7:57 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Robert Haas <robertmhaas@gmail.com> writes: > >> I was thinking more about a sprintf()-type function that only > >> understands a handful of escapes, but adds the additional and novel > >> escapes %I (quote as identifier) and %L (quote as literal). I think > >> that would allow a great deal of code simplification, and it'd be more > >> efficient, too. > > > > Seems like a great idea. Are you offering to code it? > > Not imminently. > > > Note that this wouldn't entirely fix the fmtId problem, as not all the > > uses of fmtId are directly in sprintf calls. Still, it might get rid of > > most of the places where it'd be painful to avoid a memory leak with > > a strdup'ing version of fmtId. > > Yeah, I didn't think about that. Might be worth a look to see how > comprehensively it would solve the problem. But I'll have to leave > that for another day. As a cheap solution addressing 95+% of the trouble, how about giving fmtId() a ring of, say, eight static buffers to cycle through? That satisfies code merely wishing to pass multiple fmtId()'d values to one appendPQExpBuffer(). -- Noah Misch EnterpriseDB http://www.enterprisedb.com
Commits
-
Prevent creation of postmaster's TCP socket during pg_upgrade testing.
- 78a5e738e97b 9.3.0 cited