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
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. |