--- mqtt/etc/mqtt_pub.sql 2011/12/08 17:02:25 1.1.2.8 +++ mqtt/etc/mqtt_pub.sql 2012/01/27 15:05:38 1.2 @@ -1,10 +1,9 @@ PRAGMA foreign_keys=ON; BEGIN TRANSACTION; CREATE TABLE IF NOT EXISTS Online ( +ConnID varchar(23) not null primary key, Username varchar(12) not null, -ConnID varchar(23) not null, RemoteHost varchar(64) not null, -RemotePort smallint unsigned not null, WillFlag tinyint not null, WillTopic text, WillMsg text, @@ -14,6 +13,7 @@ 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, @@ -23,8 +23,6 @@ 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 ConnID on Online (ConnID); -CREATE UNIQUE INDEX IF NOT EXISTS User on Online (Username, ConnID, RemoteHost); 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); @@ -32,11 +30,11 @@ 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 Username = old.Username; + 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 Username = new.Username; + 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