Re: [pgsql-interfaces] Daily digest v1.1236 (2 messages)

From: andy rost <Andy(dot)Rost(at)noaa(dot)gov>
To: pgsql-interfaces-owner(at)postgresql(dot)org
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: [pgsql-interfaces] Daily digest v1.1236 (2 messages)
Date: 2006-10-10 15:28:02
Message-ID: 452BBC02.7090606@noaa.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

pgsql-interfaces-owner(at)postgresql(dot)org wrote:
> Message Digest
> Volume 1 : Issue 1236 : "text" Format
>
> Messages in this Issue:
> Retrieve all the returned rows in one call
> Re: Retrieve all the returned rows in one call
>
> ----------------------------------------------------------------------
>
> Date: Mon, 09 Oct 2006 16:58:05 +0200
> From: "Andreas Gidlund" <vaxis(at)hotmail(dot)com>
> To: pgsql-interfaces(at)postgresql(dot)org
> Subject: Retrieve all the returned rows in one call
> Message-ID: <BAY103-F23CEDEF25EEDE7CAFCE5F9BA160(at)phx(dot)gbl>
>
> I am right now using the libpq interface and struggling with efficiently
> retrieve the result from a query.
>
> Let's say I run a select statement with some where clauses and then retrieve
> the result into a PGresult. I want to know if there is an efficient way to
> retrieve all the rows at once? I am going to return a char*** from my
> function, i.e. a two-dimensional array of char pointers.
> I have seen the COPY sql command, but up to v8.1 i cannot use a select
> statement with it, the only way to customize COPY is to choose which columns
> to return, but still, the only option is to return the whole table.
> Furthermore, when using PQgetCopyData I get the whole row at once, but I
> still have to loop through all rows.
> I have also seen in the PGresult structure that it has a member called
> tuples, which is a two-dimensional array of the structure PGresAttValue.
> This is a way to recieve all the data at once, but it is in a format which
> is specific for PostgreSQL and I am developing a database interface
> including other databases two, so I want to use a general structure returned
> from the function, i.e. a char***. This means that I would have to loop
> through the tuples array to convert into the char array structure, and hence
> lose the whole meaning with recieving all the rows at once.
>
> So my question is if it is possible in any way to retrieve the result in the
> form of char***?
>
> _________________________________________________________________
> Gör karriär! http://monster.msn.se/
>
>
> ------------------------------
>
> Date: Mon, 9 Oct 2006 11:30:06 -0400
> From: Sean Davis <sdavis2(at)mail(dot)nih(dot)gov>
> To: pgsql-interfaces(at)postgresql(dot)org
> Cc: "Andreas Gidlund" <vaxis(at)hotmail(dot)com>
> Subject: Re: Retrieve all the returned rows in one call
> Message-ID: <200610091130(dot)06335(dot)sdavis2(at)mail(dot)nih(dot)gov>
>
> On Monday 09 October 2006 10:58, Andreas Gidlund wrote:
>> I am right now using the libpq interface and struggling with efficiently
>> retrieve the result from a query.
>>
>> Let's say I run a select statement with some where clauses and then
>> retrieve the result into a PGresult. I want to know if there is an
>> efficient way to retrieve all the rows at once? I am going to return a
>> char*** from my function, i.e. a two-dimensional array of char pointers.
>> I have seen the COPY sql command, but up to v8.1 i cannot use a select
>> statement with it, the only way to customize COPY is to choose which
>> columns to return, but still, the only option is to return the whole table.
>> Furthermore, when using PQgetCopyData I get the whole row at once, but I
>> still have to loop through all rows.
>> I have also seen in the PGresult structure that it has a member called
>> tuples, which is a two-dimensional array of the structure PGresAttValue.
>> This is a way to recieve all the data at once, but it is in a format which
>> is specific for PostgreSQL and I am developing a database interface
>> including other databases two, so I want to use a general structure
>> returned from the function, i.e. a char***. This means that I would have to
>> loop through the tuples array to convert into the char array structure, and
>> hence lose the whole meaning with recieving all the rows at once.
>>
>> So my question is if it is possible in any way to retrieve the result in
>> the form of char***?
>
> I think the answer is no.
>
> Sean
>
> ------------------------------
>
> End of [pgsql-interfaces] Daily digest v1.1236 (2 messages)
> **********

We had a similar issue. Don't know if this will work for you but you may
want to look into FETCH ALL

--
--------------------------------------------------------------------------------
Andrew Rost
National Operational Hydrologic Remote Sensing Center (NOHRSC)
National Weather Service, NOAA
1735 Lake Dr. West, Chanhassen, MN 55317-8582
Voice: (952)361-6610 x 234
Fax: (952)361-6634
andy(dot)rost(at)noaa(dot)gov
http://www.nohrsc.noaa.gov
--------------------------------------------------------------------------------

Browse pgsql-interfaces by date

  From Date Subject
Next Message Dmitriy Chumack 2006-10-11 15:33:13 libpq - check PGconn* - is it valid
Previous Message Sean Davis 2006-10-09 15:30:06 Re: Retrieve all the returned rows in one call