1.97.  setdropsequence( integer )

Propriétés de la fonction
Langage: PLPGSQL
Type du code retour: bigint

Sur le nœud origine pour l'ensemble, supprime la séquence seq_id de l'ensemble de réplication, puis ajoute l'événement SET_DROP_SEQUENCE pour répliquer cette suppression sur les nœuds abonnés.

declare
        p_seq_id                alias for $1;
        v_set_id                int4;
        v_set_origin            int4;
begin
        -- ----
        -- Grab the central configuration lock
        -- ----
        lock table sl_config_lock;

        -- ----
        -- Determine set id for this sequence
        -- ----
        select seq_set into v_set_id from sl_sequence where seq_id = p_seq_id;

        -- ----
        -- Ensure sequence exists
        -- ----
        if not found then
                raise exception 'Slony-I: setDropSequence_int(): sequence % not found',
                        p_seq_id;
        end if;

        -- ----
        -- Check that we are the origin of the set
        -- ----
        select set_origin into v_set_origin
                        from sl_set
                        where set_id = v_set_id;
        if not found then
                raise exception 'Slony-I: setDropSequence(): set % not found', v_set_id;
        end if;
        if v_set_origin != getLocalNodeId('_schemadoc') then
                raise exception 'Slony-I: setDropSequence(): set % has origin at another node - submit this to that node', v_set_id;
        end if;

        -- ----
        -- Add the sequence to the set and generate the SET_ADD_SEQUENCE event
        -- ----
        perform setDropSequence_int(p_seq_id);
        return  createEvent('_schemadoc', 'SET_DROP_SEQUENCE',
                        p_seq_id);
end;