waku-org/go-waku

View on GitHub
waku/persistence/sqlite/migrations/sql/5_nwaku_schema.up.sql

Summary

Maintainability
Test Coverage
ALTER TABLE message RENAME TO message_old;

DROP INDEX message_senderTimestamp;
DROP INDEX message_receiverTimestamp;
DROP INDEX i_msg_1;
DROP INDEX i_msg_2;

CREATE TABLE message (
  pubsubTopic BLOB NOT NULL,
  contentTopic BLOB NOT NULL,
  payload BLOB,
  version INTEGER NOT NULL,
  timestamp INTEGER NOT NULL,
  id BLOB,
  messageHash BLOB, -- Newly added, this will be populated with a counter value
  storedAt INTEGER NOT NULL,
  CONSTRAINT messageIndex PRIMARY KEY (messageHash)
) WITHOUT ROWID;
CREATE INDEX i_ts ON Message (storedAt);
CREATE INDEX i_query ON Message (contentTopic, pubsubTopic, storedAt, id);

INSERT INTO message(pubsubTopic, contentTopic, payload, version, timestamp, id, messageHash, storedAt)
SELECT pubsubTopic, contentTopic, payload, version, senderTimestamp, id, id, receiverTimestamp
FROM message_old;

DROP TABLE message_old;