选择 * 从完成; PgTab 不适用于从嵌套循环 PostGresSQL 返回值的函数

问题描述

下面的函数一个嵌套循环,并试图为 finish() 返回 pgtap 函数的值,如下所示

CREATE or REPLACE FUNCTION public.udf_unit_test_output() RETURNS SetoF text AS
$$
    DECLARE
        v_expected_occurence        int;
        v_actual_occurence          int;
        record_list                 record;
        distinct_unit_test_uuid     record;
    BEGIN
        for distinct_unit_test_uuid in
            SELECT disTINCT unit_test_uuid FROM public.unit_test_expected_results
        loop
            for record_list in select record_id
                       from public.unit_test_expected_results
                       WHERE    unit_test_uuid  = (distinct_unit_test_uuid.unit_test_uuid :: uuid)
                loop
                SELECT  proc_name,log_severity,log_text,occurence
                FROM    public.unit_test_expected_results
                WHERE   record_id = record_list.record_id
                INTO    v_expected_log_severity;


                SELECT  COUNT(*)
                FROM    public.unit_test_output uto
                WHERE   unit_test_uuid  = (distinct_unit_test_uuid.unit_test_uuid :: uuid)
                INTO    v_actual_occurence;

                RETURN QUERY SELECT is(v_expected_occurence,v_actual_occurence,'Should match the expected occurrence and actual occurrence');
            end loop;
         end loop;
        RETURN;
    END;
$$
LANGUAGE plpgsql;

当我尝试执行以下命令时

BEGIN;
        SELECT plan( COUNT(*) :: int) from unit_test_expected_results;
        SELECT udf_unit_test_output();
        SELECT * FROM finish();
        ROLLBACK;
    END

输出控件上的完成点为空白

enter image description here

输出控制台有下面的记录

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)