Re: Different plan chosen when in lateral subquery

2017-12-06 Thread Laurenz Albe
Alex Reece wrote: > I get very different plan chosen when my query is in a lateral subquery vs > standalone -- > it doesn't use a key when joining on a table, instead opting to do a hash > join. Here is the query: > > select distinct on (sub.entity_id, sub.note_id, sub.series_id) >

Re: Different plan chosen when in lateral subquery

2017-12-05 Thread Alex Reece
Argh, so sorry for repeated posts; I'll be very careful to review them before posting. The "good plan" was the result of me hard coding '2017-03-14 20:59:59.999+00'::timestamp of using dates.date inside the lateral subquery. When I correctly use dates.date, it takes 7000ms instead of 0.3ms. My ques

Re: Different plan chosen when in lateral subquery

2017-12-05 Thread Alex Reece
Weird, when I deleted an erroneous index it started picking a reasonable plan. This now works as expected, for posterity here is the bad plan: Nested Loop (cost=21281.50..21323812.82 rows=5621000 width=47) (actual time=171.648..7233.298 rows=85615 loops=1) -> Function Scan on generate_serie

Different plan chosen when in lateral subquery

2017-12-05 Thread Alex Reece
I get very different plan chosen when my query is in a lateral subquery vs standalone -- it doesn't use a key when joining on a table, instead opting to do a hash join. Here is the query: select distinct on (sub.entity_id, sub.note_id, sub.series_id) entity_id, note_id, series_id from ( sel