我目前正在POSTGRESQL
使用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()
和SETOF TEXT
中返回test_create_common_test_1
的{{1}}的返回值?
我尝试过使用PERFORM _create_common_test('i_am_argument2'),
test_create_common_test_2
但它没有列举我在_create_common_test()中的结果。
非常感谢任何帮助! 谢谢。 ^ _ ^
答案 0 :(得分:0)
@a_horse_with_no_name在评论中正确回答:
return query select * from _create_common_test('i_am_argument2');