我想了解PL/pgSQL函數中select語句的查詢計劃,但我不斷收到錯誤。我的問題:我如何獲得查詢計劃?在PL/pgSQL中解釋ANALYZE給出錯誤:「查詢沒有結果數據的目的地」
以下是重現問題的簡單情況。
問題表名爲test_table。
CREATE TABLE test_table
(
name character varying,
id integer
);
的功能如下:
DROP FUNCTION IF EXISTS test_function_1(INTEGER);
CREATE OR REPLACE FUNCTION test_function_1(inId INTEGER)
RETURNS TABLE(outName varchar)
AS
$$
BEGIN
-- is there a way to get the explain analyze output?
explain analyze select t.name from test_table t where t.id = inId;
-- return query select t.name from test_table t where t.id = inId;
END;
$$ LANGUAGE plpgsql;
當我運行
select * from test_function_1(10);
我得到的錯誤:
ERROR: query has no destination for result data
CONTEXT: PL/pgSQL function test_function_1(integer) line 3 at SQL statement
的功能,如果我取消註釋工作正常評論部分和評論ou t解釋分析。
這看起來像是一個很好的解決問題和開發新功能的解決方案。你可以在你的函數中有多個RETURN QUERY,如果你有10個查詢的函數,你可以使用RETURN QUERY EXPLAIN ANALYZE來獲取每個函數的解釋。太好了! – Kuberchaun