[Koha-bugs] [Bug 14596] New: GetMarcBiblio corrupts biblioitemnumber if they are out of sync

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Thu Jul 23 15:47:52 CEST 2015


http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=14596

            Bug ID: 14596
           Summary: GetMarcBiblio corrupts biblioitemnumber if they are
                    out of sync
 Change sponsored?: ---
           Product: Koha
           Version: master
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P5 - low
         Component: Cataloging
          Assignee: gmcharlt at gmail.com
          Reporter: stephane.delaune at biblibre.com
        QA Contact: testopia at bugs.koha-community.org
                CC: m.de.rooy at rijksmuseum.nl

biblionumbers and biblioitemnumbers are out of sync in some libraries and this
creates bug with misc/batchRebuildBiblioTables.pl (and probably others some
features).

To reproduce :
- change AUTO_INCREMENT in TABLE biblioitems to be different than biblionumber
(eg. if last biblionumber is 5000 : "SET FOREIGN_KEY_CHECKS=OFF;ALTER TABLE
biblioitems AUTO_INCREMENT = 5002;SET FOREIGN_KEY_CHECKS=ON;")

- create one or more new bib records (with items)

- see mysql records :
SELECT biblio.biblionumber AS bibbiblionumber, biblioitems.biblionumber AS
bibitemsbiblionumber, biblioitems.biblioitemnumber AS bibitemsbiblioitemnumber,
items.biblionumber AS itemsbiblionumber, items.biblioitemnumber AS
itemsbiblioitemnumber, biblioitems.publishercode, biblio.title, items.barcode
FROM biblioitems JOIN biblio ON biblio.biblionumber=biblioitems.biblionumber
JOIN items ON biblioitems.biblionumber=items.biblionumber WHERE
biblio.biblionumber>5000;

#before batchRebuildBiblioTables
+-----------------+----------------------+--------------------------+-------------------+-----------------------+----------------+--------------+-----------------+
| bibbiblionumber | bibitemsbiblionumber | bibitemsbiblioitemnumber |
itemsbiblionumber | itemsbiblioitemnumber | publishercode  | title        |
barcode         |
+-----------------+----------------------+--------------------------+-------------------+-----------------------+----------------+--------------+-----------------+
|            5001 |                 5001 |                     5002 |          
   5001 |                  5002 | editeur test 0 | Titre test 0 | barcode testa
0 |
|            5002 |                 5002 |                     5003 |          
   5002 |                  5003 | editeur test 1 | Titre test 1 | barcode testa
1 |
|            5003 |                 5003 |                     5004 |          
   5003 |                  5004 | editeur test 2 | Titre test 2 | barcode testa
2 |
|            5004 |                 5004 |                     5005 |          
   5004 |                  5005 | editeur test 3 | Titre test 3 | barcode testa
3 |
|            5005 |                 5005 |                     5006 |          
   5005 |                  5006 | editeur test 4 | Titre test 4 | barcode testa
4 |
|            5006 |                 5006 |                     5007 |          
   5006 |                  5007 | editeur test 5 | Titre test 5 | barcode testa
5 |
|            5007 |                 5007 |                     5008 |          
   5007 |                  5008 | editeur test 6 | Titre test 6 | barcode testa
6 |
|            5008 |                 5008 |                     5009 |          
   5008 |                  5009 | editeur test 7 | Titre test 7 | barcode testa
7 |
|            5009 |                 5009 |                     5010 |          
   5009 |                  5010 | editeur test 8 | Titre test 8 | barcode testa
8 |
|            5010 |                 5010 |                     5011 |          
   5010 |                  5011 | editeur test 9 | Titre test 9 | barcode testa
9 |
+-----------------+----------------------+--------------------------+-------------------+-----------------------+----------------+--------------+-----------------+

- run ~/src/misc/batchRebuildBiblioTables.pl -c

- see mysql records :
SELECT biblio.biblionumber AS bibbiblionumber, biblioitems.biblionumber AS
bibitemsbiblionumber, biblioitems.biblioitemnumber AS bibitemsbiblioitemnumber,
items.biblionumber AS itemsbiblionumber, items.biblioitemnumber AS
itemsbiblioitemnumber, biblioitems.publishercode, biblio.title, items.barcode
FROM biblioitems JOIN biblio ON biblio.biblionumber=biblioitems.biblionumber
JOIN items ON biblioitems.biblionumber=items.biblionumber WHERE
biblio.biblionumber>5000;

#after batchRebuildBiblioTables
+-----------------+----------------------+--------------------------+-------------------+-----------------------+----------------+--------------+-----------------+
| bibbiblionumber | bibitemsbiblionumber | bibitemsbiblioitemnumber |
itemsbiblionumber | itemsbiblioitemnumber | publishercode  | title        |
barcode         |
+-----------------+----------------------+--------------------------+-------------------+-----------------------+----------------+--------------+-----------------+
|            5002 |                 5002 |                     5002 |          
   5002 |                  5003 | editeur test 1 | Titre test 1 | barcode testa
1 |
|            5003 |                 5003 |                     5003 |          
   5003 |                  5004 | editeur test 2 | Titre test 2 | barcode testa
2 |
|            5004 |                 5004 |                     5004 |          
   5004 |                  5005 | editeur test 3 | Titre test 3 | barcode testa
3 |
|            5005 |                 5005 |                     5005 |          
   5005 |                  5006 | editeur test 4 | Titre test 4 | barcode testa
4 |
|            5006 |                 5006 |                     5006 |          
   5006 |                  5007 | editeur test 5 | Titre test 5 | barcode testa
5 |
|            5007 |                 5007 |                     5007 |          
   5007 |                  5008 | editeur test 6 | Titre test 6 | barcode testa
6 |
|            5008 |                 5008 |                     5008 |          
   5008 |                  5009 | editeur test 7 | Titre test 7 | barcode testa
7 |
|            5009 |                 5009 |                     5009 |          
   5009 |                  5010 | editeur test 8 | Titre test 8 | barcode testa
8 |
|            5010 |                 5010 |                     5010 |          
   5010 |                  5011 | editeur test 9 | Titre test 9 | barcode testa
9 |
|            5010 |                 5010 |                     5011 |          
   5010 |                  5011 | editeur test 9 | Titre test 9 | barcode testa
9 |
+-----------------+----------------------+--------------------------+-------------------+-----------------------+----------------+--------------+-----------------+

result : 
- first desynchronized biblionumber disappeared
- biblioitems.biblioitemnumber have been updated to be identical to
biblionumber
- for one biblionumber : biblioitemnumber is not the same in biblioitems and
items table

cause : 

. in C4::Biblio : GetMarcBiblio calls _koha_marc_update_bib_ids with the wrong
arguments : ("$record, '', $biblionumber, $biblionumber") instead of ("$record,
$frameworkcode, $biblionumber, $biblioitemnumber")

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list