Re: How to pass array from .pgc to sql function - Mailing list pgsql-general

From Merlin Moncure
Subject Re: How to pass array from .pgc to sql function
Date
Msg-id CAHyXU0w7=SiUih8Z5amwe8AuGErrHDPaG0newXV_m8uu5_u1BQ@mail.gmail.com
Whole thread Raw
In response to How to pass array from .pgc to sql function  (Siva Palanisamy <siva_p@hcl.com>)
List pgsql-general
On Mon, Sep 19, 2011 at 8:20 AM, Siva Palanisamy <siva_p@hcl.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

pgsql-general by date:

Previous
From: Henry Drexler
Date:
Subject: Re: General guidance if there is an in dadabase solution or should stay as excel vba solution.
Next
From: Tom Lane
Date:
Subject: Re: Query performs badly with materialize node