Forward port database upgrades
[evergreen-equinox.git] / Open-ILS / src / sql / Pg / version-upgrade / 3.8.3-3.8.4-upgrade-db.sql
1 --Upgrade Script for 3.8.3 to 3.8.4
2 \set eg_version '''3.8.4'''
3 BEGIN;
4 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.8.4', :eg_version);
5
6 -- check whether patch can be applied
7 SELECT evergreen.upgrade_deps_block_check('1377', :eg_version);
8
9 -- 950.data.seed-values.sql
10
11 INSERT INTO config.global_flag (name, value, enabled, label)
12 VALUES (
13     'opac.login_redirect_domains',
14     '',
15     TRUE,
16     oils_i18n_gettext(
17         'opac.login_redirect_domains',
18         'Restrict post-login redirection to local URLs, or those that match the supplied comma-separated list of foreign domains or host names.',
19         'cgf', 'label'
20     )
21 );
22
23
24
25 SELECT evergreen.upgrade_deps_block_check('1378', :eg_version);
26
27 CREATE OR REPLACE FUNCTION search.highlight_display_fields(
28     rid         BIGINT,
29     tsq_map     TEXT, -- '(a | b) & c' => '1,2,3,4', ...
30     css_class   TEXT DEFAULT 'oils_SH',
31     hl_all      BOOL DEFAULT TRUE,
32     minwords    INT DEFAULT 5,
33     maxwords    INT DEFAULT 25,
34     shortwords  INT DEFAULT 0,
35     maxfrags    INT DEFAULT 0,
36     delimiter   TEXT DEFAULT ' ... '
37 ) RETURNS SETOF search.highlight_result AS $f$
38 DECLARE
39     tsq         TEXT;
40     fields      TEXT;
41     afields     INT[];
42     seen        INT[];
43 BEGIN
44
45     FOR tsq, fields IN SELECT key, value FROM each(tsq_map::HSTORE) LOOP
46         SELECT  ARRAY_AGG(unnest::INT) INTO afields
47           FROM  unnest(regexp_split_to_array(fields,','));
48         seen := seen || afields;
49
50         RETURN QUERY
51             SELECT * FROM search.highlight_display_fields_impl(
52                 rid, tsq, afields, css_class, hl_all,minwords,
53                 maxwords, shortwords, maxfrags, delimiter
54             );
55     END LOOP;
56
57     RETURN QUERY
58         SELECT  id,
59                 source,
60                 field,
61                 evergreen.escape_for_html(value) AS value,
62                 evergreen.escape_for_html(value) AS highlight
63           FROM  metabib.display_entry
64           WHERE source = rid
65                 AND NOT (field = ANY (seen));
66 END;
67 $f$ LANGUAGE PLPGSQL ROWS 10;
68
69
70 COMMIT;
71
72 -- Update auditor tables to catch changes to source tables.
73 --   Can be removed/skipped if there were no schema changes.
74 SELECT auditor.update_auditors();