1
我在postgreSQL上有一組返回函數,例如如何通過ecto檢索從STR返回的模型集?
CREATE FUNCTION set_ret_func(foo int, bar int)
RETURNS TABLE(total bigint, result bigint) AS $$
SELECT a.val + $1 as total, b.val + $2 as result
FROM a, b
$$ LANGUAGE SQL;
此功能爲我提供了一個「靈活的觀點」,我可以方便地調用如:
SELECT * from set_ret_func('30'::int, '89'::int)
環顧四周,我發現多態關聯可以通過Ecto.Repo被稱爲做這樣的事情
from(x in {"table_name", Model}, select: x.total)
|> Repo.all
這讓我想知道是否可以使用Ecto.Query或from/2中的Ecto.Query.API中的fragment/1,因此我可以將我的set返回函數調用爲Schema(它們將都匹配上的東西列名,類型),根據我的想象會顯得是這樣的:
from(srf in {fragment("set_ret_func(?::int, ?::int)", var1, var2), Model},
select: srf.total)
有沒有把這個可疑交易報告,並扔在一個模型中的實際方法是什麼?