Commit Graph

93 Commits

Author SHA1 Message Date
Alexander Krotov 1c73021d77 Update rust toolchain to 1.45.0 2020-07-17 01:08:32 +03:00
Alexander Krotov 18e4abc1df Remove some and deny new indexing and slicing 2020-07-11 21:43:02 +03:00
Alexander Krotov 1b5d08e6ee Start ephemeral timers during housekeeping 2020-07-08 01:16:01 +03:00
Alexander Krotov bb9603661a Fix a typo 2020-07-07 22:38:50 +03:00
Alexander Krotov 7d048ac419 Add autodelete timers 2020-06-29 23:04:34 +03:00
Alexander Krotov 8de1bc6cbd sql: fix potential panic in maybe_add_file
When maybe_add_file was called with "$BLOBDIR" it tried to remove 9
bytes from the string, while it only contains 8.
2020-06-22 13:22:37 +03:00
Hocuri 990c80cedf lots of small fixes from the reviews 2020-06-13 10:18:17 +02:00
Hocuri 2e59d5674e fix sql 2020-06-13 10:18:13 +02:00
Hocuri 016b96e30e Fix migration 2020-06-13 10:18:12 +02:00
Hocuri f0837cfa73 Repair errors saved for messages 2020-06-13 10:18:11 +02:00
dignifiedquire 944f1ec005 feat: update dependencies for new rustcrypto releases 2020-06-12 09:12:38 +02:00
dignifiedquire d1f9563e1f remove tracking of current sql query
this will not work like this anymore with async
2020-05-22 11:37:03 +02:00
dignifiedquire f81c1afde7 bring back busy_timeout 2020-05-19 13:30:15 +02:00
dignifiedquire af56ebb04e Merge remote-tracking branch 'origin/master' into feat/async-jobs 2020-05-19 12:07:34 +02:00
B. Petersen 6483b8c138 change to WAL only on one handle.
journal_mode is persisted, it is sufficient to change it only for one handle.
with_init() is called for a bunch of handles directly on pool-creation,
so changing to WAL here easily results in busy-errors.
2020-05-18 18:19:08 +02:00
B. Petersen 9702647044 enable sqlite's WAL-mode unconditionally 2020-05-18 06:55:06 +02:00
dignifiedquire 8a7923c974 Merge remote-tracking branch 'origin/master' into feat/async-jobs 2020-05-13 18:29:22 +02:00
Alexander Krotov 2f6bae4e2a sql: do not send DC_EVENT_ERROR on database errors
These errors are usually just "database busy" errors, it is enough to
write them to the log instead of displaying to the user.
2020-05-10 17:51:01 +03:00
Alexander Krotov 8d2f526ee7 Fix a typo 2020-04-17 22:29:58 +03:00
Alexander Krotov 493a213d41 sql: move QueryReturnedNoRows and NULL handling into query_row_optional() 2020-04-13 17:38:42 +02:00
Friedel Ziegelmayer 24f4cbbb27 refactor: replace failure
- failure is deprecated
- thiserror for deriving Error impl
- anyhow for highlevel error handling
2020-04-10 22:39:28 +02:00
dignifiedquire 307a3e078e Merge remote-tracking branch 'origin/master' into feat/async-jobs 2020-04-09 23:41:34 +02:00
Alexander Krotov 270d18a88a Move prune_tombstones() to sql:: and call from housekeeping() 2020-04-01 20:06:27 +03:00
Alexander Krotov ad53678c19 Remove msgs.unlinked column
It is not used anymore.

Database version 64 migration introducing this column is also removed.
2020-04-01 20:06:27 +03:00
Alexander Krotov b2f1d9f376 Do not remove rfc724_mid for unlinked messages
Message-ID is used to send read receipts. Instead, add a separate
"unlinked" column.
2020-04-01 20:06:27 +03:00
dignifiedquire 69f1e1753c improve logging and avoid race 2020-03-23 19:49:37 +01:00
dignifiedquire 1846f20f6e upgrade repl 2020-03-21 14:24:41 +01:00
dignifiedquire f85b14a7f7 the basics work 2020-03-18 15:11:36 +01:00
dignifiedquire 7140898db9 async file io 2020-03-14 16:26:15 +01:00
dignifiedquire 4c9d049b10 blocking for with_conn 2020-03-14 15:17:47 +01:00
dignifiedquire 818e921192 it compiles 2020-03-14 15:17:47 +01:00
dignifiedquire 6ea1d665bb start making sql async 2020-03-14 15:17:23 +01:00
Alexander Krotov 8ed08f701d Do not use grpid to find last inserted row in chats table
Instead, use last_insert_rowid() function to find the row.

There is no race condition in using last_insert_rowid(), because
last_insert_rowid() returns row id last inserted in this connection. As
we hold the connection during the whole transaction, it is impossible
that some other thread will execute INSERT statement in parallel.

This commit is part of the effort to get rid of sql::get_rowid hack and
use transactions more for related SQL statements.
2020-02-17 01:35:56 +03:00
Alexander Krotov 784964efad Make sql::with_conn and sql::start_stmt public
Existing public methods that use these functions, like sql::execute, are
only suitable for executing a single statement.

Sometimes it is useful to execute multiple statements within one
connection, for example to begin a transaction, execute mutliple SELECT
and INSERT queries and commit or rollback the whole transaction.
2020-02-17 01:35:56 +03:00
Alexander Krotov adb96e72b9 Pass mutable Connection reference to with_conn callback
This makes it possible to call .transaction() method on connection.
2020-02-17 01:35:56 +03:00
Alexander Krotov 439c6f7296 Fix a typo 2020-02-17 01:35:56 +03:00
Simon Laux b37e83caab add possibility to mute chat in core 2020-02-08 13:23:55 +01:00
Alexander Krotov 627b54f712 sql: add resultified version of query_get_value 2020-02-04 02:54:56 +03:00
Alexander Krotov 1732c3b350 Reduce the scope of clippy exceptions
This prevents creation of new overly complex functions.
2020-01-21 14:49:53 +01:00
Alexander Krotov a34ed5c02a Make recalc_fingerprints a bool 2019-12-15 19:55:49 +01:00
B. Petersen 021ad4f12c set correct icon for DC_CONTACT_ID_DEVICE 2019-12-13 01:17:48 +01:00
B. Petersen 251aa22c4c add column for selfavatar_sent timestamp 2019-12-13 01:17:48 +01:00
Alexander Krotov 339c0d3dc7 Remove unnecessary use of failure::Fail 2019-12-06 10:34:34 +01:00
B. Petersen b8057b7ddb remove >1y old file path migration which is now uneeded and has potential issues 2019-12-04 06:11:01 +01:00
B. Petersen 98266f47d6 bind value to sql using ?-operator 2019-12-04 06:11:01 +01:00
Alexander Krotov ad87b7c4a5 Fix clippy warnings 2019-12-03 20:20:52 +03:00
Alexander Krotov 612600278a Move SQL errors into their own module 2019-12-01 21:01:03 +01:00
B. Petersen 1d996d9ed9 track created_timetamp for chats 2019-11-28 22:38:48 +01:00
holger krekel 6f6791c1b5 (flub/r10s/hpk42) remove MoveState and related functions because we don't actually need it anymore 2019-11-28 15:57:26 +01:00
B. Petersen 035da9e5d7 add dc_skip_device_msg() and belonging tests 2019-11-18 16:47:18 +01:00