2
* ejabberd, Copyright (C) 2002-2011 ProcessOne
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation; either version 2 of the
7
* License, or (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
23
SET QUOTED_IDENTIFIER ON
26
exec sp_dboption N'ejabberd', N'autoclose', N'false'
29
exec sp_dboption N'ejabberd', N'bulkcopy', N'true'
32
exec sp_dboption N'ejabberd', N'trunc. log', N'false'
35
exec sp_dboption N'ejabberd', N'torn page detection', N'true'
38
exec sp_dboption N'ejabberd', N'read only', N'false'
41
exec sp_dboption N'ejabberd', N'dbo use', N'false'
44
exec sp_dboption N'ejabberd', N'single', N'false'
47
exec sp_dboption N'ejabberd', N'autoshrink', N'false'
50
exec sp_dboption N'ejabberd', N'ANSI null default', N'false'
53
exec sp_dboption N'ejabberd', N'recursive triggers', N'false'
56
exec sp_dboption N'ejabberd', N'ANSI nulls', N'false'
59
exec sp_dboption N'ejabberd', N'concat null yields null', N'false'
62
exec sp_dboption N'ejabberd', N'cursor close on commit', N'false'
65
exec sp_dboption N'ejabberd', N'default to local cursor', N'false'
68
exec sp_dboption N'ejabberd', N'quoted identifier', N'false'
71
exec sp_dboption N'ejabberd', N'ANSI warnings', N'false'
74
exec sp_dboption N'ejabberd', N'auto create statistics', N'true'
77
exec sp_dboption N'ejabberd', N'auto update statistics', N'true'
83
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[last]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
84
drop table [dbo].[last]
87
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rostergroups]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
88
drop table [dbo].[rostergroups]
91
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rosterusers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
92
drop table [dbo].[rosterusers]
95
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[spool]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
96
drop table [dbo].[spool]
99
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
100
drop table [dbo].[users]
103
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vcard]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
104
drop table [dbo].[vcard]
107
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vcard_search]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
108
drop table [dbo].[vcard_search]
111
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[private_storage]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
112
drop table [dbo].[private_storage]
115
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[privacy_default_list]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
116
drop table [dbo].[privacy_default_list]
119
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[privacy_list]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
120
drop table [dbo].[privacy_list]
123
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[privacy_list_data]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
124
drop table [dbo].[privacy_list_data]
127
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[roster_version]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
128
drop table [dbo].[roster_version]
131
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pubsub_node_option]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
132
drop table [dbo].[pubsub_node_option]
135
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pubsub_node_owner]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
136
drop table [dbo].[pubsub_node_owner]
139
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pubsub_state]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
140
drop table [dbo].[pubsub_state]
143
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pubsub_item]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
144
drop table [dbo].[pubsub_item]
147
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pubsub_subscription_opt]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
148
drop table [dbo].[pubsub_subscription_opt]
151
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pubsub_node]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
152
drop table [dbo].[pubsub_node]
155
CREATE TABLE [dbo].[last] (
156
[username] [varchar] (250) NOT NULL ,
157
[seconds] [varchar] (50) NOT NULL ,
158
[state] [varchar] (100) NOT NULL ,
159
[Modify_Date] [datetime] NOT NULL
163
CREATE TABLE [dbo].[rostergroups] (
164
[username] [varchar] (250) NOT NULL ,
165
[jid] [varchar] (250) NOT NULL ,
166
[grp] [varchar] (100) NOT NULL
170
CREATE TABLE [dbo].[rosterusers] (
171
[username] [varchar] (250) NOT NULL ,
172
[jid] [varchar] (250) NOT NULL ,
173
[nick] [varchar] (50) NOT NULL ,
174
[subscription] [char] (1) NOT NULL ,
175
[ask] [char] (1) NOT NULL ,
176
[askmessage] [varchar] (250) NOT NULL ,
177
[server] [char] (1) NOT NULL ,
178
[subscribe] [varchar] (200) NULL ,
179
[type] [varchar] (50) NULL ,
180
CONSTRAINT [PK_rosterusers] PRIMARY KEY NONCLUSTERED
184
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
188
CREATE TABLE [dbo].[spool] (
189
[id] [numeric](19, 0) IDENTITY (1, 1) NOT NULL ,
190
[username] [varchar] (250) NOT NULL ,
191
[xml] [text] NOT NULL ,
192
[notifyprocessed] [bit] NULL ,
193
[created] [datetime] NULL ,
194
[MustDelete] [bit] NOT NULL
195
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
198
CREATE TABLE [dbo].[users] (
199
[username] [varchar] (250) NOT NULL ,
200
[password] [varchar] (50) NOT NULL ,
201
[created] [datetime] NULL
205
CREATE TABLE [dbo].[vcard] (
206
[username] [varchar] (250) NOT NULL ,
207
[vcard] [text] NOT NULL
211
CREATE TABLE [dbo].[vcard_search] (
212
[username] [varchar] (250) NOT NULL ,
213
[lusername] [varchar] (250) NOT NULL ,
214
[fn] [text] NOT NULL ,
215
[lfn] [varchar] (250) NOT NULL ,
216
[family] [text] NOT NULL ,
217
[lfamily] [varchar] (250) NOT NULL ,
218
[given] [text] NOT NULL ,
219
[lgiven] [varchar] (250) NOT NULL ,
220
[middle] [text] NOT NULL ,
221
[lmiddle] [varchar] (250) NOT NULL ,
222
[nickname] [text] NOT NULL ,
223
[lnickname] [varchar] (250) NOT NULL ,
224
[bday] [text] NOT NULL ,
225
[lbday] [varchar] (250) NOT NULL ,
226
[ctry] [text] NOT NULL ,
227
[lctry] [varchar] (250) NOT NULL ,
228
[locality] [text] NOT NULL ,
229
[llocality] [varchar] (250) NOT NULL ,
230
[email] [text] NOT NULL ,
231
[lemail] [varchar] (250) NOT NULL ,
232
[orgname] [text] NOT NULL ,
233
[lorgname] [varchar] (250) NOT NULL ,
234
[orgunit] [text] NOT NULL ,
235
[lorgunit] [varchar] (250) NOT NULL
239
CREATE TABLE [dbo].[private_storage] (
240
[username] [varchar] (250) NOT NULL ,
241
[namespace] [varchar] (250) NOT NULL ,
242
[data] [text] NOT NULL
246
CREATE TABLE [dbo].[privacy_default_list] (
247
[username] [varchar] (250) NOT NULL,
248
[name] [varchar] (250) NOT NULL
252
CREATE TABLE [dbo].[privacy_list](
253
[username] [varchar](250) NOT NULL,
254
[name] [varchar](250) NOT NULL,
255
[id] [bigint] IDENTITY(1,1) NOT NULL,
256
CONSTRAINT [PK_privacy_list] PRIMARY KEY CLUSTERED
259
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
263
CREATE TABLE [dbo].[privacy_list_data] (
264
[id] [bigint] NOT NULL,
265
[t] [character] (1) NOT NULL,
266
[value] [text] NOT NULL,
267
[action] [character] (1) NOT NULL,
268
[ord] [NUMERIC] NOT NULL,
269
[match_all] [bit] NOT NULL,
270
[match_iq] [bit] NOT NULL,
271
[match_message] [bit] NOT NULL,
272
[match_presence_in] [bit] NOT NULL,
273
[match_presence_out] [bit] NOT NULL
277
CREATE TABLE [dbo].[roster_version] (
278
[username] [varchar](250) PRIMARY KEY,
279
[version] [text] NOT NULL
283
CREATE TABLE [dbo].[pubsub_node] (
284
[host] [varchar](250),
285
[node] [varchar](250),
286
[parent] [varchar](250),
287
[type] [varchar](250),
288
[nodeid] [bigint] IDENTITY(1,1) PRIMARY KEY
292
CREATE TABLE [dbo].[pubsub_node_option] (
294
[name] [varchar](250),
299
CREATE TABLE [dbo].[pubsub_node_owner] (
301
[owner] [varchar](250)
305
CREATE TABLE [dbo].[pubsub_state] (
307
[jid] [varchar](250),
308
[affiliation] [CHAR](1),
309
[subscriptions] [text],
310
[stateid] [bigint] IDENTITY(1,1) PRIMARY KEY
314
CREATE TABLE [dbo].[pubsub_item] (
316
[itemid] [varchar](250),
319
[modification] [text],
324
CREATE TABLE [dbo].[pubsub_subscription_opt] (
325
[subid] [varchar](250),
326
[opt_name] [varchar](32),
331
/* Constraints to add:
332
- id in privacy_list is a SERIAL autogenerated number
333
- id in privacy_list_data must exist in the table privacy_list */
335
ALTER TABLE [dbo].[last] WITH NOCHECK ADD
336
CONSTRAINT [PK_last] PRIMARY KEY CLUSTERED
339
) WITH FILLFACTOR = 90 ON [PRIMARY]
342
ALTER TABLE [dbo].[rostergroups] WITH NOCHECK ADD
343
CONSTRAINT [PK_rostergroups] PRIMARY KEY CLUSTERED
348
) WITH FILLFACTOR = 90 ON [PRIMARY]
351
ALTER TABLE [dbo].[spool] WITH NOCHECK ADD
352
CONSTRAINT [PK_spool] PRIMARY KEY CLUSTERED
356
) WITH FILLFACTOR = 90 ON [PRIMARY]
359
ALTER TABLE [dbo].[users] WITH NOCHECK ADD
360
CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED
363
) WITH FILLFACTOR = 90 ON [PRIMARY]
366
ALTER TABLE [dbo].[vcard] WITH NOCHECK ADD
367
CONSTRAINT [PK_vcard] PRIMARY KEY CLUSTERED
370
) WITH FILLFACTOR = 90 ON [PRIMARY]
373
ALTER TABLE [dbo].[pubsub_node_option] WITH NOCHECK ADD
374
CONSTRAINT [FK_pubsub_node_option] FOREIGN KEY
377
) REFERENCES [dbo].[pubsub_node]
384
ALTER TABLE [dbo].[pubsub_node_owner] WITH NOCHECK ADD
385
CONSTRAINT [FK_pubsub_node_owner] FOREIGN KEY
388
) REFERENCES [pubsub_node]
395
ALTER TABLE [dbo].[pubsub_state] WITH NOCHECK ADD
396
CONSTRAINT [FK_pubsub_state] FOREIGN KEY
399
) REFERENCES [pubsub_node]
406
ALTER TABLE [dbo].[pubsub_item] WITH NOCHECK ADD
407
CONSTRAINT [FK_pubsub_item] FOREIGN KEY
410
) REFERENCES [pubsub_node]
417
CREATE INDEX [IX_vcard_search_lfn] ON [dbo].[vcard_search]([lfn]) WITH FILLFACTOR = 90 ON [PRIMARY]
419
CREATE INDEX [IX_vcard_search_lfamily] ON [dbo].[vcard_search]([lfamily]) WITH FILLFACTOR = 90 ON [PRIMARY]
421
CREATE INDEX [IX_vcard_search_lgiven] ON [dbo].[vcard_search]([lgiven]) WITH FILLFACTOR = 90 ON [PRIMARY]
423
CREATE INDEX [IX_vcard_search_lmiddle] ON [dbo].[vcard_search]([lmiddle]) WITH FILLFACTOR = 90 ON [PRIMARY]
425
CREATE INDEX [IX_vcard_search_lnickname] ON [dbo].[vcard_search]([lnickname]) WITH FILLFACTOR = 90 ON [PRIMARY]
427
CREATE INDEX [IX_vcard_search_lbday] ON [dbo].[vcard_search]([lbday]) WITH FILLFACTOR = 90 ON [PRIMARY]
429
CREATE INDEX [IX_vcard_search_lctry] ON [dbo].[vcard_search]([lctry]) WITH FILLFACTOR = 90 ON [PRIMARY]
431
CREATE INDEX [IX_vcard_search_llocality] ON [dbo].[vcard_search]([llocality]) WITH FILLFACTOR = 90 ON [PRIMARY]
433
CREATE INDEX [IX_vcard_search_lemail] ON [dbo].[vcard_search]([lemail]) WITH FILLFACTOR = 90 ON [PRIMARY]
435
CREATE INDEX [IX_vcard_search_lorgname] ON [dbo].[vcard_search]([lorgname]) WITH FILLFACTOR = 90 ON [PRIMARY]
437
CREATE INDEX [IX_vcard_search_lorgunit] ON [dbo].[vcard_search]([lorgunit]) WITH FILLFACTOR = 90 ON [PRIMARY]
441
CREATE CLUSTERED INDEX [IX_rosterusers_user] ON [dbo].[rosterusers]([username]) WITH FILLFACTOR = 90 ON [PRIMARY]
444
ALTER TABLE [dbo].[last] WITH NOCHECK ADD
445
CONSTRAINT [DF_last_updated] DEFAULT (getdate()) FOR [Modify_Date]
448
ALTER TABLE [dbo].[spool] WITH NOCHECK ADD
449
CONSTRAINT [DF_spool_notifyprocessed] DEFAULT (0) FOR [notifyprocessed],
450
CONSTRAINT [DF_spool_created] DEFAULT (getdate()) FOR [created],
451
CONSTRAINT [DF_spool_MustDelete] DEFAULT (0) FOR [MustDelete]
454
ALTER TABLE [dbo].[users] WITH NOCHECK ADD
455
CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created]
458
ALTER TABLE [dbo].[privacy_default_list] WITH NOCHECK ADD
459
CONSTRAINT [PK_privacy_defaut_list] PRIMARY KEY CLUSTERED
462
) WITH FILLFACTOR = 90 ON [PRIMARY]
465
CREATE INDEX [IX_rostergroups_jid] ON [dbo].[rostergroups]([jid]) WITH FILLFACTOR = 90 ON [PRIMARY]
468
CREATE INDEX [IX_rostergroups_user] ON [dbo].[rostergroups]([username]) WITH FILLFACTOR = 90 ON [PRIMARY]
471
CREATE INDEX [IX_spool_user] ON [dbo].[spool]([username]) WITH FILLFACTOR = 90 ON [PRIMARY]
474
CREATE INDEX [IX_spool_process] ON [dbo].[spool]([created], [notifyprocessed]) WITH FILLFACTOR = 90 ON [PRIMARY]
477
CREATE INDEX [IK_Spool_Del] ON [dbo].[spool]([MustDelete]) WITH FILLFACTOR = 90 ON [PRIMARY]
480
CREATE INDEX [IK_Spool_Created] ON [dbo].[spool]([created]) WITH FILLFACTOR = 90 ON [PRIMARY]
483
CREATE INDEX [IX_private_user] ON [dbo].[private_storage]([username]) WITH FILLFACTOR = 90 ON [PRIMARY]
486
CREATE INDEX [IX_private_user_ns] ON [dbo].[private_storage]([username], [namespace]) WITH FILLFACTOR = 90 ON [PRIMARY]
489
CREATE INDEX [IX_privacy_list_username] ON [dbo].[privacy_list]([username]) WITH FILLFACTOR = 90 ON [PRIMARY]
492
CREATE INDEX [IX_privacy_list_username_name] ON [dbo].[privacy_list]([username], [name]) WITH FILLFACTOR = 90 ON [PRIMARY]
495
CREATE INDEX [IX_pubsub_node_parent] ON [dbo].[pubsub_node]([parent]) WITH FILLFACTOR = 90 ON [PRIMARY]
498
CREATE INDEX [IX_pubsub_node_tuple] ON [dbo].[pubsub_node]([host], [node]) WITH FILLFACTOR = 90 ON [PRIMARY]
501
CREATE INDEX [IX_pubsub_node_option_nodeid] ON [dbo].[pubsub_node_option]([nodeid]) WITH FILLFACTOR = 90 ON [PRIMARY]
504
CREATE INDEX [IX_pubsub_node_owner_nodeid] ON [dbo].[pubsub_node_owner]([nodeid]) WITH FILLFACTOR = 90 ON [PRIMARY]
507
CREATE INDEX [IX_pubsub_state_jid] ON [dbo].[pubsub_state]([jid]) WITH FILLFACTOR = 90 ON [PRIMARY]
510
CREATE INDEX [IX_pubsub_state_tuple] ON [dbo].[pubsub_state]([nodeid], [jid]) WITH FILLFACTOR = 90 ON [PRIMARY]
513
CREATE INDEX [IX_pubsub_item_itemid] ON [dbo].[pubsub_item]([itemid]) WITH FILLFACTOR = 90 ON [PRIMARY]
516
CREATE INDEX [IX_pubsub_item_tuple] ON [dbo].[pubsub_item]([nodeid], [itemid]) WITH FILLFACTOR = 90 ON [PRIMARY]
519
CREATE INDEX [IX_pubsub_subscription_opt] ON [dbo].[pubsub_subscription_opt]([subid], [opt_name]) WITH FILLFACTOR = 90 ON [PRIMARY]
522
/*********************************************************/
523
/** These store procedures are for use with ejabberd **/
524
/** 1.1 and Microsoft Sql Server 2000 **/
526
/** The stored procedures reduce the need to sql **/
527
/** compilation of the database and also allow for also **/
528
/** provide each of database integration. The stored **/
529
/** procedure have been optimized to increase database **/
530
/** performance and a reduction of 80% in CPU was **/
531
/** achieved over the use of standard sql. **/
532
/*********************************************************/
534
/****** Object: StoredProcedure [dbo].[add_roster] ******/
535
/** Add or update user entries in the roster **/
536
/*********************************************************/
537
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[add_roster]') AND type in (N'P', N'PC'))
538
DROP PROCEDURE [dbo].[add_roster]
540
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[add_roster_group]') AND type in (N'P', N'PC'))
541
DROP PROCEDURE [dbo].[add_roster_group]
543
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[add_roster_user]') AND type in (N'P', N'PC'))
544
DROP PROCEDURE [dbo].[add_roster_user]
546
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_roster_groups]') AND type in (N'P', N'PC'))
547
DROP PROCEDURE [dbo].[del_roster_groups]
549
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[add_spool]') AND type in (N'P', N'PC'))
550
DROP PROCEDURE [dbo].[add_spool]
552
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[add_user]') AND type in (N'P', N'PC'))
553
DROP PROCEDURE [dbo].[add_user]
555
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[set_password]') AND type in (N'P', N'PC'))
556
DROP PROCEDURE [dbo].[set_password]
558
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[clean_spool_msg]') AND type in (N'P', N'PC'))
559
DROP PROCEDURE [dbo].[clean_spool_msg]
561
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_password]') AND type in (N'P', N'PC'))
562
DROP PROCEDURE [dbo].[get_password]
564
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_last]') AND type in (N'P', N'PC'))
565
DROP PROCEDURE [dbo].[del_last]
567
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_roster]') AND type in (N'P', N'PC'))
568
DROP PROCEDURE [dbo].[del_roster]
570
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_spool_msg]') AND type in (N'P', N'PC'))
571
DROP PROCEDURE [dbo].[del_spool_msg]
573
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_user]') AND type in (N'P', N'PC'))
574
DROP PROCEDURE [dbo].[del_user]
576
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_user_return_password]') AND type in (N'P', N'PC'))
577
DROP PROCEDURE [dbo].[del_user_return_password]
579
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_user_roster]') AND type in (N'P', N'PC'))
580
DROP PROCEDURE [dbo].[del_user_roster]
582
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_and_del_spool_msg]') AND type in (N'P', N'PC'))
583
DROP PROCEDURE [dbo].[get_and_del_spool_msg]
585
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_last]') AND type in (N'P', N'PC'))
586
DROP PROCEDURE [dbo].[get_last]
588
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_roster]') AND type in (N'P', N'PC'))
589
DROP PROCEDURE [dbo].[get_roster]
591
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_roster_by_jid]') AND type in (N'P', N'PC'))
592
DROP PROCEDURE [dbo].[get_roster_by_jid]
594
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_roster_jid_groups]') AND type in (N'P', N'PC'))
595
DROP PROCEDURE [dbo].[get_roster_jid_groups]
597
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_roster_groups]') AND type in (N'P', N'PC'))
598
DROP PROCEDURE [dbo].[get_roster_groups]
600
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_rostergroup_by_jid]') AND type in (N'P', N'PC'))
601
DROP PROCEDURE [dbo].[get_rostergroup_by_jid]
603
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_subscription]') AND type in (N'P', N'PC'))
604
DROP PROCEDURE [dbo].[get_subscription]
606
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[list_users]') AND type in (N'P', N'PC'))
607
DROP PROCEDURE [dbo].[list_users]
609
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[set_last]') AND type in (N'P', N'PC'))
610
DROP PROCEDURE [dbo].[set_last]
612
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[set_private_data]') AND type in (N'P', N'PC'))
613
DROP PROCEDURE [dbo].[set_private_data]
615
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_private_data]') AND type in (N'P', N'PC'))
616
DROP PROCEDURE [dbo].[get_private_data]
618
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_user_storage]') AND type in (N'P', N'PC'))
619
DROP PROCEDURE [dbo].[del_user_storage]
621
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[set_vcard]') AND type in (N'P', N'PC'))
622
DROP PROCEDURE [dbo].[set_vcard]
624
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_vcard]') AND type in (N'P', N'PC'))
625
DROP PROCEDURE [dbo].[get_vcard]
627
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_default_privacy_list]') AND type in (N'P', N'PC'))
628
DROP PROCEDURE [dbo].[get_default_privacy_list]
630
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_privacy_list_names]') AND type in (N'P', N'PC'))
631
DROP PROCEDURE [dbo].[get_privacy_list_names]
633
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_privacy_list_id]') AND type in (N'P', N'PC'))
634
DROP PROCEDURE [dbo].[get_privacy_list_id]
636
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_privacy_list_data]') AND type in (N'P', N'PC'))
637
DROP PROCEDURE [dbo].[get_privacy_list_data]
639
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[get_privacy_list_data_by_id]') AND type in (N'P', N'PC'))
640
DROP PROCEDURE [dbo].[get_privacy_list_data_by_id]
642
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[set_default_privacy_list]') AND type in (N'P', N'PC'))
643
DROP PROCEDURE [dbo].[set_default_privacy_list]
645
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[unset_default_privacy_list]') AND type in (N'P', N'PC'))
646
DROP PROCEDURE [dbo].[unset_default_privacy_list]
648
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[remove_privacy_list]') AND type in (N'P', N'PC'))
649
DROP PROCEDURE [dbo].[remove_privacy_list]
651
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[add_privacy_list]') AND type in (N'P', N'PC'))
652
DROP PROCEDURE [dbo].[add_privacy_list]
654
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[set_privacy_list]') AND type in (N'P', N'PC'))
655
DROP PROCEDURE [dbo].[set_privacy_list]
657
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_privacy_list_by_id]') AND type in (N'P', N'PC'))
658
DROP PROCEDURE [dbo].[del_privacy_list_by_id]
660
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[del_privacy_lists]') AND type in (N'P', N'PC'))
661
DROP PROCEDURE [dbo].[del_privacy_lists]
664
CREATE PROCEDURE [dbo].[add_roster]
665
@Username varchar(250),
668
@Subscription char(1),
670
@AskMessage varchar(250),
672
@Subscribe varchar(200),
678
--- Update Roster if user exist else add roster item
679
IF EXISTS (SELECT username FROM rosterusers WITH (NOLOCK) WHERE rosterusers.username=@Username AND rosterusers.jid=@JID)
682
SET rosterusers.username=@Username,
683
rosterusers.jid=@JID,
684
rosterusers.nick=@Nick,
685
rosterusers.subscription=@Subscription,
686
rosterusers.ask=@Ask,
687
rosterusers.askmessage=@AskMessage,
688
rosterusers.server=@Server,
689
rosterusers.subscribe=@Subscribe,
690
rosterusers.type=@Type
691
WHERE (rosterusers.username=@Username) AND (rosterusers.jid=@JID);
695
INSERT INTO rosterusers
696
( rosterusers.username,
699
rosterusers.subscription,
701
rosterusers.askmessage,
703
rosterusers.subscribe,
719
--- Update Roster Groups if exist else add group entry
720
IF NOT EXISTS (SELECT username FROM rostergroups WITH (NOLOCK) WHERE rostergroups.username=@Username AND rostergroups.jid=@JID AND rostergroups.grp=@Grp)
722
INSERT INTO rostergroups
723
( rostergroups.username,
738
/***************************************************************/
739
/****** Object: StoredProcedure [dbo].[add_roster_group] ******/
740
/** Add or update user group entries in the roster groups **/
741
/***************************************************************/
742
CREATE PROCEDURE [dbo].[add_roster_group]
743
@Username varchar(250),
748
--- Update Roster Groups if exist else add group
749
IF NOT EXISTS (SELECT username FROM rostergroups WHERE rostergroups.username=@Username AND rostergroups.jid=@JID AND rostergroups.grp=@Grp)
751
INSERT INTO rostergroups
752
( rostergroups.username,
765
/***************************************************************/
766
/****** Object: StoredProcedure [dbo].[add_roster_user] ******/
767
/** Add or update user entries in the roster **/
768
/***************************************************************/
769
CREATE PROCEDURE [dbo].[add_roster_user]
770
@Username varchar(250),
773
@Subscription char(1),
775
@AskMessage varchar(250),
777
@Subscribe varchar(200),
779
@Grp varchar(100) = Null
783
--- Update Roster Users if exist of add new user
784
IF EXISTS (SELECT username FROM rosterusers WHERE rosterusers.username=@Username AND rosterusers.jid=@JID)
787
SET rosterusers.username=@Username,
788
rosterusers.jid=@JID,
789
rosterusers.nick=@Nick,
790
rosterusers.subscription=@Subscription,
791
rosterusers.ask=@Ask,
792
rosterusers.askmessage=@AskMessage,
793
rosterusers.server=@Server,
794
rosterusers.subscribe=@Subscribe,
795
rosterusers.type=@Type
796
WHERE (rosterusers.username=@Username) AND (rosterusers.jid=@JID);
800
INSERT INTO rosterusers
801
( rosterusers.username,
804
rosterusers.subscription,
806
rosterusers.askmessage,
808
rosterusers.subscribe,
824
--- Update Roster Group if exist of add new group
826
EXECUTE [dbo].[add_roster_group] @Username, @JID, @Grp
832
/***************************************************************/
833
/****** Object: StoredProcedure [dbo].[del_roster_groups] ******/
834
/** Remove user group entries from the roster groups table **/
835
/***************************************************************/
836
CREATE PROCEDURE [dbo].[del_roster_groups]
837
@Username varchar(250),
841
DELETE FROM rostergroups
843
WHERE (rostergroups.username = @Username) AND (rostergroups.jid = @JID);
847
/***************************************************************/
848
/****** Object: StoredProcedure [dbo].[add_spool] ******/
849
/** Add a entry to the spool table **/
850
/***************************************************************/
851
CREATE PROCEDURE [dbo].[add_spool]
852
@Username varchar(250),
867
/***************************************************************/
868
/****** Object: StoredProcedure [dbo].[add_user] ******/
869
/** Add or update user entries to jabber **/
870
/***************************************************************/
871
CREATE PROCEDURE [dbo].[add_user]
872
@Username varchar(200),
873
@Password varchar(50)
887
/******************************************************************/
888
/****** Object: StoredProcedure [dbo].[set_password] **/
889
/** Update users password **/
890
/******************************************************************/
891
CREATE PROCEDURE [dbo].[set_password]
892
@Username varchar(200),
893
@Password varchar(50)
896
IF EXISTS (SELECT username FROM users WITH (NOLOCK) WHERE username=@Username)
898
UPDATE users SET username=@Username, password=@Password WHERE username=@Username;
902
INSERT INTO users (username, password) VALUES (@Username, @Password);
907
/******************************************************************/
908
/****** Object: StoredProcedure [dbo].[get_password] **/
909
/** Retrive the user password **/
910
/******************************************************************/
911
CREATE PROCEDURE [dbo].[get_password]
912
@Username varchar(200)
915
SELECT users.password as password
916
FROM users WITH (NOLOCK)
917
WHERE username=@Username;
921
/******************************************************************/
922
/****** Object: StoredProcedure [dbo].[set_roster_version] **/
923
/** Update users roster_version **/
924
/******************************************************************/
925
CREATE PROCEDURE [dbo].[set_roster_version]
926
@Username varchar(200),
927
@Version varchar(8000)
930
IF EXISTS (SELECT username FROM roster_version WITH (NOLOCK) WHERE username=@Username)
932
UPDATE roster_version SET username=@Username, version=@Version WHERE username=@Username;
936
INSERT INTO roster_version (username, version) VALUES (@Username, @Version);
941
/******************************************************************/
942
/****** Object: StoredProcedure [dbo].[get_roster_version] **/
943
/** Retrive the user roster_version **/
944
/******************************************************************/
945
CREATE PROCEDURE [dbo].[get_roster_version]
946
@Username varchar(200)
949
SELECT roster_version.version as version
950
FROM roster_version WITH (NOLOCK)
951
WHERE username=@Username;
955
/***************************************************************/
956
/****** Object: StoredProcedure [dbo].[clean_spool_msg] ******/
957
/** Delete messages older that 3 days from spool **/
958
/***************************************************************/
959
CREATE PROCEDURE [dbo].[clean_spool_msg]
965
-- Delete small amounts because if locks the database table
969
WHILE (@myRowCount) > 0
972
SELECT @dt = DATEADD(d, -3, GETDATE())
975
WHERE (MustDelete=1) OR (Created < @dt);
977
SET @myRowCount = @@RowCount
983
/***************************************************************/
984
/****** Object: StoredProcedure [dbo].[del_last] ******/
985
/** Delete an entry from the last table **/
986
/***************************************************************/
987
CREATE PROCEDURE [dbo].[del_last]
988
@Username varchar(250)
993
WHERE [last].username=@Username;
997
/***************************************************************/
998
/****** Object: StoredProcedure [dbo].[del_roster] ******/
999
/** Delete an entry from the roster **/
1000
/***************************************************************/
1001
CREATE PROCEDURE [dbo].[del_roster]
1002
@Username varchar(250),
1007
DELETE FROM rosterusers
1009
WHERE (rosterusers.username = @Username) AND (rosterusers.jid = @JID);
1011
DELETE FROM rostergroups
1013
WHERE (rostergroups.username = @Username) AND (rostergroups.jid = @JID);
1019
/***************************************************************/
1020
/****** Object: StoredProcedure [dbo].[del_spool_msg] ******/
1021
/** Delete an entry from the spool table **/
1022
/***************************************************************/
1023
CREATE PROCEDURE [dbo].[del_spool_msg]
1024
@Username varchar(250)
1029
WHERE spool.username=@Username;
1033
/***************************************************************/
1034
/****** Object: StoredProcedure [dbo].[del_user] ******/
1035
/** Delete an entry from the user table **/
1036
/***************************************************************/
1037
CREATE PROCEDURE [dbo].[del_user]
1038
@Username varchar(200)
1043
WHERE username=@Username;
1047
/******************************************************************/
1048
/****** Object: StoredProcedure [dbo].[del_user_return_password]**/
1049
/** Delete an entry from the user table and return user password **/
1050
/******************************************************************/
1051
CREATE PROCEDURE [dbo].[del_user_return_password]
1052
@Username varchar(250)
1057
EXECUTE @Pwd = dbo.get_password @Username
1060
WHERE username=@Username
1067
/******************************************************************/
1068
/****** Object: StoredProcedure [dbo].[del_user_roster] **/
1069
/** Delete the users roster **/
1070
/******************************************************************/
1071
CREATE PROCEDURE [dbo].[del_user_roster]
1072
@Username varchar(250)
1076
DELETE FROM rosterusers
1078
WHERE rosterusers.username = @Username;
1080
DELETE FROM rostergroups
1082
WHERE rostergroups.username = @Username;
1088
/******************************************************************/
1089
/****** Object: StoredProcedure [dbo].[get_and_del_spool_msg] **/
1090
/** Fetch and delete the users offline messages **/
1091
/******************************************************************/
1092
CREATE PROCEDURE [dbo].[get_and_del_spool_msg]
1093
@Username varchar(250)
1096
@vSpool table( username varchar(1),
1099
IF EXISTS (SELECT username FROM spool with (nolock) WHERE spool.username=@Username)
1101
SELECT spool.username AS username,
1103
FROM spool WITH (NOLOCK)
1104
WHERE spool.username=@Username;
1108
WHERE spool.username=@Username
1112
SELECT * FROM @vSpool;
1117
/******************************************************************/
1118
/****** Object: StoredProcedure [dbo].[get_last] **/
1119
/** Retrive the last user login **/
1120
/******************************************************************/
1121
CREATE PROCEDURE [dbo].[get_last]
1122
@Username varchar(250)
1125
SELECT last.seconds AS seconds,
1127
FROM last WITH (NOLOCK)
1128
WHERE last.username=@Username;
1132
/******************************************************************/
1133
/****** Object: StoredProcedure [dbo].[get_roster] **/
1134
/** Retrive the user roster **/
1135
/******************************************************************/
1136
CREATE PROCEDURE [dbo].[get_roster]
1137
@Username varchar(250)
1140
@vRosterusers table( username varchar(1),
1143
subscription varchar(1),
1145
askmessage varchar(1),
1147
subscribe varchar(1),
1150
IF EXISTS (SELECT username FROM rosterusers with (nolock) WHERE rosterusers.username = @Username)
1152
SELECT rosterusers.username AS username,
1153
rosterusers.jid AS jid,
1154
rosterusers.nick AS nick,
1155
rosterusers.subscription AS subscription,
1156
rosterusers.ask AS ask,
1157
rosterusers.askmessage AS askmessage,
1158
rosterusers.server AS server,
1159
rosterusers.subscribe AS subscribe,
1160
rosterusers.type AS type
1161
FROM rosterusers WITH (NOLOCK)
1162
WHERE rosterusers.username = @Username;
1166
SELECT * FROM @vRosterusers
1171
/******************************************************************/
1172
/****** Object: StoredProcedure [dbo].[get_roster_by_jid] **/
1173
/** Retrive the user roster via JID **/
1174
/******************************************************************/
1175
CREATE PROCEDURE [dbo].[get_roster_by_jid]
1176
@Username varchar(200),
1180
@vRosterusers table( username varchar(1),
1183
subscription varchar(1),
1185
askmessage varchar(1),
1187
subscribe varchar(1),
1190
IF EXISTS (SELECT username FROM rosterusers with (nolock) WHERE (rosterusers.username = @Username) AND (rosterusers.jid = @JID))
1192
SELECT rosterusers.username AS username,
1193
rosterusers.jid AS jid,
1194
rosterusers.nick AS nick,
1195
rosterusers.subscription AS subscription,
1196
rosterusers.ask AS ask,
1197
rosterusers.askmessage AS askmessage,
1198
rosterusers.server AS server,
1199
rosterusers.subscribe AS subscribe,
1200
rosterusers.type AS type
1201
FROM rosterusers WITH (NOLOCK)
1202
WHERE (rosterusers.username = @Username) AND (rosterusers.jid = @JID);
1206
SELECT * FROM @vRosterusers
1211
/******************************************************************/
1212
/****** Object: StoredProcedure [dbo].[get_roster_jid_groups] **/
1213
/** Retrieve the user roster groups **/
1214
/******************************************************************/
1215
CREATE PROCEDURE [dbo].[get_roster_jid_groups]
1216
@Username varchar(200)
1219
@vrostergroups table( jid varchar(1),
1222
IF EXISTS (SELECT username FROM rostergroups with (nolock) WHERE rostergroups.username = @Username)
1224
SELECT rostergroups.jid AS jid,
1225
rostergroups.grp AS grp
1226
FROM rostergroups WITH (NOLOCK)
1227
WHERE rostergroups.username = @Username;
1231
SELECT * FROM @vrostergroups
1236
/******************************************************************/
1237
/****** Object: StoredProcedure [dbo].[get_roster_groups] **/
1238
/** Retrive the user roster groups **/
1239
/******************************************************************/
1240
CREATE PROCEDURE [dbo].[get_roster_groups]
1241
@Username varchar(200),
1245
@vrostergroups table( grp varchar(1))
1247
IF EXISTS (SELECT username FROM rostergroups with (nolock) WHERE rostergroups.username = @Username)
1249
SELECT rostergroups.grp AS grp
1250
FROM rostergroups WITH (NOLOCK)
1251
WHERE (rostergroups.username = @Username) AND (rostergroups.jid = @JID);
1255
SELECT * FROM @vrostergroups
1260
/******************************************************************/
1261
/****** Object: StoredProcedure [dbo].[get_rostergroup_by_jid] **/
1262
/** Retrive the user roster groups via JID **/
1263
/******************************************************************/
1264
CREATE PROCEDURE [dbo].[get_rostergroup_by_jid]
1265
@Username varchar(250),
1269
@vrostergroups table(grp varchar(1))
1271
IF EXISTS (SELECT username FROM rostergroups with (nolock) WHERE rostergroups.username=@Username AND rostergroups.jid=@JID)
1273
SELECT rostergroups.grp AS grp
1274
FROM rostergroups WITH (NOLOCK)
1275
WHERE rostergroups.username=@Username AND rostergroups.jid=@JID;
1279
SELECT * FROM @vrostergroups
1284
/******************************************************************/
1285
/****** Object: StoredProcedure [dbo].[get_subscription] **/
1286
/** Retrive the user subscription requests **/
1287
/******************************************************************/
1288
CREATE PROCEDURE [dbo].[get_subscription]
1289
@Username varchar(250),
1293
@vrosterusers table( subscription varchar(1))
1295
IF EXISTS (SELECT username FROM rosterusers with (nolock) WHERE rosterusers.username=@Username AND rosterusers.jid=@JID)
1297
SELECT rosterusers.subscription AS subscription
1298
FROM rosterusers WITH (NOLOCK)
1299
WHERE rosterusers.username=@Username AND rosterusers.jid=@JID;
1303
SELECT * FROM @vrosterusers
1308
/******************************************************************/
1309
/****** Object: StoredProcedure [dbo].[list_users] **/
1310
/** Retrieve a list of all users **/
1311
/******************************************************************/
1312
CREATE PROCEDURE [dbo].[list_users]
1315
SELECT users.username AS username FROM users WITH (NOLOCK);
1319
/******************************************************************/
1320
/****** Object: StoredProcedure [dbo].[set_last] **/
1321
/** Update users last login status **/
1322
/******************************************************************/
1323
CREATE PROCEDURE [dbo].[set_last]
1324
@Username varchar(250),
1325
@Seconds varchar(50),
1329
IF EXISTS (SELECT username FROM [last] WITH (NOLOCK) WHERE username=@Username)
1332
SET [last].username = @Username,
1333
[last].seconds = @Seconds,
1334
[last].state = @State
1335
WHERE last.username=@Username;
1353
/******************************************************************/
1354
/****** Object: StoredProcedure [dbo].[set_private_data] **/
1355
/** store user private data by namespace **/
1356
/******************************************************************/
1357
CREATE PROCEDURE [dbo].[set_private_data]
1358
@Username varchar(250),
1359
@Namespace varchar(250),
1363
IF EXISTS (SELECT username FROM private_storage with (nolock) WHERE private_storage.username = @Username AND private_storage.namespace = @Namespace)
1365
UPDATE [private_storage]
1366
SET [private_storage].username = @Username,
1367
[private_storage].namespace = @Namespace,
1368
[private_storage].data = @Data
1369
WHERE private_storage.username = @Username AND private_storage.namespace = @Namespace;
1373
INSERT INTO [private_storage]
1374
( [private_storage].username,
1375
[private_storage].namespace,
1376
[private_storage].data
1387
/******************************************************************/
1388
/****** Object: StoredProcedure [dbo].[get_private_data] **/
1389
/** Retrieve user private data by namespace **/
1390
/******************************************************************/
1391
CREATE PROCEDURE [dbo].[get_private_data]
1392
@Username varchar(250),
1393
@Namespace varchar(250)
1396
SELECT private_storage.data AS data
1397
FROM private_storage WITH (NOLOCK)
1398
WHERE username=@Username and namespace=@Namespace;
1402
/***************************************************************/
1403
/****** Object: StoredProcedure [dbo].[del_user_storage] ******/
1404
/** Delete private storage area for a given user **/
1405
/***************************************************************/
1406
CREATE PROCEDURE [dbo].[del_user_storage]
1407
@Username varchar(250)
1410
DELETE FROM [private_storage]
1412
WHERE [private_storage].username=@Username;
1417
/******************************************************************/
1418
/****** Object: StoredProcedure [dbo].[set_vcard] **/
1419
/** Set the user's vCard **/
1420
/******************************************************************/
1421
CREATE PROCEDURE [dbo].[set_vcard]
1422
@VCard varchar(8000),
1423
@Username varchar(250),
1424
@Lusername varchar(250),
1427
@Family varchar(8000),
1428
@Lfamily varchar(250),
1429
@Given varchar(8000),
1430
@Lgiven varchar(250),
1431
@Middle varchar(8000),
1432
@Lmiddle varchar(250),
1433
@Nickname varchar(8000),
1434
@Lnickname varchar(250),
1435
@Bday varchar(8000),
1436
@Lbday varchar(250),
1437
@Ctry varchar(8000),
1438
@Lctry varchar(250),
1439
@Locality varchar(8000),
1440
@Llocality varchar(250),
1441
@Email varchar(8000),
1442
@Lemail varchar(250),
1443
@Orgname varchar(8000),
1444
@Lorgname varchar(250),
1445
@Orgunit varchar(8000),
1446
@Lorgunit varchar(250)
1449
IF EXISTS (SELECT username FROM vcard with (nolock) WHERE vcard.username = @Username)
1452
SET [vcard].username = @LUsername,
1453
[vcard].vcard = @Vcard
1454
WHERE vcard.username = @LUsername;
1456
UPDATE [vcard_search]
1457
SET [vcard_search].username = @Username,
1458
[vcard_search].lusername = @Lusername,
1459
[vcard_search].fn = @Fn,
1460
[vcard_search].lfn = @Lfn,
1461
[vcard_search].family = @Family,
1462
[vcard_search].lfamily = @Lfamily,
1463
[vcard_search].given = @Given,
1464
[vcard_search].lgiven = @Lgiven,
1465
[vcard_search].middle = @Middle,
1466
[vcard_search].lmiddle = @Lmiddle,
1467
[vcard_search].nickname = @Nickname,
1468
[vcard_search].lnickname = @Lnickname,
1469
[vcard_search].bday = @Bday,
1470
[vcard_search].lbday = @Lbday,
1471
[vcard_search].ctry = @Ctry,
1472
[vcard_search].lctry = @Lctry,
1473
[vcard_search].locality = @Locality,
1474
[vcard_search].llocality = @Llocality,
1475
[vcard_search].email = @Email,
1476
[vcard_search].lemail = @Lemail,
1477
[vcard_search].orgname = @Orgname,
1478
[vcard_search].lorgname = @Lorgname,
1479
[vcard_search].orgunit = @Orgunit,
1480
[vcard_search].lorgunit = @Lorgunit
1481
WHERE vcard_search.lusername = @LUsername;
1494
INSERT INTO [vcard_search]
1496
[vcard_search].username ,
1497
[vcard_search].lusername ,
1499
[vcard_search].lfn ,
1500
[vcard_search].family ,
1501
[vcard_search].lfamily ,
1502
[vcard_search].given ,
1503
[vcard_search].lgiven ,
1504
[vcard_search].middle ,
1505
[vcard_search].lmiddle ,
1506
[vcard_search].nickname,
1507
[vcard_search].lnickname,
1508
[vcard_search].bday,
1509
[vcard_search].lbday,
1510
[vcard_search].ctry,
1511
[vcard_search].lctry,
1512
[vcard_search].locality,
1513
[vcard_search].llocality,
1514
[vcard_search].email,
1515
[vcard_search].lemail,
1516
[vcard_search].orgname,
1517
[vcard_search].lorgname,
1518
[vcard_search].orgunit,
1519
[vcard_search].lorgunit
1552
/******************************************************************/
1553
/****** Object: StoredProcedure [dbo].[get_vcard] **/
1554
/** Retrive the user's vCard **/
1555
/******************************************************************/
1556
CREATE PROCEDURE [dbo].[get_vcard]
1557
@Username varchar(250)
1560
SELECT vcard.vcard as vcard
1561
FROM vcard WITH (NOLOCK)
1562
WHERE username=@Username;
1566
/******************************************************************/
1567
/****** Object: StoredProcedure [dbo].[get_default_privacy_list]**/
1568
/** Retrive the user's default privacy list **/
1569
/******************************************************************/
1570
CREATE PROCEDURE [dbo].[get_default_privacy_list]
1571
@Username varchar(250)
1575
FROM privacy_default_list list WITH (NOLOCK)
1576
WHERE list.username=@Username
1580
/******************************************************************/
1581
/****** Object: StoredProcedure [dbo].[get_privacy_list_names] **/
1582
/** Retrive the user's default privacy list names **/
1583
/******************************************************************/
1584
CREATE PROCEDURE [dbo].[get_privacy_list_names]
1585
@username varchar(250)
1589
FROM privacy_list list WITH (NOLOCK)
1590
WHERE list.username=@Username
1594
/******************************************************************/
1595
/****** Object: StoredProcedure [dbo].[get_privacy_list_id] **/
1597
/******************************************************************/
1598
CREATE PROCEDURE [dbo].[get_privacy_list_id]
1599
@username varchar(250),
1603
SELECT id FROM privacy_list
1604
WHERE username=@Username
1609
/******************************************************************/
1610
/****** Object: StoredProcedure [dbo].[get_privacy_list_data] **/
1612
/******************************************************************/
1613
CREATE PROCEDURE [dbo].[get_privacy_list_data]
1614
@username varchar(250),
1624
l_data.match_message,
1625
l_data.match_presence_in,
1626
l_data.match_presence_out
1627
FROM privacy_list_data l_data (NOLOCK)
1628
WHERE l_data.id = (SELECT list.id
1629
FROM privacy_list list
1630
WHERE list.username=@username
1631
AND list.name=@SName)
1636
/******************************************************************/
1637
/****** Object: StoredProcedure [dbo].[get_privacy_list_data_by_id]**/
1639
/******************************************************************/
1640
CREATE PROCEDURE [dbo].[get_privacy_list_data_by_id]
1650
l_data.match_message,
1651
l_data.match_presence_in,
1652
l_data.match_presence_out
1653
FROM privacy_list_data l_data (NOLOCK)
1659
/******************************************************************/
1660
/****** Object: StoredProcedure [dbo].[set_default_privacy_list]**/
1662
/******************************************************************/
1663
CREATE PROCEDURE [dbo].[set_default_privacy_list]
1664
@username varchar(250),
1668
IF EXISTS (SELECT username FROM privacy_default_list with (nolock) WHERE privacy_default_list.username = @Username AND privacy_default_list.name = @Sname)
1670
UPDATE [privacy_default_list]
1671
SET [privacy_default_list].username = @Username,
1672
[privacy_default_list].name = @Sname
1673
WHERE privacy_default_list.username = @Username
1677
INSERT INTO [privacy_default_list]
1678
( [privacy_default_list].username,
1679
[privacy_default_list].name
1689
/******************************************************************/
1690
/****** Object: StoredProcedure [dbo].[unset_default_privacy_list]**/
1692
/******************************************************************/
1693
CREATE PROCEDURE [dbo].[unset_default_privacy_list]
1694
@username varchar(250)
1698
FROM privacy_default_list
1699
WHERE privacy_default_list.username=@username
1703
/******************************************************************/
1704
/****** Object: StoredProcedure [dbo].[remove_privacy_list] **/
1706
/******************************************************************/
1707
CREATE PROCEDURE [dbo].[remove_privacy_list]
1708
@username varchar(250),
1714
WHERE privacy_list.username=@username
1715
AND privacy_list.name=@SName
1719
/******************************************************************/
1720
/****** Object: StoredProcedure [dbo].[add_privacy_list] **/
1722
/******************************************************************/
1723
CREATE PROCEDURE [dbo].[add_privacy_list]
1724
@username varchar(250),
1728
INSERT INTO privacy_list(username, name)
1729
VALUES (@username, @SName)
1733
/******************************************************************/
1734
/****** Object: StoredProcedure [dbo].[set_privacy_list] **/
1736
/******************************************************************/
1737
CREATE PROCEDURE [dbo].[set_privacy_list]
1746
@match_presence_in bit,
1747
@match_presence_out bit
1750
insert into privacy_list_data (
1777
/******************************************************************/
1778
/****** Object: StoredProcedure [dbo].[del_privacy_list_by_id] **/
1780
/******************************************************************/
1781
CREATE PROCEDURE [dbo].[del_privacy_list_by_id]
1785
DELETE FROM privacy_list_data
1786
WHERE privacy_list_data.id=@Id
1790
/******************************************************************/
1791
/****** Object: StoredProcedure [dbo].[del_privacy_lists] **/
1793
/******************************************************************/
1794
CREATE PROCEDURE [dbo].[del_privacy_lists]
1795
@Server varchar(250),
1796
@username varchar(250)
1799
DELETE FROM privacy_list WHERE username=@username
1800
DELETE FROM privacy_list_data WHERE convert(varchar,value)=@username+'@'+@Server
1801
DELETE FROM privacy_default_list WHERE username=@username