Re: How can I pass an array from PostgreSQL to C (libpq)?

From: Achilleus Mantzios <achill(at)matrix(dot)gatewaynet(dot)com>
To: "G(dot) Anthony Reina" <gar8+(at)pitt(dot)edu>
Cc: Joe Conway <mail(at)joeconway(dot)com>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: How can I pass an array from PostgreSQL to C (libpq)?
Date: 2003-03-27 11:36:15
Message-ID: Pine.LNX.4.44.0303270936000.10513-100000@matrix.gatewaynet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(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
> >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)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(at)matrix(dot)gatewaynet(dot)com
mantzios(at)softlab(dot)ece(dot)ntua(dot)gr

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Correia, Carla 2003-03-27 13:42:06 Re: Complex outer joins?
Previous Message Achilleus Mantzios 2003-03-27 11:32:56 Re: Off topic : world database