我目前正在使用PGTAP
.
为了最大限度地减少代码中的冗余,我在函数中放置了重复的代码。我有两个函数都返回一个 SETOF TEXT。
CREATE FUNCTION _create_common_test(
this_argument varchar
) RETURNS SETOF TEXT AS $$
DECLARE
RETURN NEXT IS(this_argument, 'i_am_argument1', 'Checking Argument 1');
MORE RETURN NEXT STATEMENTS HERE....
END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION test_create_common_test_1() RETURNS SETOF TEXT AS $$
BEGIN
RETURN NEXT _create_common_test('i_am_argument1');
END
$$ LANGUAGE plpgsql;
CREATE FUNCTION test_create_common_test_2() RETURNS SETOF TEXT AS $$
BEGIN
RETURN NEXT _create_common_test('i_am_argument2');
END
$$ LANGUAGE plpgsql;
test_create_common_test_1
并在其test_create_common_test_2
函数内部调用相同的函数_create_common_test()
,仅在参数中传递的值不同。
至于我的问题,是否可以在函数和中返回_create_common_test()
a的返回值?SETOF TEXT
test_create_common_test_1
test_create_common_test_2
我试过使用 PERFORM _create_common_test('i_am_argument2'),
CREATE FUNCTION test_create_common_test_2() RETURNS SETOF TEXT AS $$
BEGIN
PERFORM _create_common_test('i_am_argument2');
END
$$ LANGUAGE plpgsql;
但它没有列举我在 _create_common_test() 中得到的结果。