/[pg-zoom]/zoom.sql
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /zoom.sql

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

revision 5 by dpavlin, Thu Apr 26 20:43:00 2007 UTC revision 8 by dpavlin, Thu Apr 26 21:45:09 2007 UTC
# Line 11  insert into servers values ( 'nsk', '161 Line 11  insert into servers values ( 'nsk', '161
11  insert into servers values ( 'nsk-en', '161.53.240.27', 8190, 'voyager' );  insert into servers values ( 'nsk-en', '161.53.240.27', 8190, 'voyager' );
12  insert into servers values ( 'loc', 'z3950.loc.gov', 7090, 'Voyager' );  insert into servers values ( 'loc', 'z3950.loc.gov', 7090, 'Voyager' );
13  insert into servers values ( 'ucs', 'library.usc.edu', 2200, 'unicorn' );  insert into servers values ( 'ucs', 'library.usc.edu', 2200, 'unicorn' );
 insert into servers values ( 'tera', 'z3950.inquirion.com', 210, 'Marc' );  
 insert into servers values ( 'cosmo', 'rlw.savba.sk', 8888, 'test_un_cat' );  
 insert into servers values ( 'copac', 'z3950.copac.ac.uk', 2020, 'xxdefault' );  
 --insert into servers values ( 'wcat', 'tikal.dev.oclc.org', 210, 'WorldCat' );  
14  --insert into servers values ( '', '', , '' );  --insert into servers values ( '', '', , '' );
15    
16  create type item as (  create type item as (
# Line 30  language plperlu Line 26  language plperlu
26  as $$  as $$
27    
28  my $debug = 0;  my $debug = 0;
29    my $max_res = 100;
30    
31  my ( $server, $query ) = @_;  my ( $server, $query ) = @_;
32    
# Line 37  my $rv = spi_exec_query(qq{ Line 34  my $rv = spi_exec_query(qq{
34          select host,port,database from servers where name ilike '$server'          select host,port,database from servers where name ilike '$server'
35  },1);  },1);
36    
37  die "can't find database $database\n" unless ( $rv->{processed} == 1 );  die "can't find server $server in table servers\n" unless ( $rv->{processed} == 1 );
38    
39  my ( $host, $port, $database ) = (  my ( $host, $port, $database ) = (
40          $rv->{rows}[0]->{host},          $rv->{rows}[0]->{host},
# Line 71  my $conn = new ZOOM::Connection($host, $ Line 68  my $conn = new ZOOM::Connection($host, $
68    
69  $conn->option(preferredRecordSyntax => "usmarc");  $conn->option(preferredRecordSyntax => "usmarc");
70    
71  my $cqf = q2cqf( $query );  my $rs;
72    
73  my $rs = $conn->search_pqf( $cqf );  my $notice;
74    
75    if ( $query =~ m/[\s="]|(and|or|not)/ ) {
76            $rs = $conn->search( new ZOOM::Query::CQL( $query ) );
77            $notice = 'CQL';
78    } else {
79            my $cqf = q2cqf( $query );
80            $notice = "CQF: $cqf";
81            $rs = $conn->search_pqf( $cqf );
82    }
83    
84  my $n = $rs->size();  my $n = $rs->size();
85    if ( $n > $max_res ) {
86            warn "query returned $n results, fetching first $max_res\n";
87            $n = $max_res;
88    }
89  # fetch all results  # fetch all results
90  $rs->records(0, $n - 1, 0);  $rs->records(0, $n - 1, 0);
91    
92  warn "$n results for '$query' [$cqf]\n";  warn "$n results for '$query' $notice\n";
93    
94  sub strip_non_digit {  sub strip_non_digit {
95          my $d = shift;          my $d = shift;
# Line 129  $$; Line 139  $$;
139  -- select * from search('title:djece');  -- select * from search('title:djece');
140  -- select * from search('osman');  -- select * from search('osman');
141    
142  select * from search('NSK','title:mor');  --select * from search('nsk','title:mor');
143  select * from search('NSK','grada');  --select * from search('nsk','grada');
144  select * from search('nsk-en','restrictions');  --select * from search('nsk-en','restrictions');
145    
146    --select * from search('ucs','human');

Legend:
Removed from v.5  
changed lines
  Added in v.8

  ViewVC Help
Powered by ViewVC 1.1.26