--- trunk/index_DBI_cache.pm 2003/10/30 01:02:22 142 +++ trunk/index_DBI_cache.pm 2003/11/29 19:07:00 188 @@ -10,6 +10,7 @@ use strict qw(vars); use vars qw($Count); use HTML::Entities; +use URI::Escape; use DBI; @@ -66,6 +67,7 @@ } $sql = "create table $field ( item varchar(255), + display text, count int, ord int, primary key (item) @@ -79,7 +81,7 @@ my $field = shift; my $index_data = shift || print STDERR "\$index->insert($field,NULL,...)"; - my $ident = shift || ''; # e.g. library id + my $display = shift || $index_data; if (! $index_data) { print STDERR "\$index->insert() -- no value to insert\n"; @@ -101,6 +103,7 @@ if (! $c_table->{$field}->{$uc}) { #print stderr "in index: $index_data\n"; $c_table->{$field}->{$uc} = $index_data; + $c_table->{$field}->{$uc}->{display} = $display; $c_count->{$field}->{$uc} = 1; } else { $c_count->{$field}->{$uc}++; @@ -145,7 +148,7 @@ my @sql_args; - my $sql = "select item,ord from $field"; + my $sql = "select item,display,ord from $field"; if ($where) { my $sql2 = "select ord from $field where upper(item) like upper(?)||'%'"; @@ -171,7 +174,8 @@ $sth->execute() || die "execute: $sql; ".$self->{dbh}->errstr(); my @arr; while (my $row = $sth->fetchrow_hashref) { - $row->{item} = HTML::Entities::encode($row->{item},'<>&"'); + $row->{item} = HTML::Entities::encode($row->{item},' <>&"'); + $row->{display} = HTML::Entities::encode($row->{display},'<>&"'); push @arr,$row; } return @arr; @@ -192,13 +196,14 @@ my @keys = sort keys %{$c_table->{$table}}; $self->bench("Dumping data into $table"); - my $sql = "insert into $table (ord,item,count) values (?,?,?)"; + my $sql = "insert into $table (ord,item,display,count) values (?,?,?,?)"; my $sth = $self->{dbh}->prepare($sql) || die "sql: $sql; ".$self->{dbh}->errstr(); my $ord = 0; foreach my $key (@keys) { $sth->execute(++$ord, $c_table->{$table}->{$key}, + $c_table->{$table}->{$key}->{display}, $c_count->{$table}->{$key} ); }