To reproduce : - in authtypes.pl create a new authority type - have a look at it's MARC structure and fill it with the default type for instance - delete it - in the database the auth_subfield_structure table was not properly cleared : auth_type and auth_tag_structure were properly cleared but all the subfields for the test authority type are still there.
Created attachment 37402 [details] [review] Bug 8480: Add constraint on auth_subfield_structure.authtypecode In order not to have useless entries in the auth_subfield_structure table, this patch modifies the DB structure to add a foreign key on the authtypecode column. Note that the auth_tag_structure already has this constraint. Test plan: 0/ Don't apply this patch 1/ Create a now authority type 'RM_ME' 2/ Look at the MARC structure, to create the subfield structure and populate the auth_subfield_structure table. 3/ Delete the authority type 4/ Using your SQL cli: SELECT COUNT(*) FROM auth_subfield_structure WHERE authtypecode='RM_ME'; => The data are still in this table. 5/ Apply this patch 6/ Execute the updatedb entry 7/ Confirm the entries in the auth_subfield_structure table related to RM_ME have been deleted 8/ Repeat 1, 2 and 3 and verify the auth_subfield_structure entries have been correctly removed.
Note that this is also valid for marc_subfield_structure (I can provide a patch if this patch is accepted).
Created attachment 37794 [details] [review] Bug 8480: Add constraint on auth_subfield_structure.authtypecode In order not to have useless entries in the auth_subfield_structure table, this patch modifies the DB structure to add a foreign key on the authtypecode column. Note that the auth_tag_structure already has this constraint. Test plan: 0/ Don't apply this patch 1/ Create a now authority type 'RM_ME' 2/ Look at the MARC structure, to create the subfield structure and populate the auth_subfield_structure table. 3/ Delete the authority type 4/ Using your SQL cli: SELECT COUNT(*) FROM auth_subfield_structure WHERE authtypecode='RM_ME'; => The data are still in this table. 5/ Apply this patch 6/ Execute the updatedb entry 7/ Confirm the entries in the auth_subfield_structure table related to RM_ME have been deleted 8/ Repeat 1, 2 and 3 and verify the auth_subfield_structure entries have been correctly removed. Signed-off-by: Frederic Demians <f.demians@tamil.fr> - Works exactly as described in the (very good) test plan. - After authority type deletion, auth_subfield_structure still contains entries for deleted authority type. Applying the patch clean the previously undeleted records in auth_subfield_strucute. Now deleting a authority type cleans propertly all appropriate records in auth_subfield_structure. - Fix a merge conflict
Created attachment 38226 [details] [review] [PASSED QA] Bug 8480: Add constraint on auth_subfield_structure.authtypecode In order not to have useless entries in the auth_subfield_structure table, this patch modifies the DB structure to add a foreign key on the authtypecode column. Note that the auth_tag_structure already has this constraint. Test plan: 0/ Don't apply this patch 1/ Create a now authority type 'RM_ME' 2/ Look at the MARC structure, to create the subfield structure and populate the auth_subfield_structure table. 3/ Delete the authority type 4/ Using your SQL cli: SELECT COUNT(*) FROM auth_subfield_structure WHERE authtypecode='RM_ME'; => The data are still in this table. 5/ Apply this patch 6/ Execute the updatedb entry 7/ Confirm the entries in the auth_subfield_structure table related to RM_ME have been deleted 8/ Repeat 1, 2 and 3 and verify the auth_subfield_structure entries have been correctly removed. Signed-off-by: Frederic Demians <f.demians@tamil.fr> - Works exactly as described in the (very good) test plan. - After authority type deletion, auth_subfield_structure still contains entries for deleted authority type. Applying the patch clean the previously undeleted records in auth_subfield_strucute. Now deleting a authority type cleans propertly all appropriate records in auth_subfield_structure. - Fix a merge conflict Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Patches pushed to master. Thanks "funny" Jonathan! :-P