From 611c323ee0d0209911cee10d2aef8d249119e06e Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 29 Jul 2022 11:56:01 +0800 Subject: [PATCH] New label's position is in alphabetic order --- packages/db/migrations/0090.do.add_position_to_labels.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/db/migrations/0090.do.add_position_to_labels.sql b/packages/db/migrations/0090.do.add_position_to_labels.sql index 96bb0dae4..b2b5dcd18 100755 --- a/packages/db/migrations/0090.do.add_position_to_labels.sql +++ b/packages/db/migrations/0090.do.add_position_to_labels.sql @@ -29,7 +29,8 @@ CREATE OR REPLACE FUNCTION update_label_position() UPDATE omnivore.labels SET position = position - 1 WHERE user_id = OLD.user_id AND position > OLD.position; RETURN OLD; ELSIF (TG_OP = 'INSERT') THEN - SELECT COALESCE(MAX(position), 0) + 1 INTO new_position FROM omnivore.labels WHERE user_id = NEW.user_id; + SELECT COALESCE(MAX(position), 0) + 1 INTO new_position FROM omnivore.labels WHERE user_id = NEW.user_id AND name < NEW.name; + UPDATE omnivore.labels SET position = position + 1 WHERE user_id = NEW.user_id AND position >= new_position; NEW.position = new_position; RETURN NEW; END IF;