core: Add backlog trigger to update lastmsgid
[quassel.git] / src / core / SQL / PostgreSQL / setup_061_add_function_backlog_lastmsgid_update.sql
diff --git a/src/core/SQL/PostgreSQL/setup_061_add_function_backlog_lastmsgid_update.sql b/src/core/SQL/PostgreSQL/setup_061_add_function_backlog_lastmsgid_update.sql
new file mode 100644 (file)
index 0000000..9b96b4a
--- /dev/null
@@ -0,0 +1,12 @@
+CREATE OR REPLACE FUNCTION public.backlog_lastmsgid_update()
+RETURNS trigger
+AS $BODY$
+    BEGIN
+        UPDATE buffer
+        SET lastmsgid = new.messageid
+        WHERE buffer.bufferid = new.bufferid
+            AND buffer.lastmsgid < new.messageid;
+        RETURN new;
+    END
+$BODY$
+LANGUAGE plpgsql;