############## mysql-test\t\log_bin_trust_routine_creators_basic.test #########
#                                                                             #
# Variable Name: log_bin_trust_routine_creators                               #
# Scope: GLOBAL                                                               #
# Access Type: Dynamic                                                        #
# Data Type: boolean                                                          #
# Default Value: False                                                        #
# Range:                                                                      #
#                                                                             #
#                                                                             #
# Creation Date: 2008-02-12                                                   #
# Author:  Salman                                                             #
#                                                                             #
# Description: Test Cases of Dynamic System Variable                          #
#              log_bin_trust_routine_creators that checks the                 #
#              behavior of this variable in the following ways                #
#              * Default Value                                                #
#              * Valid & Invalid values                                       #
#              * Scope & Access method                                        #
#              * Data Integrity                                               #
#                                                                             #
# Reference: (Not given on website)                                           #
#                                                                             #
###############################################################################

--source include/load_sysvars.inc
####################################################################
#   START OF log_bin_trust_routine_creators TESTS                  #
####################################################################


#############################################################
#                 Save initial value                        #
#############################################################

SET @start_global_value = @@global.log_bin_trust_routine_creators;
SELECT @start_global_value;


--echo '#--------------------FN_DYNVARS_064_01-------------------------#'
########################################################################
#     Display the DEFAULT value of log_bin_trust_routine_creators     #
########################################################################

SET @@global.log_bin_trust_routine_creators = TRUE;
SET @@global.log_bin_trust_routine_creators = DEFAULT;
SELECT @@global.log_bin_trust_routine_creators;


--echo '#--------------------FN_DYNVARS_064_02-------------------------#'
##############################################################################
#     Check the DEFAULT value of log_bin_trust_routine_creators              #
##############################################################################

SET @@global.log_bin_trust_routine_creators = DEFAULT;
SELECT @@global.log_bin_trust_routine_creators = 'FALSE';


--echo '#--------------------FN_DYNVARS_064_03-------------------------#'
##################################################################
# Change the value of variable to a valid value for GLOBAL Scope #
##################################################################

SET @@global.log_bin_trust_routine_creators = ON;
SELECT @@global.log_bin_trust_routine_creators;
SET @@global.log_bin_trust_routine_creators = OFF;
SELECT @@global.log_bin_trust_routine_creators;
SET @@global.log_bin_trust_routine_creators = 0;
SELECT @@global.log_bin_trust_routine_creators;
SET @@global.log_bin_trust_routine_creators = 1;
SELECT @@global.log_bin_trust_routine_creators;
SET @@global.log_bin_trust_routine_creators = TRUE;
SELECT @@global.log_bin_trust_routine_creators;
SET @@global.log_bin_trust_routine_creators = FALSE;
SELECT @@global.log_bin_trust_routine_creators;


--echo '#-------------------FN_DYNVARS_064_04----------------------------#'
########################################################################### 
#   Test if accessing session log_bin_trust_routine_creators gives error  #
########################################################################### 

--Error ER_GLOBAL_VARIABLE
SET @@session.log_bin_trust_routine_creators = 0;
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.log_bin_trust_routine_creators;


--echo '#------------------FN_DYNVARS_064_05-----------------------#'
##########################################################################
# Change the value of log_bin_trust_routine_creators to an invalid value #
##########################################################################

--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = 'ONN';
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = "OFFF";
SET @@global.log_bin_trust_routine_creators = OF;
SELECT @@global.log_bin_trust_routine_creators;
--echo 'Bug# 34828: OF is also working as OFF and no error is coming';

--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = TTRUE;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = FELSE;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = -1024;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = 65536;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = 65530.34;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.log_bin_trust_routine_creators = test;


--echo '#------------------FN_DYNVARS_064_06-----------------------#'
###############################################################################
#   Check if the value in GLOBAL & SESSION Tables matches value in variable   #
###############################################################################


SELECT @@global.log_bin_trust_routine_creators = VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='log_bin_trust_routine_creators';

--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.log_bin_trust_routine_creators = VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='log_bin_trust_routine_creators';


--echo '#---------------------FN_DYNVARS_064_07----------------------#'
#################################################################################
#  Check if accessing variable with and without GLOBAL point to same variable   #
#################################################################################


SET @@global.log_bin_trust_routine_creators = TRUE;
SELECT @@log_bin_trust_routine_creators = @@global.log_bin_trust_routine_creators;


--echo '#---------------------FN_DYNVARS_064_08----------------------#'
###################################################################
#   Check if variable can be accessed with and without @@ sign    #
###################################################################

SET @@global.log_bin_trust_routine_creators = TRUE;
SELECT @@log_bin_trust_routine_creators;
--Error ER_UNKNOWN_TABLE
SELECT local.log_bin_trust_routine_creators;
--Error ER_UNKNOWN_TABLE
SELECT session.log_bin_trust_routine_creators;
--Error ER_BAD_FIELD_ERROR
SELECT log_bin_trust_routine_creators = @@session.log_bin_trust_routine_creators;


####################################
#     Restore initial value        #
####################################

SET @@global.log_bin_trust_routine_creators = @start_global_value;
SELECT @@global.log_bin_trust_routine_creators;


###################################################################
#                 END OF log_bin_trust_routine_creators TESTS     #
###################################################################