2017-12-11 4 views
1

Helloの専門家私はpostgresqlで関数を作成しました。 pgadmin 3とpostgreslq 9.5ではうまく動作しますが、pgadmin 4とpostgreql 10で同じスクリプトを実行すると、「エラー:ROWSは正のSQL状態:22023でなければなりません」というマッサージが生成されます。間違ったソースコードを生成pgAdminで4のバグだ `ROWSはpostgresで肯定的でなければならない

CREATE OR REPLACE FUNCTION office.is_logged_in(
user_id_ integer) 
    RETURNS boolean 
    LANGUAGE 'plpgsql' 
    COST 100 
    VOLATILE 
    ROWS 0 
AS $BODY$ 
BEGIN 
    IF EXISTS(SELECT * FROM office.users 
     WHERE is_logged_in=true 
     AND user_id = $1) THEN 
     RETURN true; 
    ELSE 
RETURN false; 
END IF; 
END 
$BODY$; 
ALTER FUNCTION office.is_logged_in(integer) 
    OWNER TO postgres; 

`

答えて

2

このコードを実行する場合は、実行する前にROWS 0を削除してください。

+0

はい、これはpgAdmin4のバグです。修正されました。次回の一般公開で修正される予定です。 Ref:https://redmine.postgresql.org/issues/2651 – n33rma

関連する問題