]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0569.schema.unapi-auri-fix.sql
LP#1643709: Stamping upgrade scripts
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0569.schema.unapi-auri-fix.sql
1 -- Evergreen DB patch 0569.schema.unapi-auri-fix.sql
2 --
3 --
4 BEGIN;
5
6
7 -- check whether patch can be applied
8 SELECT evergreen.upgrade_deps_block_check('0569', :eg_version);
9
10 CREATE OR REPLACE FUNCTION unapi.auri ( obj_id BIGINT, format TEXT,  ename TEXT, includes TEXT[], org TEXT, depth INT DEFAULT NULL, slimit INT DEFAULT NULL, soffset INT DEFAULT NULL, include_xmlns BOOL DEFAULT TRUE ) RETURNS XML AS $F$
11         SELECT  XMLELEMENT(
12                     name uri,
13                     XMLATTRIBUTES(
14                         CASE WHEN $9 THEN 'http://open-ils.org/spec/holdings/v1' ELSE NULL END AS xmlns,
15                         'tag:open-ils.org:U2@auri/' || uri.id AS id,
16                         use_restriction,
17                         href,
18                         label
19                     ),
20                     XMLELEMENT( name copies,
21                         CASE
22                             WHEN ('acn' = ANY ($4)) THEN
23                                 (SELECT XMLAGG(acn) FROM (SELECT unapi.acn( call_number, 'xml', 'copy', evergreen.array_remove_item_by_value($4,'auri'), $5, $6, $7, $8, FALSE) FROM asset.uri_call_number_map WHERE uri = uri.id)x)
24                             ELSE NULL
25                         END
26                     )
27                 ) AS x
28           FROM  asset.uri uri
29           WHERE uri.id = $1
30           GROUP BY uri.id, use_restriction, href, label;
31 $F$ LANGUAGE SQL;
32
33 COMMIT;