Обсуждение: pgsql: Since createplan.c no longer cares whether index operators are
pgsql: Since createplan.c no longer cares whether index operators are
От
tgl@postgresql.org (Tom Lane)
Дата:
Log Message: ----------- Since createplan.c no longer cares whether index operators are lossy, it has no particular need to do get_op_opfamily_properties() while building an indexscan plan. Postpone that lookup until executor start. This simplifies createplan.c a lot more than it complicates nodeIndexscan.c, and makes things more uniform since we already had to do it that way for RowCompare expressions. Should be a bit faster too, at least for plans that aren't re-used many times, since we avoid palloc'ing and perhaps copying the intermediate list data structure. Modified Files: -------------- pgsql/src/backend/executor: execQual.c (r1.228 -> r1.229) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c?r1=1.228&r2=1.229) nodeBitmapIndexscan.c (r1.26 -> r1.27) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapIndexscan.c?r1=1.26&r2=1.27) nodeIndexscan.c (r1.127 -> r1.128) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeIndexscan.c?r1=1.127&r2=1.128) nodeMergejoin.c (r1.90 -> r1.91) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeMergejoin.c?r1=1.90&r2=1.91) pgsql/src/backend/nodes: copyfuncs.c (r1.390 -> r1.391) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.390&r2=1.391) outfuncs.c (r1.324 -> r1.325) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.324&r2=1.325) pgsql/src/backend/optimizer/path: indxpath.c (r1.228 -> r1.229) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/indxpath.c?r1=1.228&r2=1.229) pgsql/src/backend/optimizer/plan: createplan.c (r1.238 -> r1.239) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.238&r2=1.239) pgsql/src/backend/utils/adt: selfuncs.c (r1.247 -> r1.248) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/selfuncs.c?r1=1.247&r2=1.248) pgsql/src/backend/utils/cache: lsyscache.c (r1.156 -> r1.157) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/lsyscache.c?r1=1.156&r2=1.157) pgsql/src/include/executor: nodeIndexscan.h (r1.31 -> r1.32) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeIndexscan.h?r1=1.31&r2=1.32) pgsql/src/include/nodes: plannodes.h (r1.99 -> r1.100) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/plannodes.h?r1=1.99&r2=1.100) pgsql/src/include/utils: lsyscache.h (r1.122 -> r1.123) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/lsyscache.h?r1=1.122&r2=1.123)