[NO ISSUE][COMP][RT] Enable multiway similarity joins
- Enable the FuzzyJoinRule that transforms
a nested-loop-similarity-join plan to a three-stage-similarity join.
- Modify FuzzyJoinRuleCollections.
- Add the ExtractCommonExpressionRule to extract common expressions
in the star-like multiple similarity join substitutions.
- Add the InlineSubplanInputForNestedTupleSourceRule to translate
the generated subplan from the similarity function-derived
substitution into join in case of nested schemas.
- Use similarity-jaccard-prefix to enable the pp+ join strategy.
- Use the right side to build the heavy hash join on
the prefix tokens from both sides.
- Add RemoveAssign/Variables/AggRules to iteratively remove unused
assign/vars once FuzzyJoinRule is applied in each round.
- Add three new optimization cases for multiway similarity joins.
- link-like multiway similarity joins
- star-like multiway similarity joins
- hybrid multiway similarity joins with the both styles of similarity joins.
- Add a check whether a similarity function is on
a select over an existing similarity join.
- Change the inverted-index-based similarity join to the three-stage-similarity join
due to efficiency considerations.
Change-Id: I8736f104905eeda763d39709e002c2b9629278cc
Reviewed-on:
https://asterix-gerrit.ics.uci.edu/1076Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
Reviewed-by: Taewoo Kim <wangsaeu@gmail.com>