Thread: Re: [COMMITTERS] pgsql: Unify some tar functionality across different parts
Magnus Hagander <magnus@hagander.net> writes: >> On Wed, Jan 2, 2013 at 4:14 AM, Andrew Dunstan <andrew@dunslane.net> wrote: >>> This seems to have broken plperl builds on Windows. > I'm not really sure what the best thing is to do here. We can either > use the fact that we know that uid_t and gid_t are "int" on all our > platforms, more or less, and change the tar api to use uid_t. Or put > the tar functions in their own header and make sure we don't include > that one anywhere that we include the perl headers. Why are these very tar-specific functions being declared in such a globally visible spot as port.h? That seems like a bad idea on its face. IMO stuff in port.h ought to be about as globally applicable as, say, malloc(). If there's actually a reason for that sort of namespace abuse, then change their parameters to int --- IIRC, the tar format can't support UIDs wider than 32 bits anyway. regards, tom lane
Re: [COMMITTERS] pgsql: Unify some tar functionality across different parts
From
Magnus Hagander
Date:
On Wed, Jan 2, 2013 at 5:36 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Magnus Hagander <magnus@hagander.net> writes: >>> On Wed, Jan 2, 2013 at 4:14 AM, Andrew Dunstan <andrew@dunslane.net> wrote: >>>> This seems to have broken plperl builds on Windows. > >> I'm not really sure what the best thing is to do here. We can either >> use the fact that we know that uid_t and gid_t are "int" on all our >> platforms, more or less, and change the tar api to use uid_t. Or put >> the tar functions in their own header and make sure we don't include >> that one anywhere that we include the perl headers. > > Why are these very tar-specific functions being declared in such a > globally visible spot as port.h? That seems like a bad idea on its > face. IMO stuff in port.h ought to be about as globally applicable > as, say, malloc(). It's where we put most of the things from src/port in. I take it you suggest moving it to a special say include/pgtar.h file? > If there's actually a reason for that sort of namespace abuse, then > change their parameters to int --- IIRC, the tar format can't support > UIDs wider than 32 bits anyway. Andrew suggested #ifndef'ing the declarations the same way that the typedefs for uid_t and gid_t are done as another optin. I don't really find either one of them non-kludgy :) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
Magnus Hagander <magnus@hagander.net> writes: > On Wed, Jan 2, 2013 at 5:36 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Why are these very tar-specific functions being declared in such a >> globally visible spot as port.h? That seems like a bad idea on its >> face. IMO stuff in port.h ought to be about as globally applicable >> as, say, malloc(). > It's where we put most of the things from src/port in. Might be time to revisit that, or perhaps better reconsider what we're putting in src/port/. The idea that anything that we want in both frontend and backend is a porting issue seems a bit busted in itself. > I take it you suggest moving it to a special say include/pgtar.h file? Works for me. regards, tom lane
Re: [COMMITTERS] pgsql: Unify some tar functionality across different parts
From
Magnus Hagander
Date:
On Wed, Jan 2, 2013 at 5:44 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Magnus Hagander <magnus@hagander.net> writes: >> On Wed, Jan 2, 2013 at 5:36 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> Why are these very tar-specific functions being declared in such a >>> globally visible spot as port.h? That seems like a bad idea on its >>> face. IMO stuff in port.h ought to be about as globally applicable >>> as, say, malloc(). > >> It's where we put most of the things from src/port in. > > Might be time to revisit that, or perhaps better reconsider what we're > putting in src/port/. The idea that anything that we want in both > frontend and backend is a porting issue seems a bit busted in itself. Yeah, true - but there's certainly other parts that think the same, so that's a separate issue. >> I take it you suggest moving it to a special say include/pgtar.h file? > > Works for me. Applied. Should hopefully work once Alvaro gets the buildfarm back to green. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/