--- mqtt/etc/mqtt_pub.sql 2011/11/23 00:47:50 1.1 +++ mqtt/etc/mqtt_pub.sql 2012/01/27 15:05:38 1.2 @@ -0,0 +1,47 @@ +PRAGMA foreign_keys=ON; +BEGIN TRANSACTION; +CREATE TABLE IF NOT EXISTS Online ( +ConnID varchar(23) not null primary key, +Username varchar(12) not null, +RemoteHost varchar(64) not null, +WillFlag tinyint not null, +WillTopic text, +WillMsg text, +WillQoS tinyint, +WillRetain tinyint, +Stamp timestamp); +CREATE TABLE IF NOT EXISTS Topics ( +id integer not null primary key, +MsgID smallint unsigned not null, +QoS char not null, +Retain char not null, +Topic varchar(255) not null, +Value text, +PubUser varchar(64) not null, +PubDate datetime not null, +PubHost varchar(64) not null, +Stamp timestamp); +CREATE INDEX IF NOT EXISTS RemoteHost on Online (RemoteHost); +CREATE INDEX IF NOT EXISTS Username on Online (Username); +CREATE INDEX IF NOT EXISTS PubDate on Topics (PubDate); +CREATE INDEX IF NOT EXISTS PubHost on Topics (PubHost); +CREATE INDEX IF NOT EXISTS PubUser on Topics (PubUser); +CREATE INDEX IF NOT EXISTS MsgID on Topics (MsgID); +CREATE INDEX IF NOT EXISTS Topic on Topics (Topic); +CREATE TRIGGER IF NOT EXISTS Online_update_t AFTER UPDATE ON Online +BEGIN + UPDATE Online SET Stamp = strftime('%s', 'now') WHERE ConnID = old.ConnID; +END; +CREATE TRIGGER IF NOT EXISTS Online_insert_t AFTER INSERT ON Online +BEGIN + UPDATE Online SET Stamp = strftime('%s', 'now') WHERE ConnID = new.ConnID; +END; +CREATE TRIGGER IF NOT EXISTS Topics_update_t AFTER UPDATE ON Topics +BEGIN + UPDATE Topics SET Stamp = strftime('%s', 'now') WHERE id = old.id; +END; +CREATE TRIGGER IF NOT EXISTS Topics_insert_t AFTER INSERT ON Topics +BEGIN + UPDATE Topics SET Stamp = strftime('%s', 'now') WHERE id = new.id; +END; +COMMIT;