*/
$$;
+
+
+CREATE OR REPLACE FUNCTION actor.approve_pending_address(pending_id INT) RETURNS VOID AS $$
+DECLARE
+ old_id INT;
+BEGIN
+ SELECT INTO old_id replaces FROM actor.usr_address where id = pending_id;
+ IF old_id IS NULL THEN
+ RAISE NOTICE 'Address % does not replace any address', pending_id;
+ RETURN;
+ END IF;
+ DELETE FROM actor.usr_address WHERE id = -old_id;
+ UPDATE actor.usr_address SET id = -id WHERE id = old_id;
+ UPDATE actor.usr_address SET replaces = NULL, id = old_id WHERE id = pending_id;
+END
+$$ LANGUAGE plpgsql;
+
+COMMENT ON FUNCTION actor.approve_pending_address(INT) IS $$
+/**
+ * Replaces an address with a pending address. This is done by giving the pending
+ * address the ID of the old address. The replaced address is retained with -id.
+ */
+$$;
+
+
+