CREATE OR REPLACE VIEW optimized_links AS SELECT l.id, l.title, l.date, l.description, l.link, a.mastodon, a.name, json_build_object('name', a.name, 'url', a.url, 'mastodon', a.mastodon) AS author, 'link' AS type, ( SELECT array_agg(t.name) FROM links_tags lt LEFT JOIN tags t ON lt.tags_id = t.id WHERE lt.links_id = l.id ) AS tags, json_build_object( 'title', CONCAT(l.title, ' via ', a.name), 'url', l.link, 'description', l.description, 'date', l.date ) AS feed FROM links l JOIN authors a ON l.author = a.id GROUP BY l.id, l.title, l.date, l.description, l.link, a.mastodon, a.name, a.url ORDER BY l.date DESC;