File:  [ELWIX - Embedded LightWeight unIX -] / mqtt / etc / mqtt_pub.sql
Revision 1.1.2.6: download - view: text, annotated - select for diffs - revision graph
Mon Nov 28 15:22:25 2011 UTC (12 years, 6 months ago) by misho
Branches: mqtt1_0
add if not exists

PRAGMA foreign_keys=ON;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS Online (
Username varchar(64) not null,
RemoteHost varchar(64) not null,
RemotePort smallint unsigned not null,
Stamp timestamp);
CREATE TABLE IF NOT EXISTS Topics (
id integer not null primary key,
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 UNIQUE INDEX IF NOT EXISTS User on Online (Username, 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);
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;
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;
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;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>