How to retrieve values of 'array' field using C library (libpq) - Mailing list pgsql-general

From Anton Maksimenkov
Subject How to retrieve values of 'array' field using C library (libpq)
Date
Msg-id AANLkTikyNkMLpQMcYnqmrWcV32SZfCNVpdyD_aM5DKOo@mail.gmail.com
Whole thread Raw
Responses Re: How to retrieve values of 'array' field using C library (libpq)  (Dmitriy Igrishin <dmitigr@gmail.com>)
List pgsql-general
Hi.

I use libpq in my program. And I can retrieve int and symbolic fields
as simple as


int unameFN, moneyFN...
char *unamePTR, *moneyPTR...

unameFN = PQfnumber(res, "uname");
moneyFN = PQfnumber(res, "money");
unamePTR = PQgetvalue(res, 0, unameFN);
moneyPTR = PQgetvalue(res, 0, moneyFN);
themoney   = ntohl(*((uint32_t *) moneyPTR));
printf("user->[uname:%s money:%d]", unamePTR, themoney);


Then I tried to use array type and no success:

int arFN...
char *arPTR...

arN = PQfnumber(res, "woo");
arPTR = PQgetvalue(res, 0, arFN);
printf("user->[woo:%s]", arPTR);

I can convert it with array_to_string() and got it as some text.

My array is the array of integer values. So maybe there is some native
method to retrieve them (as in the 'themoney' example)?
--
antonvm

pgsql-general by date:

Previous
From: Ogden
Date:
Subject: Re: PostgreSQL 9.0 Streaming Replication Configuration
Next
From: Thom Brown
Date:
Subject: Re: [HACKERS] Issues with generate_series using integer boundaries