]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/1038.schema.vandelay_auto_overlay_bib_record.sql
LP1615805 No inputs after submit in patron search (AngularJS)
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 1038.schema.vandelay_auto_overlay_bib_record.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('1038', :eg_version); 
4
5 -- This function was replaced back in 2011, but never made it
6 -- into an upgrade script.  Here it is, nearly 6 years later.
7
8 CREATE OR REPLACE FUNCTION vandelay.auto_overlay_bib_record ( import_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$
9 DECLARE
10     eg_id           BIGINT;
11     match_count     INT;
12 BEGIN
13
14     PERFORM * FROM vandelay.queued_bib_record WHERE import_time IS NOT NULL AND id = import_id;
15
16     IF FOUND THEN
17         -- RAISE NOTICE 'already imported, cannot auto-overlay'
18         RETURN FALSE;
19     END IF;
20
21     SELECT COUNT(*) INTO match_count FROM vandelay.bib_match WHERE queued_record = import_id;
22
23     IF match_count <> 1 THEN
24         -- RAISE NOTICE 'not an exact match';
25         RETURN FALSE;
26     END IF;
27
28     -- Check that the one match is on the first 901c
29     SELECT  m.eg_record INTO eg_id
30       FROM  vandelay.queued_bib_record q
31             JOIN vandelay.bib_match m ON (m.queued_record = q.id)
32       WHERE q.id = import_id
33             AND m.eg_record = oils_xpath_string('//*[@tag="901"]/*[@code="c"][1]',marc)::BIGINT;
34
35     IF NOT FOUND THEN
36         -- RAISE NOTICE 'not a 901c match';
37         RETURN FALSE;
38     END IF;
39
40     RETURN vandelay.overlay_bib_record( import_id, eg_id, merge_profile_id );
41 END;
42 $$ LANGUAGE PLPGSQL;
43
44 COMMIT;