Thread

  1. Backend Question

    Chris Bitmead <chris@bitmead.com> — 2000-07-03T13:10:25Z

    Can anyone tell me what the concept of a "group" is in
    backend/libpq/portal.c? There are functions like PQntuplesGroup,
    PQfnumberGroup, PQfsizeGroup, PQftypeGroup etc etc.
    
    
  2. Re: Backend Question

    Tom Lane <tgl@sss.pgh.pa.us> — 2000-07-03T14:31:49Z

    Chris Bitmead <chris@bitmead.com> writes:
    > Can anyone tell me what the concept of a "group" is in
    > backend/libpq/portal.c? There are functions like PQntuplesGroup,
    > PQfnumberGroup, PQfsizeGroup, PQftypeGroup etc etc.
    
    Once upon a time it probably supported something like the ability to
    merge tuples of different types into a SELECT result.  It does not
    now: a little scanning shows there is no way to get no_groups above 1
    in the current logic.
    
    You should realize, however, that all that backend-PQexec code is dead
    code and has been for a long time.  It's unlikely that it works at all
    any more, considering all the changes that have gone on while it sits
    untested on the sidelines.  I proposed ripping it out a few months ago,
    and no one objected ... but I haven't got round to it yet.
    
    			regards, tom lane
    
    
  3. Re: Backend Question

    Chris Bitmead <chris@bitmead.com> — 2000-07-03T14:38:38Z

    Tom Lane wrote:
    > 
    > Chris Bitmead <chris@bitmead.com> writes:
    > > Can anyone tell me what the concept of a "group" is in
    > > backend/libpq/portal.c? There are functions like PQntuplesGroup,
    > > PQfnumberGroup, PQfsizeGroup, PQftypeGroup etc etc.
    > 
    > Once upon a time it probably supported something like the ability to
    > merge tuples of different types into a SELECT result.  It does not
    > now: a little scanning shows there is no way to get no_groups above 1
    > in the current logic.
    > 
    > You should realize, however, that all that backend-PQexec code is dead
    > code and has been for a long time.  It's unlikely that it works at all
    > any more, considering all the changes that have gone on while it sits
    > untested on the sidelines.  I proposed ripping it out a few months ago,
    > and no one objected ... but I haven't got round to it yet.
    
    Why is it dead code? Why is it no longer necessary?
    
    
  4. Re: Backend Question

    Tom Lane <tgl@sss.pgh.pa.us> — 2000-07-03T14:47:07Z

    Chris Bitmead <chris@bitmead.com> writes:
    >> You should realize, however, that all that backend-PQexec code is dead
    >> code and has been for a long time.
    
    > Why is it dead code? Why is it no longer necessary?
    
    It's dead code because it's not called from anywhere.
    
    Once upon a time it was intended to be called by dynamically-loaded
    C functions, but the SPI interface superseded it a long time ago.
    
    The only reason for not ripping it out is the faint possibility that
    somewhere out there is someone with hoary old C-function code that
    still does queries via the backend-PQexec interface instead of SPI.
    But considering that backend-PQexec has been undocumented at least
    since Berkeley days, I rather doubt it.
    
    			regards, tom lane
    
    
  5. Re: Backend Question

    Chris Bitmead <chris@bitmead.com> — 2000-07-03T14:47:49Z

    Tom Lane wrote:
    
    > You should realize, however, that all that backend-PQexec code is dead
    > code and has been for a long time.  It's unlikely that it works at all
    > any more, considering all the changes that have gone on while it sits
    > untested on the sidelines.  I proposed ripping it out a few months ago,
    > and no one objected ... but I haven't got round to it yet.
    
    Oh does it allow you to execute queries from within the backend? Sounds
    like a good thing to resurrect at some stage.