1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00

Removed the server option --stat-tables.

Renamed the system variable optimizer_use_stat_tables to use_stat_tables.
This variable now has only 3 possible values:
'never', 'complementary', 'preferably'.
If the server has been launched with
--use-stat-tables='complementary'|'preferably'
then the statictics tables can be employed by the optimizer and by the
ANALYZE command.
This commit is contained in:
Igor Babaev
2012-06-02 17:19:01 -07:00
parent 2ee14ef9c3
commit f549f495f7
18 changed files with 244 additions and 295 deletions

View File

@@ -1,116 +0,0 @@
SET @start_global_value = @@global.optimizer_use_stat_tables;
SELECT @start_global_value;
@start_global_value
NEVER
SET @start_session_value = @@session.optimizer_use_stat_tables;
SELECT @start_session_value;
@start_session_value
NEVER
SET @@global.optimizer_use_stat_tables = 2;
SET @@global.optimizer_use_stat_tables = DEFAULT;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
NEVER
SET @@session.optimizer_use_stat_tables = 3;
SET @@session.optimizer_use_stat_tables = DEFAULT;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
NEVER
SET @@global.optimizer_use_stat_tables = 0;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
NEVER
SET @@global.optimizer_use_stat_tables = 1;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
COMPLEMENTARY
SET @@global.optimizer_use_stat_tables = 2;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
PREFERABLY
SET @@global.optimizer_use_stat_tables = 3;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
EXCLUSIVELY
SET @@global.optimizer_use_stat_tables = NEVER;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
NEVER
SET @@global.optimizer_use_stat_tables = COMPLEMENTARY;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
COMPLEMENTARY
SET @@global.optimizer_use_stat_tables = PREFERABLY;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
PREFERABLY
SET @@global.optimizer_use_stat_tables = EXCLUSIVELY;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
EXCLUSIVELY
SET @@session.optimizer_use_stat_tables = 0;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
NEVER
SET @@session.optimizer_use_stat_tables = 1;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
COMPLEMENTARY
SET @@session.optimizer_use_stat_tables = 2;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
PREFERABLY
SET @@session.optimizer_use_stat_tables = 3;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
EXCLUSIVELY
SET @@session.optimizer_use_stat_tables = NEVER;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
NEVER
SET @@session.optimizer_use_stat_tables = PREFERABLY;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
PREFERABLY
SET @@session.optimizer_use_stat_tables = EXCLUSIVELY;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
EXCLUSIVELY
SET @@session.optimizer_use_stat_tables = COMPLEMENTARY;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
COMPLEMENTARY
set sql_mode=TRADITIONAL;
SET @@global.optimizer_use_stat_tables = 10;
ERROR 42000: Variable 'optimizer_use_stat_tables' can't be set to the value of '10'
SET @@global.optimizer_use_stat_tables = -1024;
ERROR 42000: Variable 'optimizer_use_stat_tables' can't be set to the value of '-1024'
SET @@global.optimizer_use_stat_tables = 2.4;
ERROR 42000: Incorrect argument type to variable 'optimizer_use_stat_tables'
SET @@global.optimizer_use_stat_tables = OFF;
ERROR 42000: Variable 'optimizer_use_stat_tables' can't be set to the value of 'OFF'
SET @@session.optimizer_use_stat_tables = 10;
ERROR 42000: Variable 'optimizer_use_stat_tables' can't be set to the value of '10'
SET @@session.optimizer_use_stat_tables = -2;
ERROR 42000: Variable 'optimizer_use_stat_tables' can't be set to the value of '-2'
SET @@session.optimizer_use_stat_tables = 1.2;
ERROR 42000: Incorrect argument type to variable 'optimizer_use_stat_tables'
SET @@session.optimizer_use_stat_tables = ON;
ERROR 42000: Variable 'optimizer_use_stat_tables' can't be set to the value of 'ON'
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='optimizer_use_stat_tables';
VARIABLE_NAME VARIABLE_VALUE
OPTIMIZER_USE_STAT_TABLES EXCLUSIVELY
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='optimizer_use_stat_tables';
VARIABLE_NAME VARIABLE_VALUE
OPTIMIZER_USE_STAT_TABLES COMPLEMENTARY
SET @@global.optimizer_use_stat_tables = @start_global_value;
SELECT @@global.optimizer_use_stat_tables;
@@global.optimizer_use_stat_tables
NEVER
SET @@session.optimizer_use_stat_tables = @start_session_value;
SELECT @@session.optimizer_use_stat_tables;
@@session.optimizer_use_stat_tables
NEVER
set sql_mode='';

