Changeset 1490 for trunk/LATMOS-Accounts/bin/la-sql-upgrade.in
- Timestamp:
- 12/01/15 09:25:48 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/bin/la-sql-upgrade.in
r1489 r1490 799 799 USING btree 800 800 (lastday NULLS LAST); 801 ], 802 }, 801 }, 802 ], 803 }, 804 { 805 ver => 16, 806 sql => [ 807 q{ 808 ALTER TABLE aliases 809 ADD CONSTRAINT aliases_ikey_uniq UNIQUE(ikey); 810 CREATE OR REPLACE FUNCTION aliases_attr_update_ref() 811 RETURNS trigger AS 812 $BODY$begin 813 814 IF (TG_OP != 'INSERT') then 815 update "aliases" set date = now() where "aliases".ikey = old.okey; 816 end if; 817 IF (TG_OP != 'DELETE') then 818 update "aliases" set date = now() where "aliases".ikey = new.okey; 819 end if; 820 821 IF (TG_OP = 'DELETE') then 822 return old; 823 ELSE 824 return new; 825 END IF; 826 827 END;$BODY$ 828 LANGUAGE plpgsql VOLATILE 829 COST 100; 830 }, 831 q{ 832 CREATE TABLE aliases_attributes_base 833 ( 834 CONSTRAINT aliases_attributes_base_pkey PRIMARY KEY (attr_key), 835 CONSTRAINT aliases_fkey FOREIGN KEY (okey) 836 REFERENCES aliases (ikey) MATCH SIMPLE 837 ON UPDATE CASCADE ON DELETE CASCADE 838 ) 839 INHERITS (attributes); 840 CREATE INDEX aliases_attributes_base_attr_fkey 841 ON aliases_attributes_base 842 USING btree 843 (attr); 844 CREATE INDEX aliases_attr_value_idx 845 ON aliases_attributes_base 846 USING btree 847 (value); 848 CREATE TRIGGER aliases_attr_update 849 AFTER INSERT OR UPDATE OR DELETE 850 ON aliases_attributes_base 851 FOR EACH ROW 852 EXECUTE PROCEDURE aliases_attr_update_ref(); 853 }, 854 q{ 855 CREATE OR REPLACE VIEW aliases_attributes AS 856 SELECT "user".name AS value, 857 'user'::text AS attr, 858 aliases.rev AS attr_key, 859 aliases.ikey AS okey 860 FROM aliases 861 JOIN "user" ON aliases.name = "user".name OR aliases.forward = ARRAY["user".name] 862 union all 863 select value, attr, attr_key, okey from aliases_attributes_base 864 UNION ALL 865 SELECT "aliases".name AS value, 866 'name'::text AS attr, 867 "aliases".rev AS attr_key, 868 "aliases".ikey AS okey 869 FROM "aliases"; 870 871 CREATE OR REPLACE RULE aliases_attributes_insert AS 872 ON INSERT TO aliases_attributes DO INSTEAD INSERT INTO aliases_attributes_base (value, attr, okey) 873 VALUES (new.value, new.attr, new.okey); 874 875 CREATE OR REPLACE RULE aliases_attributes_update AS 876 ON UPDATE TO aliases_attributes DO INSTEAD UPDATE aliases_attributes_base SET value = new.value, attr = new.attr, okey = new.okey 877 WHERE aliases_attributes_base.attr_key = old.attr_key AND aliases_attributes_base.attr = old.attr; 878 879 CREATE OR REPLACE RULE aliases_atttributes_delete AS 880 ON DELETE TO aliases_attributes DO INSTEAD DELETE FROM aliases_attributes_base 881 WHERE aliases_attributes_base.attr_key = old.attr_key AND aliases_attributes_base.attr = old.attr; 882 } 883 884 ], 885 } 803 886 ); 804 887
Note: See TracChangeset
for help on using the changeset viewer.