I have two queries which should be equivalent. The Planner plans them differently, although they are both about the same time. Can someone explain why?
select word from dict
where
word in
(select substr('moon', 0, generate_series(3,length('moon'))))
select * from dict
inner join (select substr('moon', 0, generate_series(3,length('moon')))) as m
on dict.word = m.substr
Is one preferred?