-----Original Message-----
From: pgsql-general-ow...@postgresql.org 
[mailto:pgsql-general-ow...@postgresql.org] On Behalf Of alecinvan
Sent: Thursday, September 04, 2014 6:28 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] how to pass tablename to a function

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?

thanks

Alec


You can't.
You have to use dynamic sql (EXECUTE).

Regards,
Igor Neyman


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