0

で動作する関数があります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_typeplpy.executefunc3func2func3

4

1 に答える 1