View | Details | Raw Unified | Return to bug 40284
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_40284.pl (+31 lines)
Line 0 Link Here
1
use Modern::Perl;
2
use Koha::Installer::Output qw(say_warning say_success say_info);
3
4
return {
5
    bug_number  => 40284,
6
    description => "Add maxlength for fields 005 to 007 in MARC21",
7
    up          => sub {
8
        my ($args) = @_;
9
        my ( $dbh, $out ) = @$args{qw(dbh out)};
10
11
        if ( C4::Context->preference('marcflavour') eq 'MARC21' ) {
12
            my ( $count ) = $dbh->selectrow_array(
13
                q{SELECT COUNT(*) FROM marc_subfield_structure WHERE tagfield in ('005','006','007') AND maxlength=9999}
14
            );
15
            $dbh->do(
16
                q{UPDATE marc_subfield_structure SET maxlength=16 WHERE tagfield='005' AND maxlength=9999}
17
            );
18
            $dbh->do(
19
                q{UPDATE marc_subfield_structure SET maxlength=18 WHERE tagfield='006' AND maxlength=9999}
20
            );
21
            $dbh->do(
22
                q{UPDATE marc_subfield_structure SET maxlength=23 WHERE tagfield='007' AND maxlength=9999}
23
            );
24
            my ( $count2 ) = $dbh->selectrow_array(
25
                q{SELECT COUNT(*) FROM marc_subfield_structure WHERE tagfield in ('005','006','007') AND maxlength=9999}
26
            );
27
            say_success( $out, "Adjusted maxlength in $count records/fields" ) if $count;
28
            say_warning( $out, "$count2 records remaining" ) if $count2;
29
        }
30
    },
31
};
(-)a/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml (-1 / +4 lines)
Lines 82873-82878 tables: Link Here
82873
82873
82874
sql_statements:
82874
sql_statements:
82875
  - "UPDATE marc_subfield_structure SET maxlength=24 WHERE tagfield='000';"
82875
  - "UPDATE marc_subfield_structure SET maxlength=24 WHERE tagfield='000';"
82876
  - "UPDATE marc_subfield_structure SET maxlength=16 WHERE tagfield='005';"
82877
  - "UPDATE marc_subfield_structure SET maxlength=18 WHERE tagfield='006';"
82878
  # 007 allows length 23 when 007/0 == m (motion picture)
82879
  - "UPDATE marc_subfield_structure SET maxlength=23 WHERE tagfield='007';"
82876
  - "UPDATE marc_subfield_structure SET maxlength=40 WHERE tagfield='008';"
82880
  - "UPDATE marc_subfield_structure SET maxlength=40 WHERE tagfield='008';"
82877
82881
82878
  # Create the ACQ framework based on the default framework, fields 000 and 952 only
82882
  # Create the ACQ framework based on the default framework, fields 000 and 952 only
82879
- 

Return to bug 40284