Re: PG12, PGXS and linking pgfeutils
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
Ian Barwick <ian.barwick@2ndquadrant.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2019-05-09T17:47:12Z
Lists: pgsql-hackers
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
Commits
-
Move logging.h and logging.c from src/fe_utils/ to src/common/.
- fc9a62af3f87 12.0 landed
-
Remove pg_rewind's private logging.h/logging.c files.
- 53ddefbaf8a0 12.0 landed
-
Unified logging system for command-line programs
- cc8d41511721 12.0 cited