Skip to content

[BUG]: Article list might be not symmetrical in case of sorting a same column asc/desc, containing items with same values. #2361

Description

@DawEdhel

Brief description of the issue

See the "How to reproduce the bug?" section.

The easiest solution seems to be forcing to sort the id column with the same asc/desc order, as of the primary column one, after it in db querying?
Like
ORDER BY [primary column] ASC, id ASC, [other columns...]
or
ORDER BY [primary column] DESC, id DESC, [other columns...]

How to reproduce the bug?

sorting.order.issue.mp4

What was the expected result?

Being symmetrical.

What actually happened?

Being not symmetrical.

Debug log

time=" 75692.968" type="debug" -> gui: Message list got focus with reason 'Qt::ActiveWindowFocusReason'.
time=" 75693.044" type="debug" -> message-model: CTRL is NOT pressed while sorting articles - sorting in standard mode.
time=" 75693.044" type="debug" -> message-model: Repopulate started.
time=" 75693.045" type="debug" -> database: DB read job in thread 13484.
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA foreign_keys=ON;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA encoding = 'UTF-8';
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA page_size = 32768;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA cache_size = 32768;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA mmap_size = 100000000;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA synchronous = OFF;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA temp_store = MEMORY;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA journal_mode = WAL;
time=" 75693.045" type="debug" -> database: Executed query:
PRAGMA busy_timeout = 5000;
time=" 75693.054" type="debug" -> database: Executed query:
SELECT Messages.id, Messages.is_read, Messages.is_important, Messages.is_deleted, Messages.is_pdeleted, Messages.feed, Messages.title, Messages.url, Messages.author, Messages.date_created, Messages.date_retrieved, Messages.contents, Messages.enclosures, Messages.score, Messages.account_id, Messages.custom_id, Messages.custom_data, (SELECT GROUP_CONCAT(Labels.custom_id) FROM LabelsInMessages lim JOIN Labels ON lim.label = Labels.id WHERE lim.message = Messages.id) AS msg_labels FROM Messages WHERE Messages.feed = 560 AND Messages.is_deleted = 0 AND Messages.is_pdeleted = 0 ORDER BY Messages.date_created ASC, Messages.title DESC, Messages.author ASC ;
time=" 75693.120" type="debug" -> message-model: Repopulated model!
time=" 75693.120" type="debug" -> message-model: Setting additional ID of article to be excluded from filtering or reselected after model reset to '0'.
time=" 75699.001" type="debug" -> gui: Message list got focus with reason 'Qt::ActiveWindowFocusReason'.
time=" 75699.068" type="debug" -> core: Delaying scheduled feed auto-download for some time since window is focused and updates while focused are disabled by the user (or paused) and all account caches are empty.
time=" 75699.100" type="debug" -> message-model: CTRL is NOT pressed while sorting articles - sorting in standard mode.
time=" 75699.100" type="debug" -> message-model: Repopulate started.
time=" 75699.102" type="debug" -> database: DB read job in thread 13484.
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA foreign_keys=ON;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA encoding = 'UTF-8';
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA page_size = 32768;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA cache_size = 32768;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA mmap_size = 100000000;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA synchronous = OFF;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA temp_store = MEMORY;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA journal_mode = WAL;
time=" 75699.102" type="debug" -> database: Executed query:
PRAGMA busy_timeout = 5000;
time=" 75699.110" type="debug" -> database: Executed query:
SELECT Messages.id, Messages.is_read, Messages.is_important, Messages.is_deleted, Messages.is_pdeleted, Messages.feed, Messages.title, Messages.url, Messages.author, Messages.date_created, Messages.date_retrieved, Messages.contents, Messages.enclosures, Messages.score, Messages.account_id, Messages.custom_id, Messages.custom_data, (SELECT GROUP_CONCAT(Labels.custom_id) FROM LabelsInMessages lim JOIN Labels ON lim.label = Labels.id WHERE lim.message = Messages.id) AS msg_labels FROM Messages WHERE Messages.feed = 560 AND Messages.is_deleted = 0 AND Messages.is_pdeleted = 0 ORDER BY Messages.date_created DESC, Messages.title DESC, Messages.author ASC ;
time=" 75699.178" type="debug" -> message-model: Repopulated model!
time=" 75699.178" type="debug" -> message-model: Setting additional ID of article to be excluded from filtering or reselected after model reset to '0'.

Crash dump

RSS Guard did not crash.

Operating system and version

RSS Guard

Version: 5.2.1 (built on Windows/AMD64)
Revision: stable
Variant: web
OS: Windows 11 Version 25H2
Qt: 6.10.3 (compiled against 6.10.3)

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions