| From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> | 
|---|---|
| To: | "A L(dot)" <e_toner(at)hotmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: how to pass tablename to a function | 
| Date: | 2014-09-04 23:57:09 | 
| Message-ID: | 5408FC55.5070401@aklaver.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
On 09/04/2014 04:42 PM, A L. wrote:
> Hi, All
>
> I like to pass the tablename to function but not using execute clause,
> here is my script
>
> CREATE OR REPLACE FUNCTION functions.pgsql_event_unpack_batch(IN _tbl
> text, IN jobid bigint, IN jobtime timestamp with time zone, IN startid
> bigint, IN stopid bigint)
>    RETURNS TABLE(events bigint, errors bigint[]) AS
> $BODY$
> BEGIN
>
> RETURN QUERY
> WITH
>       unpacking (raw_id, time, userid, eventtype, pagename, userhost,
> application, status, error)
>       AS (
>          select
>                id as raw_id,
>                (up).time,
>                (up).userid,
>                coalesce((up).eventtype, ''),
>                coalesce((up).pagename, ''),
>                (up).userhostaddress as userhost,
>                coalesce((up).application, ''),
>                (up).status,
>                (up).error
>           from(
>                select id,
>                       functions.python_events_unpack(event_object) up
>                from  _tbl
>                where id between startid and stopid
>           ) a
>           where (up).userid is not NULL
>        )
>
>
> I want to pass the _tbl to the select query integrated in the
> unpacking(), how can I make it?
Assuming you are using plpgsql, see here:
or use a language like plpythonu.
>
> thanks
>
> Alec
-- 
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David G Johnston | 2014-09-05 00:23:28 | Re: how to pass tablename to a function | 
| Previous Message | A L. | 2014-09-04 23:42:45 | how to pass tablename to a function |