[Commits] 8fc778f3e9c: Make tests pass
revision-id: 8fc778f3e9cbc339d14653e9e035163e52a582cd (mariadb-10.6.1-120-g8fc778f3e9c) parent(s): 6352d59d12cb5ab7e6530a74171413ddba5e2870 author: Sergei Petrunia committer: Sergei Petrunia timestamp: 2021-09-04 23:17:39 +0300 message: Make tests pass - Fix bad tests in statistics_json test: make them meaningful and make them work on windows - Fix analyze_debug.test: correctly handle errors during ANALYZE --- mysql-test/main/statistics_json.result | 18 ++++-------------- mysql-test/main/statistics_json.test | 6 ++---- sql/sql_admin.cc | 3 ++- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/mysql-test/main/statistics_json.result b/mysql-test/main/statistics_json.result index 857b062ae47..aa7b7c08a31 100644 --- a/mysql-test/main/statistics_json.result +++ b/mysql-test/main/statistics_json.result @@ -3174,22 +3174,12 @@ Percentage 0.0 99.9 50 JSON_HB { "99.9" ] } -explain extended select * from Country where 'Code' between 'BBC' and 'GGG'; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE Country ALL NULL NULL NULL NULL 239 100.00 -Warnings: -Note 1003 select `world`.`Country`.`Code` AS `Code`,`world`.`Country`.`Name` AS `Name`,`world`.`Country`.`SurfaceArea` AS `SurfaceArea`,`world`.`Country`.`Population` AS `Population`,`world`.`Country`.`Capital` AS `Capital` from `world`.`Country` where 1 -analyze select * from Country where 'Code' between 'BBC' and 'GGG'; +analyze select * from Country use index () where Code between 'BBC' and 'GGG'; id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 SIMPLE Country ALL NULL NULL NULL NULL 239 239.00 100.00 100.00 -explain extended select * from Country where 'Code' < 'BBC'; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE -Warnings: -Note 1003 select `world`.`Country`.`Code` AS `Code`,`world`.`Country`.`Name` AS `Name`,`world`.`Country`.`SurfaceArea` AS `SurfaceArea`,`world`.`Country`.`Population` AS `Population`,`world`.`Country`.`Capital` AS `Capital` from `world`.`Country` where 0 -analyze select * from Country where 'Code' < 'BBC'; +1 SIMPLE Country ALL NULL NULL NULL NULL 239 239.00 25.49 25.52 Using where +analyze select * from Country use index () where Code < 'BBC'; id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +1 SIMPLE Country ALL NULL NULL NULL NULL 239 239.00 5.88 7.11 Using where set histogram_type=@save_histogram_type; set histogram_size=@save_histogram_size; DROP SCHEMA world; diff --git a/mysql-test/main/statistics_json.test b/mysql-test/main/statistics_json.test index 99705aa38ae..be223f5e4a4 100644 --- a/mysql-test/main/statistics_json.test +++ b/mysql-test/main/statistics_json.test @@ -85,10 +85,8 @@ ANALYZE TABLE Country, City, CountryLanguage persistent for all; --enable_result_log SELECT column_name, min_value, max_value, hist_size, hist_type, histogram FROM mysql.column_stats; -explain extended select * from Country where 'Code' between 'BBC' and 'GGG'; -analyze select * from Country where 'Code' between 'BBC' and 'GGG'; -explain extended select * from Country where 'Code' < 'BBC'; -analyze select * from Country where 'Code' < 'BBC'; +analyze select * from Country use index () where Code between 'BBC' and 'GGG'; +analyze select * from Country use index () where Code < 'BBC'; set histogram_type=@save_histogram_type; set histogram_size=@save_histogram_size; diff --git a/sql/sql_admin.cc b/sql/sql_admin.cc index 6a1ea3d31fc..6c3e86bd54c 100644 --- a/sql/sql_admin.cc +++ b/sql/sql_admin.cc @@ -1025,7 +1025,8 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables, else compl_result_code= HA_ADMIN_FAILED; - free_statistics_for_table(thd, table->table); + if (table->table) + free_statistics_for_table(thd, table->table); if (compl_result_code) result_code= HA_ADMIN_FAILED; else
participants (1)
-
psergey