如何从Diesel sql函数获取返回值

时间:2019-11-21 23:29:44

标签: postgresql rust rust-diesel

我有一个SQL函数(在Postgres中),我想使用Diesel进行调用。我已经使用sql_function!宏对其进行了声明,并且可以将函数称为OK。但是我无法获得返回值-它总是返回1,我假设它是行数。如何获得实际的返回值?

sql_function! {
    fn my_add(a: Int4, b: Int4) -> Int4;
}

let my_add_fn = my_add(2, 4);
let result = diesel::select(my_add_fn).execute(&conn).unwrap();
dbg!(&result); // This prints 1. Should be 6

当我从Postgres CLI调用my_add时,它可以正常工作:

select my_add(2, 4);
 my_add 
--------
      6
(1 row)

这是my_add函数

CREATE OR REPLACE FUNCTION my_add(
    a integer,
    b integer
)
    RETURNS integer
AS $$
BEGIN
    return a + b;
END;
$$ LANGUAGE plpgsql
    IMMUTABLE;

0 个答案:

没有答案