Re: BUG #14932: SELECT DISTINCT val FROM table gets stuck in an infinite loop

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: "Todd A. Cook" <tcook@blackducksoftware.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, Thomas Munro <thomas.munro@enterprisedb.com>, PostgreSQL Bugs <pgsql-bugs@postgresql.org>
Date: 2018-01-30T19:34:53Z
Lists: pgsql-bugs
On 2018-01-30 13:57:44 -0500, Todd A. Cook wrote:
> Out of curiosity, I then modified hashint8() as previously described.
> With that change, run time dropped to 11 minutes (also average of 3
> runs).
> 
> FWIW, the data values in these sets are sort-of random (where I can't
> explain the "sort-of" in a public forum), but strongly biased towards
> negative infinity.  Starting again from scratch, we could probably remove
> the bias, but we have 28-30 billion of these things collected over the
> last 14 years (starting in PostgreSQL 7.4) and it's kinda tough to change
> directions at this point...

FWIW, you could just create a different hash opclass and use it for
those queries...

Greetings,

Andres Freund


Commits

  1. Improve bit perturbation in TupleHashTableHash.

  2. Prevent growth of simplehash tables when they're "too empty".

  3. Add stack-overflow guards in set-operation planning.