Re: pgsql: Adapt python regression tests to 69f4b9c85f16.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Adapt python regression tests to 69f4b9c85f16.
Date: 2017-01-19 01:49:27
Message-ID: 21830.1484790567@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Andres Freund <andres(at)anarazel(dot)de> writes:
> Termite is also failing due to differing row orders from the rest of the
> animals. I'd intentionally left those undefined, because I wanted some
> queries without an ORDER BY. Haven't decided what the best fix is yet.

Looks to me like all the bigendian critters are unhappy with that.
The previous plan (trying it on 9.6) was

GroupAggregate (cost=20.68..22.77 rows=400 width=52)
Group Key: dataa, (unnest('{1,1,3}'::integer[]))
-> Sort (cost=20.68..20.69 rows=4 width=40)
Sort Key: dataa, (unnest('{1,1,3}'::integer[]))
-> Seq Scan on few (cost=0.00..20.64 rows=4 width=40)
Filter: (id = 1)

and now we get

HashAggregate (cost=27.66..27.71 rows=4 width=52)
Group Key: dataa, unnest('{1,1,3}'::integer[])
-> ProjectSet (cost=0.00..22.66 rows=400 width=40)
-> Seq Scan on few (cost=0.00..20.62 rows=4 width=36)
Filter: (id = 1)

This is a good thing: it's coming up with a saner rowcount estimate,
ie it realizes that the sort or hash is going to see a number of rows
inflated by the SRF, and that's prompting it to go with a hashagg not
a sortagg. But then you get platform-dependent output order from
the hashagg.

If you don't want an ORDER BY, maybe turn off enable_hashagg for
these queries? But you'll get the same plan either way.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2017-01-19 02:09:52 Re: pgsql: Adapt python regression tests to 69f4b9c85f16.
Previous Message Andres Freund 2017-01-19 00:39:33 Re: pgsql: Adapt python regression tests to 69f4b9c85f16.