View File

@@ -0,0 +1,95 @@
SET @start_global_value = @@global.use_stat_tables;
SELECT @start_global_value;
@start_global_value
NEVER
SET @start_session_value = @@session.use_stat_tables;
SELECT @start_session_value;
@start_session_value
NEVER
SET @@global.use_stat_tables = 2;
SET @@global.use_stat_tables = DEFAULT;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
NEVER
SET @@global.use_stat_tables = 0;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
NEVER
SET @@global.use_stat_tables = 1;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
COMPLEMENTARY
SET @@global.use_stat_tables = 2;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
PREFERABLY
SET @@global.use_stat_tables = NEVER;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
NEVER
SET @@global.use_stat_tables = COMPLEMENTARY;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
COMPLEMENTARY
SET @@global.use_stat_tables = PREFERABLY;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
PREFERABLY
SET @@session.use_stat_tables = 0;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
NEVER
SET @@session.use_stat_tables = 1;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
COMPLEMENTARY
SET @@session.use_stat_tables = 2;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
PREFERABLY
SET @@session.use_stat_tables = NEVER;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
NEVER
SET @@session.use_stat_tables = PREFERABLY;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
PREFERABLY
SET @@session.use_stat_tables = COMPLEMENTARY;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
COMPLEMENTARY
set sql_mode=TRADITIONAL;
SET @@global.use_stat_tables = 10;
ERROR 42000: Variable 'use_stat_tables' can't be set to the value of '10'
SET @@global.use_stat_tables = -1024;
ERROR 42000: Variable 'use_stat_tables' can't be set to the value of '-1024'
SET @@global.use_stat_tables = 2.4;
ERROR 42000: Incorrect argument type to variable 'use_stat_tables'
SET @@global.use_stat_tables = OFF;
ERROR 42000: Variable 'use_stat_tables' can't be set to the value of 'OFF'
SET @@session.use_stat_tables = 10;
ERROR 42000: Variable 'use_stat_tables' can't be set to the value of '10'
SET @@session.use_stat_tables = -2;
ERROR 42000: Variable 'use_stat_tables' can't be set to the value of '-2'
SET @@session.use_stat_tables = 1.2;
ERROR 42000: Incorrect argument type to variable 'use_stat_tables'
SET @@session.use_stat_tables = ON;
ERROR 42000: Variable 'use_stat_tables' can't be set to the value of 'ON'
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='use_stat_tables';
VARIABLE_NAME VARIABLE_VALUE
USE_STAT_TABLES PREFERABLY
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='use_stat_tables';
VARIABLE_NAME VARIABLE_VALUE
USE_STAT_TABLES COMPLEMENTARY
SET @@global.use_stat_tables = @start_global_value;
SELECT @@global.use_stat_tables;
@@global.use_stat_tables
NEVER
SET @@session.use_stat_tables = @start_session_value;
SELECT @@session.use_stat_tables;
@@session.use_stat_tables
NEVER
set sql_mode='';

View File

