update_tables_0.4.x-0.5.pgsql
changeset 80 5dedc673524e
parent 71 4c94ba297698
child 81 89b71a9abfcf
equal deleted inserted replaced
79:0ae7597eed11 80:5dedc673524e
   105            transport.transport
   105            transport.transport
   106       FROM users
   106       FROM users
   107            LEFT JOIN transport USING (tid)
   107            LEFT JOIN transport USING (tid)
   108            LEFT JOIN domain_name USING (gid);
   108            LEFT JOIN domain_name USING (gid);
   109 
   109 
   110 CREATE OR REPLACE VIEW vmm_alias_count AS
       
   111     SELECT count(DISTINCT address) AS aliases, gid
       
   112       FROM alias 
       
   113   GROUP BY gid;
       
   114 
       
   115 CREATE OR REPLACE VIEW vmm_domain_info AS
   110 CREATE OR REPLACE VIEW vmm_domain_info AS
   116     SELECT gid, domainname, transport, domaindir,
   111     SELECT gid, domainname, transport, domaindir,
   117            count(uid) AS accounts,
   112            count(uid) AS accounts,
   118            aliases,
   113            (SELECT count(DISTINCT address)
       
   114               FROM alias
       
   115              WHERE alias.gid = domain_data.gid) AS aliases,
       
   116            (SELECT count(gid)
       
   117               FROM relocated
       
   118              WHERE relocated.gid = domain_data.gid) AS relocated,
   119            (SELECT count(gid)
   119            (SELECT count(gid)
   120               FROM domain_name
   120               FROM domain_name
   121              WHERE domain_name.gid = domain_data.gid
   121              WHERE domain_name.gid = domain_data.gid
   122                AND NOT domain_name.is_primary) AS aliasdomains
   122                AND NOT domain_name.is_primary) AS aliasdomains
   123       FROM domain_data
   123       FROM domain_data
   124            LEFT JOIN domain_name USING (gid)
   124            LEFT JOIN domain_name USING (gid)
   125            LEFT JOIN transport USING (tid)
   125            LEFT JOIN transport USING (tid)
   126            LEFT JOIN users USING (gid)
   126            LEFT JOIN users USING (gid)
   127            LEFT JOIN vmm_alias_count USING (gid)
       
   128      WHERE domain_name.is_primary
   127      WHERE domain_name.is_primary
   129   GROUP BY gid, domainname, transport, domaindir, aliases;
   128   GROUP BY gid, domainname, transport, domaindir;
   130 
   129 
   131 
   130 
   132 DROP TABLE domains;
   131 DROP TABLE domains;
   133 
   132 
   134 
   133 
   149 
   148 
   150     RETURN NEW;
   149     RETURN NEW;
   151 END;
   150 END;
   152 $$ LANGUAGE plpgsql STABLE;
   151 $$ LANGUAGE plpgsql STABLE;
   153 
   152 
   154 CREATE TRIGGER primary_count BEFORE INSERT OR UPDATE ON domain_name
   153 CREATE TRIGGER primary_count_ins BEFORE INSERT ON domain_name
   155     FOR EACH ROW EXECUTE PROCEDURE domain_primary_trigger();
   154     FOR EACH ROW EXECUTE PROCEDURE domain_primary_trigger();
       
   155 
       
   156 CREATE TRIGGER primary_count_upd AFTER UPDATE ON domain_name
       
   157     FOR EACH ROW EXECUTE PROCEDURE domain_primary_trigger();