Remove cartesian product in MkConstBindingPathComponentList
#161
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.
We have observed performance issues in the UI5 queries related to bindings on databases with large amount of JSON (notably databases with significant numbers of CDS json file). Reviewing one such example, I observed the following slow predicates:
Reviewing, the cause was that
source
was not bound withinMkConstBindingPathComponentList
.This was creating a cross-product with all source
Token
s in the program (all tokens in potential binding paths).As
source
was unused in any meaningful way outside the class itself, we can remove it without impact.In addition, we can restrict the search for binding paths for XML and JSON files to those files which we actually consider to be views for UI5.