Re: How can I pass an array from PostgreSQL to C (libpq)?
От | Achilleus Mantzios |
---|---|
Тема | Re: How can I pass an array from PostgreSQL to C (libpq)? |
Дата | |
Msg-id | Pine.LNX.4.44.0303270936000.10513-100000@matrix.gatewaynet.com обсуждение исходный текст |
Ответ на | Re: How can I pass an array from PostgreSQL to C (libpq)? ("G. Anthony Reina" <gar8+@pitt.edu>) |
Список | pgsql-sql |
On Wed, 26 Mar 2003, G. Anthony Reina wrote: See contrib/intarray > 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 > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > -- ================================================================== Achilleus Mantzios S/W Engineer IT dept Dynacom Tankers Mngmt Nikis 4, Glyfada Athens 16610 Greece tel: +30-210-8981112 fax: +30-210-8981877 email: achill@matrix.gatewaynet.com mantzios@softlab.ece.ntua.gr
В списке pgsql-sql по дате отправления: