私は一般的にpgとdbsが初めてです。ブログ db ボイラープレートを見つけました。currentPerson (認証されたユーザー) が投稿の作成者であるかどうかのブール値を返す計算列を追加しようとしています。基本的には、currentPerson が作成したかどうかについて、投稿ごとに true または false を持つ posts テーブルのファントム列です。
この関数は currentPerson を返します。
SELECT *
FROM myschema.person
WHERE id = nullif(current_setting('jwt.claims.person_id', true), '')::uuid
そこで、以下のようなことをしたいのですが、これは正しくありません。これは、graphiql の突然変異として表示されます (私は postgraphile を使用してスキーマを生成しています)。
投稿テーブルにブール計算列を作成する方法に関するヒントはisMyPost
素晴らしいでしょう。
CREATE OR REPLACE FUNCTION myschema.is_my_post(
)
RETURNS BOOLEAN AS
$func$
BEGIN
SELECT *
FROM myschema.post
WHERE author_id = nullif(current_setting('jwt.claims.person_id', true), '')::uuid;
IF FOUND THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END
$func$ LANGUAGE plpgsql;