| 1197 | // |
| 1198 | |
| 1199 | double Optimizer::getDependentSelectivity() |
| 1200 | { |
| 1201 | StreamStateHolder stateHolder(csb, compileStreams); |
| 1202 | stateHolder.activate(); |
| 1203 | |
| 1204 | double selectivity = MAXIMUM_SELECTIVITY; |
| 1205 | for (const auto stream : compileStreams) |
| 1206 | { |
| 1207 | Retrieval retrieval(tdbb, this, stream, false, false, nullptr, true); |
| 1208 | const auto candidate = retrieval.getInversion(); |
| 1209 | |
| 1210 | if (candidate->dependencies) |
| 1211 | selectivity *= candidate->selectivity; |
| 1212 | } |
| 1213 | |
| 1214 | return selectivity; |
| 1215 | } |
| 1216 | |
| 1217 | |
| 1218 | // |
no test coverage detected