summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authormonty@mysql.com <>2004-10-26 19:30:01 +0300
committermonty@mysql.com <>2004-10-26 19:30:01 +0300
commit6fbc869d183b777576670f37edaa293f16c1fa68 (patch)
tree355a805ce6da2de5e852c4f9b8372d612070cd6d /sql/sql_insert.cc
parent8b6839e6446fde2931583d4d8b74bb531add5062 (diff)
downloadmariadb-git-6fbc869d183b777576670f37edaa293f16c1fa68.tar.gz
A lot of fixes for prepared statements (PS):
New mysqltest that can run mysqltest with PS Added support for ZEROFILL in PS Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result() Updated test cases to support --ps-protocol (Some tests are still run using old protocol) Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2... Fixed crash in PS when using sub queries Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever" Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries) Fix for PS and SELECT ... PROCEDURE Reset all warnings when executing a new PS query group_concat(...ORDER BY) didn't work with PS Fixed problem with test suite when not using innodb
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index a0496a04bb2..2c48d1dca8f 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -1680,7 +1680,12 @@ bool select_create::send_eof()
We should be able to just keep the table in the table cache.
*/
if (!table->tmp_table)
+ {
hash_delete(&open_cache,(byte*) table);
+ /* Tell threads waiting for refresh that something has happened */
+ if (table->version != refresh_version)
+ VOID(pthread_cond_broadcast(&COND_refresh));
+ }
lock=0;
table=0;
VOID(pthread_mutex_unlock(&LOCK_open));
@@ -1705,6 +1710,9 @@ void select_create::abort()
hash_delete(&open_cache,(byte*) table);
if (!create_info->table_existed)
quick_rm_table(table_type, db, name);
+ /* Tell threads waiting for refresh that something has happened */
+ if (table->version != refresh_version)
+ VOID(pthread_cond_broadcast(&COND_refresh));
}
else if (!create_info->table_existed)
close_temporary_table(thd, db, name);