Re: [PATCH 2/5] Make relpathbackend return a statically result instead of palloc()'ing it

Поиск
Список
Период
Сортировка
От Noah Misch
Тема Re: [PATCH 2/5] Make relpathbackend return a statically result instead of palloc()'ing it
Дата
Msg-id 20130220032804.GA9455@tornado.leadboat.com
обсуждение исходный текст
Ответ на Re: [PATCH 2/5] Make relpathbackend return a statically result instead of palloc()'ing it  (Robert Haas <robertmhaas@gmail.com>)
Список 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



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Joachim Wieland
Дата:
Сообщение: Re: posix_fadvise missing in the walsender
Следующее
От: Jeff Janes
Дата:
Сообщение: Re: PATCH: Split stats file per database WAS: autovacuum stress-testing our system