DERBY-6317 Optmizer can choose the wrong path when BTreeCostController.java returns an estimate cost and row count of 0.0

backported change #1521310 from trunk to 10.9 branch.

The Optimizer estimates do not handle well 0 row counts coming out of store.
These estimates end up getting multiplied by other estimates and the resulting
0 costs caused the incorrect plan to be picked in the repro included with
this fix.  This fix changes store cost to always return at least a minimum
of one row when asked to estimate the number of rows in an exact range of
keys from an index.  This minimum is consistent with the optimizer assumption
that an exact key match on a unique index will also return 1 row.

Thanks to Brett Bergquist for debugging and suggesting a fix and to mamta
satoor for providing a reproducible test case for the bug.



git-svn-id: https://svn.apache.org/repos/asf/db/derby/code/branches/10.9@1521931 13f79535-47bb-0310-9956-ffa450edef68