Re: BUG #14932: SELECT DISTINCT val FROM table gets stuck in an infinite loop
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>,
"Todd A. Cook" <tcook@blackducksoftware.com>,
Thomas Munro <thomas.munro@enterprisedb.com>,
PostgreSQL Bugs <pgsql-bugs@postgresql.org>
Date: 2018-01-29T19:11:26Z
Lists: pgsql-bugs
One other point here is that it's not really clear to me what a randomly varying IV is supposed to accomplish. Surely we're not intending that it prevents somebody from crafting a data set that causes bad hash performance. If a user with DB access wants to cause a performance problem, there are and always will be plenty of other avenues to making that happen. If the idea is that for a data set that otherwise would have bad hash performance, choosing a different IV would (almost always) fix it, that sounds good but you're ignoring the inverse case: for a data set that works fine, there would be some choices of IV that create a problem where there was none before. I see no reason to think that the probability of the former kind of situation is higher than the latter. So I'm on board with using the extended hash functions when available, but I'm not convinced that a varying IV buys us anything but trouble. regards, tom lane
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