X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=perl%2Flib%2FIDZebra%2FSession.pm;h=3f402fd8d36497f0d1137d5dffe9142ab7f8b2e8;hb=5635837565a8ba1f94211d456f5849dc6e300a21;hp=a72e2291dead0acc67ef24f6f634c89029a407b0;hpb=8e1d114f1969b19d12afc6ab0b04031e35ae5c88;p=idzebra-moved-to-github.git diff --git a/perl/lib/IDZebra/Session.pm b/perl/lib/IDZebra/Session.pm index a72e229..3f402fd 100644 --- a/perl/lib/IDZebra/Session.pm +++ b/perl/lib/IDZebra/Session.pm @@ -1,4 +1,4 @@ -# $Id: Session.pm,v 1.10 2003-03-03 18:27:25 pop Exp $ +# $Id: Session.pm,v 1.12 2003-03-05 00:28:16 pop Exp $ # # Zebra perl API header # ============================================================================= @@ -13,8 +13,9 @@ BEGIN { use Scalar::Util; use IDZebra::Logger qw(:flags :calls); use IDZebra::Resultset; + use IDZebra::ScanList; use IDZebra::RetrievalRecord; - our $VERSION = do { my @r = (q$Revision: 1.10 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; + our $VERSION = do { my @r = (q$Revision: 1.12 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # our @ISA = qw(IDZebra::Logger); } @@ -336,7 +337,14 @@ sub errAdd { sub begin_trans { my ($self) = @_; $self->checkzh; - IDZebra::begin_trans($self->{zh}); + if (my $err = IDZebra::begin_trans($self->{zh},1)) { + if ($self->errCode == 2) { + croak ("TRANS_RW not allowed within TRANS_RO"); + } else { + croak("Error starting transaction; code:". + $self->errCode . " message: " . $self->errString); + } + } } sub end_trans { @@ -656,6 +664,22 @@ sub sortResultsets { return ($rs); } +# ----------------------------------------------------------------------------- +# Scan +# ----------------------------------------------------------------------------- +sub scan { + my ($self, %args) = @_; + + $self->checkzh; + + unless ($args{expression}) { + croak ("No scan expression given"); + } + + my $sl = IDZebra::ScanList->new($self,%args); + + return ($sl); +} # ============================================================================