BEGIN; -- Plan the tests. SELECT plan(5); SELECT is( (SELECT vandelay.replace_field($$ a Banks, Iain M 1954- $$, $$ Banks, Iain M 1954-2013 $$, '100abcdef')), ' a Banks, Iain M1954-2013', 'Replacing a value for a single existing subfield' ); SELECT is( (SELECT vandelay.replace_field($$ a Banks, Iain M $$, $$ Banks, Iain M 1954-2013 $$, '100abcdef')), ' a Banks, Iain M1954-2013', 'Adding a missing field' ); SELECT is( (SELECT vandelay.replace_field($$ a Banks, Iain M 1954- $$, $$ Banks, Iain M HELLO 1954-2013 $$, '100abcdef')), ' a Banks, Iain MHELLO1954-2013', 'Splicing a new field into the existing fields' ); SELECT is( (SELECT vandelay.replace_field($$ a Banks, Iain M 1954- STAY PUT $$, $$ Banks, Iain M HELLO IGNORE ME 1954-2013 $$, '100abcdef')), ' a Banks, Iain MHELLO1954-2013STAY PUT', 'Splice new field, ignore uncontrolled source field, leave uncontrolled target field in place' ); SELECT is( (SELECT vandelay.replace_field($$ a Banks, Iain M 1954- $$, $$ Banks, Iain M $$, '100abcdef')), ' a Banks, Iain M', 'Removing a subfield' ); SELECT * FROM finish(); ROLLBACK;