]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/1323.schema.oai.sql
LP2045292 Color contrast for AngularJS patron bills
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 1323.schema.oai.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('1323', :eg_version);
4
5 -- VIEWS for the oai service
6 CREATE SCHEMA oai;
7
8 -- The view presents a lean table with unique bre.tc-numbers for oai paging;
9 CREATE VIEW oai.biblio AS
10   SELECT
11     bre.id                             AS rec_id,
12     bre.edit_date AT TIME ZONE 'UTC'   AS datestamp,
13     bre.deleted                        AS deleted
14   FROM
15     biblio.record_entry bre
16   ORDER BY
17     bre.id;
18
19 -- The view presents a lean table with unique are.tc-numbers for oai paging;
20 CREATE VIEW oai.authority AS
21   SELECT
22     are.id                           AS rec_id,
23     are.edit_date AT TIME ZONE 'UTC' AS datestamp,
24     are.deleted                      AS deleted
25   FROM
26     authority.record_entry AS are
27   ORDER BY
28     are.id;
29
30 CREATE OR REPLACE function oai.bib_is_visible_at_org_by_copy(bib BIGINT, org INT) RETURNS BOOL AS $F$
31 WITH corgs AS (SELECT array_agg(id) AS list FROM actor.org_unit_descendants(org))
32   SELECT EXISTS (SELECT 1 FROM asset.copy_vis_attr_cache, corgs WHERE vis_attr_vector @@ search.calculate_visibility_attribute_test('circ_lib', corgs.list)::query_int AND bib=record)
33 $F$ LANGUAGE SQL STABLE;
34
35 CREATE OR REPLACE function oai.bib_is_visible_at_org_by_luri(bib BIGINT, org INT) RETURNS BOOL AS $F$
36 WITH lorgs AS(SELECT array_agg(id) AS list FROM actor.org_unit_ancestors(org))
37   SELECT EXISTS (SELECT 1 FROM biblio.record_entry, lorgs WHERE vis_attr_vector @@ search.calculate_visibility_attribute_test('luri_org', lorgs.list)::query_int AND bib=id)
38 $F$ LANGUAGE SQL STABLE;
39
40 CREATE OR REPLACE function oai.bib_is_visible_by_source(bib BIGINT, src TEXT) RETURNS BOOL AS $F$
41   SELECT EXISTS (SELECT 1 FROM biblio.record_entry b JOIN config.bib_source s ON (b.source = s.id) WHERE transcendant AND s.source = src AND bib=b.id)
42 $F$ LANGUAGE SQL STABLE;
43
44 CREATE OR REPLACE function oai.auth_is_visible_by_axis(auth BIGINT, ax TEXT) RETURNS BOOL AS $F$
45   SELECT EXISTS (SELECT 1 FROM authority.browse_axis_authority_field_map m JOIN authority.simple_heading r on (r.atag = m.field AND r.record = auth AND m.axis = ax))
46 $F$ LANGUAGE SQL STABLE;
47
48 COMMIT;
49