• Tom Lane's avatar
    Improve SELECT DISTINCT to consider hash aggregation, as well as sort/uniq, · be3b265c
    Tom Lane authored
    as methods for implementing the DISTINCT step.  This eliminates the former
    performance gap between DISTINCT and GROUP BY, and also makes it possible
    to do SELECT DISTINCT on datatypes that only support hashing not sorting.
    
    SELECT DISTINCT ON is still always implemented by sorting; it would take
    executor changes to support hashing that, and it's not clear it's worth
    the trouble.
    
    This is a release-note-worthy incompatibility from previous PG versions,
    since SELECT DISTINCT can no longer be counted on to deliver sorted output
    without explicitly saying ORDER BY.  (Anyone who can't cope with that
    can consider turning off enable_hashagg.)
    
    Several regression test queries needed to have ORDER BY added to preserve
    stable output order.  I fixed the ones that manifested here, but there
    might be some other cases that show up on other platforms.
    be3b265c
numerology.sql 2.08 KB