Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
10.0.12
-
Linux x64
Description
Both mysql_client_test (from MySQL Server package) and mariadb-native-client test suite suite fail, since connection attributes are not stored in performance schema.
Test:
static void test_wl5924()
|
{
|
int rc;
|
MYSQL *l_mysql;
|
MYSQL_RES *res;
|
MYSQL_ROW row;
|
|
|
myheader("test_wl5924");
|
|
|
l_mysql= mysql_client_init(NULL);
|
DIE_UNLESS(l_mysql != NULL);
|
|
|
/* we want a non-default character set */
|
rc= mysql_set_character_set(l_mysql, "cp1251");
|
DIE_UNLESS(rc == 0);
|
|
|
/* put in an attr */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key1", "value1");
|
DIE_UNLESS(rc == 0);
|
|
|
/* put a second attr */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key2", "value2");
|
DIE_UNLESS(rc == 0);
|
|
|
/* put the second attr again : should fail */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key2", "value2");
|
DIE_UNLESS(rc != 0);
|
|
|
/* delete the second attr */
|
rc= mysql_options(l_mysql, MYSQL_OPT_CONNECT_ATTR_DELETE,
|
"key2");
|
DIE_UNLESS(rc == 0);
|
|
|
/* put the second attr again : should pass */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key2", "value2");
|
DIE_UNLESS(rc == 0);
|
|
|
/* full reset */
|
rc= mysql_options(l_mysql, MYSQL_OPT_CONNECT_ATTR_RESET, NULL);
|
DIE_UNLESS(rc == 0);
|
|
|
/* put the second attr again : should pass */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key2", "value2");
|
DIE_UNLESS(rc == 0);
|
|
|
/* full reset */
|
rc= mysql_options(l_mysql, MYSQL_OPT_CONNECT_ATTR_RESET, NULL);
|
DIE_UNLESS(rc == 0);
|
|
|
/* add a third attr */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key3", "value3");
|
DIE_UNLESS(rc == 0);
|
|
|
/* add a fourth attr */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"key4", "value4");
|
DIE_UNLESS(rc == 0);
|
|
|
/* add a non-ascii attr */
|
/* note : this is Георги, Кодинов in windows-1251 */
|
rc= mysql_options4(l_mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
"\xc3\xe5\xee\xf0\xe3\xe8",
|
"\xca\xee\xe4\xe8\xed\xee\xe2");
|
DIE_UNLESS(rc == 0);
|
|
|
l_mysql= mysql_real_connect(l_mysql, opt_host, opt_user,
|
opt_password, current_db, opt_port,
|
opt_unix_socket, 0);
|
DIE_UNLESS(l_mysql != 0);
|
|
|
rc= mysql_query(l_mysql,
|
"SELECT ATTR_NAME, ATTR_VALUE "
|
" FROM performance_schema.session_account_connect_attrs"
|
" WHERE ATTR_NAME IN ('key1','key2','key3','key4',"
|
" '\xc3\xe5\xee\xf0\xe3\xe8') AND"
|
" PROCESSLIST_ID = CONNECTION_ID() ORDER BY ATTR_NAME");
|
myquery2(l_mysql,rc);
|
res= mysql_use_result(l_mysql);
|
DIE_UNLESS(res);
|
|
|
row= mysql_fetch_row(res);
|
DIE_UNLESS(row);
|
DIE_UNLESS(0 == strcmp(row[0], "key3"));
|
DIE_UNLESS(0 == strcmp(row[1], "value3"));
|
|
|
row= mysql_fetch_row(res);
|
DIE_UNLESS(row);
|
DIE_UNLESS(0 == strcmp(row[0], "key4"));
|
DIE_UNLESS(0 == strcmp(row[1], "value4"));
|
|
|
row= mysql_fetch_row(res);
|
DIE_UNLESS(row);
|
DIE_UNLESS(0 == strcmp(row[0], "\xc3\xe5\xee\xf0\xe3\xe8"));
|
DIE_UNLESS(0 == strcmp(row[1], "\xca\xee\xe4\xe8\xed\xee\xe2"));
|
|
|
mysql_free_result(res);
|
|
|
l_mysql->reconnect= 1;
|
rc= mysql_reconnect(l_mysql);
|
myquery2(l_mysql,rc);
|
|
|
mysql_close(l_mysql);
|
}
|
Attachments
Issue Links
- relates to
-
MDEV-35862 Enable "inexpensive" PERFORMANCE_SCHEMA tables even when "performance_schema=OFF"
-
- Open
-