Bug#57154 Rename THREADS.ID to THREADS.PROCESSLIST_ID in 5.5
This change is to align the 5.5 performance_schema.THREADS table definition with the 5.6 performance_schema.THREADS table, to facilitate the 5.5 -> 5.6 migration later. In the table performance_schema.THREADS: - renamed ID to PROCESSLIST_ID, removed not null - changed NAME from varchar(64) to varchar(128) to match the columns definitions from 5.6 Adjusted the test cases accordingly. Note: this fix is for 5.5 only, to null merge into 5.6
This commit is contained in:
parent
f79f6e0c34
commit
4c929d53fa
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -10,8 +10,8 @@
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
|
||||
|
||||
# Tests for PERFORMANCE_SCHEMA
|
||||
|
||||
@ -26,17 +26,17 @@ update performance_schema.SETUP_CONSUMERS set enabled='YES';
|
||||
connect (con1, localhost, root, , );
|
||||
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID in (select connection_id())`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connect (con2, localhost, root, , );
|
||||
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID in (select connection_id())`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connect (con3, localhost, root, , );
|
||||
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID in (select connection_id())`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connection default;
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
select * from performance_schema.THREADS
|
||||
where name like 'Thread/%' limit 1;
|
||||
THREAD_ID ID NAME
|
||||
THREAD_ID PROCESSLIST_ID NAME
|
||||
# # #
|
||||
select * from performance_schema.THREADS
|
||||
where name='FOO';
|
||||
THREAD_ID ID NAME
|
||||
THREAD_ID PROCESSLIST_ID NAME
|
||||
insert into performance_schema.THREADS
|
||||
set name='FOO', thread_id=1, id=2;
|
||||
set name='FOO', thread_id=1, processlist_id=2;
|
||||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
update performance_schema.THREADS
|
||||
set thread_id=12;
|
||||
|
@ -94,24 +94,9 @@ FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
WHERE COUNT_STAR > 0
|
||||
ORDER BY SUM_TIMER_WAIT DESC
|
||||
LIMIT 10;
|
||||
SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
|
||||
# ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user
|
||||
ORDER BY SUM_WAIT DESC
|
||||
LIMIT 20;
|
||||
SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
WHERE p.ID = 1
|
||||
WHERE p.PROCESSLIST_ID = 1
|
||||
GROUP BY h.EVENT_NAME
|
||||
HAVING TOTAL_WAIT > 0;
|
||||
SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user, h.operation
|
||||
HAVING BYTES > 0
|
||||
ORDER BY i.user, h.operation;
|
||||
|
@ -84,22 +84,22 @@ id c
|
||||
13 [EVENT_ID]
|
||||
DROP TRIGGER t_ps_trigger;
|
||||
DROP PROCEDURE IF EXISTS t_ps_proc;
|
||||
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
|
||||
CREATE PROCEDURE t_ps_proc(IN conid INT, OUT pid INT)
|
||||
BEGIN
|
||||
SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid INTO pid;
|
||||
SELECT thread_id FROM performance_schema.THREADS
|
||||
WHERE PROCESSLIST_ID = conid INTO pid;
|
||||
END;
|
||||
|
|
||||
CALL t_ps_proc(0, @p_id);
|
||||
CALL t_ps_proc(connection_id(), @p_id);
|
||||
DROP FUNCTION IF EXISTS t_ps_proc;
|
||||
CREATE FUNCTION t_ps_func(tid INT) RETURNS int
|
||||
CREATE FUNCTION t_ps_func(conid INT) RETURNS int
|
||||
BEGIN
|
||||
return (SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid);
|
||||
return (SELECT thread_id FROM performance_schema.THREADS
|
||||
WHERE PROCESSLIST_ID = conid);
|
||||
END;
|
||||
|
|
||||
SELECT t_ps_func(0) = @p_id;
|
||||
t_ps_func(0) = @p_id
|
||||
SELECT t_ps_func(connection_id()) = @p_id;
|
||||
t_ps_func(connection_id()) = @p_id
|
||||
1
|
||||
SELECT * FROM t_event;
|
||||
EVENT_ID
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -10,8 +10,8 @@
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
|
||||
|
||||
# Tests for PERFORMANCE_SCHEMA
|
||||
|
||||
@ -28,7 +28,7 @@ select * from performance_schema.THREADS
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
insert into performance_schema.THREADS
|
||||
set name='FOO', thread_id=1, id=2;
|
||||
set name='FOO', thread_id=1, processlist_id=2;
|
||||
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2008-2009 Sun Microsystems, Inc
|
||||
# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -10,8 +10,8 @@
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
|
||||
|
||||
##
|
||||
## WL#4814, 4.1.4 FILE IO
|
||||
@ -154,16 +154,16 @@ LIMIT 10;
|
||||
# Total and average wait time for different users
|
||||
#
|
||||
|
||||
--disable_result_log
|
||||
SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
|
||||
# ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user
|
||||
ORDER BY SUM_WAIT DESC
|
||||
LIMIT 20;
|
||||
--enable_result_log
|
||||
## --disable_result_log
|
||||
## SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
|
||||
## # ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
|
||||
## FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
## INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
## LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
## GROUP BY i.user
|
||||
## ORDER BY SUM_WAIT DESC
|
||||
## LIMIT 20;
|
||||
## --enable_result_log
|
||||
|
||||
#
|
||||
# Total and average wait times for different events for a session
|
||||
@ -172,7 +172,7 @@ LIMIT 20;
|
||||
SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
WHERE p.ID = 1
|
||||
WHERE p.PROCESSLIST_ID = 1
|
||||
GROUP BY h.EVENT_NAME
|
||||
HAVING TOTAL_WAIT > 0;
|
||||
--enable_result_log
|
||||
@ -181,12 +181,12 @@ HAVING TOTAL_WAIT > 0;
|
||||
# Which user reads and writes data
|
||||
#
|
||||
|
||||
--disable_result_log
|
||||
SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user, h.operation
|
||||
HAVING BYTES > 0
|
||||
ORDER BY i.user, h.operation;
|
||||
--enable_result_log
|
||||
## --disable_result_log
|
||||
## SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
|
||||
## FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
## INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
## LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
## GROUP BY i.user, h.operation
|
||||
## HAVING BYTES > 0
|
||||
## ORDER BY i.user, h.operation;
|
||||
## --enable_result_log
|
||||
|
@ -136,17 +136,17 @@ DROP PROCEDURE IF EXISTS t_ps_proc;
|
||||
--enable_warnings
|
||||
delimiter |;
|
||||
|
||||
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
|
||||
CREATE PROCEDURE t_ps_proc(IN conid INT, OUT pid INT)
|
||||
BEGIN
|
||||
SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid INTO pid;
|
||||
SELECT thread_id FROM performance_schema.THREADS
|
||||
WHERE PROCESSLIST_ID = conid INTO pid;
|
||||
END;
|
||||
|
||||
|
|
||||
|
||||
delimiter ;|
|
||||
|
||||
CALL t_ps_proc(0, @p_id);
|
||||
CALL t_ps_proc(connection_id(), @p_id);
|
||||
|
||||
# FUNCTION
|
||||
|
||||
@ -155,17 +155,17 @@ DROP FUNCTION IF EXISTS t_ps_proc;
|
||||
--enable_warnings
|
||||
delimiter |;
|
||||
|
||||
CREATE FUNCTION t_ps_func(tid INT) RETURNS int
|
||||
CREATE FUNCTION t_ps_func(conid INT) RETURNS int
|
||||
BEGIN
|
||||
return (SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid);
|
||||
return (SELECT thread_id FROM performance_schema.THREADS
|
||||
WHERE PROCESSLIST_ID = conid);
|
||||
END;
|
||||
|
||||
|
|
||||
|
||||
delimiter ;|
|
||||
|
||||
SELECT t_ps_func(0) = @p_id;
|
||||
SELECT t_ps_func(connection_id()) = @p_id;
|
||||
|
||||
# We might reach this point too early which means the event scheduler has not
|
||||
# execute our "t_ps_event". Therefore we poll till the record was inserted
|
||||
|
@ -31,14 +31,14 @@ connect (con1, localhost, root, , );
|
||||
let $con1_ID=`select connection_id()`;
|
||||
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connect (con2, localhost, root, , );
|
||||
|
||||
let $con2_ID=`select connection_id()`;
|
||||
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connection default;
|
||||
|
||||
@ -59,7 +59,7 @@ connect (con3, localhost, root, , );
|
||||
let $con3_ID=`select connection_id()`;
|
||||
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
disconnect con3;
|
||||
disconnect con1;
|
||||
@ -83,14 +83,14 @@ connect (con1, localhost, root, , );
|
||||
let $con1_ID=`select connection_id()`;
|
||||
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connect (con2, localhost, root, , );
|
||||
|
||||
let $con2_ID=`select connection_id()`;
|
||||
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
connection default;
|
||||
|
||||
@ -109,7 +109,7 @@ connect (con3, localhost, root, , );
|
||||
let $con3_ID=`select connection_id()`;
|
||||
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
where PROCESSLIST_ID = connection_id()`;
|
||||
|
||||
disconnect con3;
|
||||
disconnect con1;
|
||||
|
@ -467,8 +467,8 @@ DROP PREPARE stmt;
|
||||
|
||||
SET @l1="CREATE TABLE performance_schema.THREADS(";
|
||||
SET @l2="THREAD_ID INTEGER not null,";
|
||||
SET @l3="ID INTEGER not null,";
|
||||
SET @l4="NAME VARCHAR(64) not null";
|
||||
SET @l3="PROCESSLIST_ID INTEGER,";
|
||||
SET @l4="NAME VARCHAR(128) not null";
|
||||
SET @l5=")ENGINE=PERFORMANCE_SCHEMA;";
|
||||
|
||||
SET @cmd=concat(@l1,@l2,@l3,@l4,@l5);
|
||||
|
@ -34,13 +34,13 @@ static const TABLE_FIELD_TYPE field_types[]=
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("ID") },
|
||||
{ C_STRING_WITH_LEN("PROCESSLIST_ID") },
|
||||
{ C_STRING_WITH_LEN("int(11)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("NAME") },
|
||||
{ C_STRING_WITH_LEN("varchar(64)") },
|
||||
{ C_STRING_WITH_LEN("varchar(128)") },
|
||||
{ NULL, 0}
|
||||
}
|
||||
};
|
||||
@ -140,7 +140,7 @@ void table_threads::make_row(PFS_thread *pfs)
|
||||
}
|
||||
|
||||
int table_threads::read_row_values(TABLE *table,
|
||||
unsigned char *,
|
||||
unsigned char *buf,
|
||||
Field **fields,
|
||||
bool read_all)
|
||||
{
|
||||
@ -150,7 +150,8 @@ int table_threads::read_row_values(TABLE *table,
|
||||
return HA_ERR_RECORD_DELETED;
|
||||
|
||||
/* Set the null bits */
|
||||
DBUG_ASSERT(table->s->null_bytes == 0);
|
||||
DBUG_ASSERT(table->s->null_bytes == 1);
|
||||
buf[0]= 0;
|
||||
|
||||
for (; (f= *fields) ; fields++)
|
||||
{
|
||||
@ -161,7 +162,7 @@ int table_threads::read_row_values(TABLE *table,
|
||||
case 0: /* THREAD_ID */
|
||||
set_field_ulong(f, m_row.m_thread_internal_id);
|
||||
break;
|
||||
case 1: /* ID */
|
||||
case 1: /* PROCESSLIST_ID */
|
||||
set_field_ulong(f, m_row.m_thread_id);
|
||||
break;
|
||||
case 2: /* NAME */
|
||||
|
@ -36,7 +36,7 @@ struct row_threads
|
||||
{
|
||||
/** Column THREAD_ID. */
|
||||
ulong m_thread_internal_id;
|
||||
/** Column ID. */
|
||||
/** Column PROCESSLIST_ID. */
|
||||
ulong m_thread_id;
|
||||
/** Column NAME. */
|
||||
const char *m_name;
|
||||
@ -79,7 +79,7 @@ private:
|
||||
|
||||
/** Current row. */
|
||||
row_threads m_row;
|
||||
/** True is the current row exists. */
|
||||
/** True if the current row exists. */
|
||||
bool m_row_exists;
|
||||
/** Current position. */
|
||||
PFS_simple_index m_pos;
|
||||
|
Loading…
x
Reference in New Issue
Block a user