fix(sqllab): rendering performance regression by resultset #25091
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.
SUMMARY
When ResultSet renders a large size of column record (i.e. preview of FCC 2018 Survey), rendering cost of VirtualizedTable is heavy. To avoid the lag of the typing editor, we should avoid the ResultSet rendering while typing.
This commit fixes the inefficient userSelector in ResultSet which triggers the re-rendering of FilterableTable anytime redux action triggered.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
After (no lag while typing):
after--rendering-regression-resultset.mov
Before (lagging after render the table resultset):
before--rendering-regression-resultset.mov
TESTING INSTRUCTIONS
Load example db
Go to SQL Lab and select the 'FCC 20218 Survey' in the table schema
After the preview result loaded, type the sql in the editor to check the lagging
ADDITIONAL INFORMATION