Table as argument in postgres function

From: RAJIN RAJ K <rajin89(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Table as argument in postgres function
Date: 2019-05-17 13:28:02
Message-ID: CAC+XFJj499e+DChXxF1Bi_qAPquQUzR6pDW1V+ss9QQAL4U-Mw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

I'm trying to convert SAP Hana procedures in PG and i'm not able to handle
below scenario in Postgres 11

Scenario: I want to pass a table (Multiple rows) to function and use it
inside as a temp table.

Sample Code:

create a table tbl_id (id int, name character varying (10));
insert few rows to tbl_id;
create a function myfun (in tt_table <How to define a table type here> )
begin
return setof table(few columns)
begin
as
select id,name into lv_var1,lv_var2;
from tt_table --> Want to use the input table
where id = <some value>;
return query
select *
from tbl2 where id in (select id from tt_table); --> Want to use the input
table
end;
I don't want to go with dynamic sql, is there any other way to declare a
table as input argument and use it a normal temp table inside the function
body?
--> Function invocation issue:
select * from myfun(tbl_id);
How to invoke a function by passing a table as argument?

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Gasper Zejn 2019-05-17 13:40:57 Re: pglz performance
Previous Message Robert Haas 2019-05-17 12:20:04 Re: [HACKERS] advanced partition matching algorithm for partition-wise join

Browse pgsql-sql by date

  From Date Subject
Next Message Jean-David Beyer 2019-05-17 16:09:44 Re: Problem in
Previous Message Leandro Carnio 2019-05-16 11:50:47 XML with nodes