presence-create.sql 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. CREATE TABLE presentity (
  2. id SERIAL PRIMARY KEY NOT NULL,
  3. username VARCHAR(64) NOT NULL,
  4. domain VARCHAR(64) NOT NULL,
  5. event VARCHAR(64) NOT NULL,
  6. etag VARCHAR(64) NOT NULL,
  7. expires INTEGER NOT NULL,
  8. received_time INTEGER NOT NULL,
  9. body BYTEA NOT NULL,
  10. sender VARCHAR(128) NOT NULL,
  11. priority INTEGER DEFAULT 0 NOT NULL,
  12. CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag)
  13. );
  14. CREATE INDEX presentity_presentity_expires ON presentity (expires);
  15. CREATE INDEX presentity_account_idx ON presentity (username, domain, event);
  16. INSERT INTO version (table_name, table_version) values ('presentity','4');
  17. CREATE TABLE active_watchers (
  18. id SERIAL PRIMARY KEY NOT NULL,
  19. presentity_uri VARCHAR(128) NOT NULL,
  20. watcher_username VARCHAR(64) NOT NULL,
  21. watcher_domain VARCHAR(64) NOT NULL,
  22. to_user VARCHAR(64) NOT NULL,
  23. to_domain VARCHAR(64) NOT NULL,
  24. event VARCHAR(64) DEFAULT 'presence' NOT NULL,
  25. event_id VARCHAR(64),
  26. to_tag VARCHAR(64) NOT NULL,
  27. from_tag VARCHAR(64) NOT NULL,
  28. callid VARCHAR(255) NOT NULL,
  29. local_cseq INTEGER NOT NULL,
  30. remote_cseq INTEGER NOT NULL,
  31. contact VARCHAR(128) NOT NULL,
  32. record_route TEXT,
  33. expires INTEGER NOT NULL,
  34. status INTEGER DEFAULT 2 NOT NULL,
  35. reason VARCHAR(64) NOT NULL,
  36. version INTEGER DEFAULT 0 NOT NULL,
  37. socket_info VARCHAR(64) NOT NULL,
  38. local_contact VARCHAR(128) NOT NULL,
  39. from_user VARCHAR(64) NOT NULL,
  40. from_domain VARCHAR(64) NOT NULL,
  41. updated INTEGER NOT NULL,
  42. updated_winfo INTEGER NOT NULL,
  43. flags INTEGER DEFAULT 0 NOT NULL,
  44. user_agent VARCHAR(255) DEFAULT '' NOT NULL,
  45. CONSTRAINT active_watchers_active_watchers_idx UNIQUE (callid, to_tag, from_tag)
  46. );
  47. CREATE INDEX active_watchers_active_watchers_expires ON active_watchers (expires);
  48. CREATE INDEX active_watchers_active_watchers_pres ON active_watchers (presentity_uri, event);
  49. CREATE INDEX active_watchers_updated_idx ON active_watchers (updated);
  50. CREATE INDEX active_watchers_updated_winfo_idx ON active_watchers (updated_winfo, presentity_uri);
  51. INSERT INTO version (table_name, table_version) values ('active_watchers','12');
  52. CREATE TABLE watchers (
  53. id SERIAL PRIMARY KEY NOT NULL,
  54. presentity_uri VARCHAR(128) NOT NULL,
  55. watcher_username VARCHAR(64) NOT NULL,
  56. watcher_domain VARCHAR(64) NOT NULL,
  57. event VARCHAR(64) DEFAULT 'presence' NOT NULL,
  58. status INTEGER NOT NULL,
  59. reason VARCHAR(64),
  60. inserted_time INTEGER NOT NULL,
  61. CONSTRAINT watchers_watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event)
  62. );
  63. INSERT INTO version (table_name, table_version) values ('watchers','3');
  64. CREATE TABLE xcap (
  65. id SERIAL PRIMARY KEY NOT NULL,
  66. username VARCHAR(64) NOT NULL,
  67. domain VARCHAR(64) NOT NULL,
  68. doc BYTEA NOT NULL,
  69. doc_type INTEGER NOT NULL,
  70. etag VARCHAR(64) NOT NULL,
  71. source INTEGER NOT NULL,
  72. doc_uri VARCHAR(255) NOT NULL,
  73. port INTEGER NOT NULL,
  74. CONSTRAINT xcap_doc_uri_idx UNIQUE (doc_uri)
  75. );
  76. CREATE INDEX xcap_account_doc_type_idx ON xcap (username, domain, doc_type);
  77. CREATE INDEX xcap_account_doc_type_uri_idx ON xcap (username, domain, doc_type, doc_uri);
  78. CREATE INDEX xcap_account_doc_uri_idx ON xcap (username, domain, doc_uri);
  79. INSERT INTO version (table_name, table_version) values ('xcap','4');
  80. CREATE TABLE pua (
  81. id SERIAL PRIMARY KEY NOT NULL,
  82. pres_uri VARCHAR(128) NOT NULL,
  83. pres_id VARCHAR(255) NOT NULL,
  84. event INTEGER NOT NULL,
  85. expires INTEGER NOT NULL,
  86. desired_expires INTEGER NOT NULL,
  87. flag INTEGER NOT NULL,
  88. etag VARCHAR(64) NOT NULL,
  89. tuple_id VARCHAR(64),
  90. watcher_uri VARCHAR(128) NOT NULL,
  91. call_id VARCHAR(255) NOT NULL,
  92. to_tag VARCHAR(64) NOT NULL,
  93. from_tag VARCHAR(64) NOT NULL,
  94. cseq INTEGER NOT NULL,
  95. record_route TEXT,
  96. contact VARCHAR(128) NOT NULL,
  97. remote_contact VARCHAR(128) NOT NULL,
  98. version INTEGER NOT NULL,
  99. extra_headers TEXT NOT NULL,
  100. CONSTRAINT pua_pua_idx UNIQUE (etag, tuple_id, call_id, from_tag)
  101. );
  102. CREATE INDEX pua_expires_idx ON pua (expires);
  103. CREATE INDEX pua_dialog1_idx ON pua (pres_id, pres_uri);
  104. CREATE INDEX pua_dialog2_idx ON pua (call_id, from_tag);
  105. CREATE INDEX pua_record_idx ON pua (pres_id);
  106. INSERT INTO version (table_name, table_version) values ('pua','7');