################################# sql_mode_default.test ############################### # Make NO_AUTO_CREATE_USER sql_mode behavior the default in 5.7 # # # # Test for WL#8326 # # Created : 2015-02-05 # # Author : Lalit choudhary # ####################################################################################### --source include/not_embedded.inc call mtr.add_suppression(" *NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should .*"); SET sql_mode = default; SELECT @@sql_mode; # User creation using GRANT statement with default sql_mode --error ER_PASSWORD_NO_MATCH GRANT ALL ON *.* TO user2_wl8326@localhost; SET sql_mode= (select replace(@@sql_mode,'NO_AUTO_CREATE_USER','')); GRANT ALL ON *.* TO wl8326_user1@localhost; # Cleanup DROP USER wl8326_user1@localhost; --echo SET @@sql_mode='NO_ENGINE_SUBSTITUTION'; SELECT @@sql_mode; # When the NO_AUTO_CREATE_USER sql mode remains unaffected by the set sql_mode query, no warning is produced SET sql_mode = default; SELECT @@sql_mode; SET @@sql_mode='NO_AUTO_CREATE_USER'; # When the NO_AUTO_CREATE_USER sql mode affected by the set sql_mode query, warning is produced SET sql_mode = ''; SELECT @@sql_mode; SET @@sql_mode='NO_AUTO_CREATE_USER'; SELECT @@sql_mode; --echo # Restarting server without NO_AUTO_CREATE_USER sql_mode # Write file to make mysql-test-run.pl wait for the server to stop let $expect_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; --exec echo "wait" > $expect_file # Request shutdown --send_shutdown # Call script that will poll the server waiting for it to disapear --source include/wait_until_disconnected.inc --echo # Restart server. --exec echo "restart: --sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES " > $expect_file # Turn on reconnect --enable_reconnect # Call script that will poll the server waiting for it to be back online again --source include/wait_until_connected_again.inc --echo # Search for perticular warning during server startup let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; let SEARCH_PATTERN= \[Warning\] \'NO_AUTO_CREATE_USER\' sql mode was not set; --source include/search_pattern_in_file.inc SELECT @@sql_mode; # User creation using GRANT statement without NO_AUTO_CREATE_USER sql_mode GRANT ALL ON *.* TO wl8326_grant@localhost; # Cleanup DROP USER wl8326_grant@localhost; SET sql_mode = default; SELECT @@sql_mode; SET @@sql_mode='NO_AUTO_CREATE_USER'; SELECT @@sql_mode; SET sql_mode = default; --echo --echo End of wl#8326 tests! --echo