Обсуждение: pgsql: Support hashing for duplicate-elimination in INTERSECT and EXCEPT
pgsql: Support hashing for duplicate-elimination in INTERSECT and EXCEPT
От
tgl@postgresql.org (Tom Lane)
Дата:
Log Message: ----------- Support hashing for duplicate-elimination in INTERSECT and EXCEPT queries. This completes my project of improving usage of hashing for duplicate elimination (aggregate functions with DISTINCT remain undone, but that's for some other day). As with the previous patches, this means we can INTERSECT/EXCEPT on datatypes that can hash but not sort, and it means that INTERSECT/EXCEPT without ORDER BY are no longer certain to produce sorted output. Modified Files: -------------- pgsql/src/backend/commands: explain.c (r1.175 -> r1.176) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/explain.c?r1=1.175&r2=1.176) pgsql/src/backend/executor: nodeSetOp.c (r1.25 -> r1.26) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSetOp.c?r1=1.25&r2=1.26) pgsql/src/backend/nodes: copyfuncs.c (r1.397 -> r1.398) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.397&r2=1.398) outfuncs.c (r1.331 -> r1.332) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.331&r2=1.332) pgsql/src/backend/optimizer/plan: createplan.c (r1.242 -> r1.243) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.242&r2=1.243) pgsql/src/backend/optimizer/prep: prepunion.c (r1.150 -> r1.151) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepunion.c?r1=1.150&r2=1.151) pgsql/src/include/nodes: execnodes.h (r1.185 -> r1.186) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h?r1=1.185&r2=1.186) plannodes.h (r1.100 -> r1.101) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/plannodes.h?r1=1.100&r2=1.101) pgsql/src/include/optimizer: planmain.h (r1.108 -> r1.109) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/planmain.h?r1=1.108&r2=1.109) pgsql/src/test/regress/expected: union.out (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/union.out?r1=1.12&r2=1.13) pgsql/src/test/regress/sql: union.sql (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/union.sql?r1=1.7&r2=1.8)