/[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 3 by dpavlin, Thu Apr 26 20:21:36 2007 UTC revision 6 by dpavlin, Thu Apr 26 20:57:14 2007 UTC
# Line 7  create table servers ( Line 7  create table servers (
7  );  );
8    
9  -- insert sample  -- insert sample
10  insert into servers values ( 'NSK', '161.53.240.27', 8090, 'voyager' );  insert into servers values ( 'nsk', '161.53.240.27', 8090, 'voyager' );
11    insert into servers values ( 'nsk-en', '161.53.240.27', 8190, 'voyager' );
12    insert into servers values ( 'loc', 'z3950.loc.gov', 7090, 'Voyager' );
13    insert into servers values ( 'ucs', 'library.usc.edu', 2200, 'unicorn' );
14    insert into servers values ( 'tera', 'z3950.inquirion.com', 210, 'Marc' );
15    insert into servers values ( 'cosmo', 'rlw.savba.sk', 8888, 'test_un_cat' );
16    insert into servers values ( 'copac', 'z3950.copac.ac.uk', 2020, 'xxdefault' );
17    --insert into servers values ( 'wcat', 'tikal.dev.oclc.org', 210, 'WorldCat' );
18    --insert into servers values ( '', '', , '' );
19    
20  create type item as (  create type item as (
21          title text,          title text,
# Line 16  create type item as ( Line 24  create type item as (
24          date text          date text
25  );  );
26    
27  create or replace function search(text)  create or replace function search(text,text)
28  returns setof item  returns setof item
29  language plperlu  language plperlu
30  as $$  as $$
31    
32  my ( $query ) = @_;  my $debug = 0;
33    my $max_res = 100;
34    
35  my ( $host, $port, $database ) =  my ( $server, $query ) = @_;
36          ( '161.53.240.27', 8090, 'voyager' );  
37    my $rv = spi_exec_query(qq{
38            select host,port,database from servers where name ilike '$server'
39    },1);
40    
41    die "can't find database $database\n" unless ( $rv->{processed} == 1 );
42    
43    my ( $host, $port, $database ) = (
44            $rv->{rows}[0]->{host},
45            $rv->{rows}[0]->{port},
46            $rv->{rows}[0]->{database},
47    );
48    
49  use ZOOM;  use ZOOM;
50  use MARC::Record;  use MARC::Record;
# Line 57  my $cqf = q2cqf( $query ); Line 77  my $cqf = q2cqf( $query );
77  my $rs = $conn->search_pqf( $cqf );  my $rs = $conn->search_pqf( $cqf );
78    
79  my $n = $rs->size();  my $n = $rs->size();
80    if ( $n > $max_res ) {
81            warn "query returned $n results, fetching first $max_res\n";
82            $n = $max_res;
83    }
84  # fetch all results  # fetch all results
85  $rs->records(0, $n - 1, 0);  $rs->records(0, $n - 1, 0);
86    
# Line 82  sub e { Line 106  sub e {
106          $t =~ s/éZ/®/g;          $t =~ s/éZ/®/g;
107          $t =~ s/éS/©/g;          $t =~ s/éS/©/g;
108          $t =~ s/£/Ð/g;          $t =~ s/£/Ð/g;
109          warn "## $t\n";          warn "## $t\n" if $debug;
110  #       $t = decode('iso-8859-2', $t);  #       $t = decode('iso-8859-2', $t);
111  #       return encode('utf-8',$t);  #       return encode('utf-8',$t);
112          return $t;          return $t;
# Line 110  $$; Line 134  $$;
134  -- select * from search('title:djece');  -- select * from search('title:djece');
135  -- select * from search('osman');  -- select * from search('osman');
136    
137  select * from search('title:mor');  select * from search('NSK','title:mor');
138  select * from search('grada');  select * from search('NSK','grada');
139    select * from search('nsk-en','restrictions');

Legend:
Removed from v.3  
changed lines
  Added in v.6

  ViewVC Help
Powered by ViewVC 1.1.26