次のコード例では、postgresql (9.4) は、複合型のローカル変数を json 文字列に変換することになっています。どうやらpostgresqlは、同じ型にキャストされたnull値とは異なるnull値を持つ変数を処理します。
私のアプリケーションでは、複合型がネストされており、複合型の変数の値が null の場合に null を取得したいと考えています。
皆さんがここで私を助けてくれることを願っています。
CREATE TYPE mytype AS (
id SMALLINT,
name TEXT
);
DO $$
DECLARE
l_var mytype;
BEGIN
l_var := NULL;
RAISE INFO '%',to_json(NULL::mytype);
RAISE INFO '%',to_json(l_var) ;
END $$;
--Output
INFO: <NULL>
INFO: {"id":null,"name":null}