use columns.table and test it since web interface uses it
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 20 May 2012 20:25:50 +0000 (22:25 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 20 May 2012 20:25:50 +0000 (22:25 +0200)
lib/APKPM/Store.pm
t/Store.t
web_ui.pl

index bf9127b..962e7c5 100644 (file)
@@ -89,7 +89,7 @@ sub pg_insert {
                warn "# using partition $table";
        }
 
-       if ( my $cols = $self->redis->get("pg.$table") ) {
+       if ( my $cols = $self->redis->get("columns.$table") ) {
                @c = split(/\s+/,$cols);
        } else {
                my $sth = $self->dbh->prepare( "select * from $table limit 1" );
@@ -101,12 +101,12 @@ sub pg_insert {
                }
 
                @c = @{ $sth->{NAME_lc} };
-               $self->redis->set( "pg.$table" => join(' ',@c) );
-               $self->redis->expire( "pg.$table" => $redis_ttl );
+               $self->redis->set( "columns.$table" => join(' ',@c) );
+               $self->redis->expire( "columns.$table" => $redis_ttl );
 
                # web interface requires base table columns
-               $self->redis->set( "pg.$base_table" => join(' ',@c) );
-               $self->redis->expire( "pg.$base_table" => $redis_ttl );
+               $self->redis->set( "columns.$base_table" => join(' ',@c) );
+               $self->redis->expire( "columns.$base_table" => $redis_ttl );
        }
 
        my $sql = "INSERT INTO $table (" . join(',',@c) . ') values (' . join(',', map { '?' } 0 .. $#c) . ')';
index 02848ee..cd7d8de 100755 (executable)
--- a/t/Store.t
+++ b/t/Store.t
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 17;
+use Test::More tests => 19;
 use Data::Dump qw(dump);
 
 use lib 'lib';
@@ -34,11 +34,15 @@ h => {
 start => '2011-12-05 01:01:01',
 }), 'ping';
 
-ok( $r = $o->redis->get( 'table.cpe_Davolink.nobody' ), 'redis' );
+ok( $r = $o->redis->get( 'table.cpe_Davolink.nobody' ), 'redis table.cpe_Davolink.nobody' );
 ok( my $j = $o->d_json($r), 'd_json' );
 isa_ok( $j->{h}, 'HASH', 'hstore' );
 diag dump($j);
 
+foreach my $key ( qw( columns.cpe_Davolink columns.cpe_Davolink_2011_12_05 ) ) {
+       ok( $r = $o->redis->get( $key ), "redis $key" );
+}
+
 ok $r = $o->sql('job', "select username,rtt from ping limit 2"), 'sql';
 diag dump($r);
 
index 36d00de..19f435f 100755 (executable)
--- a/web_ui.pl
+++ b/web_ui.pl
@@ -96,7 +96,7 @@ get '/table/:table' => sub {
 
                # generate result as Store_sql does
 
-               my @c = split(/\s+/, $redis->get("pg.$table"));
+               my @c = split(/\s+/, $redis->get("columns.$table"));
                my ($hash_col) = grep { $c[$_] eq 'h' } 0 .. $#c;
 
                $ret = {