aboutsummaryrefslogtreecommitdiff
path: root/plugins/omemo/src/database.vala
diff options
context:
space:
mode:
authorSamuel Hand <samuel.hand@openmailbox.org>2018-07-06 20:14:51 +0100
committerSamuel Hand <samuel.hand@openmailbox.org>2018-07-06 20:14:51 +0100
commit7da735b844da1b80a11135d22b011cabf54ad0fe (patch)
treee1b312fa68a4e3e71a2bf7f09eb79befb0415f6c /plugins/omemo/src/database.vala
parent20fe944c2d2ef790e93abd6f36e10489802465ab (diff)
downloaddino-7da735b844da1b80a11135d22b011cabf54ad0fe.tar.gz
dino-7da735b844da1b80a11135d22b011cabf54ad0fe.zip
More database migration, update defaults and indexes
Diffstat (limited to 'plugins/omemo/src/database.vala')
-rw-r--r--plugins/omemo/src/database.vala12
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins/omemo/src/database.vala b/plugins/omemo/src/database.vala
index 3f24e9f6..05864e38 100644
--- a/plugins/omemo/src/database.vala
+++ b/plugins/omemo/src/database.vala
@@ -26,13 +26,14 @@ public class Database : Qlite.Database {
public Column<string> address_name = new Column.Text("address_name") { not_null = true };
public Column<int> device_id = new Column.Integer("device_id") { not_null = true };
public Column<string?> identity_key_public_base64 = new Column.Text("identity_key_public_base64");
- public Column<int> trusted_identity = new Column.Integer("trusted_identity") { not_null = true, default = TrustLevel.UNKNOWN.to_string() };
+ public Column<bool> trusted_identity = new Column.BoolInt("trusted_identity") { default = "0", max_version = 1 };
+ public Column<int> trust_level = new Column.Integer("trust_level") { default = TrustLevel.UNKNOWN.to_string(), min_version = 2 };
public Column<bool> now_active = new Column.BoolInt("now_active") { default = "1" };
public Column<long> last_active = new Column.Long("last_active");
internal IdentityMetaTable(Database db) {
base(db, "identity_meta");
- init({identity_id, address_name, device_id, identity_key_public_base64, trusted_identity, now_active, last_active});
+ init({identity_id, address_name, device_id, identity_key_public_base64, trusted_identity, trust_level, now_active, last_active});
index("identity_meta_idx", {identity_id, address_name, device_id}, true);
index("identity_meta_list_idx", {identity_id, address_name});
}
@@ -61,7 +62,7 @@ public class Database : Qlite.Database {
.value(this.address_name, address_name, true)
.value(this.device_id, device_id, true)
.value(this.identity_key_public_base64, Base64.encode(bundle.identity_key.serialize()))
- .value(this.trusted_identity, trust).perform();
+ .value(this.trust_level, trust).perform();
}
}
@@ -159,7 +160,10 @@ public class Database : Qlite.Database {
}
public override void migrate(long oldVersion) {
- // new table columns are added, outdated columns are still present
+ exec("DROP INDEX identity_meta_idx");
+ exec("DROP INDEX identity_meta_list_idx");
+ exec("CREATE UNIQUE INDEX identity_meta_idx ON identity_meta (identity_id, address_name, device_id)");
+ exec("CREATE INDEX identity_meta_list_idx ON identity_meta (identity_id, address_name)");
}
}