mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new Makefile.am: Auto merged client/mysqltest.c: Auto merged configure.in: Auto merged extra/Makefile.am: Auto merged include/Makefile.am: Auto merged include/my_global.h: Auto merged libmysqld/examples/Makefile.am: Auto merged mysql-test/Makefile.am: Auto merged mysql-test/r/ndb_alter_table.result: Auto merged mysql-test/t/ndb_alter_table.test: Auto merged scripts/Makefile.am: Auto merged sql/Makefile.am: Auto merged sql/field.cc: Auto merged sql/ha_federated.cc: Auto merged sql/ha_federated.h: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_myisammrg.cc: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/handler.cc: Auto merged sql/item.cc: Auto merged sql/item_subselect.cc: Auto merged sql/key.cc: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/slave.cc: Auto merged sql/sp.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_cache.h: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_lex.cc: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/structs.h: Auto merged sql/table.cc: Auto merged sql/tztime.cc: Auto merged storage/myisam/myisamchk.c: Auto merged storage/myisam/myisampack.c: Auto merged storage/ndb/docs/Makefile.am: Auto merged support-files/mysql.spec.sh: Auto merged libmysqld/Makefile.am: Merged from 5.0 to 5.1. sql/ha_berkeley.cc: Merged from 5.0 to 5.1. sql/lex.h: Merged from 5.0 to 5.1. sql/set_var.cc: Merged from 5.0 to 5.1. sql/share/errmsg.txt: Merged from 5.0 to 5.1. sql/sql_lex.h: Merged from 5.0 to 5.1. sql/sql_show.cc: Merged from 5.0 to 5.1. sql/sql_yacc.yy: Merged from 5.0 to 5.1.
This commit is contained in:
@@ -1495,7 +1495,13 @@ int select_dumpvar::prepare(List<Item> &list, SELECT_LEX_UNIT *u)
|
||||
{
|
||||
my_var *mv= gl++;
|
||||
if (mv->local)
|
||||
(void)local_vars.push_back(new Item_splocal(mv->s, mv->offset));
|
||||
{
|
||||
Item_splocal *var;
|
||||
(void)local_vars.push_back(var= new Item_splocal(mv->s, mv->offset));
|
||||
#ifndef DBUG_OFF
|
||||
var->owner= mv->owner;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
Item_func_set_user_var *var= new Item_func_set_user_var(mv->s, item);
|
||||
@@ -1916,6 +1922,7 @@ void THD::restore_backup_open_tables_state(Open_tables_state *backup)
|
||||
- Value for found_rows() is reset and restored
|
||||
- examined_row_count is added to the total
|
||||
- cuted_fields is added to the total
|
||||
- new savepoint level is created and destroyed
|
||||
|
||||
NOTES:
|
||||
Seed for random() is saved for the first! usage of RAND()
|
||||
@@ -1939,6 +1946,7 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup,
|
||||
backup->sent_row_count= sent_row_count;
|
||||
backup->cuted_fields= cuted_fields;
|
||||
backup->client_capabilities= client_capabilities;
|
||||
backup->savepoints= transaction.savepoints;
|
||||
|
||||
if (!lex->requires_prelocking() || is_update_query(lex->sql_command))
|
||||
options&= ~OPTION_BIN_LOG;
|
||||
@@ -1951,6 +1959,7 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup,
|
||||
examined_row_count= 0;
|
||||
sent_row_count= 0;
|
||||
cuted_fields= 0;
|
||||
transaction.savepoints= 0;
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
/* Surpress OK packets in case if we will execute statements */
|
||||
@@ -1961,6 +1970,21 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup,
|
||||
|
||||
void THD::restore_sub_statement_state(Sub_statement_state *backup)
|
||||
{
|
||||
/*
|
||||
To save resources we want to release savepoints which were created
|
||||
during execution of function or trigger before leaving their savepoint
|
||||
level. It is enough to release first savepoint set on this level since
|
||||
all later savepoints will be released automatically.
|
||||
*/
|
||||
if (transaction.savepoints)
|
||||
{
|
||||
SAVEPOINT *sv;
|
||||
for (sv= transaction.savepoints; sv->prev; sv= sv->prev)
|
||||
{}
|
||||
/* ha_release_savepoint() never returns error. */
|
||||
(void)ha_release_savepoint(this, sv);
|
||||
}
|
||||
transaction.savepoints= backup->savepoints;
|
||||
options= backup->options;
|
||||
in_sub_stmt= backup->in_sub_stmt;
|
||||
net.no_send_ok= backup->no_send_ok;
|
||||
|
||||
Reference in New Issue
Block a user