chan-delorean/sql/make_get_posts.sql

26 lines
605 B
MySQL
Raw Normal View History

2024-03-20 03:09:40 +00:00
BEGIN TRANSACTION;
DROP TYPE IF EXISTS post_key CASCADE;
-- DROP FUNCTION IF EXISTS get_posts;
CREATE TYPE post_key AS
( thread_id bigint
, board_post_id bigint
);
CREATE OR REPLACE FUNCTION get_posts(board_posts post_key[])
RETURNS SETOF posts AS $$
SELECT *
FROM posts
WHERE (thread_id, board_post_id) IN (SELECT thread_id, board_post_id FROM unnest(board_posts))
$$ LANGUAGE sql;
GRANT EXECUTE ON FUNCTION get_posts TO chan_archive_anon;
GRANT EXECUTE ON FUNCTION get_posts TO chan_archiver;
REVOKE EXECUTE ON FUNCTION get_posts FROM PUBLIC;
COMMIT;