create indexes on inherited tables
[APKPM.git] / t / Store.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 17;
6 use Data::Dump qw(dump);
7
8 use lib 'lib';
9
10 use_ok 'APKPM::Store';
11
12 ok my $o = APKPM::Store->new, 'new';
13
14 ok my $sql = $o->_create_index('dslam', '2012_04_20'), '_create_index';
15 diag $sql;
16
17 ok my $r = $o->insert('job',{
18 _table => 'ping',
19 ip => '127.0.0.1',
20 username => 'nobody',
21 rtt => 0.042,
22 timestamp => '2011-12-05 01:01:01',
23 }), 'ping';
24 diag dump($r);
25
26 ok $r = $o->insert('job',{
27 _table => 'cpe_Davolink',
28 ip => '127.0.0.1',
29 username => 'nobody',
30 h => {
31         foo => 1,
32         bar => 2,
33 },
34 start => '2011-12-05 01:01:01',
35 }), 'ping';
36
37 ok( $r = $o->redis->get( 'table.cpe_Davolink.nobody' ), 'redis' );
38 ok( my $j = $o->d_json($r), 'd_json' );
39 isa_ok( $j->{h}, 'HASH', 'hstore' );
40 diag dump($j);
41
42 ok $r = $o->sql('job', "select username,rtt from ping limit 2"), 'sql';
43 diag dump($r);
44
45 ok $r = $o->sql('job', "select xx from fake"), 'sql with error';
46 ok exists $r->{error}, 'error';
47 diag dump($r);
48
49 foreach my $cpe_table ( qw(cpe_Davolink cpe_EasyGateway) ) {
50
51         diag $cpe_table;
52         ok $r = $o->sql('job', "select * from $cpe_table limit 1"), $cpe_table;
53         ok( $r->{hash_col}, 'hash_col' );
54         isa_ok $r->{rows}->[0]->[ $r->{hash_col} ], 'HASH', 'hstore column';
55         diag "$cpe_table ",dump $r;
56
57 }
58