From 7511da0f266e61fa12c640bd418606baca4c78ed Mon Sep 17 00:00:00 2001 From: Evgeny Khramtsov Date: Wed, 27 Feb 2019 13:06:17 +0300 Subject: [PATCH] Add SQL schemas for MQTT tables --- sql/lite.new.sql | 17 +++++++++++++++++ sql/lite.sql | 16 ++++++++++++++++ sql/mysql.new.sql | 16 ++++++++++++++++ sql/mysql.sql | 15 +++++++++++++++ sql/pg.new.sql | 17 +++++++++++++++++ sql/pg.sql | 16 ++++++++++++++++ 6 files changed, 97 insertions(+) diff --git a/sql/lite.new.sql b/sql/lite.new.sql index ab229c6b1..7264e58cb 100644 --- a/sql/lite.new.sql +++ b/sql/lite.new.sql @@ -464,3 +464,20 @@ CREATE TABLE mix_pam ( CREATE UNIQUE INDEX i_mix_pam ON mix_pam (username, server_host, channel, service); CREATE INDEX i_mix_pam_us ON mix_pam (username, server_host); + +CREATE TABLE mqtt_pub ( + username text NOT NULL, + server_host text NOT NULL, + resource text NOT NULL, + topic text NOT NULL, + qos smallint NOT NULL, + payload blob NOT NULL, + payload_format smallint NOT NULL, + content_type text NOT NULL, + response_topic text NOT NULL, + correlation_data blob NOT NULL, + user_properties blob NOT NULL, + expiry bigint NOT NULL +); + +CREATE UNIQUE INDEX i_mqtt_topic_server ON mqtt_pub (topic, server_host); diff --git a/sql/lite.sql b/sql/lite.sql index 8f128c331..e8755029c 100644 --- a/sql/lite.sql +++ b/sql/lite.sql @@ -432,3 +432,19 @@ CREATE TABLE mix_pam ( CREATE UNIQUE INDEX i_mix_pam ON mix_pam (username, channel, service); CREATE INDEX i_mix_pam_us ON mix_pam (username); + +CREATE TABLE mqtt_pub ( + username text NOT NULL, + resource text NOT NULL, + topic text NOT NULL, + qos smallint NOT NULL, + payload blob NOT NULL, + payload_format smallint NOT NULL, + content_type text NOT NULL, + response_topic text NOT NULL, + correlation_data blob NOT NULL, + user_properties blob NOT NULL, + expiry bigint NOT NULL +); + +CREATE UNIQUE INDEX i_mqtt_topic ON mqtt_pub (topic); diff --git a/sql/mysql.new.sql b/sql/mysql.new.sql index 39df58c55..a10e21d91 100644 --- a/sql/mysql.new.sql +++ b/sql/mysql.new.sql @@ -480,3 +480,19 @@ CREATE TABLE mix_pam ( CREATE UNIQUE INDEX i_mix_pam ON mix_pam (username(191), server_host(191), channel(191), service(191)); CREATE INDEX i_mix_pam_us ON mix_pam (username(191), server_host(191)); + +CREATE TABLE mqtt_pub ( + username varchar(191) NOT NULL, + server_host varchar(191) NOT NULL, + resource varchar(191) NOT NULL, + topic text NOT NULL, + qos tinyint NOT NULL, + payload blob NOT NULL, + payload_format tinyint NOT NULL, + content_type text NOT NULL, + response_topic text NOT NULL, + correlation_data blob NOT NULL, + user_properties blob NOT NULL, + expiry int unsigned NOT NULL, + UNIQUE KEY i_mqtt_topic_server (topic(191), server_host) +); diff --git a/sql/mysql.sql b/sql/mysql.sql index 0e3c826ef..a05f8c86c 100644 --- a/sql/mysql.sql +++ b/sql/mysql.sql @@ -448,3 +448,18 @@ CREATE TABLE mix_pam ( CREATE UNIQUE INDEX i_mix_pam ON mix_pam (username(191), channel(191), service(191)); CREATE INDEX i_mix_pam_u ON mix_pam (username(191)); + +CREATE TABLE mqtt_pub ( + username varchar(191) NOT NULL, + resource varchar(191) NOT NULL, + topic text NOT NULL, + qos tinyint NOT NULL, + payload blob NOT NULL, + payload_format tinyint NOT NULL, + content_type text NOT NULL, + response_topic text NOT NULL, + correlation_data blob NOT NULL, + user_properties blob NOT NULL, + expiry int unsigned NOT NULL, + UNIQUE KEY i_mqtt_topic (topic(191)) +); diff --git a/sql/pg.new.sql b/sql/pg.new.sql index 495441147..c585fd307 100644 --- a/sql/pg.new.sql +++ b/sql/pg.new.sql @@ -625,3 +625,20 @@ CREATE TABLE mix_pam ( CREATE UNIQUE INDEX i_mix_pam ON mix_pam (username, server_host, channel, service); CREATE INDEX i_mix_pam_us ON mix_pam (username, server_host); + +CREATE TABLE mqtt_pub ( + username text NOT NULL, + server_host text NOT NULL, + resource text NOT NULL, + topic text NOT NULL, + qos smallint NOT NULL, + payload bytea NOT NULL, + payload_format smallint NOT NULL, + content_type text NOT NULL, + response_topic text NOT NULL, + correlation_data bytea NOT NULL, + user_properties bytea NOT NULL, + expiry bigint NOT NULL +); + +CREATE UNIQUE INDEX i_mqtt_topic_server ON mqtt_pub (topic, server_host); diff --git a/sql/pg.sql b/sql/pg.sql index 250a22d2d..eae98d3f0 100644 --- a/sql/pg.sql +++ b/sql/pg.sql @@ -452,3 +452,19 @@ CREATE TABLE mix_pam ( CREATE UNIQUE INDEX i_mix_pam ON mix_pam (username, channel, service); CREATE INDEX i_mix_pam_us ON mix_pam (username); + +CREATE TABLE mqtt_pub ( + username text NOT NULL, + resource text NOT NULL, + topic text NOT NULL, + qos smallint NOT NULL, + payload bytea NOT NULL, + payload_format smallint NOT NULL, + content_type text NOT NULL, + response_topic text NOT NULL, + correlation_data bytea NOT NULL, + user_properties bytea NOT NULL, + expiry bigint NOT NULL +); + +CREATE UNIQUE INDEX i_mqtt_topic ON mqtt_pub (topic);