Sha256: 8c4322024c1137f8e1df1b3e405a22881e810a991befb6c4691322f2f2820710

Contents?: true

Size: 590 Bytes

Versions: 3

Compression:

Stored size: 590 Bytes

Contents

CREATE OR REPLACE FUNCTION "%{table}_delete" ()
  RETURNS TRIGGER
AS $$

DECLARE
  whodunnit int;

BEGIN
  IF OLD.obsoleted_dt <> 'infinity' THEN
     RAISE EXCEPTION 'can not delete old row version';
  END IF;

  SHOW mcfly.whodunnit INTO whodunnit;

  UPDATE "%{table}"
  SET "obsoleted_dt" = 'now()', "o_user_id" = whodunnit WHERE id = OLD.id;

  RETURN NULL; -- the row is not actually deleted
END;
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS %{table}_delete ON %{table};
CREATE TRIGGER "%{table}_delete" BEFORE DELETE ON "%{table}" FOR EACH ROW
EXECUTE PROCEDURE "%{table}_delete"();

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mcfly-0.0.7 lib/mcfly/delete_trig.sql
mcfly-0.0.6 lib/mcfly/delete_trig.sql
mcfly-0.0.5 lib/mcfly/delete_trig.sql