Re: How to pass array from .pgc to sql function

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: Siva Palanisamy <siva_p(at)hcl(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: How to pass array from .pgc to sql function
Date: 2011-09-19 14:57:39
Message-ID: CAHyXU0w7=SiUih8Z5amwe8AuGErrHDPaG0newXV_m8uu5_u1BQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Sep 19, 2011 at 8:20 AM, Siva Palanisamy <siva_p(at)hcl(dot)com> wrote:
> Hi All,
>
>
>
> I am using embedded Postgres ‘C’ file to make function calls to the sql. I
> have a .pgc (a ‘C’ file with sql statements) and .sql file.
>
>
>
> I have a pointer array that looks like this:
>
> typedef struct {
>
>                 char* displayName;
>
> } DisplayName;
>
>
>
> DisplayName* displayName_list = calloc(5, sizeof(*displayName_list));
>
>
>
> displayName_list = response->displayName_list
>
>
>
> Assume that response->displayName_list holds the list of names to be sent to
> the sql function. Below is the similar sql func:
>
>
>
> CREATE OR REPLACE FUNCTION prepare_names,TEXT[])
>
>         RETURNS VOID AS '
>
> ………………………………….
>
>
>
> I need to convert that pointer which holds the list of names to the sql func
> as an array. Please help me on this part.

it looks like container types are not supported in ecpg. see:
http://developer.postgresql.org/pgdocs/postgres/ecpg-variables.html#ECPG-VARIABLES-NONPRIMITIVE-SQL.

You can probably work around the issue by constructing text
representations of the array and casting it in the query.

merlin

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2011-09-19 15:01:09 Re: Query performs badly with materialize node
Previous Message Henry Drexler 2011-09-19 14:37:58 Re: General guidance if there is an in dadabase solution or should stay as excel vba solution.