############## mysql-test\t\storage_engine_basic.test ##################
#                                                                      #
#                                                                      # 
# Creation Date: 2008-02-14                                            #
# Author:  Salman Rawala                                               #
#                                                                      #
# Description: Test Cases of Dynamic System Variable                   #
#              default_storage_engine that check behavior of this              #
#              variable with valid values, invalid values, accessing   #
#              variable with scope that is allowed and with scope that #
#              is now allowed.                                         #
#                                                                      #
# Reference: http://dev.mysql.com/doc/refman/5.1/en/                   #
#         server-system-variables.html#option_mysqld_storage_engine    #
#                                                                      #
########################################################################

--source include/not_embedded.inc
--source include/have_innodb.inc
--source include/load_sysvars.inc

######################################################################
#           START OF default_storage_engine TESTS                            #
######################################################################


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

SET @start_global_value = @@global.default_storage_engine;
SELECT @start_global_value;
SET @start_session_value = @@session.default_storage_engine;
SELECT @start_session_value;


--echo '#--------------------FN_DYNVARS_005_01-------------------------#'
######################################################################
#     Display the DEFAULT value of default_storage_engine                    #
######################################################################

SET @@global.default_storage_engine = INNODB;
SET @@global.default_storage_engine = DEFAULT;
SELECT @@global.default_storage_engine;

SET @@session.default_storage_engine = INNODB;
SET @@session.default_storage_engine = DEFAULT;
SELECT @@session.default_storage_engine;


--echo '#--------------------FN_DYNVARS_005_02-------------------------#'
########################################################################
# Change the value of default_storage_engine to a valid value for GLOBAL Scope #
########################################################################

SET @@global.default_storage_engine = MYISAM;
SELECT @@global.default_storage_engine;
SET @@global.default_storage_engine = MERGE;
SELECT @@global.default_storage_engine;
SET @@global.default_storage_engine = MEMORY;
SELECT @@global.default_storage_engine;
SET @@global.default_storage_engine = INNODB;
SELECT @@global.default_storage_engine;


--echo '#--------------------FN_DYNVARS_005_03-------------------------#'
#########################################################################
# Change the value of default_storage_engine to a valid value for SESSION Scope #
#########################################################################
 
SET @@session.default_storage_engine = MYISAM;
SELECT @@session.default_storage_engine;
SET @@session.default_storage_engine = MERGE;
SELECT @@session.default_storage_engine;
SET @@session.default_storage_engine = MEMORY;
SELECT @@session.default_storage_engine;
SET @@session.default_storage_engine = INNODB;
SELECT @@session.default_storage_engine;


--echo '#------------------FN_DYNVARS_005_04-----------------------#'
##################################################################
# Change the value of default_storage_engine to an invalid value         #
##################################################################

--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.default_storage_engine = 8199;

--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.default_storage_engine = NULL;

--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.default_storage_engine = -1024;

--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.default_storage_engine = 65530.34;

--Error ER_UNKNOWN_STORAGE_ENGINE
SET @@global.default_storage_engine = FILE;

--Error ER_WRONG_TYPE_FOR_VAR
SET @@session.default_storage_engine = 8199;

--Error ER_WRONG_TYPE_FOR_VAR
SET @@session.default_storage_engine = 65530.34;

--Error ER_UNKNOWN_STORAGE_ENGINE
SET @@session.default_storage_engine = RECORD;


--echo '#------------------FN_DYNVARS_005_05-----------------------#'
####################################################################
#   Check if the value in GLOBAL Table matches value in variable   #
####################################################################


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

--echo '#------------------FN_DYNVARS_005_06-----------------------#'
####################################################################
#  Check if the value in SESSION Table matches value in variable   #
####################################################################

SELECT @@session.default_storage_engine =
 VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
  WHERE VARIABLE_NAME='default_storage_engine';


--echo '#------------------FN_DYNVARS_005_07-----------------------#'
####################################################################
#     Check if TRUE and FALSE values can be used on variable       #
####################################################################

--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.default_storage_engine = TRUE;

--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.default_storage_engine = FALSE;


--echo '#---------------------FN_DYNVARS_001_8----------------------#'
###############################################################
#  Check if accessing variable with SESSION,LOCAL and without #
#  SCOPE points to same session variable                      #
###############################################################

SET @@default_storage_engine = MYISAM;
SELECT @@default_storage_engine = @@local.default_storage_engine;
SELECT @@local.default_storage_engine = @@session.default_storage_engine;


--echo '#---------------------FN_DYNVARS_001_9----------------------#'
#########################################################################
#   Check if default_storage_engine can be accessed with and without @@ sign    #
#########################################################################

SET default_storage_engine = MEMORY;
SELECT @@default_storage_engine;
--Error ER_UNKNOWN_TABLE
SELECT local.default_storage_engine;
--Error ER_UNKNOWN_TABLE
SELECT session.default_storage_engine;
--Error ER_BAD_FIELD_ERROR
SELECT default_storage_engine = @@session.default_storage_engine;

# check the old obsolete name
SET @@default_storage_engine = @start_global_value;

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

SET @@global.default_storage_engine = @start_global_value;
SELECT @@global.default_storage_engine;
SET @@session.default_storage_engine = @start_session_value;
SELECT @@session.default_storage_engine;


#############################################################
#                 END OF default_storage_engine TESTS               #
#############################################################

