You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
When indexing message attachment metadata using numeric indexes such as: ```javascript { conversationId: '+12223334455', received_at: 123, attachments: […], numAttachments: 2, }, { conversationId: '+12223334455', received_at: 456, attachments: [], numAttachments: 0, } { conversationId: '+12223334455', received_at: 789, attachments: [], numAttachments: 1, } ``` It creates an index as follows: ``` [conversationId, received_at, numAttachments] ['+12223334455', 123, 2] ['+12223334455', 456, 0] ['+12223334455', 789, 1] ``` This means a query such as… ``` lowerBound: ['+12223334455', 0, 1 ] upperBound: ['+12223334455', Number.MAX_VALUE, Number.MAX_VALUE] ``` …will return all three original entries because they span the `received_at` from `0` through `Number.MAX_VALUE`. One workaround is to index booleans using `1 | undefined` where `1` is included in the index and `undefined` is not, but that way we lose the ability to query for the `false` value. Instead, we flip adjust the index to `[conversationId, hasAttachments, received_at]` and can then query messages with attachments using ``` [conversationId, 1 /* hasAttachments */, 0 /* received_at */] [conversationId, 1 /* hasAttachments */, Number.MAX_VALUE /* received_at */] ``` |
8 years ago | |
---|---|---|
.. | ||
models | 8 years ago | |
modules | 8 years ago | |
views | 8 years ago | |
.eslintrc | 8 years ago | |
Mp3LameEncoder.min.js | 8 years ago | |
WebAudioRecorderMp3.js | 8 years ago | |
background.js | 8 years ago | |
chromium.js | ||
conversation_controller.js | 8 years ago | |
database.js | 8 years ago | |
delivery_receipts.js | 8 years ago | |
emoji_util.js | 8 years ago | |
expire.js | ||
expiring_messages.js | ||
focus_listener.js | 8 years ago | |
jquery.js | 8 years ago | |
keychange_listener.js | ||
libphonenumber-util.js | ||
libsignal-protocol-worker.js | ||
logging.js | 8 years ago | |
notifications.js | 8 years ago | |
read_receipts.js | 8 years ago | |
read_syncs.js | 8 years ago | |
registration.js | 8 years ago | |
reliable_trigger.js | ||
rotate_signed_prekey_listener.js | 8 years ago | |
signal_protocol_store.js | 8 years ago | |
spell_check.js | 8 years ago | |
storage.js | 8 years ago | |
wall_clock_listener.js | 8 years ago |