Postgres 9.3 を実行しており、ユーザー定義の SQL 関数を呼び出す PL/Python 関数を作成しようとしていますが、次の関数を使用して呼び出した後、次のエラー メッセージが表示されますSELECT * FROM f2(TEXT1, TEXT2)
。
ERROR: NameError: global name 'f1' is not defined
SQL state: XX000
Context: Traceback (most recent call last):
PL/Python function "f2", line 1, in <module>
print f1()
PL/Python function "f2"
SQL 関数は次のようになります。
CREATE FUNCTION f1(TEXT, TEXT) RETURNS SETOF some_tbl AS $$
SELECT col1, col2, col3
FROM some_other_tbl
WHERE col1=$1 AND col2=$2
GROUP BY col1;
$$ LANGUAGE 'sql';
PL/Python 関数は次のようになります。
CREATE FUNCTION f2(TEXT, TEXT) RETURNS SETOF some_tbl
AS $$ return f1() $$
LANGUAGE 'plpython2u';
だから、私はそれを自分で呼び出すことができますが、f2内にf1が見つからないようです。
これに関する指針をいただければ幸いです。ありがとう