我正在寻找一种方法来定义允许返回无类型行值的 postgres 函数。为了论证起见,我们假设存在以下表格:
create table foo(
id serial primary key,
value1 varchar(255),
value2 int,
value3 datetime,
value4 boolean
);
我们还有一个函数允许我们返回某些列的结果(这是一个相当人为的示例,但实际上,很多连接发生在内部,我想通过仅使用相关列来最小化):
create or replace function foo_func(col1 text, col2 text) returns
table(?, ?) as
$$
declare
sql text;
begin
sql := 'select ' || col1 || ', ' || col2 || ' from foo'
return execute sql;
end
$$ language plpgsql;
由于列值取决于选定的列参数,因此无法预先定义返回表。有没有办法在不指定它们的值的情况下返回行?我已经考虑返回一个游标,但我不确定这是否是最好的选择。
(可以定义postgresql版本)