26 lines
605 B
PL/PgSQL
26 lines
605 B
PL/PgSQL
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;
|