3 SELECT evergreen.upgrade_deps_block_check('0879', :eg_version);
5 CREATE OR REPLACE FUNCTION vandelay._get_expr_push_jrow(
6 node vandelay.match_set_point,
19 -- remember $1 is tags_rstore, and $2 is svf_rstore
22 SELECT COUNT(*) INTO jrow_count FROM _vandelay_tmp_jrows;
23 IF jrow_count > 0 THEN
24 my_using := ' USING (record)';
25 my_join := 'FULL OUTER JOIN';
31 IF node.tag IS NOT NULL THEN
32 caseless := (node.tag IN ('020', '022', '024'));
34 IF node.subfield IS NOT NULL THEN
35 tagkey := tagkey || node.subfield;
53 my_alias := 'n' || node.id::TEXT;
55 jrow := my_join || ' (SELECT *, ';
56 IF node.tag IS NOT NULL THEN
57 jrow := jrow || node.quality ||
58 ' AS quality FROM metabib.full_rec mfr WHERE mfr.tag = ''' ||
60 IF node.subfield IS NOT NULL THEN
61 jrow := jrow || ' AND mfr.subfield = ''' ||
62 node.subfield || '''';
64 jrow := jrow || ' AND (';
65 jrow := jrow || vandelay._node_tag_comparisons(caseless, op, tags_rstore, tagkey);
66 jrow := jrow || ')) ' || my_alias || my_using || E'\n';
68 jrow := jrow || 'id AS record, ' || node.quality ||
69 ' AS quality FROM metabib.record_attr_flat mraf WHERE mraf.attr = ''' ||
70 node.svf || ''' AND mraf.value ' || op || ' $2->''' || node.svf || ''') ' ||
71 my_alias || my_using || E'\n';
73 INSERT INTO _vandelay_tmp_jrows (j) VALUES (jrow);