+ CREATE TABLE message_send_log2 (
+ _id INTEGER PRIMARY KEY,
+ content_id INTEGER NOT NULL REFERENCES message_send_log_content (_id) ON DELETE CASCADE,
+ address TEXT NOT NULL,
+ device_id INTEGER NOT NULL
+ ) STRICT;
+ INSERT INTO message_send_log2 (_id, content_id, address, device_id)
+ SELECT m._id, m.content_id, (SELECT t.address FROM tmp_mapping_table t WHERE t.uuid = m.uuid) address, m.device_id
+ FROM message_send_log m
+ WHERE address IS NOT NULL;
+ DROP INDEX msl_recipient_index;
+ DROP INDEX msl_content_index;
+ DROP TABLE message_send_log;
+ ALTER TABLE message_send_log2 RENAME TO message_send_log;
+ CREATE INDEX msl_recipient_index ON message_send_log (address, device_id, content_id);
+ CREATE INDEX msl_content_index ON message_send_log (content_id);
+
+ CREATE TABLE sender_key2 (
+ _id INTEGER PRIMARY KEY,
+ address TEXT NOT NULL,
+ device_id INTEGER NOT NULL,
+ distribution_id BLOB NOT NULL,
+ record BLOB NOT NULL,
+ created_timestamp INTEGER NOT NULL,
+ UNIQUE(address, device_id, distribution_id)
+ ) STRICT;
+ INSERT INTO sender_key2 (_id, address, device_id, distribution_id, record, created_timestamp)
+ SELECT s._id, (SELECT t.address FROM tmp_mapping_table t WHERE t.uuid = s.uuid) address, s.device_id, s.distribution_id, s.record, s.created_timestamp
+ FROM sender_key s
+ WHERE address IS NOT NULL;
+ DROP TABLE sender_key;
+ ALTER TABLE sender_key2 RENAME TO sender_key;
+
+ CREATE TABLE sender_key_shared2 (
+ _id INTEGER PRIMARY KEY,
+ address TEXT NOT NULL,
+ device_id INTEGER NOT NULL,
+ distribution_id BLOB NOT NULL,
+ timestamp INTEGER NOT NULL,
+ UNIQUE(address, device_id, distribution_id)
+ ) STRICT;
+ INSERT INTO sender_key_shared2 (_id, address, device_id, distribution_id, timestamp)
+ SELECT s._id, (SELECT t.address FROM tmp_mapping_table t WHERE t.uuid = s.uuid) address, s.device_id, s.distribution_id, s.timestamp
+ FROM sender_key_shared s
+ WHERE address IS NOT NULL;
+ DROP TABLE sender_key_shared;
+ ALTER TABLE sender_key_shared2 RENAME TO sender_key_shared;
+
+ CREATE TABLE session2 (
+ _id INTEGER PRIMARY KEY,
+ account_id_type INTEGER NOT NULL,
+ address TEXT NOT NULL,
+ device_id INTEGER NOT NULL,
+ record BLOB NOT NULL,
+ UNIQUE(account_id_type, address, device_id)
+ ) STRICT;
+ INSERT INTO session2 (_id, account_id_type, address, device_id, record)
+ SELECT s._id, s.account_id_type, (SELECT t.address FROM tmp_mapping_table t WHERE t.uuid = s.uuid) address, s.device_id, s.record
+ FROM session s
+ WHERE address IS NOT NULL;
+ DROP TABLE session;
+ ALTER TABLE session2 RENAME TO session;
+
+ DROP TABLE tmp_mapping_table;
+ """);
+ }