使用查询结果中的 JSON 有效负载进行通知



我正在尝试创建一个触发器来运行查询,将查询结果编码为JSON文本,并发送通知。

以下是我正在尝试执行的操作的一些伪代码:

CREATE TYPE client_update_tile AS (
x integer,
y integer,
state_id integer
);
CREATE FUNCTION world.notify_viewport_shift()
RETURNS trigger AS $$
DECLARE
payload text;
BEGIN
SELECT to_json_text(world.get_player_update_tiles()) INTO payload;
SELECT pg_notify('players', payload);
END;
$$ LANGUAGE plpgsql;

world.get_player_update_tiles函数返回一个SETOF client_update_tile

我编造了to_json_text函数来解释我的意思。我只是希望能够将查询结果转换为 JSON 文本。

我想你正在寻找

SELECT json_array_agg(to_json(*))::text INTO payload FROM world.get_player_update_tiles();

SELECT to_json(ARRAY(SELECT world.get_player_update_tiles()))::text INTO payload;

相关内容

最新更新