diff options
author | monty@mysql.com <> | 2004-10-26 19:30:01 +0300 |
---|---|---|
committer | monty@mysql.com <> | 2004-10-26 19:30:01 +0300 |
commit | 6fbc869d183b777576670f37edaa293f16c1fa68 (patch) | |
tree | 355a805ce6da2de5e852c4f9b8372d612070cd6d /sql/sql_insert.cc | |
parent | 8b6839e6446fde2931583d4d8b74bb531add5062 (diff) | |
download | mariadb-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.cc | 8 |
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); |