fix: set default value for pinned field on CommentThread to prevent NULL sort bug#270
Conversation
|
Thanks for the pull request, @Anas12091101! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
410f882 to
2db7a64
Compare
|
@openedx/wg-maintainers-forums, could someone from the team please take a look at this PR when available? |
|
Appreciate the PR @Anas12091101! - Just some thoughts on the migration: This change makes If any existing Suggested approach:
Example: |
|
@taimoor-ahmed-1, thanks for the review. I overlooked this because edX’s default DB provider is MySQL, which automatically converts NULL values to the default during migrations. I’ve now added a backfill function in the migration to ensure compatibility with other databases as well. |
Description
This PR sets the default value for the
pinnedfield on CommentThread to prevent the NULL sort bug.When a new
CommentThreadis created, thepinnedfield is set to None (NULL in the database). However, when a thread is pinned and then unpinned,pinnedbecomes False. This creates an inconsistency: some threads havepinned=Nonewhile others havepinned=False, even though both represent "not pinned."This causes a sorting bug. Thread listing uses the sort order [-pinned, -last_activity_at], and in MySQL, False (0) sorts higher than NULL in descending order. As a result, previously-pinned-then-unpinned threads (
pinned=False) appear above never-pinned threads (pinned=None), breaking the expected sort bylast_activity_at.How to test
/admin/forum/commentthread/.Merge checklist:
Check off if complete or not applicable: