今日は、ループ内で挿入ステートメントを使用して、関数を定義しました。しかし、HAWQ はエラーを返しました。
ERROR: could not serialize unrecognized node type: 43983632 (outfast.c:4742)
CONTEXT: SQL statement "insert into t(id,value) values(1,0.1)"
PL/pgSQL function "test_function" line 6 at SQL statement
いくつかのテストを行ったところ、ループで「挿入ステートメント」を使用すると、間違いとして報告されることがわかりました。関連する「挿入ステートメント」を削除すると、正常に実行できます。
テストの例を次に示します。
CREATE OR REPLACE FUNCTION test_function()
RETURNS int AS
$BODY$
declare
number int;
begin
number := 1;
while number <= 10 loop
insert into t(id,value) values(1,0.1);
number := number+1;
end loop;
return number;
end
$BODY$
LANGUAGE plpgsql ;
次に、「select test_function();」を使用します 関数を呼び出すと、上記のエラーが返されます。
これは、plpgsql を使用したループで SQL ステートメントを使用できないということですか?
ありがとう。よろしくお願いします。