-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Data browser updates object count when table is filtered #652
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data browser updates object count when table is filtered #652
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rizzomichaelg this looks good to me, beside the changelog:
1 - Can you please add your name, like in the other features?
2 - Can you please add the number of this PR (652) instead of the issue it fixes (334)?
@rizzomichaelg updated the pull request - view changes |
Looks good to me. @steven-supersolid wanna take a look? |
@@ -320,9 +321,21 @@ export default class Browser extends DashboardView { | |||
return data; | |||
} | |||
|
|||
async fetchParseDataCount(source, filters) { | |||
const query = queryFromFilters(source, filters); | |||
const count = await query.count({ useMasterKey: true }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Potential performance issue - if a filter uses non-indexed fields then count() will perform a colscan. This could also happen in fetchParseData so may not be a concern, however count has no option to early exit by hitting a limit whereas fetchParseData does.
I'm not sure how to solve this, perhaps have to rely on parse-server having databaseOptions.maxTimeMS specified?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You raise a great point.
Besides relying on the parse-server timeout, we could also add a restriction on when the count will update and only update if the total number of objects in the table is less than a certain constant. Not super excited about this option, though. Might be best to rely on the server's timeout.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think - let's merge it for now and look at optimizations in a separate PR, unless you want to try anything different?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@steven-supersolid I want to release a new version including the Jobs fix, so I'm ok merging this and improving later.
Fixes #334