0

下面的函数有一个嵌套循环,并试图返回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

输出控件上的完成点击为空白 在此处输入图像描述

输出控制台有下面的记录

在此处输入图像描述

4

0 回答 0