+
+DROP TRIGGER IF EXISTS post_aggregates_stickied ON post;
+drop function
+ post_aggregates_stickied;
+
+
+alter table post ADD featured_community boolean NOT NULL DEFAULT false;
+alter table post ADD featured_local boolean NOT NULL DEFAULT false;
+update post
+set featured_community = stickied;
+alter table post DROP COLUMN stickied;
+
+alter table post_aggregates ADD featured_community boolean NOT NULL DEFAULT false;
+alter table post_aggregates ADD featured_local boolean NOT NULL DEFAULT false;
+update post_aggregates
+set featured_community = stickied;
+alter table post_aggregates DROP COLUMN stickied;
+
+alter table mod_sticky_post
+rename column stickied TO featured;
+
+alter table mod_sticky_post
+alter column featured SET NOT NULL;
+
+alter table mod_sticky_post
+ADD is_featured_community boolean NOT NULL DEFAULT true;
+
+alter table mod_sticky_post
+Rename To mod_feature_post;
+
+create function post_aggregates_featured_community()
+returns trigger language plpgsql
+as $$
+begin
+ update post_aggregates pa
+ set featured_community = NEW.featured_community
+ where pa.post_id = NEW.id;
+ return null;
+end $$;
+
+create function post_aggregates_featured_local()
+returns trigger language plpgsql
+as $$
+begin
+ update post_aggregates pa
+ set featured_local = NEW.featured_local
+ where pa.post_id = NEW.id;
+ return null;
+end $$;
+
+CREATE TRIGGER post_aggregates_featured_community
+ AFTER UPDATE
+ ON public.post
+ FOR EACH ROW
+ WHEN (old.featured_community IS DISTINCT FROM new.featured_community)
+ EXECUTE FUNCTION public.post_aggregates_featured_community();
+
+CREATE TRIGGER post_aggregates_featured_local
+ AFTER UPDATE
+ ON public.post
+ FOR EACH ROW
+ WHEN (old.featured_local IS DISTINCT FROM new.featured_local)
+ EXECUTE FUNCTION public.post_aggregates_featured_local();
\ No newline at end of file