func-rec-to-json.sql
527 Bytes
CREATE OR REPLACE FUNCTION rec_to_json(p_table_schema name, p_table_name name, p_rec hstore) RETURNS json LANGUAGE plpgsql AS $$
DECLARE
v_val text;
v_one json;
v_all json;
v_field record;
v_column text;
BEGIN
FOR v_column, v_val IN select key,value FROM each(p_rec)
LOOP
v_one = json_build_object(v_column, v_val);
IF v_all IS NULL THEN
v_all = v_one;
ELSE
v_all = v_all::jsonb || v_one::jsonb;
END IF;
END LOOP;
RETURN v_all;
END
$$