-
-
Notifications
You must be signed in to change notification settings - Fork 108
Simplify and speed up calc_sort_timestamp()
#7312
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
Open
iequidoo
wants to merge
12
commits into
link2xt/ykltkokxntvk
Choose a base branch
from
iequidoo/unbend-calc_sort_timestamp
base: link2xt/ykltkokxntvk
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Simplify and speed up calc_sort_timestamp()
#7312
iequidoo
wants to merge
12
commits into
link2xt/ykltkokxntvk
from
iequidoo/unbend-calc_sort_timestamp
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This mechanism replaces `Chat-Verified` header. New parameter `_verified=1` in `Autocrypt-Gossip` header marks that the sender has the gossiped key verified. Using `_verified=1` instead of `_verified` because it is less likely to cause troubles with existing Autocrypt header parsers. This is also how https://www.rfc-editor.org/rfc/rfc2045 defines parameter syntax.
Create unprotected group in test_create_protected_grp_multidev The test is renamed accordingly. SystemMessage::ChatE2ee is added in encrypted groups regardless of whether they are protected or not. Previously new encrypted unprotected groups had no message saying that messages are end-to-end encrypted at all.
…mp_sent This makes `calc_sort_timestamp()` a continuous function of the message timestamp, simplifies the SQL query and prepares for creation of a db index for it so that it's fast. Currently it doesn't uses indexes effectively; if a chat has many messages, it's slow, i.e. O(n).
Tested on some random chat, the SQL query took 1.411202ms (vs 6.692714ms before) in median. Still looks a bit slow, but already better.
5051240
to
f1121da
Compare
adff64f
to
9b1782b
Compare
f1121da
to
f6c2ada
Compare
9b1782b
to
ba25096
Compare
a70866e
to
e60632e
Compare
ba25096
to
4443d59
Compare
e60632e
to
9abbe7a
Compare
4443d59
to
adff64f
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This is separated from closed #7180 . Everything related to fixing #7308 is removed. "Messages are end-to-end encrypted." is reordered in
test_outgoing_encrypted_msg()
, but as there are corner cases anyway (see #7308 ), this isn't important and shouldn't block code simplifications. The current code is hard to maintain and slow, i.e. it looks at every message in the chat, this doesn't scale.Tested on some random chat, the SQL query took 1.411202ms (vs 6.692714ms before) in median. Still looks a bit slow, but already better.
Even if we decide that we don't want to add one more index to the db, the first commit has value on its own. There's no issue reference because there's no new work, i just moved the useful part of the closed PR here.