@@ -1,112 +0,0 @@
--source include/load_sysvars.inc
#############################################################
# Save initial value #
#############################################################
SET @start_global_value = @@global.optimizer_use_stat_tables;
SELECT @start_global_value;
SET @start_session_value = @@session.optimizer_use_stat_tables;
SELECT @start_session_value;
###############################################################
# Display the DEFAULT value of optimizer_use_stat_tables #
###############################################################
SET @@global.optimizer_use_stat_tables = 2;
SET @@global.optimizer_use_stat_tables = DEFAULT;
SELECT @@global.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = 3;
SET @@session.optimizer_use_stat_tables = DEFAULT;
SELECT @@session.optimizer_use_stat_tables;
##################################################################################
# Change the value ofoptimizer_use_stat_tables to a valid value for GLOBAL Scope #
##################################################################################
SET @@global.optimizer_use_stat_tables = 0;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = 1;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = 2;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = 3;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = NEVER;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = COMPLEMENTARY;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = PREFERABLY;
SELECT @@global.optimizer_use_stat_tables;
SET @@global.optimizer_use_stat_tables = EXCLUSIVELY;
SELECT @@global.optimizer_use_stat_tables;
####################################################################################
# Change the value of optimizer_use_stat_tables to a valid value for SESSION Scope #
####################################################################################
SET @@session.optimizer_use_stat_tables = 0;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = 1;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = 2;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = 3;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = NEVER;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = PREFERABLY;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = EXCLUSIVELY;
SELECT @@session.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = COMPLEMENTARY;
SELECT @@session.optimizer_use_stat_tables;
#####################################################################
# Change the value of optimizer_use_stat_tables to an invalid value #
#####################################################################
set sql_mode=TRADITIONAL;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.optimizer_use_stat_tables = 10;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.optimizer_use_stat_tables = -1024;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.optimizer_use_stat_tables = 2.4;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.optimizer_use_stat_tables = OFF;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.optimizer_use_stat_tables = 10;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.optimizer_use_stat_tables = -2;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@session.optimizer_use_stat_tables = 1.2;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.optimizer_use_stat_tables = ON;
###############################################################################
# Check if the value in GLOBAL & SESSION Tables matches value in variable #
###############################################################################
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='optimizer_use_stat_tables';
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='optimizer_use_stat_tables';
####################################
# Restore initial value #
####################################
SET @@global.optimizer_use_stat_tables = @start_global_value;
SELECT @@global.optimizer_use_stat_tables;
SET @@session.optimizer_use_stat_tables = @start_session_value;
SELECT @@session.optimizer_use_stat_tables;
set sql_mode='';
######################################################
# END OF optimizer_use_stat_tables TESTS #
######################################################

View File

@@ -0,0 +1,100 @@
--source include/load_sysvars.inc
#############################################################
# Save initial value #
#############################################################
SET @start_global_value = @@global.use_stat_tables;
SELECT @start_global_value;
SET @start_session_value = @@session.use_stat_tables;
SELECT @start_session_value;
###############################################################
# Display the DEFAULT value of use_stat_tables #
###############################################################
SET @@global.use_stat_tables = 2;
SET @@global.use_stat_tables = DEFAULT;
SELECT @@global.use_stat_tables;
##################################################################################
# Change the value of use_stat_tables to a valid value for GLOBAL Scope #
##################################################################################
SET @@global.use_stat_tables = 0;
SELECT @@global.use_stat_tables;
SET @@global.use_stat_tables = 1;
SELECT @@global.use_stat_tables;
SET @@global.use_stat_tables = 2;
SELECT @@global.use_stat_tables;
SET @@global.use_stat_tables = NEVER;
SELECT @@global.use_stat_tables;
SET @@global.use_stat_tables = COMPLEMENTARY;
SELECT @@global.use_stat_tables;
SET @@global.use_stat_tables = PREFERABLY;
SELECT @@global.use_stat_tables;
####################################################################################
# Change the value of use_stat_tables to a valid value for SESSION Scope #
####################################################################################
SET @@session.use_stat_tables = 0;
SELECT @@session.use_stat_tables;
SET @@session.use_stat_tables = 1;
SELECT @@session.use_stat_tables;
SET @@session.use_stat_tables = 2;
SELECT @@session.use_stat_tables;
SET @@session.use_stat_tables = NEVER;
SELECT @@session.use_stat_tables;
SET @@session.use_stat_tables = PREFERABLY;
SELECT @@session.use_stat_tables;
SET @@session.use_stat_tables = COMPLEMENTARY;
SELECT @@session.use_stat_tables;
#####################################################################
# Change the value of use_stat_tables to an invalid value #
#####################################################################
set sql_mode=TRADITIONAL;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.use_stat_tables = 10;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.use_stat_tables = -1024;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.use_stat_tables = 2.4;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.use_stat_tables = OFF;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.use_stat_tables = 10;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.use_stat_tables = -2;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@session.use_stat_tables = 1.2;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.use_stat_tables = ON;
###############################################################################
# Check if the value in GLOBAL & SESSION Tables matches value in variable #
###############################################################################
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='use_stat_tables';
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='use_stat_tables';
####################################
# Restore initial value #
####################################
SET @@global.use_stat_tables = @start_global_value;
SELECT @@global.use_stat_tables;
SET @@session.use_stat_tables = @start_session_value;
SELECT @@session.use_stat_tables;
set sql_mode='';
######################################################
# END OF use_stat_tables TESTS #
######################################################