...
|
...
|
@@ -18,8 +18,6 @@ sub test {
|
18
|
18
|
$test = shift;
|
19
|
19
|
}
|
20
|
20
|
|
21
|
|
-
|
22
|
|
-
|
23
|
21
|
# Constant varialbes for test
|
24
|
22
|
my $CREATE_TABLE = {
|
25
|
23
|
0 => 'create table table1 (key1 char(255), key2 char(255));',
|
...
|
...
|
@@ -43,6 +41,7 @@ my $NEW_ARGS = {
|
43
|
41
|
my $dbi;
|
44
|
42
|
my $sth;
|
45
|
43
|
my $tmpl;
|
|
44
|
+my @tmpls;
|
46
|
45
|
my $select_tmpl;
|
47
|
46
|
my $insert_tmpl;
|
48
|
47
|
my $update_tmpl;
|
...
|
...
|
@@ -52,6 +51,7 @@ my $result;
|
52
|
51
|
my @rows;
|
53
|
52
|
my $rows;
|
54
|
53
|
my $query;
|
|
54
|
+my @queries;
|
55
|
55
|
my $select_query;
|
56
|
56
|
my $insert_query;
|
57
|
57
|
my $update_query;
|
...
|
...
|
@@ -675,4 +675,42 @@ $rows = $dbi->select([qw/table1 table2/],
|
675
|
675
|
['table1.key1 as table1_key1', 'table2.key1 as table2_key1', 'key2', 'key3'],
|
676
|
676
|
{'table1.key2' => 2},
|
677
|
677
|
"where table1.key1 = table2.key1")->fetch_all_hash;
|
678
|
|
-is_deeply($rows, [{table1_key1 => 1, table2_key1 => 1, key2 => 2, key3 => 5}], "$test : join");
|
|
678
|
+is_deeply($rows, [{table1_key1 => 1, table2_key1 => 1, key2 => 2, key3 => 5}], "$test : join");
|
|
679
|
+
|
|
680
|
+test 'Cache';
|
|
681
|
+$dbi = DBI::Custom->new($NEW_ARGS->{0});
|
|
682
|
+DBI::Custom->query_cache_max(2);
|
|
683
|
+$dbi->do($CREATE_TABLE->{0});
|
|
684
|
+DBI::Custom->delete_class_attr('_query_caches');
|
|
685
|
+DBI::Custom->delete_class_attr('_query_cache_keys');
|
|
686
|
+$tmpls[0] = "insert into table1 {insert key1 key2}";
|
|
687
|
+$queries[0] = $dbi->create_query($tmpls[0]);
|
|
688
|
+is(DBI::Custom->_query_caches->{$tmpls[0]}{sql}, $queries[0]->sql, "$test : sql first");
|
|
689
|
+is(DBI::Custom->_query_caches->{$tmpls[0]}{key_infos}, $queries[0]->key_infos, "$test : key_infos first");
|
|
690
|
+is_deeply(DBI::Custom->_query_cache_keys, [@tmpls], "$test : cache key first");
|
|
691
|
+
|
|
692
|
+$tmpls[1] = "select * from table1";
|
|
693
|
+$queries[1] = $dbi->create_query($tmpls[1]);
|
|
694
|
+is(DBI::Custom->_query_caches->{$tmpls[0]}{sql}, $queries[0]->sql, "$test : sql first");
|
|
695
|
+is(DBI::Custom->_query_caches->{$tmpls[0]}{key_infos}, $queries[0]->key_infos, "$test : key_infos first");
|
|
696
|
+is(DBI::Custom->_query_caches->{$tmpls[1]}{sql}, $queries[1]->sql, "$test : sql second");
|
|
697
|
+is(DBI::Custom->_query_caches->{$tmpls[1]}{key_infos}, $queries[1]->key_infos, "$test : key_infos second");
|
|
698
|
+is_deeply(DBI::Custom->_query_cache_keys, [@tmpls], "$test : cache key second");
|
|
699
|
+
|
|
700
|
+$tmpls[2] = "select key1, key2 from table1";
|
|
701
|
+$queries[2] = $dbi->create_query($tmpls[2]);
|
|
702
|
+ok(!exists DBI::Custom->_query_caches->{$tmpls[0]}, "$test : cache overflow deleted key");
|
|
703
|
+is(DBI::Custom->_query_caches->{$tmpls[1]}{sql}, $queries[1]->sql, "$test : sql cache overflow deleted key");
|
|
704
|
+is(DBI::Custom->_query_caches->{$tmpls[1]}{key_infos}, $queries[1]->key_infos, "$test : key_infos cache overflow deleted key");
|
|
705
|
+is(DBI::Custom->_query_caches->{$tmpls[2]}{sql}, $queries[2]->sql, "$test : sql cache overflow deleted key");
|
|
706
|
+is(DBI::Custom->_query_caches->{$tmpls[2]}{key_infos}, $queries[2]->key_infos, "$test : key_infos cache overflow deleted key");
|
|
707
|
+is_deeply(DBI::Custom->_query_cache_keys, [@tmpls[1, 2]], "$test : cache key third");
|
|
708
|
+
|
|
709
|
+$queries[1] = $dbi->create_query($tmpls[1]);
|
|
710
|
+ok(!exists DBI::Custom->_query_caches->{$tmpls[0]}, "$test : cache overflow deleted key");
|
|
711
|
+is(DBI::Custom->_query_caches->{$tmpls[1]}{sql}, $queries[1]->sql, "$test : sql cache overflow deleted key");
|
|
712
|
+is(DBI::Custom->_query_caches->{$tmpls[1]}{key_infos}, $queries[1]->key_infos, "$test : key_infos cache overflow deleted key");
|
|
713
|
+is(DBI::Custom->_query_caches->{$tmpls[2]}{sql}, $queries[2]->sql, "$test : sql cache overflow deleted key");
|
|
714
|
+is(DBI::Custom->_query_caches->{$tmpls[2]}{key_infos}, $queries[2]->key_infos, "$test : key_infos cache overflow deleted key");
|
|
715
|
+is_deeply(DBI::Custom->_query_cache_keys, [@tmpls[1, 2]], "$test : cache key third");
|
|
716
|
+
|