mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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
This commit is contained in:
@ -1093,7 +1093,14 @@ static int mysql_test_select(Prepared_statement *stmt,
|
||||
}
|
||||
else
|
||||
{
|
||||
List<Item> &fields= lex->select_lex.item_list;
|
||||
/* Make copy of item list, as change_columns may change it */
|
||||
List<Item> fields(lex->select_lex.item_list);
|
||||
|
||||
/* Change columns if a procedure like analyse() */
|
||||
if (unit->last_procedure &&
|
||||
unit->last_procedure->change_columns(fields))
|
||||
goto err_prep;
|
||||
|
||||
/*
|
||||
We can use lex->result as it should've been
|
||||
prepared in unit->prepare call above.
|
||||
@ -1596,6 +1603,8 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length,
|
||||
|
||||
thd->current_arena= stmt;
|
||||
mysql_init_query(thd, (uchar *) thd->query, thd->query_length);
|
||||
/* Reset warnings from previous command */
|
||||
mysql_reset_errors(thd);
|
||||
lex= thd->lex;
|
||||
lex->safe_to_cache_query= 0;
|
||||
|
||||
|
Reference in New Issue
Block a user