presence-create.sql 4.6 KB

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