1 -- Start transaction and plan the tests.
4 -- Number of tests that will be run
10 'SELECT * FROM config.org_unit_setting_type WHERE name = $$circ.patron_search.diacritic_insensitive$$',
11 'circ.patron_search.diacritic_insensitive exists');
13 SELECT has_index('actor', 'usr', 'actor_usr_first_given_name_unaccent_idx',
14 'unaccent_and_squash(first_given_name)',
15 'Index actor_usr_first_given_name_unaccent_idx exists');
17 SELECT has_index('actor', 'usr', 'actor_usr_second_given_name_unaccent_idx',
18 'unaccent_and_squash(second_given_name)',
19 'Index actor_usr_second_given_name_unaccent_idx exists');
21 SELECT has_index('actor', 'usr', 'actor_usr_family_name_unaccent_idx',
22 'unaccent_and_squash(family_name)',
23 'Index actor_usr_family_name_unaccent_idx exists');
25 SELECT is(evergreen.unaccent_and_squash('aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ'),
26 'aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz',
27 'English Characters');
29 SELECT is(evergreen.unaccent_and_squash('0123456789!@#$%^&*()-+'),
30 '0123456789', 'Numbers and Symbols');
32 SELECT is(evergreen.unaccent_and_squash('ÁÉÍÑÓÚÜáéíñóúü¿¡'),
33 CASE WHEN substring(version() from '^PostgreSQL ([0-9]+)\.')::INTEGER < 14 THEN 'aeinouuaeinouu¿¡'
34 ELSE 'aeinouuaeinouu?!' END, 'Spanish');
36 SELECT is(evergreen.unaccent_and_squash('ÖÜÇĞŞöüçğşİI'),
37 'oucgsoucgsii', 'Turkish');
39 SELECT is(evergreen.unaccent_and_squash('ÄÉÖÜ'),
42 SELECT is(evergreen.unaccent_and_squash('АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'),
43 'абвгдежзийклмнопрстуфхцчшщъыьэюя', 'Russian');
45 SELECT is(evergreen.unaccent_and_squash('ÁĄÄÉĘĚÍÓÔÚŮÝČĹŇŔŘŠŽ'),
46 'aaaeeeioouuyclnrrsz', 'Czeck, Slovack & Slovenian');
48 SELECT is(evergreen.unaccent_and_squash('Άά Έέ Ήή Ίί Όό Ύύ Ώώ'),
49 CASE WHEN substring(version() from '^PostgreSQL ([0-9]+)\.')::INTEGER < 12 THEN 'άάέέήήίίόόύύώώ'
50 ELSE 'ααεεηηιιοουυωω' END, 'Greek');
52 SELECT is(evergreen.unaccent_and_squash('Jacques Bélanger'),
53 'jacquesbelanger', 'French nom and prénom');
55 SELECT is(evergreen.unaccent_and_squash('El Niño'),
56 'elnino', 'Spanish "The Kid"');
58 SELECT is(evergreen.unaccent_and_squash('Œuvres'),
59 CASE WHEN substring(version() from '^PostgreSQL ([0-9]+\.[0-9]+)')::DECIMAL > 9.5 THEN 'oeuvres' ELSE 'euvres' END, 'oe ligature');
63 SELECT is(evergreen.unaccent_and_squash('O''Brien'),
64 'obrien', 'Apostrophe');
66 SELECT is(evergreen.unaccent_and_squash('Grubbly-Plank'),
67 'grubblyplank', 'Hyphen');
69 SELECT is(evergreen.unaccent_and_squash('p&#$(a#*&$!s))(\\s'),
70 'pass', 'Punctuation hash');
72 -- Finish the test and clean up.
73 SELECT * FROM finish();