Advertisement
dagda1

emails

May 9th, 2014
4,375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Table: emails
  2.  
  3. DROP TABLE emails;
  4.  
  5. CREATE TABLE emails
  6. (
  7.   id serial NOT NULL,
  8.   subject text,
  9.   created_at timestamp without time zone,
  10.   updated_at timestamp without time zone,
  11.   folder text,
  12.   "references" text[],
  13.   message_id text,
  14.   CONSTRAINT emails_pkey PRIMARY KEY (id)
  15. )
  16. WITH (
  17.   OIDS=FALSE
  18. );
  19.  
  20. -- Index: emails_message_id_index
  21.  
  22. -- DROP INDEX emails_message_id_index;
  23.  
  24. CREATE INDEX emails_message_id_index
  25.   ON emails
  26.   USING btree
  27.   (message_id COLLATE pg_catalog."default");
  28.  
  29.  INSERT INTO emails(
  30.     subject, created_at, updated_at, folder,  "references", message_id)
  31.     VALUES ('root', now(), now(), 'INBOX', '{}', 'CAEBV8YT3W6XZSZph7hq0Nmc-mxZ7Ao+RorC=ZrKm1mh-QumjgA@mail.gmail.com');
  32.  
  33. INSERT INTO emails(
  34.     subject, created_at, updated_at, folder,  "references", message_id)
  35.     VALUES ('one', now(), now(), 'INBOX', '{CAEBV8YT3W6XZSZph7hq0Nmc-mxZ7Ao+RorC=ZrKm1mh-QumjgA@mail.gmail.com}','536b9d2354247_23fd346dd78f01108f@9369fd83-7877-4eec-8cc8-4b207abbae85.mail');
  36.  
  37.  INSERT INTO emails(
  38.     subject, created_at, updated_at, folder,  "references", message_id)
  39.     VALUES ('two', now(), now(), 'INBOX', '{CAEBV8YT3W6XZSZph7hq0Nmc-mxZ7Ao+RorC=ZrKm1mh-QumjgA@mail.gmail.com,536b9d2354247_23fd346dd78f01108f@9369fd83-7877-4eec-8cc8-4b207abbae85.mail}','CAEBV8YRm0-bmZ06UdWXbUyezRbTC=BtDo2xztH0-uYwUYtJ0Bw@mail.gmail.com');
  40.  
  41. INSERT INTO emails(
  42.     subject, created_at, updated_at, folder,  "references", message_id)
  43.     VALUES ('three', now(), now(), 'INBOX', '{CAEBV8YT3W6XZSZph7hq0Nmc-mxZ7Ao+RorC=ZrKm1mh-QumjgA@mail.gmail.com,536b9d2354247_23fd346dd78f01108f@9369fd83-7877-4eec-8cc8-4b207abbae85.mail,CAEBV8YRm0-bmZ06UdWXbUyezRbTC=BtDo2xztH0-uYwUYtJ0Bw@mail.gmail.com}','536b9d5b6d64c_23fd346dd78f0111bf@9369fd83-7877-4eec-8cc8-4b207abbae85.mail');
  44.  
  45. INSERT INTO emails(
  46.     subject, created_at, updated_at, folder,  "references", message_id)
  47.     VALUES ('four', now(), now(), 'INBOX', '{CAEBV8YT3W6XZSZph7hq0Nmc-mxZ7Ao+RorC=ZrKm1mh-QumjgA@mail.gmail.com,536b9d2354247_23fd346dd78f01108f@9369fd83-7877-4eec-8cc8-4b207abbae85.mail,CAEBV8YRm0-bmZ06UdWXbUyezRbTC=BtDo2xztH0-uYwUYtJ0Bw@mail.gmail.com,536b9d5b6d64c_23fd346dd78f0111bf@9369fd83-7877-4eec-8cc8-4b207abbae85.mail}','CAEBV8YR97FSa5Bf-_+NrkV+edDM0R-NwSQmW0CXGwyg0EuG6qg@mail.gmail.com');
  48.  
  49. SELECT DISTINCT e.id, folder, subject, message_id, "references", e.updated_at,
  50. (select count(message_id)  from emails  where (select "references"[1] from emails where message_id = e.message_id) = ANY ("references") or message_id = (select "references"[1] from emails where message_id = e.message_id)) as replies
  51. FROM "emails" e
  52. WHERE ("folder" = 'INBOX');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement