summaryrefslogtreecommitdiff
path: root/mysql-test/r/profiling.result
diff options
context:
space:
mode:
authorunknown <cmiller@zippy.cornsilk.net>2007-04-06 09:15:18 -0400
committerunknown <cmiller@zippy.cornsilk.net>2007-04-06 09:15:18 -0400
commitfcb52609e4727cdf6f246e7817c0fa625749c5c4 (patch)
treef80fd4f330f95124b1f5560ce915ec1765b8ec62 /mysql-test/r/profiling.result
parentc717287c22f2e18b31338d6ac7af5bf9c97e0b1f (diff)
downloadmariadb-git-fcb52609e4727cdf6f246e7817c0fa625749c5c4.tar.gz
Changing the state of whether we're recording profiling information
halfway through a query (as happens in "SET SESSION PROFILING = ...") has a few side-effects, the worst of which is a memory leak for prepared statements, which poke directly from the parser into the profiling code (we don't have the query text when we need it) and that overwrites a pointer to heap-allocated memory when the previous statement turns on profiling. Instead, now set a flag when we begin a new statement that tracks whether profiling is on _at the start_ of the query. Use that to track whether we gather info. Additionally, use that AND use the state of the profiling variable after the end of a query to know whether to store information about the query that just finished. mysql-test/r/profiling.result: Testing whether profiling is on at the beginning of a query and at the end of a query makes "SET SESSION PROFILING = ..." statements disappear from the profiling. They were never reliable before. sql/sql_profile.cc: Check to see if profiling was enabled at the beginning of this query before trying to store query_source. This avoids a memory leak for prepared statements, which get here by direct means. If profiling was toggled in this query, then don't store this query profile. sql/sql_profile.h: Keep track of whether profiling is on.
Diffstat (limited to 'mysql-test/r/profiling.result')
-rw-r--r--mysql-test/r/profiling.result253
1 files changed, 126 insertions, 127 deletions
diff --git a/mysql-test/r/profiling.result b/mysql-test/r/profiling.result
index 50b6fff82b8..9f478d68b8d 100644
--- a/mysql-test/r/profiling.result
+++ b/mysql-test/r/profiling.result
@@ -69,34 +69,33 @@ big_string
012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890
show profiles;
Query_ID Duration Query
-1 # set session profiling = ON
-2 # set session profiling_history_size=30
-3 # show session variables like 'profil%'
-4 # select @@profiling
-5 # create table t1 (
+1 # set session profiling_history_size=30
+2 # show session variables like 'profil%'
+3 # select @@profiling
+4 # create table t1 (
a int,
b int
)
-6 # insert into t1 values (1,1), (2,null), (3, 4)
-7 # insert into t1 values (5,1), (6,null), (7, 4)
-8 # insert into t1 values (1,1), (2,null), (3, 4)
-9 # insert into t1 values (5,1), (6,null), (7, 4)
-10 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
-11 # insert into t1 select * from t1
-12 # select count(*) from t1
+5 # insert into t1 values (1,1), (2,null), (3, 4)
+6 # insert into t1 values (5,1), (6,null), (7, 4)
+7 # insert into t1 values (1,1), (2,null), (3, 4)
+8 # insert into t1 values (5,1), (6,null), (7, 4)
+9 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
+10 # insert into t1 select * from t1
+11 # select count(*) from t1
+12 # insert into t1 select * from t1
13 # insert into t1 select * from t1
14 # insert into t1 select * from t1
-15 # insert into t1 select * from t1
-16 # select count(*) from t1
+15 # select count(*) from t1
+16 # insert into t1 select * from t1
17 # insert into t1 select * from t1
18 # insert into t1 select * from t1
-19 # insert into t1 select * from t1
-20 # select count(*) from t1
-21 # select sum(a) from t1
-22 # select sum(a) from t1 group by b
-23 # select sum(a) + sum(b) from t1 group by b
-24 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
-25 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
+19 # select count(*) from t1
+20 # select sum(a) from t1
+21 # select sum(a) from t1 group by b
+22 # select sum(a) + sum(b) from t1 group by b
+23 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
+24 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
show profile for query 15;
show profile cpu for query 15;
show profile cpu, block io for query 15;
@@ -131,36 +130,36 @@ insert into t2 values (1), (2), (3);
insert into t3 values (1), (2), (3);
show profiles;
Query_ID Duration Query
-11 # insert into t1 select * from t1
-12 # select count(*) from t1
+10 # insert into t1 select * from t1
+11 # select count(*) from t1
+12 # insert into t1 select * from t1
13 # insert into t1 select * from t1
14 # insert into t1 select * from t1
-15 # insert into t1 select * from t1
-16 # select count(*) from t1
+15 # select count(*) from t1
+16 # insert into t1 select * from t1
17 # insert into t1 select * from t1
18 # insert into t1 select * from t1
-19 # insert into t1 select * from t1
-20 # select count(*) from t1
-21 # select sum(a) from t1
-22 # select sum(a) from t1 group by b
-23 # select sum(a) + sum(b) from t1 group by b
-24 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
-25 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
-26 # select * from information_schema.profiling
-27 # select query_id, state, duration from information_schema.profiling
-28 # select query_id, sum(duration) from information_schema.profiling group by query_id
-29 # select query_id, count(*) from information_schema.profiling group by query_id
-30 # select sum(duration) from information_schema.profiling
-31 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
-32 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
-33 # drop table if exists t1, t2, t3
-34 # SHOW WARNINGS
-35 # create table t1 (id int )
-36 # create table t2 (id int not null)
-37 # create table t3 (id int not null primary key)
-38 # insert into t1 values (1), (2), (3)
-39 # insert into t2 values (1), (2), (3)
-40 # insert into t3 values (1), (2), (3)
+19 # select count(*) from t1
+20 # select sum(a) from t1
+21 # select sum(a) from t1 group by b
+22 # select sum(a) + sum(b) from t1 group by b
+23 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
+24 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
+25 # select * from information_schema.profiling
+26 # select query_id, state, duration from information_schema.profiling
+27 # select query_id, sum(duration) from information_schema.profiling group by query_id
+28 # select query_id, count(*) from information_schema.profiling group by query_id
+29 # select sum(duration) from information_schema.profiling
+30 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
+31 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
+32 # drop table if exists t1, t2, t3
+33 # SHOW WARNINGS
+34 # create table t1 (id int )
+35 # create table t2 (id int not null)
+36 # create table t3 (id int not null primary key)
+37 # insert into t1 values (1), (2), (3)
+38 # insert into t2 values (1), (2), (3)
+39 # insert into t3 values (1), (2), (3)
select * from t1;
id
1
@@ -168,36 +167,36 @@ id
3
show profiles;
Query_ID Duration Query
-12 # select count(*) from t1
+11 # select count(*) from t1
+12 # insert into t1 select * from t1
13 # insert into t1 select * from t1
14 # insert into t1 select * from t1
-15 # insert into t1 select * from t1
-16 # select count(*) from t1
+15 # select count(*) from t1
+16 # insert into t1 select * from t1
17 # insert into t1 select * from t1
18 # insert into t1 select * from t1
-19 # insert into t1 select * from t1
-20 # select count(*) from t1
-21 # select sum(a) from t1
-22 # select sum(a) from t1 group by b
-23 # select sum(a) + sum(b) from t1 group by b
-24 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
-25 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
-26 # select * from information_schema.profiling
-27 # select query_id, state, duration from information_schema.profiling
-28 # select query_id, sum(duration) from information_schema.profiling group by query_id
-29 # select query_id, count(*) from information_schema.profiling group by query_id
-30 # select sum(duration) from information_schema.profiling
-31 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
-32 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
-33 # drop table if exists t1, t2, t3
-34 # SHOW WARNINGS
-35 # create table t1 (id int )
-36 # create table t2 (id int not null)
-37 # create table t3 (id int not null primary key)
-38 # insert into t1 values (1), (2), (3)
-39 # insert into t2 values (1), (2), (3)
-40 # insert into t3 values (1), (2), (3)
-41 # select * from t1
+19 # select count(*) from t1
+20 # select sum(a) from t1
+21 # select sum(a) from t1 group by b
+22 # select sum(a) + sum(b) from t1 group by b
+23 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
+24 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
+25 # select * from information_schema.profiling
+26 # select query_id, state, duration from information_schema.profiling
+27 # select query_id, sum(duration) from information_schema.profiling group by query_id
+28 # select query_id, count(*) from information_schema.profiling group by query_id
+29 # select sum(duration) from information_schema.profiling
+30 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
+31 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
+32 # drop table if exists t1, t2, t3
+33 # SHOW WARNINGS
+34 # create table t1 (id int )
+35 # create table t2 (id int not null)
+36 # create table t3 (id int not null primary key)
+37 # insert into t1 values (1), (2), (3)
+38 # insert into t2 values (1), (2), (3)
+39 # insert into t3 values (1), (2), (3)
+40 # select * from t1
This ^^ should end in "select * from t1;"
delete from t1;
insert into t1 values (1), (2), (3);
@@ -212,72 +211,72 @@ id
3
show profiles;
Query_ID Duration Query
-16 # select count(*) from t1
+15 # select count(*) from t1
+16 # insert into t1 select * from t1
17 # insert into t1 select * from t1
18 # insert into t1 select * from t1
-19 # insert into t1 select * from t1
-20 # select count(*) from t1
-21 # select sum(a) from t1
-22 # select sum(a) from t1 group by b
-23 # select sum(a) + sum(b) from t1 group by b
-24 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
-25 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
-26 # select * from information_schema.profiling
-27 # select query_id, state, duration from information_schema.profiling
-28 # select query_id, sum(duration) from information_schema.profiling group by query_id
-29 # select query_id, count(*) from information_schema.profiling group by query_id
-30 # select sum(duration) from information_schema.profiling
-31 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
-32 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
-33 # drop table if exists t1, t2, t3
-34 # SHOW WARNINGS
-35 # create table t1 (id int )
-36 # create table t2 (id int not null)
-37 # create table t3 (id int not null primary key)
-38 # insert into t1 values (1), (2), (3)
-39 # insert into t2 values (1), (2), (3)
-40 # insert into t3 values (1), (2), (3)
-41 # select * from t1
-42 # delete from t1
+19 # select count(*) from t1
+20 # select sum(a) from t1
+21 # select sum(a) from t1 group by b
+22 # select sum(a) + sum(b) from t1 group by b
+23 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
+24 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
+25 # select * from information_schema.profiling
+26 # select query_id, state, duration from information_schema.profiling
+27 # select query_id, sum(duration) from information_schema.profiling group by query_id
+28 # select query_id, count(*) from information_schema.profiling group by query_id
+29 # select sum(duration) from information_schema.profiling
+30 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
+31 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
+32 # drop table if exists t1, t2, t3
+33 # SHOW WARNINGS
+34 # create table t1 (id int )
+35 # create table t2 (id int not null)
+36 # create table t3 (id int not null primary key)
+37 # insert into t1 values (1), (2), (3)
+38 # insert into t2 values (1), (2), (3)
+39 # insert into t3 values (1), (2), (3)
+40 # select * from t1
+41 # delete from t1
+42 # insert into t1 values (1), (2), (3)
43 # insert into t1 values (1), (2), (3)
-44 # insert into t1 values (1), (2), (3)
-45 # select * from t1
+44 # select * from t1
set session profiling = OFF;
select sum(id) from t1;
sum(id)
12
show profiles;
Query_ID Duration Query
-16 # select count(*) from t1
+15 # select count(*) from t1
+16 # insert into t1 select * from t1
17 # insert into t1 select * from t1
18 # insert into t1 select * from t1
-19 # insert into t1 select * from t1
-20 # select count(*) from t1
-21 # select sum(a) from t1
-22 # select sum(a) from t1 group by b
-23 # select sum(a) + sum(b) from t1 group by b
-24 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
-25 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
-26 # select * from information_schema.profiling
-27 # select query_id, state, duration from information_schema.profiling
-28 # select query_id, sum(duration) from information_schema.profiling group by query_id
-29 # select query_id, count(*) from information_schema.profiling group by query_id
-30 # select sum(duration) from information_schema.profiling
-31 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
-32 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
-33 # drop table if exists t1, t2, t3
-34 # SHOW WARNINGS
-35 # create table t1 (id int )
-36 # create table t2 (id int not null)
-37 # create table t3 (id int not null primary key)
-38 # insert into t1 values (1), (2), (3)
-39 # insert into t2 values (1), (2), (3)
-40 # insert into t3 values (1), (2), (3)
-41 # select * from t1
-42 # delete from t1
+19 # select count(*) from t1
+20 # select sum(a) from t1
+21 # select sum(a) from t1 group by b
+22 # select sum(a) + sum(b) from t1 group by b
+23 # select max(x) from (select sum(a) as x from t1 group by b) as teeone
+24 # select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
+25 # select * from information_schema.profiling
+26 # select query_id, state, duration from information_schema.profiling
+27 # select query_id, sum(duration) from information_schema.profiling group by query_id
+28 # select query_id, count(*) from information_schema.profiling group by query_id
+29 # select sum(duration) from information_schema.profiling
+30 # select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
+31 # select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
+32 # drop table if exists t1, t2, t3
+33 # SHOW WARNINGS
+34 # create table t1 (id int )
+35 # create table t2 (id int not null)
+36 # create table t3 (id int not null primary key)
+37 # insert into t1 values (1), (2), (3)
+38 # insert into t2 values (1), (2), (3)
+39 # insert into t3 values (1), (2), (3)
+40 # select * from t1
+41 # delete from t1
+42 # insert into t1 values (1), (2), (3)
43 # insert into t1 values (1), (2), (3)
-44 # insert into t1 values (1), (2), (3)
-45 # select * from t1
+44 # select * from t1
set session profiling = ON;
select @@profiling;
@@profiling