pgsql-server/src backend/executor/execGrouping ... - Mailing list pgsql-committers

From tgl@svr1.postgresql.org (Tom Lane)
Subject pgsql-server/src backend/executor/execGrouping ...
Date
Msg-id 20030819011341.D8D08D1B8A3@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@svr1.postgresql.org    03/08/18 22:13:41

Modified files:
    src/backend/executor: execGrouping.c nodeAgg.c nodeSubplan.c
    src/backend/utils/hash: dynahash.c hashfn.c
    src/include/executor: executor.h
    src/include/nodes: execnodes.h
    src/include/utils: hsearch.h
    src/test/regress/expected: polymorphism.out

Log message:
    Improve dynahash.c's API so that caller can specify the comparison function
    as well as the hash function (formerly the comparison function was hardwired
    as memcmp()).  This makes it possible to eliminate the special-purpose
    hashtable management code in execGrouping.c in favor of using dynahash to
    manage tuple hashtables; which is a win because dynahash knows how to expand
    a hashtable when the original size estimate was too small, whereas the
    special-purpose code was too stupid to do that.  (See recent gripe from
    Stephan Szabo about poor performance when hash table size estimate is way
    off.)  Free side benefit: when using string_hash, the default comparison
    function is now strncmp() instead of memcmp().  This should eliminate some
    part of the overhead associated with larger NAMEDATALEN values.


pgsql-committers by date:

Previous
From: tgl@svr1.postgresql.org (Tom Lane)
Date:
Subject: pgsql-server/src/pl/plpgsql/src pl_comp.c plpg ...
Next
From: tgl@svr1.postgresql.org (Tom Lane)
Date:
Subject: pgsql-server/doc/src/sgml array.sgml func.sgml ...