/[cvs]/nfo/perl/libs/Data/Storage/Handler/Tangram.pm
ViewVC logotype

Diff of /nfo/perl/libs/Data/Storage/Handler/Tangram.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.38 by joko, Tue May 13 16:38:38 2003 UTC revision 1.39 by jonen, Fri Jun 6 11:40:40 2003 UTC
# Line 3  Line 3 
3  #  $Id$  #  $Id$
4  #  #
5  #  $Log$  #  $Log$
6    #  Revision 1.39  2003/06/06 11:40:40  jonen
7    #  fixed bug at 'getFilteredList'
8    #
9  #  Revision 1.38  2003/05/13 16:38:38  joko  #  Revision 1.38  2003/05/13 16:38:38  joko
10  #  problems with "tied" on 5.6.1/win32  #  problems with "tied" on 5.6.1/win32
11  #  #
# Line 526  sub getListFiltered { Line 529  sub getListFiltered {
529      # TODO: is_op?      # TODO: is_op?
530      # dispatch un-common operators if exists      # dispatch un-common operators if exists
531      if($filter->{op} eq "ref") {      if($filter->{op} eq "ref") {
532        push @tfilters, 'ref($remote->{' . $filter->{key} . '})' . " eq '$filter->{val}'";        # do nothing, results will be filtered later cause 'tangram-filter' doesn't support 'ref' query
533          #print "Filter->op eq 'ref'.\n";
534          #push @tfilters, 'ref($remote->{' . $filter->{key} . '})' . " eq '$filter->{val}'";
535      } else {      } else {
536        # HACK: build eval-string (sorry) to get filtered list - please give advice here        # HACK: build eval-string (sorry) to get filtered list - please give advice here
537        push @tfilters, '$remote->{' . $filter->{key} . '}' . " $filter->{op} '$filter->{val}'";        push @tfilters, '$remote->{' . $filter->{key} . '}' . " $filter->{op} '$filter->{val}'";
# Line 552  sub getListFiltered { Line 557  sub getListFiltered {
557    @results = eval($evalstring);    @results = eval($evalstring);
558    die $@ if $@;    die $@ if $@;
559        
560    
561      # filter results
562      if($filters->[0]->{op} eq "ref") {
563          #print "Filter->op eq 'ref'.\n";
564          my $att_name = $filters->[0]->{key};
565          my $att_val = $filters->[0]->{val};
566          my @filtered;
567          foreach(@results) {
568            if(ref($_->{$att_name}) eq $att_val) {
569              push @filtered, $_;
570            }
571          }
572          @results = @filtered;
573      }
574    
575      #print "results: " . Dumper(\@results);
576      
577    return \@results;    return \@results;
578  }  }
579    

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed