Re: BUG #14932: SELECT DISTINCT val FROM table gets stuck in an infinite loop
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: "Todd A. Cook" <tcook@blackducksoftware.com>, Tom Lane
<tgl@sss.pgh.pa.us>, Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Andres Freund <andres@anarazel.de>,
PostgreSQL Bugs <pgsql-bugs@postgresql.org>
Date: 2017-11-28T15:02:19Z
Lists: pgsql-bugs
On 11/28/2017 03:55 PM, Todd A. Cook wrote: > On 11/27/17 23:03, Tom Lane wrote: >> >> Note that the sample data has a lot of collisions: >> >> regression=# select hashint8(val), count(*) from reproducer group by 1 >> order by 2 desc; >> hashint8 | count >> -------------+------- >> 441526644 | 2337 >> -1117776826 | 1221 >> -1202007016 | 935 >> -2068831050 | 620 >> 1156644653 | 538 >> 553783815 | 510 >> 259780770 | 444 >> 371047036 | 394 >> 915722575 | 359 >> ... etc etc ... > > In case it matters, the complete data set will have some outlier values > with 10k to 100k collisions in this column. > In the original values? Not a big deal, I guess. It's the hashint8 collisions that's causing the infinite loop, i.e. different values with the same hashint8 result. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Improve bit perturbation in TupleHashTableHash.
- d18d4bca81f8 10.2 landed
- c068f87723ca 11.0 landed
-
Prevent growth of simplehash tables when they're "too empty".
- d1aac2998789 10.2 landed
- ab9f2c429d8f 11.0 landed
-
Add stack-overflow guards in set-operation planning.
- 1b2a3860d3ea 10.2 cited