で動作する関数がありますint[]
。配列が空かどうかを確認し、その場合は何もすることがないので停止する機能が必要です。
これは私の機能です:
CREATE OR REPLACE FUNCTION func2(c integer[])
RETURNS SETOF func_type AS
$BODY$
result=plpy.execute("SELECT * FROM func1(ARRAY%s)"%c)
return result;
$BODY$
LANGUAGE plpythonu VOLATILE
次のように定義された func_type:
CREATE TYPE func_type AS
(x integer,
y numeric,
z integer,
zz integer);
チェックを追加したとき:
$BODY$
if not c:
return
エラーが発生しました:
ERROR: returned object cannot be iterated
DETAIL: PL/Python set-returning functions must return an iterable object.
返さなければならないことは理解していますが、ビルドされていなかったのでビルドされませんでしたが、この時点で戻すにはどうすればよいですかfunc_type
? また、 と呼ばれると仮定します。返される行が 0 行であることをどのように確認できますか?func_type
plpy.execute
func3
func2
func3