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

(-)a/Koha/OAI/Server/ListBase.pm (-3 / +3 lines)
Lines 58-64 sub GetRecords { Link Here
58
    # first deleted records ($deleted == 1), then normal records ($deleted == 0)
58
    # first deleted records ($deleted == 1), then normal records ($deleted == 0)
59
    STAGELOOP:
59
    STAGELOOP:
60
    for ( ; $deleted >= 0; $deleted-- ) {
60
    for ( ; $deleted >= 0; $deleted-- ) {
61
        my $table = $deleted ? 'deletedbiblioitems' : 'biblioitems';
61
        my $table = $deleted ? 'deletedbiblio_metadata' : 'biblio_metadata';
62
        my $sql = "
62
        my $sql = "
63
            SELECT biblionumber
63
            SELECT biblionumber
64
            FROM $table
64
            FROM $table
Lines 103-109 sub GetRecords { Link Here
103
            $sql = "
103
            $sql = "
104
                SELECT MAX(timestamp)
104
                SELECT MAX(timestamp)
105
                FROM (
105
                FROM (
106
                    SELECT timestamp FROM deletedbiblioitems WHERE biblionumber = ?
106
                    SELECT timestamp FROM deletedbiblio_metadata WHERE biblionumber = ?
107
                    UNION
107
                    UNION
108
                    SELECT timestamp FROM deleteditems WHERE biblionumber = ?
108
                    SELECT timestamp FROM deleteditems WHERE biblionumber = ?
109
                ) bis
109
                ) bis
Lines 112-118 sub GetRecords { Link Here
112
            $sql = "
112
            $sql = "
113
                SELECT MAX(timestamp)
113
                SELECT MAX(timestamp)
114
                FROM (
114
                FROM (
115
                    SELECT timestamp FROM biblioitems WHERE biblionumber = ?
115
                    SELECT timestamp FROM biblio_metadata WHERE biblionumber = ?
116
                    UNION
116
                    UNION
117
                    SELECT timestamp FROM deleteditems WHERE biblionumber = ?
117
                    SELECT timestamp FROM deleteditems WHERE biblionumber = ?
118
                    UNION
118
                    UNION
(-)a/t/db_dependent/OAI/Server.t (-14 / +1 lines)
Lines 85-91 foreach my $index ( 0 .. NUMBER_OF_MARC_RECORDS - 1 ) { Link Here
85
    $sth->execute($biblionumber);
85
    $sth->execute($biblionumber);
86
    my $timestamp = $sth->fetchrow_array . 'Z';
86
    my $timestamp = $sth->fetchrow_array . 'Z';
87
    $timestamp =~ s/ /T/;
87
    $timestamp =~ s/ /T/;
88
    $timestamp = manipulate_timestamp( $index, $biblionumber, $timestamp );
89
    $record = GetMarcBiblio({ biblionumber => $biblionumber });
88
    $record = GetMarcBiblio({ biblionumber => $biblionumber });
90
    $record = XMLin($record->as_xml_record);
89
    $record = XMLin($record->as_xml_record);
91
    push @header, { datestamp => $timestamp, identifier => "TEST:$biblionumber" };
90
    push @header, { datestamp => $timestamp, identifier => "TEST:$biblionumber" };
Lines 353-358 subtest 'Bug 19725: OAI-PMH ListRecords and ListIdentifiers should use biblio_me Link Here
353
    my $record = GetMarcBiblio({biblionumber => $biblionumber});
352
    my $record = GetMarcBiblio({biblionumber => $biblionumber});
354
    $record->append_fields(MARC::Field->new(999, '', '', z => '_'));
353
    $record->append_fields(MARC::Field->new(999, '', '', z => '_'));
355
    ModBiblio($record, $biblionumber);
354
    ModBiblio($record, $biblionumber);
355
    $oaidc[0]->{header}->{datestamp} = $from;
356
356
357
    test_query(
357
    test_query(
358
        'ListRecords oai_dc with parameter from',
358
        'ListRecords oai_dc with parameter from',
Lines 364-378 subtest 'Bug 19725: OAI-PMH ListRecords and ListIdentifiers should use biblio_me Link Here
364
};
364
};
365
365
366
$schema->storage->txn_rollback;
366
$schema->storage->txn_rollback;
367
368
sub manipulate_timestamp {
369
# This eliminates waiting a few seconds in order to get a higher timestamp
370
# Works only for 60 records..
371
    my ( $index, $bibno, $timestamp ) = @_;
372
    return $timestamp if $timestamp !~ /\d{2}Z/;
373
    my $secs = sprintf( "%02d", $index );
374
    $timestamp =~ s/\d{2}Z/${secs}Z/;
375
    $dbh->do("UPDATE biblioitems SET timestamp=? WHERE biblionumber=?", undef,
376
        ( $timestamp, $bibno ));
377
    return $timestamp;
378
}
379
- 

Return to bug 19725