]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/1065.schema.serial_pattern_templates.sql
LP#1772955: Only include xacts with balance in summary
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 1065.schema.serial_pattern_templates.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('1065', :eg_version);
4
5 CREATE TABLE serial.pattern_template (
6     id            SERIAL PRIMARY KEY,
7     name          TEXT NOT NULL,
8     pattern_code  TEXT NOT NULL,
9     owning_lib    INTEGER REFERENCES actor.org_unit(id) DEFERRABLE INITIALLY DEFERRED,
10     share_depth   INTEGER NOT NULL DEFAULT 0
11 );
12 CREATE INDEX serial_pattern_template_name_idx ON serial.pattern_template (evergreen.lowercase(name));
13
14 CREATE OR REPLACE FUNCTION serial.pattern_templates_visible_to(org_unit INT) RETURNS SETOF serial.pattern_template AS $func$
15 BEGIN
16     RETURN QUERY SELECT *
17            FROM serial.pattern_template spt
18            WHERE (
19              SELECT ARRAY_AGG(id)
20              FROM actor.org_unit_descendants(spt.owning_lib, spt.share_depth)
21            ) @@ org_unit::TEXT::QUERY_INT;
22 END;
23 $func$ LANGUAGE PLPGSQL;
24
25 COMMIT;