2
0

presence-create.sql 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. INSERT INTO version (table_name, table_version) values ('presentity','3');
  2. CREATE TABLE presentity (
  3. id NUMBER(10) PRIMARY KEY,
  4. username VARCHAR2(64),
  5. domain VARCHAR2(64),
  6. event VARCHAR2(64),
  7. etag VARCHAR2(64),
  8. expires NUMBER(10),
  9. received_time NUMBER(10),
  10. body BLOB,
  11. sender VARCHAR2(128),
  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 ('active_watchers','11');
  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. CONSTRAINT ORA_active_watchers_idx UNIQUE (callid, to_tag, from_tag)
  52. );
  53. CREATE OR REPLACE TRIGGER active_watchers_tr
  54. before insert on active_watchers FOR EACH ROW
  55. BEGIN
  56. auto_id(:NEW.id);
  57. END active_watchers_tr;
  58. /
  59. BEGIN map2users('active_watchers'); END;
  60. /
  61. CREATE INDEX ORA_active_watchers_expires ON active_watchers (expires);
  62. CREATE INDEX ORA_active_watchers_pres ON active_watchers (presentity_uri, event);
  63. CREATE INDEX active_watchers_updated_idx ON active_watchers (updated);
  64. CREATE INDEX ORA_updated_winfo_idx ON active_watchers (updated_winfo, presentity_uri);
  65. INSERT INTO version (table_name, table_version) values ('watchers','3');
  66. CREATE TABLE watchers (
  67. id NUMBER(10) PRIMARY KEY,
  68. presentity_uri VARCHAR2(128),
  69. watcher_username VARCHAR2(64),
  70. watcher_domain VARCHAR2(64),
  71. event VARCHAR2(64) DEFAULT 'presence',
  72. status NUMBER(10),
  73. reason VARCHAR2(64),
  74. inserted_time NUMBER(10),
  75. CONSTRAINT watchers_watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event)
  76. );
  77. CREATE OR REPLACE TRIGGER watchers_tr
  78. before insert on watchers FOR EACH ROW
  79. BEGIN
  80. auto_id(:NEW.id);
  81. END watchers_tr;
  82. /
  83. BEGIN map2users('watchers'); END;
  84. /
  85. INSERT INTO version (table_name, table_version) values ('xcap','4');
  86. CREATE TABLE xcap (
  87. id NUMBER(10) PRIMARY KEY,
  88. username VARCHAR2(64),
  89. domain VARCHAR2(64),
  90. doc BLOB,
  91. doc_type NUMBER(10),
  92. etag VARCHAR2(64),
  93. source NUMBER(10),
  94. doc_uri VARCHAR2(255),
  95. port NUMBER(10),
  96. CONSTRAINT xcap_doc_uri_idx UNIQUE (doc_uri)
  97. );
  98. CREATE OR REPLACE TRIGGER xcap_tr
  99. before insert on xcap FOR EACH ROW
  100. BEGIN
  101. auto_id(:NEW.id);
  102. END xcap_tr;
  103. /
  104. BEGIN map2users('xcap'); END;
  105. /
  106. CREATE INDEX xcap_account_doc_type_idx ON xcap (username, domain, doc_type);
  107. CREATE INDEX xcap_account_doc_type_uri_idx ON xcap (username, domain, doc_type, doc_uri);
  108. CREATE INDEX xcap_account_doc_uri_idx ON xcap (username, domain, doc_uri);
  109. INSERT INTO version (table_name, table_version) values ('pua','7');
  110. CREATE TABLE pua (
  111. id NUMBER(10) PRIMARY KEY,
  112. pres_uri VARCHAR2(128),
  113. pres_id VARCHAR2(255),
  114. event NUMBER(10),
  115. expires NUMBER(10),
  116. desired_expires NUMBER(10),
  117. flag NUMBER(10),
  118. etag VARCHAR2(64),
  119. tuple_id VARCHAR2(64),
  120. watcher_uri VARCHAR2(128),
  121. call_id VARCHAR2(255),
  122. to_tag VARCHAR2(64),
  123. from_tag VARCHAR2(64),
  124. cseq NUMBER(10),
  125. record_route CLOB,
  126. contact VARCHAR2(128),
  127. remote_contact VARCHAR2(128),
  128. version NUMBER(10),
  129. extra_headers CLOB,
  130. CONSTRAINT pua_pua_idx UNIQUE (etag, tuple_id, call_id, from_tag)
  131. );
  132. CREATE OR REPLACE TRIGGER pua_tr
  133. before insert on pua FOR EACH ROW
  134. BEGIN
  135. auto_id(:NEW.id);
  136. END pua_tr;
  137. /
  138. BEGIN map2users('pua'); END;
  139. /
  140. CREATE INDEX pua_expires_idx ON pua (expires);
  141. CREATE INDEX pua_dialog1_idx ON pua (pres_id, pres_uri);
  142. CREATE INDEX pua_dialog2_idx ON pua (call_id, from_tag);
  143. CREATE INDEX pua_record_idx ON pua (pres_id);