Re: How can I pass an array from PostgreSQL to C (libpq)?
От | G. Anthony Reina |
---|---|
Тема | Re: How can I pass an array from PostgreSQL to C (libpq)? |
Дата | |
Msg-id | 519653832.1048700831@dell1.neurobio.pitt.edu обсуждение исходный текст |
Ответ на | Re: How can I pass an array from PostgreSQL to C (libpq)? (Joe Conway <mail@joeconway.com>) |
Ответы |
Re: How can I pass an array from PostgreSQL to C (libpq)?
|
Список | 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@joeconway.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 >
В списке pgsql-sql по дате отправления: