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:

http://www.postgresql.org/docs/9.3/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

or use a language like plpythonu.


thanks

Alec


--
Adrian Klaver
adrian.kla...@aklaver.com


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to