-# $Id: Resultset.pm,v 1.11 2004-07-28 08:15:46 adam Exp $
+# $Id: Resultset.pm,v 1.13 2004-09-16 14:58:47 heikki Exp $
#
# Zebra perl API header
# =============================================================================
use IDZebra::Logger qw(:flags :calls);
use Scalar::Util qw(weaken);
use Carp;
- our $VERSION = do { my @r = (q$Revision: 1.11 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+ our $VERSION = do { my @r = (q$Revision: 1.13 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
our @ISA = qw(IDZebra::Logger);
}
my $class = ref($proto) || $proto;
my $self = {};
bless ($self, $class);
+ logf(LOG_DEBUG,"creating a Resultset ".$args{name});
$self->{session} = $session;
weaken ($self->{session});
$self->{errCode} = $args{errCode};
$self->{errString} = $args{errString};
+ logf(LOG_DEBUG,"created a Resultset ".$self->{name});
return ($self);
}
return ($self->{errCode});
}
-sub terms {
- use Data::Dumper;
- my ($self) = @_;
- my $count = 0; my $type = 0; my $len = 0;
- my $tc = IDZebra::resultSetTerms($self->{session}{zh},$self->{name},
- 0, \$count, \$type, "\0", \$len);
-
- logf (LOG_LOG,"Got $tc terms");
-
-
- my @res = ();
- for (my $i=0; $i<$tc; $i++) {
- my $len = 1024;
- my $t = {term => "\0" x $len, count => 0, type => 0};
- my $stat = IDZebra::resultSetTerms($self->{session}{zh},$self->{name},
- $i, \$t->{count}, \$t->{type},
- $t->{term}, \$len);
- $t->{term} = substr($t->{term}, 0, $len);
- logf (LOG_LOG,
- "term $i: type $t->{type}, '$t->{term}' ($t->{count})");
- push (@res, $t);
- }
- return (@res);
-}
+######################
+# this is disabled, while the term counts are broken by the work done to
+# rsets. To be reinstantiated some day real soon now...
+#sub terms {
+# use Data::Dumper;
+# my ($self) = @_;
+# my $count = 0; my $type = 0; my $len = 0;
+# my $tc = IDZebra::resultSetTerms($self->{session}{zh},$self->{name},
+# 0, \$count, \$type, "\0", \$len);
+#
+# logf (LOG_LOG,"Got $tc terms");
+#
+#
+# my @res = ();
+# for (my $i=0; $i<$tc; $i++) {
+# my $len = 1024;
+# my $t = {term => "\0" x $len, count => 0, type => 0};
+# my $stat = IDZebra::resultSetTerms($self->{session}{zh},$self->{name},
+# $i, \$t->{count}, \$t->{type},
+# $t->{term}, \$len);
+# $t->{term} = substr($t->{term}, 0, $len);
+# logf (LOG_LOG,
+# "term $i: type $t->{type}, '$t->{term}' ($t->{count})");
+# push (@res, $t);
+# }
+# return (@res);
+#}
# =============================================================================
sub DESTROY {
# Deleteresultset?
my $stats = 0;
+ logf(LOG_DEBUG, "Destroying a Resultset ". $self->{name});
if ($self->{session}{zh}) {
my $r = IDZebra::deleteResultSet($self->{session}{zh},
0, #Z_DeleteRequest_list,
}
delete($self->{session});
+ logf(LOG_DEBUG, "Destroyed a Resultset ". $self->{name});
}
# -----------------------------------------------------------------------------
sub records {
croak ("Session is closed or out of scope");
}
- unless ($setname) {
- return ($_[0] = $self->{session}->sortResultsets($sortspec,
- $self->{session}->_new_setname, ($self)));
- return ($_[0]);
- } else {
- return ($self->{session}->sortResultsets($sortspec,
- $setname, ($self)));
+ if (!$setname) {
+ $setname=$self->{session}->_new_setname();
}
+ return ($self->{session}->sortResultsets($sortspec,
+ $setname, ($self)));
+# unless ($setname) {
+# return ($_[0] = $self->{session}->sortResultsets($sortspec,
+# $self->{session}->_new_setname, ($self)));
+# return ($_[0]);
+# } else {
+# return ($self->{session}->sortResultsets($sortspec,
+# $setname, ($self)));
+# }
}
# ============================================================================