From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Ian Barwick <ian.barwick@2ndquadrant.com>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Subject: Re: PG12, PGXS and linking pgfeutils
Date: Thu, 09 May 2019 13:47:12 -0400
Message-ID: <27315.1557424032@sss.pgh.pa.us> (raw)
In-Reply-To: <20190509173911.GA16616@alvherre.pgsql>
References: <20190509173911.GA16616@alvherre.pgsql>
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> On 2019-May-09, Tom Lane wrote:
>> I'm not especially on board with the idea of moving FE-specific error
>> handling code into libpgcommon, as that breaks the concept that
>> src/common/ is broadly for code that can work in either frontend or
>> backend contexts. However, we already have a few violations of that
>> rule: common/Makefile already has
>>
>> # A few files are currently only built for frontend, not server
>> OBJS_FRONTEND = $(OBJS_COMMON) fe_memutils.o file_utils.o restricted_token.o
>>
>> So maybe the answer is to move these logging support functions into
>> src/common, in a file that's only built for frontend.
> I wonder if a better solution isn't to move the file_utils stuff to
> fe_utils. Half of it is frontend-specific. The only one that should be
> shared to backend seems to be fsync_fname ... but instead of sharing it,
> we have a second copy in fd.c.
Hm, if file_utils is the only thing in common/ that uses this, and we
expect that to remain true, that would fix the issue. But ...
The thing I was looking at was mainly fe_memutils, which is justifiably
here on the grounds that it provides backend-like palloc support and
thereby eases the task of making other common/ modules work in both
contexts. If we built elog/ereport emulations on top of Peter's logging
functions, there'd be a very clear case for having that in common/.
Peter didn't do that for v12, but I hope we get there at some point.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: tgl@sss.pgh.pa.us, alvherre@2ndquadrant.com, peter.eisentraut@2ndquadrant.com, ian.barwick@2ndquadrant.com
Subject: Re: PG12, PGXS and linking pgfeutils
In-Reply-To: <27315.1557424032@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox