]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/t/lp1371647_add_fixed_fields.pg
Lp 1730726: Fix lp1501781-unaccent_and_squash.pg for PostgreSQL 9.6
[working/Evergreen.git] / Open-ILS / src / sql / Pg / t / lp1371647_add_fixed_fields.pg
1 -- Test parsing of fixed fields into record attributes for LDR and 008
2
3 BEGIN;
4
5 SELECT plan(50);
6
7
8 -- BKS
9 -- Cont, Ills blank
10 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
11   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nam a22054323c 4500</leader><controlfield tag="008">010100e20080825inu    eq    a000 hcmul u</controlfield></record>$record$);
12
13 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
14   '@>', '"bib_level"=>"m", "cat_form"=>"c", "enc_level"=>"3", "item_type"=>"a"', 'BKS LDR: BLvl, Desc, ELvl, Type');
15
16 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
17 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
18   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'BKS 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
19
20 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
21   '@>', '"biog"=>"c", "item_form"=>"q", "conf"=>"0", "gpub"=>"a", "fest"=>"0", "indx"=>"0", "audience"=>"e"', 'BKS 008 Specific: Audn, Form, Biog, Conf, GPub, Fest, Indx');
22
23 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
24   '@>', '"cont"=>" ", "cont1"=>" ", "ills"=>" ", "ills1"=>" "', 'BKS 008 Special: Ills and Cont Fixed Field = " "');
25
26 SELECT is((SELECT attr FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr IN ('ills2','ills3','ills4','ills5','ills6','cont2','cont3','cont4','cont5','cont6')),
27   NULL, 'BKS 008 Special: Ills2-6 and Cont2-6 Should not be defined');
28
29 -- GPub = " ", Conf not attempted, Fest = 0, Indx = 1, Ills1 and Cont1 set, other positions blank
30 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
31   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nam a22054323c 4500</leader><controlfield tag="008">010100e20080825inup   eo6    |01 hcmul u</controlfield></record>$record$);
32
33 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
34   '@>', '"biog"=>"c", "item_form"=>"o", "conf"=>"|", "fest"=>"0", "indx"=>"1", "audience"=>"e"', 'BKS 008 Specific: Audn, Form, Biog, Conf, Fest, Indx');
35
36 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
37   '@>', '"ills"=>"p", "ills1"=>"p"', 'BKS 008 Special: Ills and Ills1 Fixed Fields = "p"');
38
39 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
40   '@>', '"cont"=>"6", "cont1"=>"6"', 'BKS 008 Special: Cont and Cont1 Fixed Fields = "6"');
41
42 SELECT is((SELECT attr FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr IN ('ills2','ills3','ills4','ills5','ills6','cont2','cont3','cont4','cont5','cont6')),
43   NULL, 'BKS 008 Special: Ills2-6 and Cont2-6 Should not be defined');
44
45 -- Turn everything up to 11
46 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
47   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nam a22054323c 4500</leader><controlfield tag="008">010100e20080825inupobaeq6pqvm111 hcmul u</controlfield></record>$record$);
48
49 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
50   '@>', '"biog"=>"c", "item_form"=>"q", "conf"=>"1", "gpub"=>"m", "fest"=>"1", "indx"=>"1", "audience"=>"e"', 'BKS 008 Specific: Audn, Form, Biog, Conf, GPub, Fest, Indx');
51
52 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='ills' AND value IN ('p','o','b','a')),
53   4::BIGINT, 'BKS 008 Special: There should be 4 Ills values');
54
55 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
56   '@>', '"ills1"=>"p", "ills2"=>"o", "ills3"=>"b", "ills4"=>"a"', 'BKS 008 Special: Ills single-character attributes');
57
58 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='cont' AND value IN ('6','p','q','v')),
59   4::BIGINT, 'BKS 008 Special: There should be 4 Cont values');
60
61 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
62   '@>', '"cont1"=>"6", "cont2"=>"p", "cont3"=>"q", "cont4"=>"v"', 'BKS 008 Special: Cont single-character attributes');
63
64
65 -- SER, YES SER
66 -- EntW set, not Cont
67 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
68   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nas a22054323c 4500</leader><controlfield tag="008">010100e20080825inuax dqsu   u1   b0mul u</controlfield></record>$record$);
69
70 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
71   '@>', '"cat_form"=>"c", "bib_level"=>"s", "enc_level"=>"3", "item_type"=>"a"', 'SER LDR: BLvl, Desc, ELvl, Type');
72
73 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
74 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
75   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'SER 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
76
77 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
78   '@>', '"alph"=>"b", "conf"=>"1", "entw"=>"u", "freq"=>"a", "gpub"=>"u", "orig"=>"q", "item_form"=>"s", "regl"=>"x", "srtp"=>"d", "ff_sl"=>"0"', 'SER 008 Specific: Freq, Regl, SrTp, Orig, Form, EntW, GPub, Conf, Alph, S/L');
79
80 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
81   '@>', '"cont"=>" ", "cont1"=>" "', 'SER 008 Special: Cont and Cont1 = " "');
82
83 SELECT is((SELECT attr FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr IN ('cont2','cont3','cont4')),
84   NULL, 'SER 008 Special: Cont2-4 Should not be defined');
85
86 -- Cont fully set
87 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
88   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nas a22054323c 4500</leader><controlfield tag="008">010100e20080825inuax dqsutlnu1   b0mul u</controlfield></record>$record$);
89
90 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='cont' AND value IN ('t','l','n')),
91   3::BIGINT, 'SER 008 Special: There should be 3 Cont values');
92
93 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
94   '@>', '"cont1"=>"t", "cont2"=>"l", "cont3"=>"n"', 'SER 008 Special: Cont single-character attributes');
95
96
97 -- COM
98 -- No complicated fields for COM
99 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
100   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nma a22054323c 4500</leader><controlfield tag="008">010100e20080825inu    eq  j s      mul u</controlfield></record>$record$);
101
102 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
103   '@>', '"cat_form"=>"c", "bib_level"=>"a", "enc_level"=>"3", "item_type"=>"m"', 'COM LDR: BLvl, Desc, ELvl, Type');
104
105 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
106 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
107   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'COM 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
108
109 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
110   '@>', '"audience"=>"e", "item_form"=>"q", "file"=>"j", "gpub"=>"s"', 'COM 008 Specific: Audn, Form, File, GPub');
111
112
113 -- MAP and both hands
114 -- Relf and SpFm blank
115 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
116   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nea a22054323c 4500</leader><controlfield tag="008">010100e20080825inu    dg a  is 0   mul u</controlfield></record>$record$);
117
118 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
119   '@>', '"cat_form"=>"c", "bib_level"=>"a", "enc_level"=>"3", "item_type"=>"e"', 'MAP LDR: BLvl, Desc, ELvl, Type');
120
121 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
122 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
123   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'MAP 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
124
125 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
126   '@>', '"crtp"=>"a", "gpub"=>"i", "indx"=>"0", "proj"=>"dg", "item_form"=>"s"', 'MAP 008 Specific: Proj, CrTp, GPub, Form, Indx');
127
128 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
129   '@>', '"relf"=>" ", "relf1"=>" ", "spfm"=>" ", "spfm1"=>" "', 'MAP 008 Special: Relf, SpFm both blank');
130
131 SELECT is((SELECT attr FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr IN ('relf2','relf3','relf4','spfm2')),
132   NULL, 'MAP 008 Special: Relf2-4 and SpFm2 Should not be defined');
133
134 -- Relf, SpFm full
135 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
136   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nea a22054323c 4500</leader><controlfield tag="008">010100e20080825inuagcedg a  is 0 pomul u</controlfield></record>$record$);
137
138 -- Relf
139 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='relf' AND value IN ('a','g','c','e')),
140   4::BIGINT, 'MAP 008 Special: There should be 4 Relf values');
141
142 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
143   '@>', '"relf1"=>"a", "relf2"=>"g", "relf3"=>"c", "relf4"=>"e"', 'MAP 008 Special: Relf single-character attributes');
144
145 -- SpFm
146 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='spfm' AND value IN ('p','o')),
147   2::BIGINT, 'MAP 008 Special: There should be 2 SpFm values found');
148
149 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
150   '@>', '"spfm1"=>"p", "spfm2"=>"o"', 'MAP 008 Special: SpFm single-character attributes');
151
152
153 -- MIX IT UP
154 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
155   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337npa a22054323c 4500</leader><controlfield tag="008">010100e20080825inu     o           mul u</controlfield></record>$record$);
156
157 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
158   '@>', '"cat_form"=>"c", "bib_level"=>"a", "enc_level"=>"3", "item_type"=>"p"', 'MIX LDR: BLvl, Desc, ELvl, Type');
159
160 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
161 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
162   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'MIX 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
163
164 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
165   '@>', '"item_form"=>"o"', 'MIX 008 Specific: Form');
166
167
168 -- MUS
169 -- AccM and LTxt = ' ', all others defined.
170 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
171   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337njm a22054323c 4500</leader><controlfield tag="008">010100e20080825inurgadeo         c mul u</controlfield></record>$record$);
172
173 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
174   '@>', '"bib_level"=>"m", "cat_form"=>"c", "enc_level"=>"3", "item_type"=>"j"', 'MUS LDR: BLvl, Desc, ELvl, Type');
175
176 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
177 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
178   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'MUS 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
179
180 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
181   '@>', '"audience"=>"e", "comp"=>"rg", "item_form"=>"o", "fmus"=>"a", "part"=>"d", "trar"=>"c"', 'MUS 008 Specific: Comp, FMus, Part, Audn, Form, TrAr');
182
183 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
184   '@>', '"accm"=>" ", "accm1"=>" ", "ltxt"=>" ", "ltxt1"=>" "', 'MUS 008 Special: AccM and LTxt Fixed Fields = " "');
185
186 SELECT is((SELECT attr FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr IN ('accm2','accm3','accm4','accm5','accm6','ltxt2')),
187   NULL, 'MUS 008 Special: AccM2-6 and LTxt2 Should not be defined');
188
189 -- AccM1 and LTxt1 set, all other positions spaces
190 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
191   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337njm a22054323c 4500</leader><controlfield tag="008">010100e20080825inurgadeoh     k  c mul u</controlfield></record>$record$);
192
193 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
194   '@>', '"accm"=>"h", "accm1"=>"h", "ltxt"=>"k", "ltxt1"=>"k"', 'MUS 008 Special: AccM1 and LTxt1 Set, others empty');
195
196 SELECT is((SELECT attr FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr IN ('accm2','accm3','accm4','accm5','accm6','ltxt2')),
197   NULL, 'MUS 008 Special: AccM2-6 and LTxt2 Should not be defined');
198
199 -- AccM and LTxt full
200 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
201   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337njm a22054323c 4500</leader><controlfield tag="008">010100e20080825inurgadeohgriszki c mul u</controlfield></record>$record$);
202
203 -- AccM
204 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='accm' AND value IN ('h','g','r','i','s','z')),
205   6::BIGINT, 'MUS 008 Special: There should be 6 AccM values');
206
207 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
208   '@>', '"accm1"=>"h", "accm2"=>"g", "accm3"=>"r", "accm4"=>"i", "accm5"=>"s", "accm6"=>"z"', 'MUS 008 Special: AccM single-character attributes');
209
210 -- LTxt
211 SELECT is((SELECT COUNT(id) FROM metabib.record_attr_flat WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq')) AND attr='ltxt' AND value IN ('k','i')),
212   2::BIGINT, 'MUS 008 Special: There should be 2 LTxt values found');
213
214 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
215   '@>', '"ltxt1"=>"k", "ltxt2"=>"i"', 'MUS 008 Special: LTxt single-character attributes');
216
217
218 -- VIS -ICALC
219 INSERT INTO biblio.record_entry (last_xact_id,marc) VALUES
220   ('testing',$record$<record    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"    xmlns="http://www.loc.gov/MARC21/slim"><leader>01337nga a22054323c 4500</leader><controlfield tag="008">010100e20080825inu120 e     us   vamul u</controlfield></record>$record$);
221
222 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
223   '@>', '"cat_form"=>"c", "bib_level"=>"a", "enc_level"=>"3", "item_type"=>"g"', 'VIS LDR: BLvl, Desc, ELvl, Type');
224
225 -- XXX: Checks both(?) language and item_lang. If one is ever removed, this also needs corrected.
226 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
227   '@>', '"ctry"=>"inu", "date1"=>"2008", "date2"=>"0825", "pub_status"=>"e", "language"=>"mul", "item_lang"=>"mul"', 'VIS 008 Generic: Ctry, Date1, Date2, DtSt, Lang');
228
229 -- Time is defined for the editor, but isn't extracted as an attribute.
230 SELECT cmp_ok((SELECT attrs FROM metabib.record_attr WHERE id=(SELECT CURRVAL('biblio.record_entry_id_seq'))),
231   '@>', '"gpub"=>"u", "tech"=>"a", "type_mat"=>"v", "item_form"=>"s"', 'VIS 008 Specific: Audn, GPub, Form, TMat, Tech');
232
233
234 SELECT * FROM finish();
235
236 ROLLBACK;