From: | "G(dot) Anthony Reina" <gar8+(at)pitt(dot)edu> |
---|---|
To: | Joe Conway <mail(at)joeconway(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: How can I pass an array from PostgreSQL to C (libpq)? |
Date: | 2003-03-26 22:47:11 |
Message-ID: | 519653832.1048700831@dell1.neurobio.pitt.edu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Yes, in the past I had used binary cursor and things seemed to work fine.
However, recently when I ran the binary cursor stuff, the array ends up
getting shifted to the right one index. So what should be placed in
array_var[n] was getting placed in array var[n+1]. Plus, I was always a
little concerned with the binary cursor when going across platforms (e.g.
endianess, alignment).
I ended up just writing a little script that parses the string for the
comma separators. That works fine, but wanted to see if others had more
elegant solutions. I'll take a look at the /utils directory you mentioned.
Perhaps there are functions that I'm not aware of (e.g. I didn't know there
was a built in function called array_dims that gives the array dimensions).
-Tony
--On Wednesday, March 26, 2003 11:07 AM -0800 Joe Conway
<mail(at)joeconway(dot)com> wrote:r
>
> PQgetvalue is always going to give you the string representation of the
> field value *unless* you specify a binary cursor. In that case you'll get
> all requested fields in binary form, and it's your responsibility to deal
> with making sense of what you get. There are some backend macros and
> functions that can help you get at array values. Take a look at
> src/utils/adt/arrayfuncs.c and src/include/utils/array.h. You might want
> to read through contrib/array and/or contrib/intarray for examples.
>
> You could also consider writing your array manipulation code in a user
> defined C function and just return the end result to the libpq program.
> It's hard to know if this is an option without more detail on what you're
> trying to do.
>
> Joe
>
From | Date | Subject | |
---|---|---|---|
Next Message | Ryan | 2003-03-26 22:56:39 | Re: Off topic : world database |
Previous Message | Tom Lane | 2003-03-26 22:33:51 | Re: Complex outer joins? |