From 1cc0116831e49bf70538639a8fc9b08b9524c683 Mon Sep 17 00:00:00 2001 From: Heikki Levanto Date: Thu, 9 Sep 2004 15:23:07 +0000 Subject: [PATCH] Minor fixes. Many things still broken... --- perl/IDZebra.i | 4 ++++ perl/lib/IDZebra/Session.pm | 23 +++++++++-------------- perl/t/03_record_update.t | 10 +++++----- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/perl/IDZebra.i b/perl/IDZebra.i index 9801a64..f3e6276 100644 --- a/perl/IDZebra.i +++ b/perl/IDZebra.i @@ -298,6 +298,10 @@ int zebra_insert_record (ZebraHandle zh, const char *buf, int buf_size, int force_update); +/* actually, susno is only output param in insert_record, but kept */ +/* as inout for symmetry in the interface. The session class assures */ +/* that nothing goes in... */ + %name(update_record) int zebra_update_record (ZebraHandle zh, diff --git a/perl/lib/IDZebra/Session.pm b/perl/lib/IDZebra/Session.pm index 16fb101..42799a6 100644 --- a/perl/lib/IDZebra/Session.pm +++ b/perl/lib/IDZebra/Session.pm @@ -1,4 +1,4 @@ -# $Id: Session.pm,v 1.21 2004-09-09 14:12:10 adam Exp $ +# $Id: Session.pm,v 1.22 2004-09-09 15:23:07 heikki Exp $ # # Zebra perl API header # ============================================================================= @@ -16,7 +16,7 @@ BEGIN { use IDZebra::ScanList; use IDZebra::RetrievalRecord; require Exporter; - our $VERSION = do { my @r = (q$Revision: 1.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; + our $VERSION = do { my @r = (q$Revision: 1.22 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; our @ISA = qw(IDZebra::Logger Exporter); our @EXPORT = qw (TRANS_RW TRANS_RO); } @@ -479,21 +479,18 @@ sub _update_args_deleted { sub insert_record { my ($self, %args) = @_; $self->checkzh; + $args{sysno}=0; # make sure we don't overwrite any records my @args = $self->_record_update_args(%args); - my $stat = IDZebra::insert_record($self->{zh}, @args); - # ADAM: rg no longer part of vector - print STDERR "\nsub insert_record stat=$stat sys=${$args[1]}\n"; - return $stat; + my @ret = IDZebra::insert_record($self->{zh}, @args); + return @ret; # returns ($status, $sysno) } sub update_record { my ($self, %args) = @_; $self->checkzh; my @args = $self->_record_update_args(%args); - my $stat = IDZebra::update_record($self->{zh}, @args); - # ADAM: rg no longer part of vector - my $sysno = $args[1]; $stat = -1 * $stat if ($stat > 0); - return $stat ? $stat : $$sysno; + my @ret = IDZebra::update_record($self->{zh}, @args); + return @ret; # ($status, $sysno) } sub delete_record { @@ -501,14 +498,12 @@ sub delete_record { $self->checkzh; my @args = $self->_record_update_args(%args); my $stat = IDZebra::delete_record($self->{zh}, @args); - # ADAM: rg no longer part of vector - my $sysno = $args[1]; $stat = -1 * $stat if ($stat > 0); + return $stat; } sub _record_update_args { my ($self, %args) = @_; - my $dummysysno=0; - my $sysno = $args{sysno} ? $args{sysno} : \$dummysysno; + my $sysno = $args{sysno} ? $args{sysno} : 0; my $match = $args{match} ? $args{match} : ""; my $rectype = $args{recordType} ? $args{recordType} : ""; my $fname = $args{file} ? $args{file} : ""; diff --git a/perl/t/03_record_update.t b/perl/t/03_record_update.t index 04600da..049cc47 100644 --- a/perl/t/03_record_update.t +++ b/perl/t/03_record_update.t @@ -1,6 +1,6 @@ #!perl # ============================================================================= -# $Id: 03_record_update.t,v 1.8 2004-09-09 14:12:10 adam Exp $ +# $Id: 03_record_update.t,v 1.9 2004-09-09 15:23:07 heikki Exp $ # # Perl API header # ============================================================================= @@ -40,20 +40,20 @@ my $rec1=`cat lib/IDZebra/Data1.pm`; my $rec2=`cat lib/IDZebra/Filter.pm`; my $rec3=`cat lib/IDZebra/Session.pm`; -my ($sysno, $stat); +my ($sysno, $stat, $ret); $sess->init; -# ADAM: we must set database separately (can't be set from group) +# ADAM: we must set database separately (cant be set from group) $sess->databases('demo1'); $sess->begin_trans; -my $ret = $sess->insert_record(data => $rec1, +($ret,$sysno) = $sess->insert_record(data => $rec1, recordType => 'grs.perl.pod', groupName => "demo1", ); -print STDERR "\nAfter first insert_record. ret=$ret\n"; +print STDERR "\nAfter first insert_record. ret=$ret sysno=$sysno\n"; ok(($ret == 0),"Must return ret=0 (OK)"); -- 1.7.10.4