Minor fixes. Many things still broken...
authorHeikki Levanto <heikki@indexdata.dk>
Thu, 9 Sep 2004 15:23:07 +0000 (15:23 +0000)
committerHeikki Levanto <heikki@indexdata.dk>
Thu, 9 Sep 2004 15:23:07 +0000 (15:23 +0000)
perl/IDZebra.i
perl/lib/IDZebra/Session.pm
perl/t/03_record_update.t

index 9801a64..f3e6276 100644 (file)
@@ -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, 
index 16fb101..42799a6 100644 (file)
@@ -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}       : "<no file>";
index 04600da..049cc47 100644 (file)
@@ -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)");