Buffers may be empty, in which case the query to determine the last
message ID in them returns NULL, violating the constraint for the
newly introduced column. Use 0 instead.
Closes GH-315.
FOR i IN SELECT * FROM buffer
LOOP
UPDATE buffer
FOR i IN SELECT * FROM buffer
LOOP
UPDATE buffer
+ SET lastmsgid = COALESCE((
SELECT backlog.messageid
FROM backlog
WHERE backlog.bufferid = i.bufferid
ORDER BY messageid DESC LIMIT 1
SELECT backlog.messageid
FROM backlog
WHERE backlog.bufferid = i.bufferid
ORDER BY messageid DESC LIMIT 1
WHERE buffer.bufferid = i.bufferid;
END LOOP;
RETURN;
WHERE buffer.bufferid = i.bufferid;
END LOOP;
RETURN;
+SET lastmsgid = COALESCE((
SELECT messageid
FROM backlog
WHERE backlog.bufferid = buffer.bufferid
ORDER BY messageid
DESC LIMIT 1
SELECT messageid
FROM backlog
WHERE backlog.bufferid = buffer.bufferid
ORDER BY messageid
DESC LIMIT 1