aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/async.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-02-19 21:49:10 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2010-02-19 21:49:10 +0000
commit3f56ca1d4985bd61af329474a3c654a1eb360c47 (patch)
treec573335683b83d6ed5d2baa97d0ea36bf605f650 /src/backend/commands/async.c
parent2f6cf9192c81c5aeb0074ffeb02e5679da0dfc88 (diff)
downloadpostgresql-3f56ca1d4985bd61af329474a3c654a1eb360c47.tar.gz
postgresql-3f56ca1d4985bd61af329474a3c654a1eb360c47.zip
Reduce the rescan cost estimate for Materialize nodes to cpu_operator_cost per
tuple, instead of the former cpu_tuple_cost. It is sane to charge less than cpu_tuple_cost because Materialize never does any qual-checking or projection, so it's got less overhead than most plan node types. In particular, we want to have the same charge here as is charged for readout in cost_sort. That avoids the problem recently exhibited by Teodor wherein the planner prefers a useless sort over a materialize step in a context where a lot of rescanning will happen. The rescan costs should be just about the same for both node types, so make their estimates the same. Not back-patching because all of the current logic for rescan cost estimates is new in 9.0. The old handling of rescans is sufficiently not-sane that changing this in that structure is a bit pointless, and might indeed cause regressions.
Diffstat (limited to 'src/backend/commands/async.c')
0 files changed, 0 insertions, 0 deletions