-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Import export improvements #25542
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
base: main
Are you sure you want to change the base?
Import export improvements #25542
Conversation
🔍 CI failure analysis for e54eda2: CATASTROPHIC: 320+ test failures including 265 E2E failures in single shard (ColumnBulkOperations completely destroyed). Total platform destruction across all features and database configurations.EMERGENCY: CATASTROPHIC CI Failure Analysis - Commit e54eda2
|
| Auto-apply | Compact |
|
|
Was this helpful? React with 👍 / 👎 | Gitar
| message={csvExportJob.error ?? csvExportJob.message ?? ''} | ||
| type={csvExportJob.error ? 'error' : 'success'} | ||
| /> | ||
| <> |
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.
Details
In the frontend BulkEntityImportPage.tsx, the progress percentage is calculated as:
percent={Math.round(((activeAsyncImportJob.progress ?? 0) / activeAsyncImportJob.total) * 100)}While there is a check activeAsyncImportJob.total > 0, this is in the rendering condition for the Progress component itself, but the calculation still happens. If total is 0 or undefined in a race condition before the check evaluates, this could cause a division by zero resulting in NaN or Infinity.
Similarly, in EntityExportModalProvider.component.tsx:
percent={Math.round((csvExportJob.progress / csvExportJob.total) * 100)}Suggested fix: Add a safeguard to the calculation itself:
percent={Math.round(((activeAsyncImportJob.progress ?? 0) / Math.max(activeAsyncImportJob.total || 1, 1)) * 100)}Was this helpful? React with 👍 / 👎
Describe your changes:
Fixes
I worked on ... because ...
Summary by Gitar
This PR implements batched CSV import/export operations to significantly improve performance for large datasets:
insertMany()/updateMany()instead of individual INSERT/UPDATE statementsupdateEntitiesBulk()Type of change:
Checklist:
Fixes <issue-number>: <short explanation>