diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/sql/func.sql | 10 | ||||
-rw-r--r-- | util/updates/update_2.19.sql | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/util/sql/func.sql b/util/sql/func.sql index 4fc95165..23ae0fb2 100644 --- a/util/sql/func.sql +++ b/util/sql/func.sql @@ -375,7 +375,7 @@ $$ LANGUAGE plpgsql; -- PLACEHOLDERS, not complete yet -CREATE OR REPLACE FUNCTION edit_char_init(cid integer) RETURNS void AS $$ +CREATE OR REPLACE FUNCTION edit_char_init(hid integer) RETURNS void AS $$ BEGIN BEGIN CREATE TEMPORARY TABLE edit_char (LIKE chars_rev INCLUDING DEFAULTS INCLUDING CONSTRAINTS); @@ -384,13 +384,13 @@ BEGIN EXCEPTION WHEN duplicate_table THEN TRUNCATE edit_char; END; - PERFORM edit_revtable('c', cid); + PERFORM edit_revtable('c', hid); -- new char - IF cid IS NULL THEN + IF hid IS NULL THEN INSERT INTO edit_char DEFAULT VALUES; -- load revision ELSE - INSERT INTO edit_char SELECT name, original, alias, image, "desc" FROM chars_rev WHERE id = cid; + INSERT INTO edit_char SELECT name, original, alias, image, "desc" FROM chars_rev WHERE id = hid; END IF; END; $$ LANGUAGE plpgsql; @@ -663,7 +663,7 @@ $$ LANGUAGE plpgsql; --- update (vn|release|producer).(hidden|locked) on a new revision +-- update (vn|release|producer|char).(hidden|locked) on a new revision -- NOTE: this is a /before/ trigger, it modifies NEW CREATE OR REPLACE FUNCTION update_hidlock() RETURNS trigger AS $$ DECLARE diff --git a/util/updates/update_2.19.sql b/util/updates/update_2.19.sql index 43337ef9..0360feda 100644 --- a/util/updates/update_2.19.sql +++ b/util/updates/update_2.19.sql @@ -85,6 +85,8 @@ DROP FUNCTION edit_revtable(dbentry_type, integer); DROP TYPE dbentry_type; ALTER TYPE dbentry_type_tmp RENAME TO dbentry_type; +CREATE TRIGGER hidlock_update BEFORE UPDATE ON chars FOR EACH ROW WHEN (OLD.latest IS DISTINCT FROM NEW.latest) EXECUTE PROCEDURE update_hidlock(); + -- load the updated functions |