summaryrefslogtreecommitdiff
path: root/mysql-test/suite/perfschema/t/connect_attrs.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/perfschema/t/connect_attrs.test')
-rw-r--r--mysql-test/suite/perfschema/t/connect_attrs.test74
1 files changed, 74 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/connect_attrs.test b/mysql-test/suite/perfschema/t/connect_attrs.test
new file mode 100644
index 00000000000..1dd5a15cbdd
--- /dev/null
+++ b/mysql-test/suite/perfschema/t/connect_attrs.test
@@ -0,0 +1,74 @@
+# Session connect attributes test
+--source include/have_perfschema.inc
+
+# although the connection attributes transfer code works
+# with embedded P_S is not active, so the test won't run.
+# TODO: remove this when P_S works with embedded.
+--source include/not_embedded.inc
+
+# make sure we're alone
+let $count_sessions= 1;
+--source include/wait_until_count_sessions.inc
+
+# basic performance_schema.session_connect_attrs tests
+
+# check the presense of the pre-defined attributes
+--echo # must return 0, 6
+SELECT SUM(ISNULL(ATTR_VALUE)), COUNT(*)
+ FROM performance_schema.session_connect_attrs
+ WHERE ATTR_NAME IN ('_os', '_client_name', '_pid',
+ '_client_version', '_platform', 'program_name')
+ AND PROCESSLIST_ID = CONNECTION_ID();
+
+# check the presense of the pre-defined attributes
+--echo # must return 1
+SELECT COUNT(DISTINCT PROCESSLIST_ID)
+ FROM performance_schema.session_connect_attrs;
+
+
+# basic performance_schema.session_account_connect_attrs tests
+
+# check the presense of the pre-defined attributes
+--echo # must return 0, 6
+SELECT SUM(ISNULL(ATTR_VALUE)), COUNT(*)
+ FROM performance_schema.session_account_connect_attrs
+ WHERE ATTR_NAME IN ('_os', '_client_name', '_pid',
+ '_client_version', '_platform', 'program_name')
+ AND PROCESSLIST_ID = CONNECTION_ID();
+
+# check the presense of the pre-defined attributes
+--echo # must return 1
+SELECT COUNT(DISTINCT PROCESSLIST_ID)
+ FROM performance_schema.session_account_connect_attrs;
+
+
+
+CREATE USER wl5924@localhost;
+
+connect(non_privileged_user,localhost,wl5924,,test);
+connection default;
+
+--echo # must return 1
+SELECT COUNT(DISTINCT PROCESSLIST_ID)
+ FROM performance_schema.session_account_connect_attrs;
+
+--echo # must return 2
+SELECT COUNT(DISTINCT PROCESSLIST_ID)
+ FROM performance_schema.session_connect_attrs;
+
+connection non_privileged_user;
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT COUNT(DISTINCT PROCESSLIST_ID)
+ FROM performance_schema.session_account_connect_attrs;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT COUNT(DISTINCT PROCESSLIST_ID)
+ FROM performance_schema.session_connect_attrs;
+
+connection default;
+disconnect non_privileged_user;
+
+DROP USER wl5924@localhost;
+
+# Wait till all disconnects are completed
+--source include/wait_until_count_sessions.inc