view db/sat_pubsub_update_3_4.sql @ 374:40e5edd7ea11

storage: changed items order: items were so far ordered by item_id, i.e. by order of creation. This has been changed to order them by date of last update, so an item overwritting an old one appears on top (with former behaviour, it was staying at the same place). The XEP is not clear on that, but this seems more in correct with ยง 6.5.7 which says "implementations SHOULD return the N most recent (as opposed to the N oldest) items".
author Goffi <goffi@goffi.org>
date Thu, 03 Jan 2019 20:31:03 +0100
parents a772f7dac930
children 1dc606612405
line wrap: on
line source

-- we check version of the database before doing anything
-- and stop execution if not good
\set ON_ERROR_STOP
DO $$
DECLARE ver text;
BEGIN
    SELECT value INTO ver FROM metadata WHERE key='version';
    IF NOT FOUND OR ver!='3' THEN
        RAISE EXCEPTION 'This update file need to be applied on database schema version 3, you use version %',ver;
    END IF;
END$$;
\unset ON_ERROR_STOP
-- end of version check

/* new "serial ids" option */
ALTER TABLE nodes ADD COLUMN serial_ids boolean NOT NULL DEFAULT FALSE;

/* we want to keep creation and update times */
ALTER TABLE items RENAME COLUMN date TO created;
ALTER TABLE items ADD COLUMN updated timestamp with time zone NOT NULL DEFAULT now();

UPDATE metadata SET value='4' WHERE key='version';