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

(-)a/C4/Installer.pm (-6 / +9 lines)
Lines 630-641 sub get_file_path_from_name { Link Here
630
sub primary_key_exists {
630
sub primary_key_exists {
631
    my ( $table_name, $key_name ) = @_;
631
    my ( $table_name, $key_name ) = @_;
632
    my $dbh = C4::Context->dbh;
632
    my $dbh = C4::Context->dbh;
633
    my ($exists) = $dbh->selectrow_array(
633
    my $sql = qq| SHOW INDEX FROM $table_name WHERE key_name='PRIMARY' |;
634
        qq|
634
    my $exists;
635
        SHOW INDEX FROM $table_name
635
    if( $key_name ){
636
        WHERE key_name = 'PRIMARY' AND column_name = ?
636
        $sql .= 'AND column_name = ? ' if $key_name;
637
        |, undef, $key_name
637
        ($exists) = $dbh->selectrow_array( $sql, undef, $key_name );
638
    );
638
    } else {
639
        ($exists) = $dbh->selectrow_array( $sql, undef );
640
    }
641
639
    return $exists;
642
    return $exists;
640
}
643
}
641
644
(-)a/installer/data/mysql/atomicupdate/bug_26326.perl (-1 / +3 lines)
Lines 4-10 if( CheckVersion( $DBversion ) ) { Link Here
4
        primary_key_exists('import_record_matches','import_record_id') &&
4
        primary_key_exists('import_record_matches','import_record_id') &&
5
        primary_key_exists('import_record_matches','candidate_match_id')
5
        primary_key_exists('import_record_matches','candidate_match_id')
6
    ){
6
    ){
7
        $dbh->do( "ALTER TABLE import_record_matches DROP PRIMARY KEY" );
7
        if( primary_key_exists('import_record_matches' ) ){
8
            $dbh->do( "ALTER TABLE import_record_matches DROP PRIMARY KEY" );
9
        }
8
        $dbh->do( "ALTER TABLE import_record_matches ADD PRIMARY KEY (import_record_id,candidate_match_id)" );
10
        $dbh->do( "ALTER TABLE import_record_matches ADD PRIMARY KEY (import_record_id,candidate_match_id)" );
9
    }
11
    }
10
12
(-)a/t/db_dependent/Installer.t (-3 / +3 lines)
Lines 22-28 Link Here
22
# Add more tests here!!!
22
# Add more tests here!!!
23
23
24
use Modern::Perl;
24
use Modern::Perl;
25
use Test::More tests => 18;
25
use Test::More tests => 19;
26
use Koha::Database;
26
use Koha::Database;
27
27
28
BEGIN {
28
BEGIN {
Lines 67-72 ok( ! index_exists( 'borrowers', 'xxx'), 'Constraint xxx does not exist' ); Link Here
67
ok( foreign_key_exists( 'borrowers', 'borrowers_ibfk_1' ), 'FK borrowers_ibfk_1 exists' );
67
ok( foreign_key_exists( 'borrowers', 'borrowers_ibfk_1' ), 'FK borrowers_ibfk_1 exists' );
68
ok( ! foreign_key_exists( 'borrowers', 'xxx' ), 'FK xxxx does not exist' );
68
ok( ! foreign_key_exists( 'borrowers', 'xxx' ), 'FK xxxx does not exist' );
69
69
70
70
ok( primary_key_exists( 'borrowers' ), 'Borrowers does have a primary key on some column');
71
ok( primary_key_exists( 'borrowers', 'borrowernumber'), 'Borrowers has primary key on borrowernumber');
71
ok( primary_key_exists( 'borrowers', 'borrowernumber'), 'Borrowers has primary key on borrowernumber');
72
ok( ! primary_key_exists( 'borrowers', 'email'), 'Borrowers does not have a primary key on email');
72
ok( ! primary_key_exists( 'borrowers', 'email'), 'Borrowers does not have a primary key on email');
73
- 
73

Return to bug 26326