Change skipSteps and stepSize() from 32-bit int to qint64, avoiding
integer wraparound during backlog reading for migration.
This only gets triggered when a message with a 64-bit ID exists in
the SQLite backlog before migration. One can force this by sending
a message with the text 'MARKER_MSG', then running this on the SQLite
database before migration.
INSERT INTO backlog (messageid, time, bufferid, type, flags,
senderid, senderprefixes, message)
VALUES (
5000000000,
5000000000000,
(SELECT bufferid FROM backlog WHERE message = 'MARKER_MSG'),
1, 1,
(SELECT senderid FROM backlog WHERE message = 'MARKER_MSG'),
"", "Test 64-bit message");
> Before, debug output
SQLi::readMo - skipSteps 42948, start
2147400383, stop
2147450383
SQLi::readMo - skipSteps 42949, start
2147450383, stop -
2147466913
SQLi::readMo - skipSteps 42950, start -
2147466913, stop -
2147416913
...
SQLi::readMo - skipSteps 85898, start -66913, stop -16913
SQLi::readMo - skipSteps 85899, start -16913, stop 33087
SQLi::readMo - MsgId: 1, message: Connecting to chat.freenode.net:...
PSql::writeMo - MsgId: 1, message: Connecting to chat.freenode.net...
> After, debug output
SQLi::readMo - skipSteps 99999, start
4999950383, stop
5000000383
SQLi::readMo - MsgId:
5000000000, message: Test 64-bit message
PSql::writeMo - MsgId:
5000000000, message: Test 64-bit message