mirror of
https://github.com/MariaDB/server.git
synced 2026-05-11 17:40:11 +02:00
Merge branch 'merge-perfschema-5.6' into 10.0
This commit is contained in:
commit
f1861297f0
16 changed files with 108 additions and 39 deletions
|
|
@ -0,0 +1,7 @@
|
|||
SELECT "Digest table has a size 1 and is full already." as use_case;
|
||||
use_case
|
||||
Digest table has a size 1 and is full already.
|
||||
select SCHEMA_NAME, DIGEST, DIGEST_TEXT
|
||||
from performance_schema.events_statements_summary_by_digest;
|
||||
SCHEMA_NAME DIGEST DIGEST_TEXT
|
||||
NULL NULL NULL
|
||||
|
|
@ -0,0 +1 @@
|
|||
--performance-schema-digests-size=1
|
||||
15
mysql-test/suite/perfschema/t/start_server_1_digest.test
Normal file
15
mysql-test/suite/perfschema/t/start_server_1_digest.test
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# -----------------------------------------------------------------------
|
||||
# Tests for the performance schema statement Digests.
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_perfschema.inc
|
||||
--source include/no_protocol.inc
|
||||
|
||||
SELECT "Digest table has a size 1 and is full already." as use_case;
|
||||
|
||||
select SCHEMA_NAME, DIGEST, DIGEST_TEXT
|
||||
from performance_schema.events_statements_summary_by_digest;
|
||||
|
||||
|
||||
|
||||
|
|
@ -3951,9 +3951,11 @@ static PSI_file* end_file_open_wait_v1(PSI_file_locker *locker,
|
|||
switch (state->m_operation)
|
||||
{
|
||||
case PSI_FILE_STAT:
|
||||
case PSI_FILE_RENAME:
|
||||
break;
|
||||
case PSI_FILE_STREAM_OPEN:
|
||||
case PSI_FILE_CREATE:
|
||||
case PSI_FILE_OPEN:
|
||||
if (result != NULL)
|
||||
{
|
||||
PFS_file_class *klass= reinterpret_cast<PFS_file_class*> (state->m_class);
|
||||
|
|
@ -3964,7 +3966,6 @@ static PSI_file* end_file_open_wait_v1(PSI_file_locker *locker,
|
|||
state->m_file= reinterpret_cast<PSI_file*> (pfs_file);
|
||||
}
|
||||
break;
|
||||
case PSI_FILE_OPEN:
|
||||
default:
|
||||
DBUG_ASSERT(false);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -255,10 +255,11 @@ search:
|
|||
if (safe_index == 0)
|
||||
{
|
||||
/* Record [0] is reserved. */
|
||||
safe_index= 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Add a new record in digest stat array. */
|
||||
DBUG_ASSERT(safe_index < digest_max);
|
||||
pfs= &statements_digest_stat_array[safe_index];
|
||||
|
||||
if (pfs->m_lock.is_free())
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -27,6 +27,8 @@
|
|||
#include "stub_print_error.h"
|
||||
#include "stub_pfs_defaults.h"
|
||||
|
||||
void unload_performance_schema();
|
||||
|
||||
/* test helpers, to simulate the setup */
|
||||
|
||||
void setup_thread(PSI_thread *t, bool enabled)
|
||||
|
|
@ -126,7 +128,7 @@ void test_bootstrap()
|
|||
psi_2= boot->get_interface(PSI_VERSION_2);
|
||||
ok(psi_2 == NULL, "version 2");
|
||||
|
||||
shutdown_performance_schema();
|
||||
unload_performance_schema();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -183,6 +185,28 @@ PSI * load_perfschema()
|
|||
return (PSI*) psi;
|
||||
}
|
||||
|
||||
void unload_performance_schema()
|
||||
{
|
||||
cleanup_table_share();
|
||||
cleanup_instruments();
|
||||
cleanup_sync_class();
|
||||
cleanup_thread_class();
|
||||
cleanup_table_share();
|
||||
cleanup_file_class();
|
||||
cleanup_stage_class();
|
||||
cleanup_statement_class();
|
||||
cleanup_socket_class();
|
||||
cleanup_events_waits_history_long();
|
||||
cleanup_events_stages_history_long();
|
||||
cleanup_events_statements_history_long();
|
||||
cleanup_table_share_hash();
|
||||
cleanup_file_hash();
|
||||
cleanup_digest();
|
||||
PFS_atomic::cleanup();
|
||||
|
||||
shutdown_performance_schema();
|
||||
}
|
||||
|
||||
void test_bad_registration()
|
||||
{
|
||||
PSI *psi;
|
||||
|
|
@ -581,8 +605,7 @@ void test_bad_registration()
|
|||
psi->register_socket("X", bad_socket_3, 1);
|
||||
ok(dummy_socket_key == 2, "assigned key");
|
||||
|
||||
|
||||
shutdown_performance_schema();
|
||||
unload_performance_schema();
|
||||
}
|
||||
|
||||
void test_init_disabled()
|
||||
|
|
@ -1016,7 +1039,7 @@ void test_init_disabled()
|
|||
socket_A1= psi->init_socket(99, NULL, NULL, 0);
|
||||
ok(socket_A1 == NULL, "broken socket key not instrumented");
|
||||
|
||||
shutdown_performance_schema();
|
||||
unload_performance_schema();
|
||||
}
|
||||
|
||||
void test_locker_disabled()
|
||||
|
|
@ -1322,8 +1345,9 @@ void test_locker_disabled()
|
|||
ok(socket_A1 != NULL, "instrumented");
|
||||
/* Socket thread owner has not been set */
|
||||
socket_locker= psi->start_socket_wait(&socket_state, socket_A1, PSI_SOCKET_SEND, 12, "foo.cc", 12);
|
||||
ok(socket_locker == NULL, "no locker (no thread owner)");
|
||||
|
||||
ok(socket_locker != NULL, "locker (owner not used)");
|
||||
psi->end_socket_wait(socket_locker, 10);
|
||||
|
||||
/* Pretend the running thread is not instrumented */
|
||||
/* ---------------------------------------------- */
|
||||
|
||||
|
|
@ -1351,7 +1375,7 @@ void test_locker_disabled()
|
|||
socket_locker= psi->start_socket_wait(&socket_state, socket_A1, PSI_SOCKET_SEND, 12, "foo.cc", 12);
|
||||
ok(socket_locker == NULL, "no locker");
|
||||
|
||||
shutdown_performance_schema();
|
||||
unload_performance_schema();
|
||||
}
|
||||
|
||||
void test_file_instrumentation_leak()
|
||||
|
|
@ -1438,7 +1462,7 @@ void test_file_instrumentation_leak()
|
|||
file_locker= psi->get_thread_file_descriptor_locker(&file_state, (File) 12, PSI_FILE_WRITE);
|
||||
ok(file_locker == NULL, "no locker, no leak");
|
||||
|
||||
shutdown_performance_schema();
|
||||
unload_performance_schema();
|
||||
}
|
||||
|
||||
void test_enabled()
|
||||
|
|
@ -1474,7 +1498,7 @@ void test_enabled()
|
|||
{ & cond_key_B, "C-B", 0}
|
||||
};
|
||||
|
||||
shutdown_performance_schema();
|
||||
unload_performance_schema();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
@ -1644,5 +1668,5 @@ int main(int argc, char **argv)
|
|||
MY_INIT(argv[0]);
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2011, 2017, 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
|
||||
|
|
@ -112,6 +112,6 @@ int main(int, char **)
|
|||
MY_INIT("pfs_account-oom-t");
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -341,5 +341,5 @@ int main(int, char **)
|
|||
diag("skipping the cp1251 tests : missing character set");
|
||||
plan(59 + (cs_cp1251 ? 10 : 0));
|
||||
do_all_tests();
|
||||
return 0;
|
||||
return (exit_status());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2011, 2017, 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
|
||||
|
|
@ -112,6 +112,6 @@ int main(int, char **)
|
|||
MY_INIT("pfs_host-oom-t");
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -355,6 +355,11 @@ void test_oom()
|
|||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (per thread wait)");
|
||||
|
||||
cleanup_sync_class();
|
||||
cleanup_thread_class();
|
||||
cleanup_file_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
param.m_mutex_class_sizing= 0;
|
||||
param.m_rwlock_class_sizing= 0;
|
||||
|
|
@ -432,6 +437,8 @@ void test_oom()
|
|||
init_event_name_sizing(& param);
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (thread stages history sizing)");
|
||||
|
||||
cleanup_thread_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
|
|
@ -467,6 +474,9 @@ void test_oom()
|
|||
init_event_name_sizing(& param);
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (per thread stages)");
|
||||
|
||||
cleanup_stage_class();
|
||||
cleanup_thread_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
|
|
@ -502,6 +512,8 @@ void test_oom()
|
|||
init_event_name_sizing(& param);
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (thread statements history sizing)");
|
||||
|
||||
cleanup_thread_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
|
|
@ -537,6 +549,9 @@ void test_oom()
|
|||
init_event_name_sizing(& param);
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (per thread statements)");
|
||||
|
||||
cleanup_statement_class();
|
||||
cleanup_thread_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
|
|
@ -572,6 +587,8 @@ void test_oom()
|
|||
init_event_name_sizing(& param);
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (global waits)");
|
||||
|
||||
cleanup_sync_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
|
|
@ -609,8 +626,10 @@ void test_oom()
|
|||
ok(rc == 0, "init stage class");
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (global stages)");
|
||||
cleanup_instruments();
|
||||
|
||||
cleanup_sync_class();
|
||||
cleanup_stage_class();
|
||||
cleanup_instruments();
|
||||
|
||||
param.m_enabled= true;
|
||||
param.m_mutex_class_sizing= 10;
|
||||
|
|
@ -647,8 +666,10 @@ void test_oom()
|
|||
ok(rc == 0, "init statement class");
|
||||
rc= init_instruments(& param);
|
||||
ok(rc == 1, "oom (global statements)");
|
||||
cleanup_instruments();
|
||||
|
||||
cleanup_sync_class();
|
||||
cleanup_statement_class();
|
||||
cleanup_instruments();
|
||||
}
|
||||
|
||||
void do_all_tests()
|
||||
|
|
@ -666,6 +687,6 @@ int main(int argc, char **argv)
|
|||
MY_INIT(argv[0]);
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -23,10 +23,11 @@
|
|||
|
||||
#include <memory.h>
|
||||
|
||||
PFS_global_param param;
|
||||
|
||||
void test_no_instruments()
|
||||
{
|
||||
int rc;
|
||||
PFS_global_param param;
|
||||
|
||||
memset(& param, 0xFF, sizeof(param));
|
||||
param.m_enabled= true;
|
||||
|
|
@ -86,7 +87,6 @@ void test_no_instances()
|
|||
PFS_file *file;
|
||||
PFS_socket *socket;
|
||||
PFS_table *table;
|
||||
PFS_global_param param;
|
||||
|
||||
memset(& param, 0xFF, sizeof(param));
|
||||
param.m_enabled= true;
|
||||
|
|
@ -227,7 +227,6 @@ void test_with_instances()
|
|||
PFS_socket *socket_2;
|
||||
PFS_table *table_1;
|
||||
PFS_table *table_2;
|
||||
PFS_global_param param;
|
||||
|
||||
memset(& param, 0xFF, sizeof(param));
|
||||
param.m_enabled= true;
|
||||
|
|
@ -418,6 +417,6 @@ int main(int argc, char **argv)
|
|||
MY_INIT(argv[0]);
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -68,6 +68,6 @@ int main(int argc, char **argv)
|
|||
MY_INIT(argv[0]);
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -674,5 +674,5 @@ int main(int argc, char **argv)
|
|||
MY_INIT(argv[0]);
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2015, 2017, 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
|
||||
|
|
@ -67,6 +67,6 @@ int main(int, char **)
|
|||
MY_INIT("pfs_misc-t");
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2017, 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
|
||||
|
|
@ -119,6 +119,6 @@ int main(int, char **)
|
|||
MY_INIT("pfs_timer-t");
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2011, 2017, 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
|
||||
|
|
@ -111,6 +111,6 @@ int main(int, char **)
|
|||
MY_INIT("pfs_user-oom-t");
|
||||
do_all_tests();
|
||||
my_end(0);
|
||||
return exit_status();
|
||||
return (exit_status());
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue