OSDN Git Service

Fixed a bug that rows hint can be omitted on some condition.
authorKyotaro Horiguchi <horiguchi.kyotaro@lab.ntt.co.jp>
Fri, 5 Sep 2014 04:23:15 +0000 (13:23 +0900)
committerKyotaro Horiguchi <horiguchi.kyotaro@lab.ntt.co.jp>
Fri, 5 Sep 2014 04:23:15 +0000 (13:23 +0900)
commitdbe86353023a34a209a26a1c9e8a0392f6354acd
tree3b77d4a7ac0a2f56f3acdc64370698786c9bd1ad
parent5985892efa3a6b7c1b34c221b4eb0c52ea77b4e6
Fixed a bug that rows hint can be omitted on some condition.

A hint for higer level may be canceled by unnecessary reestimation
caused by a rows hint for lower level.

During making a joinrel, if there's a rows hint just matches the
joinrelids, and has already been applied on an earlier try for the same
joinrelids, and if there's another rows hint which is applicable on
either component of the join, the change of rownums made earlier is
canceled by the 'another' hint causing reestimation of the joinrel.
Finally the effect of the former hint disappears.
expected/R_2-4-1.out
expected/ut-R.out
make_join_rel.c
sql/ut-R.sql