Preserve order when generating CSV #3575
Open
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.
Resolves #2580
Generate CSVs using kaminari pagination when available (e.g., when
@objects
is an ActiveRecord_Relation) instead of using the native rails find_each.This allows us to preserve the activerecord ORDER BY clause defined when browsing records before attempting to export them;
find_each
overrides the ORDER BY to use the primary key id.One potential downside to this is that it will make certain large exports much less efficient, as paginating large tables ordered by a column without the correct database indexes will run into algorithmic problems.
Issue reproduction:
EXPECTED:
ACTUAL: