0

私は一般的に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;

4

1 に答える 1