2016-12-04 2 views
0

Я хочу передать результат подвыборки к функцииPostgresSQL подвыборка строки как функции пары

Say У меня есть существующая функция, которая возвращает boolean

функцию report_can_edit которая принимает тип report строки , Я хочу назвать это из другой функции, которая передается в id для report

(только глупый пример, чтобы проиллюстрировать то, что я пытаюсь сделать)

create or replace function report_can_edit(report report) returns boolean as $$ 
    select true; -- Imagine this does some complicated stuff 
$$ language sql stable; 


create or replace function task_edit(task_report_id int) returns boolean as $$ 
    select report_can_edit((select * from report where id = task_report_id)) 
$$ language sql stable; 

Это дает
ERROR: subquery must return only one column

Должен ли я переключиться на plpgsql и сначала выбрать в качестве разделительного типа строки? или есть ли способ сделать это с помощью функции типа sql?

ответ

1

Try:

create or replace function task_edit(task_report_id int) 
returns boolean as $$ 
    select report_can_edit((select report from report where id = task_report_id)) 
$$ language sql stable; 
+0

Спасибо! работает удовольствие, на удивление трудно найти эту информацию через google в настоящее время. – Tim

 Смежные вопросы

  • Нет связанных вопросов^_^