LP# 1484281 auth control config update to prevent propagated data deletion
authorYamil Suarez <yamil@yamil.com>
Mon, 17 Aug 2015 20:47:34 +0000 (16:47 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Wed, 2 Sep 2015 16:00:45 +0000 (12:00 -0400)
commitb2ba7022cb60a5066efe3e5a31b964100784a2a5
tree3de825e46da9855873de1c3714189ab8cfe40b64
parent6260738e9f3d4b47ef69cd1fa36b9f64d0997a71
LP# 1484281 auth control config update to prevent propagated data deletion

Remove subfield 'e' from authority.control_set_authority_field seed values

Removed from the auth tag 100 and 110, which should apply to bib tags
100,110,600,610,700,710

Added upgrade script, and pgTAP test.

How to test this patch
----------------------
[1] To test this bug you need 1 authority record and at least 1 bib record.
The auth record needs to have an auth 100 or 110 tag that has a subfield $e,
for example 100 $aDavis, Miles $ecomposer. (for the record, it is not good
cataloging practice to have $e in the auth record, but it can happen by mistake.)
The bib record needs to be have a matching bib 100 or 700 tag with the same
subfield $a and $e. In addition the matching bib tag has to be linked to the
authority record, i.e. the bib tag has to have a bib subfield $0 with the DB
id of the authority record.

[2] If you open up the authority record, in the authority MARC editor, and remove
the subfield $e; the subfield $e found in the bib record tag will be removed.
This is a mistake because normally bib record tags 100/110/700/710 do use subfield
$e, though the subfield $e should not be used in the auth record 100/110 tags.

[3] When this patch is applied, if a cataloger removes a subfield $e from an auth
100/110 tag, the deletion will not cascade to its linked bibs.

Signed-off-by: Yamil Suarez <yamil@yamil.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/t/regress/lp1465830_fix_auth_data_propagation_deletes.pg [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.data.authority.control_set_authority_field-remove-sf-e.sql [new file with mode: 0644]