Browse Source
Bug#55416 Renaming of performance_schema tables for 5.5
Bug#55416 Renaming of performance_schema tables for 5.5
Removed table SETUP_OBJECTS. Renamed table PROCESSLIST to THREADS. Renamed table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME to EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. Adjusted Makefiles, code and tests accordingly.pull/374/head
57 changed files with 592 additions and 1137 deletions
-
8mysql-test/suite/perfschema/include/setup_helper.inc
-
5mysql-test/suite/perfschema/include/start_server_common.inc
-
14mysql-test/suite/perfschema/r/aggregate.result
-
7mysql-test/suite/perfschema/r/ddl_ews_by_event_name.result
-
10mysql-test/suite/perfschema/r/ddl_ews_global_by_event_name.result
-
7mysql-test/suite/perfschema/r/ddl_setup_objects.result
-
8mysql-test/suite/perfschema/r/ddl_threads.result
-
28mysql-test/suite/perfschema/r/dml_ews_by_event_name.result
-
28mysql-test/suite/perfschema/r/dml_ews_global_by_event_name.result
-
35mysql-test/suite/perfschema/r/dml_setup_objects.result
-
32mysql-test/suite/perfschema/r/dml_threads.result
-
8mysql-test/suite/perfschema/r/func_file_io.result
-
45mysql-test/suite/perfschema/r/information_schema.result
-
2mysql-test/suite/perfschema/r/misc.result
-
4mysql-test/suite/perfschema/r/no_threads.result
-
95mysql-test/suite/perfschema/r/pfs_upgrade.result
-
45mysql-test/suite/perfschema/r/schema.result
-
6mysql-test/suite/perfschema/r/selects.result
-
5mysql-test/suite/perfschema/r/start_server_no_cond_class.result
-
5mysql-test/suite/perfschema/r/start_server_no_cond_inst.result
-
5mysql-test/suite/perfschema/r/start_server_no_file_class.result
-
5mysql-test/suite/perfschema/r/start_server_no_file_inst.result
-
5mysql-test/suite/perfschema/r/start_server_no_mutex_class.result
-
5mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result
-
5mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result
-
5mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result
-
7mysql-test/suite/perfschema/r/start_server_no_thread_class.result
-
7mysql-test/suite/perfschema/r/start_server_no_thread_inst.result
-
5mysql-test/suite/perfschema/r/start_server_off.result
-
5mysql-test/suite/perfschema/r/start_server_on.result
-
22mysql-test/suite/perfschema/t/aggregate.test
-
11mysql-test/suite/perfschema/t/ddl_ews_global_by_event_name.test
-
32mysql-test/suite/perfschema/t/ddl_setup_objects.test
-
8mysql-test/suite/perfschema/t/ddl_threads.test
-
32mysql-test/suite/perfschema/t/dml_ews_global_by_event_name.test
-
75mysql-test/suite/perfschema/t/dml_setup_objects.test
-
32mysql-test/suite/perfschema/t/dml_threads.test
-
8mysql-test/suite/perfschema/t/func_file_io.test
-
2mysql-test/suite/perfschema/t/misc.test
-
4mysql-test/suite/perfschema/t/no_threads.test
-
5mysql-test/suite/perfschema/t/schema.test
-
6mysql-test/suite/perfschema/t/selects.test
-
2mysql-test/suite/perfschema/t/start_server_no_thread_class.test
-
2mysql-test/suite/perfschema/t/start_server_no_thread_inst.test
-
12mysql-test/suite/perfschema/t/thread_cache.test
-
86scripts/mysql_system_tables.sql
-
8storage/perfschema/CMakeLists.txt
-
12storage/perfschema/Makefile.am
-
9storage/perfschema/pfs_engine_table.cc
-
138storage/perfschema/table_events_waits_summary.cc
-
52storage/perfschema/table_events_waits_summary.h
-
166storage/perfschema/table_ews_global_by_event_name.cc
-
88storage/perfschema/table_ews_global_by_event_name.h
-
281storage/perfschema/table_setup_objects.cc
-
125storage/perfschema/table_setup_objects.h
-
38storage/perfschema/table_threads.cc
-
22storage/perfschema/table_threads.h
@ -1,7 +0,0 @@ |
|||
alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo integer; |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; |
|||
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX test_index(EVENT_NAME); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
CREATE UNIQUE INDEX test_index ON performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(EVENT_NAME); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
@ -0,0 +1,10 @@ |
|||
alter table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
add column foo integer; |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME; |
|||
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
ADD INDEX test_index(EVENT_NAME); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
CREATE UNIQUE INDEX test_index |
|||
ON performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(EVENT_NAME); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
@ -1,7 +0,0 @@ |
|||
alter table performance_schema.SETUP_OBJECTS add column foo integer; |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
truncate table performance_schema.SETUP_OBJECTS; |
|||
ALTER TABLE performance_schema.SETUP_OBJECTS ADD INDEX test_index(OBJECT_NAME); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_OBJECTS(OBJECT_NAME); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
@ -1,8 +1,8 @@ |
|||
alter table performance_schema.PROCESSLIST add column foo integer; |
|||
alter table performance_schema.THREADS add column foo integer; |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
truncate table performance_schema.PROCESSLIST; |
|||
truncate table performance_schema.THREADS; |
|||
ERROR HY000: Invalid performance_schema usage. |
|||
ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID); |
|||
ALTER TABLE performance_schema.THREADS ADD INDEX test_index(ID); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
|||
CREATE UNIQUE INDEX test_index ON performance_schema.PROCESSLIST(ID); |
|||
CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID); |
|||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' |
@ -1,28 +0,0 @@ |
|||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
|||
where event_name like 'Wait/Synch/%' limit 1; |
|||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT |
|||
# # # # # # |
|||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
|||
where event_name='FOO'; |
|||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT |
|||
insert into performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
|||
set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3, |
|||
avg_timer_wait=4, max_timer_wait=5; |
|||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
|||
set count_star=12; |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
|||
set count_star=12 where event_name like "FOO"; |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
|||
where count_star=1; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME READ; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
UNLOCK TABLES; |
|||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME WRITE; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' |
|||
UNLOCK TABLES; |
@ -0,0 +1,28 @@ |
|||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
where event_name like 'Wait/Synch/%' limit 1; |
|||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT |
|||
# # # # # # |
|||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
where event_name='FOO'; |
|||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT |
|||
insert into performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3, |
|||
avg_timer_wait=4, max_timer_wait=5; |
|||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
set count_star=12; |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
set count_star=12 where event_name like "FOO"; |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME |
|||
where count_star=1; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME READ; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
UNLOCK TABLES; |
|||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME WRITE; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' |
|||
UNLOCK TABLES; |
@ -1,35 +0,0 @@ |
|||
select * from performance_schema.SETUP_OBJECTS; |
|||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED |
|||
select * from performance_schema.SETUP_OBJECTS |
|||
where object_type = 'TABLE'; |
|||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED |
|||
select * from performance_schema.SETUP_OBJECTS |
|||
where enabled='YES'; |
|||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED |
|||
insert into performance_schema.SETUP_OBJECTS |
|||
set object_type='TABLE', object_schema='FOO', object_name='BAR', |
|||
enabled='YES', timed='YES', aggregated='YES'; |
|||
ERROR HY000: Table storage engine for 'SETUP_OBJECTS' doesn't have this option |
|||
update performance_schema.SETUP_OBJECTS |
|||
set object_type='TABLE'; |
|||
update performance_schema.SETUP_OBJECTS |
|||
set object_schema='ILLEGAL'; |
|||
update performance_schema.SETUP_OBJECTS |
|||
set object_name='ILLEGAL'; |
|||
update performance_schema.SETUP_OBJECTS |
|||
set enabled='NO'; |
|||
update performance_schema.SETUP_OBJECTS |
|||
set timed='NO'; |
|||
update performance_schema.SETUP_OBJECTS |
|||
set aggregated='NO'; |
|||
select * from performance_schema.SETUP_OBJECTS; |
|||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED |
|||
update performance_schema.SETUP_OBJECTS |
|||
set enabled='YES', timed='YES', aggregated='YES'; |
|||
delete from performance_schema.SETUP_OBJECTS |
|||
where object_type = 'TABLE'; |
|||
delete from performance_schema.SETUP_OBJECTS; |
|||
LOCK TABLES performance_schema.SETUP_OBJECTS READ; |
|||
UNLOCK TABLES; |
|||
LOCK TABLES performance_schema.SETUP_OBJECTS WRITE; |
|||
UNLOCK TABLES; |
@ -1,27 +1,27 @@ |
|||
select * from performance_schema.PROCESSLIST |
|||
select * from performance_schema.THREADS |
|||
where name like 'Thread/%' limit 1; |
|||
THREAD_ID ID NAME |
|||
# # # |
|||
select * from performance_schema.PROCESSLIST |
|||
select * from performance_schema.THREADS |
|||
where name='FOO'; |
|||
THREAD_ID ID NAME |
|||
insert into performance_schema.PROCESSLIST |
|||
insert into performance_schema.THREADS |
|||
set name='FOO', thread_id=1, id=2; |
|||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
update performance_schema.PROCESSLIST |
|||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'THREADS' |
|||
update performance_schema.THREADS |
|||
set thread_id=12; |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
update performance_schema.PROCESSLIST |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS' |
|||
update performance_schema.THREADS |
|||
set thread_id=12 where name like "FOO"; |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
delete from performance_schema.PROCESSLIST |
|||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS' |
|||
delete from performance_schema.THREADS |
|||
where id=1; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
delete from performance_schema.PROCESSLIST; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
LOCK TABLES performance_schema.PROCESSLIST READ; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS' |
|||
delete from performance_schema.THREADS; |
|||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS' |
|||
LOCK TABLES performance_schema.THREADS READ; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS' |
|||
UNLOCK TABLES; |
|||
LOCK TABLES performance_schema.PROCESSLIST WRITE; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST' |
|||
LOCK TABLES performance_schema.THREADS WRITE; |
|||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS' |
|||
UNLOCK TABLES; |
@ -1,32 +0,0 @@ |
|||
# Copyright (C) 2009 Sun Microsystems, Inc |
|||
# |
|||
# 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 |
|||
# the Free Software Foundation; version 2 of the License. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# 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 |
|||
|
|||
# Tests for PERFORMANCE_SCHEMA |
|||
|
|||
--source include/not_embedded.inc |
|||
--source include/have_perfschema.inc |
|||
|
|||
--replace_result '\'setup_objects' '\'SETUP_OBJECTS' |
|||
-- error ER_DBACCESS_DENIED_ERROR |
|||
alter table performance_schema.SETUP_OBJECTS add column foo integer; |
|||
|
|||
truncate table performance_schema.SETUP_OBJECTS; |
|||
|
|||
-- error ER_DBACCESS_DENIED_ERROR |
|||
ALTER TABLE performance_schema.SETUP_OBJECTS ADD INDEX test_index(OBJECT_NAME); |
|||
|
|||
-- error ER_DBACCESS_DENIED_ERROR |
|||
CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_OBJECTS(OBJECT_NAME); |
|||
|
@ -1,75 +0,0 @@ |
|||
# Copyright (C) 2009 Sun Microsystems, Inc |
|||
# |
|||
# 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 |
|||
# the Free Software Foundation; version 2 of the License. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# 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 |
|||
|
|||
# Tests for PERFORMANCE_SCHEMA |
|||
|
|||
--source include/not_embedded.inc |
|||
--source include/have_perfschema.inc |
|||
|
|||
select * from performance_schema.SETUP_OBJECTS; |
|||
|
|||
select * from performance_schema.SETUP_OBJECTS |
|||
where object_type = 'TABLE'; |
|||
|
|||
select * from performance_schema.SETUP_OBJECTS |
|||
where enabled='YES'; |
|||
|
|||
# Not implemented yet |
|||
--replace_result '\'setup_objects' '\'SETUP_OBJECTS' |
|||
--error ER_ILLEGAL_HA |
|||
insert into performance_schema.SETUP_OBJECTS |
|||
set object_type='TABLE', object_schema='FOO', object_name='BAR', |
|||
enabled='YES', timed='YES', aggregated='YES'; |
|||
|
|||
# Not implemented yet |
|||
# --error ER_ILLEGAL_HA |
|||
update performance_schema.SETUP_OBJECTS |
|||
set object_type='TABLE'; |
|||
|
|||
# Not implemented yet |
|||
# --error ER_ILLEGAL_HA |
|||
update performance_schema.SETUP_OBJECTS |
|||
set object_schema='ILLEGAL'; |
|||
|
|||
# Not implemented yet |
|||
# --error ER_ILLEGAL_HA |
|||
update performance_schema.SETUP_OBJECTS |
|||
set object_name='ILLEGAL'; |
|||
|
|||
update performance_schema.SETUP_OBJECTS |
|||
set enabled='NO'; |
|||
|
|||
update performance_schema.SETUP_OBJECTS |
|||
set timed='NO'; |
|||
|
|||
update performance_schema.SETUP_OBJECTS |
|||
set aggregated='NO'; |
|||
|
|||
select * from performance_schema.SETUP_OBJECTS; |
|||
|
|||
update performance_schema.SETUP_OBJECTS |
|||
set enabled='YES', timed='YES', aggregated='YES'; |
|||
|
|||
delete from performance_schema.SETUP_OBJECTS |
|||
where object_type = 'TABLE'; |
|||
|
|||
delete from performance_schema.SETUP_OBJECTS; |
|||
|
|||
LOCK TABLES performance_schema.SETUP_OBJECTS READ; |
|||
UNLOCK TABLES; |
|||
|
|||
LOCK TABLES performance_schema.SETUP_OBJECTS WRITE; |
|||
UNLOCK TABLES; |
|||
|
@ -0,0 +1,166 @@ |
|||
/* 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 |
|||
the Free Software Foundation; version 2 of the License. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
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, |
|||
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ |
|||
|
|||
/**
|
|||
@file storage/perfschema/table_ews_global_by_event_name.cc |
|||
Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (implementation). |
|||
*/ |
|||
|
|||
#include "my_global.h"
|
|||
#include "my_pthread.h"
|
|||
#include "pfs_instr_class.h"
|
|||
#include "pfs_column_types.h"
|
|||
#include "pfs_column_values.h"
|
|||
#include "table_ews_global_by_event_name.h"
|
|||
#include "pfs_global.h"
|
|||
|
|||
THR_LOCK table_ews_global_by_event_name::m_table_lock; |
|||
|
|||
static const TABLE_FIELD_TYPE field_types[]= |
|||
{ |
|||
{ |
|||
{ C_STRING_WITH_LEN("EVENT_NAME") }, |
|||
{ C_STRING_WITH_LEN("varchar(128)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("COUNT_STAR") }, |
|||
{ C_STRING_WITH_LEN("bigint(20)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("SUM_TIMER_WAIT") }, |
|||
{ C_STRING_WITH_LEN("bigint(20)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("MIN_TIMER_WAIT") }, |
|||
{ C_STRING_WITH_LEN("bigint(20)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("AVG_TIMER_WAIT") }, |
|||
{ C_STRING_WITH_LEN("bigint(20)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("MAX_TIMER_WAIT") }, |
|||
{ C_STRING_WITH_LEN("bigint(20)") }, |
|||
{ NULL, 0} |
|||
} |
|||
}; |
|||
|
|||
TABLE_FIELD_DEF |
|||
table_ews_global_by_event_name::m_field_def= |
|||
{ 6, field_types }; |
|||
|
|||
PFS_engine_table_share |
|||
table_ews_global_by_event_name::m_share= |
|||
{ |
|||
{ C_STRING_WITH_LEN("EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME") }, |
|||
&pfs_truncatable_acl, |
|||
&table_ews_global_by_event_name::create, |
|||
NULL, /* write_row */ |
|||
&table_ews_global_by_event_name::delete_all_rows, |
|||
1000, /* records */ |
|||
sizeof(pos_all_instr_class), |
|||
&m_table_lock, |
|||
&m_field_def, |
|||
false /* checked */ |
|||
}; |
|||
|
|||
PFS_engine_table* table_ews_global_by_event_name::create(void) |
|||
{ |
|||
return new table_ews_global_by_event_name(); |
|||
} |
|||
|
|||
int table_ews_global_by_event_name::delete_all_rows(void) |
|||
{ |
|||
reset_instrument_class_waits(); |
|||
return 0; |
|||
} |
|||
|
|||
table_ews_global_by_event_name |
|||
::table_ews_global_by_event_name() |
|||
: table_all_instr_class(&m_share) |
|||
{} |
|||
|
|||
void table_ews_global_by_event_name |
|||
::make_instr_row(PFS_instr_class *klass) |
|||
{ |
|||
m_row.m_name= klass->m_name; |
|||
m_row.m_name_length= klass->m_name_length; |
|||
|
|||
m_row.m_count= klass->m_wait_stat.m_count; |
|||
m_row.m_sum= klass->m_wait_stat.m_sum; |
|||
m_row.m_min= klass->m_wait_stat.m_min; |
|||
m_row.m_max= klass->m_wait_stat.m_max; |
|||
|
|||
if (m_row.m_count) |
|||
m_row.m_avg= m_row.m_sum / m_row.m_count; |
|||
else |
|||
{ |
|||
m_row.m_min= 0; |
|||
m_row.m_avg= 0; |
|||
} |
|||
} |
|||
|
|||
int table_ews_global_by_event_name |
|||
::read_row_values(TABLE *table, unsigned char *, Field **fields, |
|||
bool read_all) |
|||
{ |
|||
Field *f; |
|||
|
|||
/* Set the null bits */ |
|||
DBUG_ASSERT(table->s->null_bytes == 0); |
|||
|
|||
/*
|
|||
The row always exist, |
|||
the instrument classes are static and never disappear. |
|||
*/ |
|||
|
|||
for (; (f= *fields) ; fields++) |
|||
{ |
|||
if (read_all || bitmap_is_set(table->read_set, f->field_index)) |
|||
{ |
|||
switch(f->field_index) |
|||
{ |
|||
case 0: /* NAME */ |
|||
set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length); |
|||
break; |
|||
case 1: /* COUNT */ |
|||
set_field_ulonglong(f, m_row.m_count); |
|||
break; |
|||
case 2: /* SUM */ |
|||
set_field_ulonglong(f, m_row.m_sum); |
|||
break; |
|||
case 3: /* MIN */ |
|||
set_field_ulonglong(f, m_row.m_min); |
|||
break; |
|||
case 4: /* AVG */ |
|||
set_field_ulonglong(f, m_row.m_avg); |
|||
break; |
|||
case 5: /* MAX */ |
|||
set_field_ulonglong(f, m_row.m_max); |
|||
break; |
|||
default: |
|||
DBUG_ASSERT(false); |
|||
} |
|||
} |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
|
@ -0,0 +1,88 @@ |
|||
/* 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 |
|||
the Free Software Foundation; version 2 of the License. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
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, |
|||
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ |
|||
|
|||
#ifndef TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H |
|||
#define TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H |
|||
|
|||
/** |
|||
@file storage/perfschema/table_ews_global_by_event_name.h |
|||
Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (declarations). |
|||
*/ |
|||
|
|||
#include "pfs_column_types.h" |
|||
#include "pfs_engine_table.h" |
|||
#include "pfs_instr_class.h" |
|||
#include "pfs_instr.h" |
|||
#include "table_all_instr.h" |
|||
|
|||
/** |
|||
@addtogroup Performance_schema_tables |
|||
@{ |
|||
*/ |
|||
|
|||
/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */ |
|||
struct row_ews_global_by_event_name |
|||
{ |
|||
/** Column EVENT_NAME. */ |
|||
const char *m_name; |
|||
/** Length in bytes of @c m_name. */ |
|||
uint m_name_length; |
|||
/** Column COUNT_STAR. */ |
|||
ulonglong m_count; |
|||
/** Column SUM_TIMER_WAIT. */ |
|||
ulonglong m_sum; |
|||
/** Column MIN_TIMER_WAIT. */ |
|||
ulonglong m_min; |
|||
/** Column AVG_TIMER_WAIT. */ |
|||
ulonglong m_avg; |
|||
/** Column MAX_TIMER_WAIT. */ |
|||
ulonglong m_max; |
|||
}; |
|||
|
|||
/** Table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */ |
|||
class table_ews_global_by_event_name : public table_all_instr_class |
|||
{ |
|||
public: |
|||
/** Table share */ |
|||
static PFS_engine_table_share m_share; |
|||
static PFS_engine_table* create(); |
|||
static int delete_all_rows(); |
|||
|
|||
protected: |
|||
virtual void make_instr_row(PFS_instr_class *klass); |
|||
|
|||
virtual int read_row_values(TABLE *table, |
|||
unsigned char *buf, |
|||
Field **fields, |
|||
bool read_all); |
|||
|
|||
table_ews_global_by_event_name(); |
|||
|
|||
public: |
|||
~table_ews_global_by_event_name() |
|||
{} |
|||
|
|||
private: |
|||
/** Table share lock. */ |
|||
static THR_LOCK m_table_lock; |
|||
/** Fields definition. */ |
|||
static TABLE_FIELD_DEF m_field_def; |
|||
|
|||
/** Current row. */ |
|||
row_ews_global_by_event_name m_row; |
|||
}; |
|||
|
|||
/** @} */ |
|||
#endif |
@ -1,281 +0,0 @@ |
|||
/* Copyright (C) 2008-2009 Sun Microsystems, Inc
|
|||
|
|||
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 |
|||
the Free Software Foundation; version 2 of the License. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
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 */ |
|||
|
|||
/**
|
|||
@file storage/perfschema/table_setup_objects.cc |
|||
Table SETUP_OBJECTS (implementation). |
|||
*/ |
|||
|
|||
#include "sql_priv.h"
|
|||
#include "unireg.h"
|
|||
#include "pfs_instr_class.h"
|
|||
#include "pfs_column_types.h"
|
|||
#include "pfs_column_values.h"
|
|||
#include "table_setup_objects.h"
|
|||
#include "pfs_global.h"
|
|||
|
|||
THR_LOCK table_setup_objects::m_table_lock; |
|||
|
|||
static const TABLE_FIELD_TYPE field_types[]= |
|||
{ |
|||
{ |
|||
{ C_STRING_WITH_LEN("OBJECT_TYPE") }, |
|||
{ C_STRING_WITH_LEN("varchar(64)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("OBJECT_SCHEMA") }, |
|||
{ C_STRING_WITH_LEN("varchar(64)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("OBJECT_NAME") }, |
|||
{ C_STRING_WITH_LEN("varchar(64)") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("ENABLED") }, |
|||
{ C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("TIMED") }, |
|||
{ C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") }, |
|||
{ NULL, 0} |
|||
}, |
|||
{ |
|||
{ C_STRING_WITH_LEN("AGGREGATED") }, |
|||
{ C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") }, |
|||
{ NULL, 0} |
|||
} |
|||
}; |
|||
|
|||
TABLE_FIELD_DEF |
|||
table_setup_objects::m_field_def= |
|||
{ 6, field_types }; |
|||
|
|||
PFS_engine_table_share |
|||
table_setup_objects::m_share= |
|||
{ |
|||
{ C_STRING_WITH_LEN("SETUP_OBJECTS") }, |
|||
&pfs_editable_acl, |
|||
&table_setup_objects::create, |
|||
table_setup_objects::write_row, |
|||
table_setup_objects::delete_all_rows, |
|||
1000, /* records */ |
|||
sizeof(pos_setup_objects), |
|||
&m_table_lock, |
|||
&m_field_def, |
|||
false /* checked */ |
|||
}; |
|||
|
|||
PFS_engine_table* table_setup_objects::create(void) |
|||
{ |
|||
return new table_setup_objects(); |
|||
} |
|||
|
|||
int table_setup_objects::write_row(TABLE *table, unsigned char *buf, |
|||
Field **fields) |
|||
{ |
|||
/* Not implemented */ |
|||
return HA_ERR_WRONG_COMMAND; |
|||
} |
|||
|
|||
int table_setup_objects::delete_all_rows(void) |
|||
{ |
|||
/* Not implemented */ |
|||
return HA_ERR_WRONG_COMMAND; |
|||
} |
|||
|
|||
table_setup_objects::table_setup_objects() |
|||
: PFS_engine_table(&m_share, &m_pos), |
|||
m_row_exists(false), m_pos(), m_next_pos() |
|||
{} |
|||
|
|||
void table_setup_objects::reset_position(void) |
|||
{ |
|||
m_pos.reset(); |
|||
m_next_pos.reset(); |
|||
} |
|||
|
|||
int table_setup_objects::rnd_next(void) |
|||
{ |
|||
PFS_table_share *table_share; |
|||
|
|||
for (m_pos.set_at(&m_next_pos); |
|||
m_pos.has_more_view(); |
|||
m_pos.next_view()) |
|||
{ |
|||
switch (m_pos.m_index_1) { |
|||
case pos_setup_objects::VIEW_TABLE: |
|||
for ( ; m_pos.m_index_2 < table_share_max; m_pos.m_index_2++) |
|||
{ |
|||
table_share= &table_share_array[m_pos.m_index_2]; |
|||
if (table_share->m_lock.is_populated()) |
|||
{ |
|||
make_row(table_share); |
|||
m_next_pos.set_after(&m_pos); |
|||
return 0; |
|||
} |
|||
} |
|||
break; |
|||
case pos_setup_objects::VIEW_EVENT: |
|||
case pos_setup_objects::VIEW_PROCEDURE: |
|||
case pos_setup_objects::VIEW_FUNCTION: |
|||
default: |
|||
break; |
|||
} |
|||
} |
|||
|
|||
return HA_ERR_END_OF_FILE; |
|||
} |
|||
|
|||
int table_setup_objects::rnd_pos(const void *pos) |
|||
{ |
|||
PFS_table_share *share; |
|||
|
|||
set_position(pos); |
|||
|
|||
switch (m_pos.m_index_1) { |
|||
case pos_setup_objects::VIEW_TABLE: |
|||
DBUG_ASSERT(m_pos.m_index_2 < table_share_max); |
|||
share= &table_share_array[m_pos.m_index_2]; |
|||
if (share->m_lock.is_populated()) |
|||
{ |
|||
make_row(share); |
|||
return 0; |
|||
} |
|||
break; |
|||
case pos_setup_objects::VIEW_EVENT: |
|||
case pos_setup_objects::VIEW_PROCEDURE: |
|||
case pos_setup_objects::VIEW_FUNCTION: |
|||
default: |
|||
break; |
|||
} |
|||
|
|||
return HA_ERR_RECORD_DELETED; |
|||
} |
|||
|
|||
void table_setup_objects::make_row(PFS_table_share *share) |
|||
{ |
|||
pfs_lock lock; |
|||
|
|||
m_row_exists= false; |
|||
if (share == NULL) |
|||
return; |
|||
|
|||
share->m_lock.begin_optimistic_lock(&lock); |
|||
|
|||
m_row.m_schema_name= &share->m_schema_name[0]; |
|||
m_row.m_schema_name_length= share->m_schema_name_length; |
|||
m_row.m_object_name= &share->m_table_name[0]; |
|||
m_row.m_object_name_length= share->m_table_name_length; |
|||
m_row.m_enabled_ptr= &share->m_enabled; |
|||
m_row.m_timed_ptr= &share->m_timed; |
|||
m_row.m_aggregated_ptr= &share->m_aggregated; |
|||
|
|||
if (share->m_lock.end_optimistic_lock(&lock)) |
|||
m_row_exists= true; |
|||
} |
|||
|
|||
int table_setup_objects::read_row_values(TABLE *table, |
|||
unsigned char *buf, |
|||
Field **fields, |
|||
bool read_all) |
|||
{ |
|||
Field *f; |
|||
|
|||
if (unlikely(! m_row_exists)) |
|||
return HA_ERR_RECORD_DELETED; |
|||
|
|||
/* Set the null bits */ |
|||
DBUG_ASSERT(table->s->null_bytes == 1); |
|||
buf[0]= 0; |
|||
|
|||
for (; (f= *fields) ; fields++) |
|||
{ |
|||
if (read_all || bitmap_is_set(table->read_set, f->field_index)) |
|||
{ |
|||
switch(f->field_index) |
|||
{ |
|||
case 0: /* OBJECT_TYPE */ |
|||
set_field_varchar_utf8(f, "TABLE", 5); |
|||
break; |
|||
case 1: /* OBJECT_SCHEMA */ |
|||
set_field_varchar_utf8(f, m_row.m_schema_name, |
|||
m_row.m_schema_name_length); |
|||
break; |
|||
case 2: /* OBJECT_NAME */ |
|||
set_field_varchar_utf8(f, m_row.m_object_name, |
|||
m_row.m_object_name_length); |
|||
break; |
|||
case 3: /* ENABLED */ |
|||
set_field_enum(f, (*m_row.m_enabled_ptr) ? ENUM_YES : ENUM_NO); |
|||
break; |
|||
case 4: /* TIMED */ |
|||
set_field_enum(f, (*m_row.m_timed_ptr) ? ENUM_YES : ENUM_NO); |
|||
break; |
|||
case 5: /* AGGREGATED */ |
|||
set_field_enum(f, (*m_row.m_aggregated_ptr) ? ENUM_YES : ENUM_NO); |
|||
break; |
|||
default: |
|||
DBUG_ASSERT(false); |
|||
} |
|||
} |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
int table_setup_objects::update_row_values(TABLE *table, |
|||
const unsigned char *, |
|||
unsigned char *, |
|||
Field **fields) |
|||
{ |
|||
Field *f; |
|||
enum_yes_no value; |
|||
|
|||
for (; (f= *fields) ; fields++) |
|||
{ |
|||
if (bitmap_is_set(table->write_set, f->field_index)) |
|||
{ |
|||
switch(f->field_index) |
|||
{ |
|||
case 0: /* OBJECT_TYPE */ |
|||
case 1: /* OBJECT_SCHEMA */ |
|||
case 2: /* OBJECT_NAME */ |
|||
my_error(ER_WRONG_PERFSCHEMA_USAGE, MYF(0)); |
|||
return HA_ERR_WRONG_COMMAND; |
|||
case 3: /* ENABLED */ |
|||
value= (enum_yes_no) get_field_enum(f); |
|||
*m_row.m_enabled_ptr= (value == ENUM_YES) ? true : false; |
|||
break; |
|||
case 4: /* TIMED */ |
|||
value= (enum_yes_no) get_field_enum(f); |
|||
*m_row.m_timed_ptr= (value == ENUM_YES) ? true : false; |
|||
break; |
|||
case 5: /* AGGREGATED */ |
|||
value= (enum_yes_no) get_field_enum(f); |
|||
*m_row.m_aggregated_ptr= (value == ENUM_YES) ? true : false; |
|||
break; |
|||
default: |
|||
DBUG_ASSERT(false); |
|||
} |
|||
} |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
|
@ -1,125 +0,0 @@ |
|||
/* Copyright (C) 2008-2009 Sun Microsystems, Inc |
|||
|
|||
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 |
|||
the Free Software Foundation; version 2 of the License. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
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 */ |
|||
|
|||
#ifndef TABLE_SETUP_OBJECTS_H |
|||
#define TABLE_SETUP_OBJECTS_H |
|||
|
|||
/** |
|||
@file storage/perfschema/table_setup_objects.h |
|||
Table SETUP_OBJECTS (declarations). |
|||
*/ |
|||
|
|||
#include "pfs_instr_class.h" |
|||
#include "pfs_engine_table.h" |
|||
|
|||
/** |
|||
@addtogroup Performance_schema_tables |
|||
@{ |
|||
*/ |
|||
|
|||
/** A row of PERFORMANCE_SCHEMA.SETUP_OBJECTS. */ |
|||
struct row_setup_objects |
|||
{ |
|||
/** Column SCHEMA_NAME. */ |
|||
const char *m_schema_name; |
|||
/** Length in bytes of @c m_schema_name. */ |
|||
uint m_schema_name_length; |
|||
/** Column OBJECT_NAME. */ |
|||
const char *m_object_name; |
|||
/** Length in bytes of @c m_object_name. */ |
|||
uint m_object_name_length; |
|||
/** Column ENABLED. */ |
|||
bool *m_enabled_ptr; |
|||
/** Column TIMED. */ |
|||
bool *m_timed_ptr; |
|||
/** Column AGGREGATED. */ |
|||
bool *m_aggregated_ptr; |
|||
}; |
|||
|
|||
/** Position of a cursor on PERFORMANCE_SCHEMA.SETUP_OBJECTS. */ |
|||
struct pos_setup_objects : public PFS_double_index, |
|||
public PFS_object_view_constants |
|||
{ |
|||
pos_setup_objects() |
|||
: PFS_double_index(VIEW_TABLE, 0) |
|||
{} |
|||
|
|||
inline void reset(void) |
|||
{ |
|||
m_index_1= VIEW_TABLE; |
|||
m_index_2= 0; |
|||
} |
|||
|
|||
inline bool has_more_view(void) |
|||
{ return (m_index_1 <= VIEW_FUNCTION); } |
|||
|
|||
inline void next_view(void) |
|||
{ |
|||
m_index_1++; |
|||
m_index_2= 0; |
|||
} |
|||
}; |
|||
|
|||
/** Table PERFORMANCE_SCHEMA.SETUP_OBJECTS. */ |
|||
class table_setup_objects : public PFS_engine_table |
|||
{ |
|||
public: |
|||
/** Table share. */ |
|||
static PFS_engine_table_share m_share; |
|||
static PFS_engine_table* create(); |
|||
static int write_row(TABLE *table, unsigned char *buf, Field **fields); |
|||
static int delete_all_rows(); |
|||
|
|||
virtual int rnd_next(); |
|||
virtual int rnd_pos(const void *pos); |
|||
virtual void reset_position(void); |
|||
|
|||
protected: |
|||
virtual int read_row_values(TABLE *table, |
|||
unsigned char *buf, |
|||
Field **fields, |
|||
bool read_all); |
|||
|
|||
virtual int update_row_values(TABLE *table, |
|||
const unsigned char *old_buf, |
|||
unsigned char *new_buf, |
|||
Field **fields); |
|||
|
|||
table_setup_objects(); |
|||
|
|||
public: |
|||
~table_setup_objects() |
|||
{} |
|||
|
|||
private: |
|||
void make_row(PFS_table_share *share); |
|||
|
|||
/** Table share lock. */ |
|||
static THR_LOCK m_table_lock; |
|||
/** Fields definition. */ |
|||
static TABLE_FIELD_DEF m_field_def; |
|||
|
|||
/** Current row. */ |
|||
row_setup_objects m_row; |
|||
/** True is the current row exists. */ |
|||
bool m_row_exists; |
|||
/** Current position. */ |
|||
pos_setup_objects m_pos; |
|||
/** Next position. */ |
|||
pos_setup_objects m_next_pos; |
|||
}; |
|||
|
|||
/** @} */ |
|||
#endif |
Write
Preview
Loading…
Cancel
Save
Reference in new issue