Предполагам, че искате да преместите вашия where document_id=1 в долната част на заявката.
Внимавайте обаче да го правите, защото рекурсивната заявка не инжектира ограничението в with
изявление. С други думи, той всъщност ще сканира seq цялата ви таблица, рекурсивно ще изгради всяка възможност и ще филтрира тези, от които се нуждаете.
Ще бъдете по-добре с sql функция на практика, т.е. нещо подобно:
create or replace function gen_links(int) returns table (doc_id int, doc_url text) as $$
WITH RECURSIVE generate_links(document_id,url_id) as(
select document_id,url_id from document_urls where document_id=$1
UNION ALL
select du.document_id,du.url_id from generate_links gl,document_urls du
where gl.url_id=du.url_id
)
SELECT * FROM generate_links GROUP BY url_id,document_id;
$$ language sql stable;