Commit 6ed210db authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua
Browse files

fixed bdb transaction with query cache bug

parent aceaf381
Loading
Loading
Loading
Loading
+100 −0
Original line number Diff line number Diff line
drop table if exists t1, t2, t3;
flush status;
set autocommit=0;
create table t1 (a int not null) type=bdb;
insert into t1 values (1),(2),(3);
select * from t1;
a
1
2
3
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	0
drop table t1;
commit;
set autocommit=1;
begin;
create table t1 (a int not null) type=bdb;
insert into t1 values (1),(2),(3);
select * from t1;
a
1
2
3
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	0
drop table t1;
commit;
create table t1 (a int not null) type=bdb;
create table t2 (a int not null) type=bdb;
create table t3 (a int not null) type=bdb;
insert into t1 values (1),(2);
insert into t2 values (1),(2);
insert into t3 values (1),(2);
select * from t1;
a
1
2
select * from t2;
a
1
2
select * from t3;
a
1
2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	3
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	0
begin;
select * from t1;
a
1
2
select * from t2;
a
1
2
select * from t3;
a
1
2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	3
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	0
insert into t1 values (3);
insert into t2 values (3);
insert into t1 values (4);
select * from t1;
a
1
2
3
4
select * from t2;
a
1
2
3
select * from t3;
a
1
2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	3
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	0
commit;
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	1
+1 −0
Original line number Diff line number Diff line
--set-variable=query_cache_size=1M
+50 −0
Original line number Diff line number Diff line
-- source include/have_bdb.inc
-- source include/have_query_cache.inc

#
# Without auto_commit.
#
drop table if exists t1, t2, t3;
flush status;
set autocommit=0;
create table t1 (a int not null) type=bdb;
insert into t1 values (1),(2),(3);
select * from t1;
show status like "Qcache_queries_in_cache";
drop table t1;
commit;
set autocommit=1;
begin;
create table t1 (a int not null) type=bdb;
insert into t1 values (1),(2),(3);
select * from t1;
show status like "Qcache_queries_in_cache";
drop table t1;
commit;
create table t1 (a int not null) type=bdb;
create table t2 (a int not null) type=bdb;
create table t3 (a int not null) type=bdb;
insert into t1 values (1),(2);
insert into t2 values (1),(2);
insert into t3 values (1),(2);
select * from t1;
select * from t2;
select * from t3;
show status like "Qcache_queries_in_cache";
show status like "Qcache_hits";
begin;
select * from t1;
select * from t2;
select * from t3;
show status like "Qcache_queries_in_cache";
show status like "Qcache_hits";
insert into t1 values (3);
insert into t2 values (3);
insert into t1 values (4);
select * from t1;
select * from t2;
select * from t3;
show status like "Qcache_queries_in_cache";
show status like "Qcache_hits";
commit;
show status like "Qcache_queries_in_cache";
 No newline at end of file
+2 −1
Original line number Diff line number Diff line
@@ -294,6 +294,7 @@ int ha_commit_trans(THD *thd, THD_TRANS* trans)
	error=1;
      }
      else
	if (!(thd->options & OPTION_BEGIN))
	  transaction_commited= 1; 
      trans->bdb_tid=0;
    }