From: Marc Alff Date: October 6 2011 5:16pm Subject: bzr push into mysql-trunk branch (marc.alff:3475 to 3476) List-Archive: http://lists.mysql.com/commits/141344 Message-Id: <201110061716.p96HGZPb007573@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3476 Marc Alff 2011-10-06 Merge cleanup Applied dos2unix for whitespace modified: storage/perfschema/table_ews_by_thread_by_event_name.cc storage/perfschema/table_socket_summary_by_event_name.cc storage/perfschema/table_socket_summary_by_instance.cc storage/perfschema/table_socket_summary_by_instance.h 3475 Andrei Elkin 2011-10-06 [merge] merging from BUG#12981684 bundle. modified: sql/rpl_info_file.cc === modified file 'storage/perfschema/table_ews_by_thread_by_event_name.cc' --- a/storage/perfschema/table_ews_by_thread_by_event_name.cc 2011-08-16 03:57:30 +0000 +++ b/storage/perfschema/table_ews_by_thread_by_event_name.cc 2011-10-06 17:15:47 +0000 @@ -246,8 +246,8 @@ void table_ews_by_thread_by_event_name */ if (klass->is_deferred()) { - /* Visit instances owned by this thread. Do not visit the class. */ - PFS_instance_wait_visitor inst_visitor; + /* Visit instances owned by this thread. Do not visit the class. */ + PFS_instance_wait_visitor inst_visitor; PFS_instance_iterator::visit_instances(klass, &inst_visitor, thread, false); /* Combine the deferred stats and global stats */ === modified file 'storage/perfschema/table_socket_summary_by_event_name.cc' --- a/storage/perfschema/table_socket_summary_by_event_name.cc 2011-03-28 23:37:10 +0000 +++ b/storage/perfschema/table_socket_summary_by_event_name.cc 2011-10-06 17:15:47 +0000 @@ -1,348 +1,348 @@ -/* 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_socket_summary_by_event_name.cc - Table SOCKET_EVENT_NAMES (implementation). -*/ - -#include "my_global.h" -#include "my_pthread.h" -#include "pfs_instr.h" -#include "pfs_column_types.h" -#include "pfs_column_values.h" -#include "table_socket_summary_by_event_name.h" -#include "pfs_global.h" -#include "pfs_visitor.h" - -THR_LOCK table_socket_summary_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} - }, - - /** Read */ - { - { C_STRING_WITH_LEN("COUNT_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Write */ - { - { C_STRING_WITH_LEN("COUNT_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Misc */ - { - { C_STRING_WITH_LEN("COUNT_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - } -}; - -TABLE_FIELD_DEF -table_socket_summary_by_event_name::m_field_def= -{ 23, field_types }; - -PFS_engine_table_share -table_socket_summary_by_event_name::m_share= -{ - { C_STRING_WITH_LEN("socket_summary_by_event_name") }, - &pfs_readonly_acl, - &table_socket_summary_by_event_name::create, - NULL, /* write_row */ - table_socket_summary_by_event_name::delete_all_rows, - NULL, /* get_row_count */ - 1000, /* records */ - sizeof(PFS_simple_index), - &m_table_lock, - &m_field_def, - false /* checked */ -}; - -PFS_engine_table* table_socket_summary_by_event_name::create(void) -{ - return new table_socket_summary_by_event_name(); -} - -table_socket_summary_by_event_name::table_socket_summary_by_event_name() - : PFS_engine_table(&m_share, &m_pos), - m_row_exists(false), m_pos(1), m_next_pos(1) -{} - -int table_socket_summary_by_event_name::delete_all_rows(void) -{ - reset_socket_instance_io(); - reset_socket_class_io(); - return 0; -} - -void table_socket_summary_by_event_name::reset_position(void) -{ - m_pos.m_index= 1; - m_next_pos.m_index= 1; -} - -int table_socket_summary_by_event_name::rnd_next(void) -{ - PFS_socket_class *socket_class; - - m_pos.set_at(&m_next_pos); - - socket_class= find_socket_class(m_pos.m_index); - if (socket_class) - { - make_row(socket_class); - m_next_pos.set_after(&m_pos); - return 0; - } - - return HA_ERR_END_OF_FILE; -} - -int table_socket_summary_by_event_name::rnd_pos(const void *pos) -{ - PFS_socket_class *socket_class; - - set_position(pos); - - socket_class= find_socket_class(m_pos.m_index); - if (socket_class) - { - make_row(socket_class); - return 0; - } - - return HA_ERR_RECORD_DELETED; -} - -void table_socket_summary_by_event_name::make_row(PFS_socket_class *socket_class) -{ - m_row.m_event_name.make_row(socket_class); - - PFS_instance_socket_io_stat_visitor visitor; - PFS_instance_iterator::visit_socket_instances(socket_class, &visitor); - - time_normalizer *normalizer= time_normalizer::get(wait_timer); - - /* Collect timer and byte count stats */ - m_row.m_io_stat.set(normalizer, &visitor.m_socket_io_stat); - m_row_exists= true; -} - -int table_socket_summary_by_event_name::read_row_values(TABLE *table, - unsigned char *, - 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 == 0); - - for (; (f= *fields) ; fields++) - { - if (read_all || bitmap_is_set(table->read_set, f->field_index)) - { - switch(f->field_index) - { - case 0: /* EVENT_NAME */ - m_row.m_event_name.set_field(f); - break; - case 1: /* COUNT_STAR */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count); - break; - case 2: /* SUM_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum); - break; - case 3: /* MIN_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min); - break; - case 4: /* AVG_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg); - break; - case 5: /* MAX_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max); - break; - - case 6: /* COUNT_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count); - break; - case 7: /* SUM_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum); - break; - case 8: /* MIN_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min); - break; - case 9: /* AVG_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg); - break; - case 10: /* MAX_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max); - break; - case 11: /* SUM_NUMBER_OF_BYTES_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes); - break; - - case 12: /* COUNT_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count); - break; - case 13: /* SUM_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum); - break; - case 14: /* MIN_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min); - break; - case 15: /* AVG_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg); - break; - case 16: /* MAX_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max); - break; - case 17: /* SUM_NUMBER_OF_BYTES_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes); - break; - - case 18: /* COUNT_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count); - break; - case 19: /* SUM_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum); - break; - case 20: /* MIN_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min); - break; - case 21: /* AVG_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg); - break; - case 22: /* MAX_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max); - break; - - default: - DBUG_ASSERT(false); - break; - } - } // if - } // for - - return 0; -} - +/* Copyright (c) 2008, 2011, 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_socket_summary_by_event_name.cc + Table SOCKET_EVENT_NAMES (implementation). +*/ + +#include "my_global.h" +#include "my_pthread.h" +#include "pfs_instr.h" +#include "pfs_column_types.h" +#include "pfs_column_values.h" +#include "table_socket_summary_by_event_name.h" +#include "pfs_global.h" +#include "pfs_visitor.h" + +THR_LOCK table_socket_summary_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} + }, + + /** Read */ + { + { C_STRING_WITH_LEN("COUNT_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MIN_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("AVG_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MAX_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + + /** Write */ + { + { C_STRING_WITH_LEN("COUNT_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MIN_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("AVG_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MAX_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + + /** Misc */ + { + { C_STRING_WITH_LEN("COUNT_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MIN_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("AVG_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MAX_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + } +}; + +TABLE_FIELD_DEF +table_socket_summary_by_event_name::m_field_def= +{ 23, field_types }; + +PFS_engine_table_share +table_socket_summary_by_event_name::m_share= +{ + { C_STRING_WITH_LEN("socket_summary_by_event_name") }, + &pfs_readonly_acl, + &table_socket_summary_by_event_name::create, + NULL, /* write_row */ + table_socket_summary_by_event_name::delete_all_rows, + NULL, /* get_row_count */ + 1000, /* records */ + sizeof(PFS_simple_index), + &m_table_lock, + &m_field_def, + false /* checked */ +}; + +PFS_engine_table* table_socket_summary_by_event_name::create(void) +{ + return new table_socket_summary_by_event_name(); +} + +table_socket_summary_by_event_name::table_socket_summary_by_event_name() + : PFS_engine_table(&m_share, &m_pos), + m_row_exists(false), m_pos(1), m_next_pos(1) +{} + +int table_socket_summary_by_event_name::delete_all_rows(void) +{ + reset_socket_instance_io(); + reset_socket_class_io(); + return 0; +} + +void table_socket_summary_by_event_name::reset_position(void) +{ + m_pos.m_index= 1; + m_next_pos.m_index= 1; +} + +int table_socket_summary_by_event_name::rnd_next(void) +{ + PFS_socket_class *socket_class; + + m_pos.set_at(&m_next_pos); + + socket_class= find_socket_class(m_pos.m_index); + if (socket_class) + { + make_row(socket_class); + m_next_pos.set_after(&m_pos); + return 0; + } + + return HA_ERR_END_OF_FILE; +} + +int table_socket_summary_by_event_name::rnd_pos(const void *pos) +{ + PFS_socket_class *socket_class; + + set_position(pos); + + socket_class= find_socket_class(m_pos.m_index); + if (socket_class) + { + make_row(socket_class); + return 0; + } + + return HA_ERR_RECORD_DELETED; +} + +void table_socket_summary_by_event_name::make_row(PFS_socket_class *socket_class) +{ + m_row.m_event_name.make_row(socket_class); + + PFS_instance_socket_io_stat_visitor visitor; + PFS_instance_iterator::visit_socket_instances(socket_class, &visitor); + + time_normalizer *normalizer= time_normalizer::get(wait_timer); + + /* Collect timer and byte count stats */ + m_row.m_io_stat.set(normalizer, &visitor.m_socket_io_stat); + m_row_exists= true; +} + +int table_socket_summary_by_event_name::read_row_values(TABLE *table, + unsigned char *, + 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 == 0); + + for (; (f= *fields) ; fields++) + { + if (read_all || bitmap_is_set(table->read_set, f->field_index)) + { + switch(f->field_index) + { + case 0: /* EVENT_NAME */ + m_row.m_event_name.set_field(f); + break; + case 1: /* COUNT_STAR */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count); + break; + case 2: /* SUM_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum); + break; + case 3: /* MIN_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min); + break; + case 4: /* AVG_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg); + break; + case 5: /* MAX_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max); + break; + + case 6: /* COUNT_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count); + break; + case 7: /* SUM_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum); + break; + case 8: /* MIN_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min); + break; + case 9: /* AVG_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg); + break; + case 10: /* MAX_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max); + break; + case 11: /* SUM_NUMBER_OF_BYTES_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes); + break; + + case 12: /* COUNT_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count); + break; + case 13: /* SUM_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum); + break; + case 14: /* MIN_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min); + break; + case 15: /* AVG_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg); + break; + case 16: /* MAX_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max); + break; + case 17: /* SUM_NUMBER_OF_BYTES_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes); + break; + + case 18: /* COUNT_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count); + break; + case 19: /* SUM_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum); + break; + case 20: /* MIN_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min); + break; + case 21: /* AVG_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg); + break; + case 22: /* MAX_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max); + break; + + default: + DBUG_ASSERT(false); + break; + } + } // if + } // for + + return 0; +} + === modified file 'storage/perfschema/table_socket_summary_by_instance.cc' --- a/storage/perfschema/table_socket_summary_by_instance.cc 2011-08-18 12:27:21 +0000 +++ b/storage/perfschema/table_socket_summary_by_instance.cc 2011-10-06 17:15:47 +0000 @@ -1,370 +1,370 @@ -/* 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_socket_summary_by_instance.cc - Table SOCKET_INSTANCES (implementation). -*/ - -#include "my_global.h" -#include "my_pthread.h" -#include "pfs_instr.h" -#include "pfs_column_types.h" -#include "pfs_column_values.h" -#include "table_socket_summary_by_instance.h" -#include "pfs_global.h" - -THR_LOCK table_socket_summary_by_instance::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("OBJECT_INSTANCE_BEGIN") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { 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} - }, - - /** Read */ - { - { C_STRING_WITH_LEN("COUNT_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Write */ - { - { C_STRING_WITH_LEN("COUNT_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Misc */ - { - { C_STRING_WITH_LEN("COUNT_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_MISC") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - } -}; - -TABLE_FIELD_DEF -table_socket_summary_by_instance::m_field_def= -{ 24, field_types }; - -PFS_engine_table_share -table_socket_summary_by_instance::m_share= -{ - { C_STRING_WITH_LEN("socket_summary_by_instance") }, - &pfs_readonly_acl, - &table_socket_summary_by_instance::create, - NULL, /* write_row */ - table_socket_summary_by_instance::delete_all_rows, - NULL, /* get_row_count */ - 1000, /* records */ - sizeof(PFS_simple_index), - &m_table_lock, - &m_field_def, - false /* checked */ -}; - -PFS_engine_table* table_socket_summary_by_instance::create(void) -{ - return new table_socket_summary_by_instance(); -} - -table_socket_summary_by_instance::table_socket_summary_by_instance() - : PFS_engine_table(&m_share, &m_pos), - m_row_exists(false), m_pos(0), m_next_pos(0) -{} - -int table_socket_summary_by_instance::delete_all_rows(void) -{ - reset_socket_instance_io(); - return 0; -} - -void table_socket_summary_by_instance::reset_position(void) -{ - m_pos.m_index= 0; - m_next_pos.m_index= 0; -} - -int table_socket_summary_by_instance::rnd_next(void) -{ - PFS_socket *pfs; - - for (m_pos.set_at(&m_next_pos); - m_pos.m_index < socket_max; - m_pos.next()) - { - pfs= &socket_array[m_pos.m_index]; - if (pfs->m_lock.is_populated()) - { - make_row(pfs); - m_next_pos.set_after(&m_pos); - return 0; - } - } - - return HA_ERR_END_OF_FILE; -} - -int table_socket_summary_by_instance::rnd_pos(const void *pos) -{ - PFS_socket *pfs; - - set_position(pos); - DBUG_ASSERT(m_pos.m_index < socket_max); - pfs= &socket_array[m_pos.m_index]; - - if (! pfs->m_lock.is_populated()) - return HA_ERR_RECORD_DELETED; - - make_row(pfs); - return 0; -} - -void table_socket_summary_by_instance::make_row(PFS_socket *pfs) -{ - pfs_lock lock; - PFS_socket_class *safe_class; - - m_row_exists= false; - - /* Protect this reader against a socket delete */ - pfs->m_lock.begin_optimistic_lock(&lock); - - safe_class= sanitize_socket_class(pfs->m_class); - if (unlikely(safe_class == NULL)) - return; - - m_row.m_event_name.make_row(safe_class); - m_row.m_identity= pfs->m_identity; - - time_normalizer *normalizer= time_normalizer::get(wait_timer); - - /* Collect timer and byte count stats */ - m_row.m_io_stat.set(normalizer, &pfs->m_socket_stat.m_io_stat); - - if (!pfs->m_lock.end_optimistic_lock(&lock)) - return; - - m_row_exists= true; -} - -int table_socket_summary_by_instance::read_row_values(TABLE *table, - unsigned char *, - 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 == 0); - - for (; (f= *fields) ; fields++) - { - if (read_all || bitmap_is_set(table->read_set, f->field_index)) - { - switch(f->field_index) - { - case 0: /* EVENT_NAME */ - m_row.m_event_name.set_field(f); - break; - case 1: /* OBJECT_INSTANCE */ - set_field_ulonglong(f, (ulonglong)m_row.m_identity); - break; - - case 2:/* COUNT_STAR */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count); - break; - case 3:/* SUM_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum); - break; - case 4: /* MIN_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min); - break; - case 5: /* AVG_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg); - break; - case 6: /* MAX_TIMER_WAIT */ - set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max); - break; - - case 7: /* COUNT_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count); - break; - case 8: /* SUM_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum); - break; - case 9: /* MIN_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min); - break; - case 10: /* AVG_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg); - break; - case 11: /* MAX_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max); - break; - case 12: /* SUM_NUMBER_OF_BYTES_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes); - break; - - case 13: /* COUNT_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count); - break; - case 14: /* SUM_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum); - break; - case 15: /* MIN_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min); - break; - case 16: /* AVG_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg); - break; - case 17: /* MAX_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max); - break; - case 18: /* SUM_NUMBER_OF_BYTES_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes); - break; - - case 19: /* COUNT_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count); - break; - case 20: /* SUM_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum); - break; - case 21: /* MIN_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min); - break; - case 22: /* AVG_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg); - break; - case 23: /* MAX_TIMER_MISC */ - set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max); - break; - default: - DBUG_ASSERT(false); - break; - } - } - } - - return 0; -} - +/* Copyright (c) 2008, 2011, 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_socket_summary_by_instance.cc + Table SOCKET_SUMMARY_BY_INSTANCE (implementation). +*/ + +#include "my_global.h" +#include "my_pthread.h" +#include "pfs_instr.h" +#include "pfs_column_types.h" +#include "pfs_column_values.h" +#include "table_socket_summary_by_instance.h" +#include "pfs_global.h" + +THR_LOCK table_socket_summary_by_instance::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("OBJECT_INSTANCE_BEGIN") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { 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} + }, + + /** Read */ + { + { C_STRING_WITH_LEN("COUNT_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MIN_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("AVG_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MAX_TIMER_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + + /** Write */ + { + { C_STRING_WITH_LEN("COUNT_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MIN_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("AVG_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MAX_TIMER_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + + /** Misc */ + { + { C_STRING_WITH_LEN("COUNT_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("SUM_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MIN_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("AVG_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("MAX_TIMER_MISC") }, + { C_STRING_WITH_LEN("bigint(20)") }, + { NULL, 0} + } +}; + +TABLE_FIELD_DEF +table_socket_summary_by_instance::m_field_def= +{ 24, field_types }; + +PFS_engine_table_share +table_socket_summary_by_instance::m_share= +{ + { C_STRING_WITH_LEN("socket_summary_by_instance") }, + &pfs_readonly_acl, + &table_socket_summary_by_instance::create, + NULL, /* write_row */ + table_socket_summary_by_instance::delete_all_rows, + NULL, /* get_row_count */ + 1000, /* records */ + sizeof(PFS_simple_index), + &m_table_lock, + &m_field_def, + false /* checked */ +}; + +PFS_engine_table* table_socket_summary_by_instance::create(void) +{ + return new table_socket_summary_by_instance(); +} + +table_socket_summary_by_instance::table_socket_summary_by_instance() + : PFS_engine_table(&m_share, &m_pos), + m_row_exists(false), m_pos(0), m_next_pos(0) +{} + +int table_socket_summary_by_instance::delete_all_rows(void) +{ + reset_socket_instance_io(); + return 0; +} + +void table_socket_summary_by_instance::reset_position(void) +{ + m_pos.m_index= 0; + m_next_pos.m_index= 0; +} + +int table_socket_summary_by_instance::rnd_next(void) +{ + PFS_socket *pfs; + + for (m_pos.set_at(&m_next_pos); + m_pos.m_index < socket_max; + m_pos.next()) + { + pfs= &socket_array[m_pos.m_index]; + if (pfs->m_lock.is_populated()) + { + make_row(pfs); + m_next_pos.set_after(&m_pos); + return 0; + } + } + + return HA_ERR_END_OF_FILE; +} + +int table_socket_summary_by_instance::rnd_pos(const void *pos) +{ + PFS_socket *pfs; + + set_position(pos); + DBUG_ASSERT(m_pos.m_index < socket_max); + pfs= &socket_array[m_pos.m_index]; + + if (! pfs->m_lock.is_populated()) + return HA_ERR_RECORD_DELETED; + + make_row(pfs); + return 0; +} + +void table_socket_summary_by_instance::make_row(PFS_socket *pfs) +{ + pfs_lock lock; + PFS_socket_class *safe_class; + + m_row_exists= false; + + /* Protect this reader against a socket delete */ + pfs->m_lock.begin_optimistic_lock(&lock); + + safe_class= sanitize_socket_class(pfs->m_class); + if (unlikely(safe_class == NULL)) + return; + + m_row.m_event_name.make_row(safe_class); + m_row.m_identity= pfs->m_identity; + + time_normalizer *normalizer= time_normalizer::get(wait_timer); + + /* Collect timer and byte count stats */ + m_row.m_io_stat.set(normalizer, &pfs->m_socket_stat.m_io_stat); + + if (!pfs->m_lock.end_optimistic_lock(&lock)) + return; + + m_row_exists= true; +} + +int table_socket_summary_by_instance::read_row_values(TABLE *table, + unsigned char *, + 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 == 0); + + for (; (f= *fields) ; fields++) + { + if (read_all || bitmap_is_set(table->read_set, f->field_index)) + { + switch(f->field_index) + { + case 0: /* EVENT_NAME */ + m_row.m_event_name.set_field(f); + break; + case 1: /* OBJECT_INSTANCE */ + set_field_ulonglong(f, (ulonglong)m_row.m_identity); + break; + + case 2:/* COUNT_STAR */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count); + break; + case 3:/* SUM_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum); + break; + case 4: /* MIN_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min); + break; + case 5: /* AVG_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg); + break; + case 6: /* MAX_TIMER_WAIT */ + set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max); + break; + + case 7: /* COUNT_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count); + break; + case 8: /* SUM_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum); + break; + case 9: /* MIN_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min); + break; + case 10: /* AVG_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg); + break; + case 11: /* MAX_TIMER_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max); + break; + case 12: /* SUM_NUMBER_OF_BYTES_READ */ + set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes); + break; + + case 13: /* COUNT_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count); + break; + case 14: /* SUM_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum); + break; + case 15: /* MIN_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min); + break; + case 16: /* AVG_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg); + break; + case 17: /* MAX_TIMER_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max); + break; + case 18: /* SUM_NUMBER_OF_BYTES_WRITE */ + set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes); + break; + + case 19: /* COUNT_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count); + break; + case 20: /* SUM_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum); + break; + case 21: /* MIN_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min); + break; + case 22: /* AVG_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg); + break; + case 23: /* MAX_TIMER_MISC */ + set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max); + break; + default: + DBUG_ASSERT(false); + break; + } + } + } + + return 0; +} + === modified file 'storage/perfschema/table_socket_summary_by_instance.h' --- a/storage/perfschema/table_socket_summary_by_instance.h 2011-02-25 21:12:43 +0000 +++ b/storage/perfschema/table_socket_summary_by_instance.h 2011-10-06 17:15:47 +0000 @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2011, 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 No bundle (reason: useless for push emails).