Don't estimate OPTIONAL_JOIN size as 0 fixes #108 #110
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the OPTIONAL_JOIN has a an empty side it would estimate it's result
as empty. For estimates of size zero JOIN would then take the estimate
as exact and stop early.
The current fix is just incrementing the size estimate by one to make
sure it's never 0. @floriankramer do you know in which cases we are sure
that the size will be 0? Also I'm really not happy with
getKnownEmpty()
being just a check for
getSizeEstimate() == 0
an estimate shouldprobably not be used as known even if it's exactly 0.
While we are here also remove redundant
getRootOperation()
calls inJoin.cpp (
getResult()
already uses the_rootOperation
) and add someuseful
LOG(TRACE)