Re: Rationalizing code-sharing among src/bin/ directories - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Rationalizing code-sharing among src/bin/ directories
Date
Msg-id CAB7nPqStOVT=mAkaVGaf0P=gCFznvQORZNQL216g4ZS51wsW2A@mail.gmail.com
Whole thread Raw
In response to Re: Rationalizing code-sharing among src/bin/ directories  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: Rationalizing code-sharing among src/bin/ directories
List pgsql-hackers
On Fri, Mar 25, 2016 at 1:11 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:
> Tom Lane wrote:
>
>> What I propose doing is leaving the above-listed items in
>> pg_dump/dumputils.h/.c, and moving the rest of what's in those files
>> to new files src/include/fe_utils/string_utils.h and
>> src/fe_utils/string_utils.c.
>
> Seems reasonable.
>
>> This name is a bit arbitrary, but most of what's there is string
>> processing of some flavor or other, with some list processing thrown
>> in for good measure.  If anyone's got a different color to paint this
>> bikeshed, please speak up.
>
> I wondered about the list stuff while messing about in pg_dump awhile
> ago.  It seems moderately okay, but not terribly generic; maybe we
> should get rid of all that stuff and make ilist.c available to frontend.
> Not sure how easy is that, given that AFAIR ilist uses elog.  Anyway
> maybe we can discuss that in the future, to avoid blocking your patch.

Definitely worth it, list mimics of what is in pg_dump are located in
pg_basebackup, and since a 9.6 patch in psql as well. That's as much
code duplication.

Preventing the use of elog in the frontend is something that has been
addressed multiple times with FRONTEND, so that's not likely going to
be an issue I think. Andres has mentioned as well having some elog
stuff available in frontend..
-- 
Michael



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Using quicksort for every external sort run
Next
From: Jim Nasby
Date:
Subject: Re: [WIP] Effective storage of duplicates in B-tree index.