微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决选择 * 从完成; 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 举报,一经查实,本站将立刻删除。