diff options
author | unknown <holyfoot@mysql.com> | 2006-05-03 15:51:19 +0500 |
---|---|---|
committer | unknown <holyfoot@mysql.com> | 2006-05-03 15:51:19 +0500 |
commit | bb95643f735a89941d76f3229c7f5be78f0f0b3b (patch) | |
tree | 82361510724ec21c3ea6d286986b88f40a172e7a | |
parent | bb40065a1f418614ad530817ffc4f55be242c1f9 (diff) | |
parent | b23aa5c0bea3e8c3c0e9fdb3ef287628d0d8497b (diff) | |
download | mariadb-git-bb95643f735a89941d76f3229c7f5be78f0f0b3b.tar.gz |
Merge mysql.com:/home/hf/work/mysql-4.1.15225
into mysql.com:/home/hf/work/mysql-4.1.mrg
sql/sql_table.cc:
Auto merged
-rw-r--r-- | mysql-test/r/analyze.result | 9 | ||||
-rw-r--r-- | mysql-test/t/analyze.test | 9 | ||||
-rw-r--r-- | sql/sql_table.cc | 13 |
3 files changed, 27 insertions, 4 deletions
diff --git a/mysql-test/r/analyze.result b/mysql-test/r/analyze.result index 796b382f5d6..bded22c4859 100644 --- a/mysql-test/r/analyze.result +++ b/mysql-test/r/analyze.result @@ -37,3 +37,12 @@ Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_ execute stmt1; Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype deallocate prepare stmt1; +create temporary table t1(a int, index(a)); +insert into t1 values('1'),('2'),('3'),('4'),('5'); +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +show index from t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t1 1 a 1 a A 5 NULL NULL YES BTREE +drop table t1; diff --git a/mysql-test/t/analyze.test b/mysql-test/t/analyze.test index 5d653b65579..a4694c32d3c 100644 --- a/mysql-test/t/analyze.test +++ b/mysql-test/t/analyze.test @@ -48,4 +48,13 @@ execute stmt1; execute stmt1; deallocate prepare stmt1; +# +# bug#15225 (ANALYZE temporary has no effect) +# +create temporary table t1(a int, index(a)); +insert into t1 values('1'),('2'),('3'),('4'),('5'); +analyze table t1; +show index from t1; +drop table t1; + # End of 4.1 tests diff --git a/sql/sql_table.cc b/sql/sql_table.cc index c9513ec71ab..841a2f73847 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -2164,10 +2164,15 @@ send_result_message: table->table->version=0; // Force close of table else if (open_for_modify) { - pthread_mutex_lock(&LOCK_open); - remove_table_from_cache(thd, table->table->table_cache_key, - table->table->real_name, RTFC_NO_FLAG); - pthread_mutex_unlock(&LOCK_open); + if (table->table->tmp_table) + table->table->file->info(HA_STATUS_CONST); + else + { + pthread_mutex_lock(&LOCK_open); + remove_table_from_cache(thd, table->table->table_cache_key, + table->table->real_name, RTFC_NO_FLAG); + pthread_mutex_unlock(&LOCK_open); + } /* May be something modified consequently we have to invalidate cache */ query_cache_invalidate3(thd, table->table, 0); } |