mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
MS SQL schema fixes
* Add missing 'mix' tables and indexes * Fix text vs varchar issues Various tests triggered this error: The data types text and varchar are incompatible in the equal to operator. Caused by incompatible 'text' columns in muc_online_room, muc_online_users, pubsub_node_option, and pubsub_node tables. * Fix definition of mqtt_pub table This table incorrectly included 'server_host' column in old schema, and had other inconsistencies.
This commit is contained in:
parent
ec6f5c17c8
commit
5e94fdcfd5
108
sql/mssql.sql
108
sql/mssql.sql
@ -120,8 +120,8 @@ CREATE INDEX [muc_room_host_created_at] ON [muc_registered] (host, nick)
|
|||||||
CREATE TABLE [dbo].[muc_online_room] (
|
CREATE TABLE [dbo].[muc_online_room] (
|
||||||
[name] [varchar] (250) NOT NULL,
|
[name] [varchar] (250) NOT NULL,
|
||||||
[host] [varchar] (250) NOT NULL,
|
[host] [varchar] (250) NOT NULL,
|
||||||
[node] [text] NOT NULL,
|
[node] [varchar] (250) NOT NULL,
|
||||||
[pid] [text] NOT NULL
|
[pid] [varchar] (100) NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE UNIQUE CLUSTERED INDEX [muc_online_room_name_host] ON [muc_online_room] (name, host)
|
CREATE UNIQUE CLUSTERED INDEX [muc_online_room_name_host] ON [muc_online_room] (name, host)
|
||||||
@ -133,7 +133,7 @@ CREATE TABLE [dbo].[muc_online_users] (
|
|||||||
[resource] [varchar] (250) NOT NULL,
|
[resource] [varchar] (250) NOT NULL,
|
||||||
[name] [varchar] (250) NOT NULL,
|
[name] [varchar] (250) NOT NULL,
|
||||||
[host] [varchar] (250) NOT NULL,
|
[host] [varchar] (250) NOT NULL,
|
||||||
node text NOT NULL
|
[node] [varchar] (250) NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE UNIQUE INDEX [muc_online_users_i] ON [muc_online_users] (username, server, resource, name, host)
|
CREATE UNIQUE INDEX [muc_online_users_i] ON [muc_online_users] (username, server, resource, name, host)
|
||||||
@ -226,9 +226,9 @@ WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW
|
|||||||
|
|
||||||
CREATE TABLE [dbo].[pubsub_node_option] (
|
CREATE TABLE [dbo].[pubsub_node_option] (
|
||||||
[nodeid] [bigint] NULL,
|
[nodeid] [bigint] NULL,
|
||||||
[name] [text] NOT NULL,
|
[name] [varchar] (250) NOT NULL,
|
||||||
[val] [text] NOT NULL
|
[val] [varchar] (250) NOT NULL
|
||||||
) TEXTIMAGE_ON [PRIMARY];
|
);
|
||||||
|
|
||||||
CREATE CLUSTERED INDEX [pubsub_node_option_nodeid] ON [pubsub_node_option] (nodeid)
|
CREATE CLUSTERED INDEX [pubsub_node_option_nodeid] ON [pubsub_node_option] (nodeid)
|
||||||
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
@ -272,13 +272,13 @@ CREATE TABLE [dbo].[pubsub_node] (
|
|||||||
[host] [varchar] (255) NOT NULL,
|
[host] [varchar] (255) NOT NULL,
|
||||||
[node] [varchar] (255) NOT NULL,
|
[node] [varchar] (255) NOT NULL,
|
||||||
[parent] [varchar] (255) NOT NULL DEFAULT '',
|
[parent] [varchar] (255) NOT NULL DEFAULT '',
|
||||||
[plugin] [text] NOT NULL,
|
[plugin] [varchar] (32) NOT NULL,
|
||||||
[nodeid] [bigint] IDENTITY(1,1) NOT NULL,
|
[nodeid] [bigint] IDENTITY(1,1) NOT NULL,
|
||||||
CONSTRAINT [pubsub_node_PRIMARY] PRIMARY KEY CLUSTERED
|
CONSTRAINT [pubsub_node_PRIMARY] PRIMARY KEY CLUSTERED
|
||||||
(
|
(
|
||||||
[nodeid] ASC
|
[nodeid] ASC
|
||||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
) TEXTIMAGE_ON [PRIMARY];
|
);
|
||||||
|
|
||||||
CREATE INDEX [pubsub_node_parent] ON [pubsub_node] (parent)
|
CREATE INDEX [pubsub_node_parent] ON [pubsub_node] (parent)
|
||||||
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
@ -366,13 +366,12 @@ WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW
|
|||||||
CREATE TABLE [dbo].[sr_group] (
|
CREATE TABLE [dbo].[sr_group] (
|
||||||
[name] [varchar] (250) NOT NULL,
|
[name] [varchar] (250) NOT NULL,
|
||||||
[opts] [text] NOT NULL,
|
[opts] [text] NOT NULL,
|
||||||
[created_at] [datetime] NOT NULL DEFAULT GETDATE(),
|
[created_at] [datetime] NOT NULL DEFAULT GETDATE()
|
||||||
CONSTRAINT [sr_group_PRIMARY] PRIMARY KEY CLUSTERED
|
|
||||||
(
|
|
||||||
[name] ASC
|
|
||||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
||||||
) TEXTIMAGE_ON [PRIMARY];
|
) TEXTIMAGE_ON [PRIMARY];
|
||||||
|
|
||||||
|
CREATE UNIQUE CLUSTERED INDEX [sr_group_name] ON [sr_group] ([name])
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
CREATE TABLE [dbo].[sr_user] (
|
CREATE TABLE [dbo].[sr_user] (
|
||||||
[jid] [varchar] (250) NOT NULL,
|
[jid] [varchar] (250) NOT NULL,
|
||||||
[grp] [varchar] (250) NOT NULL,
|
[grp] [varchar] (250) NOT NULL,
|
||||||
@ -548,11 +547,76 @@ WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW
|
|||||||
CREATE UNIQUE INDEX [i_push_ut] ON [push_session] (username, timestamp)
|
CREATE UNIQUE INDEX [i_push_ut] ON [push_session] (username, timestamp)
|
||||||
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE TABLE [dbo].[mix_channel] (
|
||||||
|
[channel] [varchar] (250) NOT NULL,
|
||||||
|
[service] [varchar] (250) NOT NULL,
|
||||||
|
[username] [varchar] (250) NOT NULL,
|
||||||
|
[domain] [varchar] (250) NOT NULL,
|
||||||
|
[jid] [varchar] (250) NOT NULL,
|
||||||
|
[hidden] [smallint] NOT NULL,
|
||||||
|
[hmac_key] [text] NOT NULL,
|
||||||
|
[created_at] [datetime] NOT NULL DEFAULT GETDATE()
|
||||||
|
) TEXTIMAGE_ON [PRIMARY];
|
||||||
|
|
||||||
|
CREATE UNIQUE CLUSTERED INDEX [mix_channel] ON [mix_channel] (channel, service)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE INDEX [mix_channel_serv] ON [mix_channel] (service)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE TABLE [dbo].[mix_participant] (
|
||||||
|
[channel] [varchar] (250) NOT NULL,
|
||||||
|
[service] [varchar] (250) NOT NULL,
|
||||||
|
[username] [varchar] (250) NOT NULL,
|
||||||
|
[domain] [varchar] (250) NOT NULL,
|
||||||
|
[jid] [varchar] (250) NOT NULL,
|
||||||
|
[id] [text] NOT NULL,
|
||||||
|
[nick] [text] NOT NULL,
|
||||||
|
[created_at] [datetime] NOT NULL DEFAULT GETDATE()
|
||||||
|
) TEXTIMAGE_ON [PRIMARY];
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX [mix_participant] ON [mix_participant] (channel, service, username, domain)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE INDEX [mix_participant_chan_serv] ON [mix_participant] (channel, service)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE TABLE [dbo].[mix_subscription] (
|
||||||
|
[channel] [varchar] (250) NOT NULL,
|
||||||
|
[service] [varchar] (250) NOT NULL,
|
||||||
|
[username] [varchar] (250) NOT NULL,
|
||||||
|
[domain] [varchar] (250) NOT NULL,
|
||||||
|
[node] [varchar] (250) NOT NULL,
|
||||||
|
[jid] [varchar] (250) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX [mix_subscription] ON [mix_subscription] (channel, service, username, domain, node)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE INDEX [mix_subscription_chan_serv_ud] ON [mix_subscription] (channel, service, username, domain)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE INDEX [mix_subscription_chan_serv_node] ON [mix_subscription] (channel, service, node)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE INDEX [mix_subscription_chan_serv] ON [mix_subscription] (channel, service)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
|
CREATE TABLE [dbo].[mix_pam] (
|
||||||
|
[username] [varchar] (250) NOT NULL,
|
||||||
|
[channel] [varchar] (250) NOT NULL,
|
||||||
|
[service] [varchar] (250) NOT NULL,
|
||||||
|
[id] [text] NOT NULL,
|
||||||
|
[created_at] [datetime] NOT NULL DEFAULT GETDATE()
|
||||||
|
) TEXTIMAGE_ON [PRIMARY];
|
||||||
|
|
||||||
|
CREATE UNIQUE CLUSTERED INDEX [mix_pam] ON [mix_pam] (username, channel, service)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
|
||||||
CREATE TABLE [dbo].[mqtt_pub] (
|
CREATE TABLE [dbo].[mqtt_pub] (
|
||||||
[username] [varchar](191) NOT NULL,
|
[username] [varchar] (250) NOT NULL,
|
||||||
[server_host] [varchar](191) NOT NULL,
|
[resource] [varchar] (250) NOT NULL,
|
||||||
[resource] [varchar](191) NOT NULL,
|
[topic] [varchar] (250) NOT NULL,
|
||||||
[topic] [varchar](191) NOT NULL,
|
|
||||||
[qos] [tinyint] NOT NULL,
|
[qos] [tinyint] NOT NULL,
|
||||||
[payload] [varbinary](max) NOT NULL,
|
[payload] [varbinary](max) NOT NULL,
|
||||||
[payload_format] [tinyint] NOT NULL,
|
[payload_format] [tinyint] NOT NULL,
|
||||||
@ -560,10 +624,8 @@ CREATE TABLE [dbo].[mqtt_pub] (
|
|||||||
[response_topic] [text] NOT NULL,
|
[response_topic] [text] NOT NULL,
|
||||||
[correlation_data] [varbinary](max) NOT NULL,
|
[correlation_data] [varbinary](max) NOT NULL,
|
||||||
[user_properties] [varbinary](max) NOT NULL,
|
[user_properties] [varbinary](max) NOT NULL,
|
||||||
[expiry] [int] NOT NULL,
|
[expiry] [int] NOT NULL
|
||||||
CONSTRAINT [i_mqtt_topic_server] PRIMARY KEY CLUSTERED
|
|
||||||
(
|
|
||||||
[topic] ASC,
|
|
||||||
[server_host] ASC
|
|
||||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
|
||||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
|
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
|
||||||
|
|
||||||
|
CREATE UNIQUE CLUSTERED INDEX [mqtt_topic] ON [mqtt_pub] (topic)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
|
||||||
|
Loading…
Reference in New Issue
Block a user