OSDN Git Service

Clean up handling of variable-free qual clauses. System now does the
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 13 Aug 2000 02:50:35 +0000 (02:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 13 Aug 2000 02:50:35 +0000 (02:50 +0000)
commit37168b8da43d9a6f7471cf757119ece6c96fb2b9
treece7059e77ac05a045f9de7c6272c7e1c8210d96a
parent766fb7f707f9527be219353f5f970aab3d786554
Clean up handling of variable-free qual clauses.  System now does the
right thing with variable-free clauses that contain noncachable functions,
such as 'WHERE random() < 0.5' --- these are evaluated once per
potential output tuple.  Expressions that contain only Params are
now candidates to be indexscan quals --- for example, 'var = ($1 + 1)'
can now be indexed.  Cope with RelabelType nodes atop potential indexscan
variables --- this oversight prevents 7.0.* from recognizing some
potentially indexscanable situations.
15 files changed:
src/backend/executor/execProcnode.c
src/backend/executor/nodeIndexscan.c
src/backend/executor/nodeNestloop.c
src/backend/optimizer/path/clausesel.c
src/backend/optimizer/path/indxpath.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/initsplan.c
src/backend/optimizer/plan/planmain.c
src/backend/optimizer/util/clauses.c
src/backend/utils/cache/lsyscache.c
src/include/executor/nodeNestloop.h
src/include/nodes/execnodes.h
src/include/optimizer/clauses.h
src/include/utils/lsyscache.h
src/pl/plpgsql/src/pl_exec.c