presence-create.sql 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. CREATE TABLE presentity (
  2. id NUMBER(10) PRIMARY KEY,
  3. username VARCHAR2(64),
  4. domain VARCHAR2(64),
  5. event VARCHAR2(64),
  6. etag VARCHAR2(128),
  7. expires NUMBER(10),
  8. received_time NUMBER(10),
  9. body BLOB,
  10. sender VARCHAR2(128),
  11. priority NUMBER(10) DEFAULT 0 NOT NULL,
  12. ruid VARCHAR2(64),
  13. CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag),
  14. CONSTRAINT presentity_ruid_idx UNIQUE (ruid)
  15. );
  16. CREATE OR REPLACE TRIGGER presentity_tr
  17. before insert on presentity FOR EACH ROW
  18. BEGIN
  19. auto_id(:NEW.id);
  20. END presentity_tr;
  21. /
  22. BEGIN map2users('presentity'); END;
  23. /
  24. CREATE INDEX presentity_presentity_expires ON presentity (expires);
  25. CREATE INDEX presentity_account_idx ON presentity (username, domain, event);
  26. INSERT INTO version (table_name, table_version) values ('presentity','5');
  27. CREATE TABLE active_watchers (
  28. id NUMBER(10) PRIMARY KEY,
  29. presentity_uri VARCHAR2(128),
  30. watcher_username VARCHAR2(64),
  31. watcher_domain VARCHAR2(64),
  32. to_user VARCHAR2(64),
  33. to_domain VARCHAR2(64),
  34. event VARCHAR2(64) DEFAULT 'presence',
  35. event_id VARCHAR2(64),
  36. to_tag VARCHAR2(128),
  37. from_tag VARCHAR2(128),
  38. callid VARCHAR2(255),
  39. local_cseq NUMBER(10),
  40. remote_cseq NUMBER(10),
  41. contact VARCHAR2(128),
  42. record_route CLOB,
  43. expires NUMBER(10),
  44. status NUMBER(10) DEFAULT 2 NOT NULL,
  45. reason VARCHAR2(64),
  46. version NUMBER(10) DEFAULT 0 NOT NULL,
  47. socket_info VARCHAR2(64),
  48. local_contact VARCHAR2(128),
  49. from_user VARCHAR2(64),
  50. from_domain VARCHAR2(64),
  51. updated NUMBER(10),
  52. updated_winfo NUMBER(10),
  53. flags NUMBER(10) DEFAULT 0 NOT NULL,
  54. user_agent VARCHAR2(255) DEFAULT '',
  55. CONSTRAINT ORA_active_watchers_idx UNIQUE (callid, to_tag, from_tag)
  56. );
  57. CREATE OR REPLACE TRIGGER active_watchers_tr
  58. before insert on active_watchers FOR EACH ROW
  59. BEGIN
  60. auto_id(:NEW.id);
  61. END active_watchers_tr;
  62. /
  63. BEGIN map2users('active_watchers'); END;
  64. /
  65. CREATE INDEX ORA_active_watchers_expires ON active_watchers (expires);
  66. CREATE INDEX ORA_active_watchers_pres ON active_watchers (presentity_uri, event);
  67. CREATE INDEX active_watchers_updated_idx ON active_watchers (updated);
  68. CREATE INDEX ORA_updated_winfo_idx ON active_watchers (updated_winfo, presentity_uri);
  69. INSERT INTO version (table_name, table_version) values ('active_watchers','12');
  70. CREATE TABLE watchers (
  71. id NUMBER(10) PRIMARY KEY,
  72. presentity_uri VARCHAR2(128),
  73. watcher_username VARCHAR2(64),
  74. watcher_domain VARCHAR2(64),
  75. event VARCHAR2(64) DEFAULT 'presence',
  76. status NUMBER(10),
  77. reason VARCHAR2(64),
  78. inserted_time NUMBER(10),
  79. CONSTRAINT watchers_watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event)
  80. );
  81. CREATE OR REPLACE TRIGGER watchers_tr
  82. before insert on watchers FOR EACH ROW
  83. BEGIN
  84. auto_id(:NEW.id);
  85. END watchers_tr;
  86. /
  87. BEGIN map2users('watchers'); END;
  88. /
  89. INSERT INTO version (table_name, table_version) values ('watchers','3');
  90. CREATE TABLE xcap (
  91. id NUMBER(10) PRIMARY KEY,
  92. username VARCHAR2(64),
  93. domain VARCHAR2(64),
  94. doc BLOB,
  95. doc_type NUMBER(10),
  96. etag VARCHAR2(128),
  97. source NUMBER(10),
  98. doc_uri VARCHAR2(255),
  99. port NUMBER(10),
  100. CONSTRAINT xcap_doc_uri_idx UNIQUE (doc_uri)
  101. );
  102. CREATE OR REPLACE TRIGGER xcap_tr
  103. before insert on xcap FOR EACH ROW
  104. BEGIN
  105. auto_id(:NEW.id);
  106. END xcap_tr;
  107. /
  108. BEGIN map2users('xcap'); END;
  109. /
  110. CREATE INDEX xcap_account_doc_type_idx ON xcap (username, domain, doc_type);
  111. CREATE INDEX xcap_account_doc_type_uri_idx ON xcap (username, domain, doc_type, doc_uri);
  112. CREATE INDEX xcap_account_doc_uri_idx ON xcap (username, domain, doc_uri);
  113. INSERT INTO version (table_name, table_version) values ('xcap','4');
  114. CREATE TABLE pua (
  115. id NUMBER(10) PRIMARY KEY,
  116. pres_uri VARCHAR2(128),
  117. pres_id VARCHAR2(255),
  118. event NUMBER(10),
  119. expires NUMBER(10),
  120. desired_expires NUMBER(10),
  121. flag NUMBER(10),
  122. etag VARCHAR2(128),
  123. tuple_id VARCHAR2(64),
  124. watcher_uri VARCHAR2(128),
  125. call_id VARCHAR2(255),
  126. to_tag VARCHAR2(128),
  127. from_tag VARCHAR2(128),
  128. cseq NUMBER(10),
  129. record_route CLOB,
  130. contact VARCHAR2(128),
  131. remote_contact VARCHAR2(128),
  132. version NUMBER(10),
  133. extra_headers CLOB,
  134. CONSTRAINT pua_pua_idx UNIQUE (etag, tuple_id, call_id, from_tag)
  135. );
  136. CREATE OR REPLACE TRIGGER pua_tr
  137. before insert on pua FOR EACH ROW
  138. BEGIN
  139. auto_id(:NEW.id);
  140. END pua_tr;
  141. /
  142. BEGIN map2users('pua'); END;
  143. /
  144. CREATE INDEX pua_expires_idx ON pua (expires);
  145. CREATE INDEX pua_dialog1_idx ON pua (pres_id, pres_uri);
  146. CREATE INDEX pua_dialog2_idx ON pua (call_id, from_tag);
  147. CREATE INDEX pua_record_idx ON pua (pres_id);
  148. INSERT INTO version (table_name, table_version) values ('pua','7');