У меня есть функция возврата на postgreSQL, например.Как я могу получить набор, возвращенный из STR в модель через ecto?
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 или фрагмент/1 в Ecto.Query.API в файле from/2, чтобы я смог вызвать функцию set set в Schema (они будуткак матч на column_name, типа) на то, что в соответствии с моим воображением выглядело бы что-то вроде:
from(srf in {fragment("set_ret_func(?::int, ?::int)", var1, var2), Model},
select: srf.total)
Есть ли фактический способ назвать это STRs и ввергнут их в модели?