Commit f6c4805f authored by unknown's avatar unknown
Browse files

Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  mysql.com:/home/psergey/mysql-5.1-merge6

parents a04f6024 c00a5644
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -78,5 +78,6 @@ abcn1
abcn1n2
abc\def
This is a test
insert into t1 select * FROM (select @var1 union  select @var2) AS t2;
drop table t1;
stop slave;
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ SELECT * FROM t1 ORDER BY n;
sync_slave_with_master;
SELECT * FROM t1 ORDER BY n;
connection master;
insert into t1 select * FROM (select @var1 union  select @var2) AS t2;
drop table t1;
sync_slave_with_master;
stop slave;
+10 −0
Original line number Diff line number Diff line
@@ -3948,14 +3948,24 @@ int get_var_with_binlog(THD *thd, enum_sql_command sql_command,
      sql_set_variables(), we could instead manually call check() and update();
      this would save memory and time; but calling sql_set_variables() makes
      one unique place to maintain (sql_set_variables()). 

      Manipulation with lex is necessary since free_underlaid_joins
      is going to release memory belonging to the main query.
    */

    List<set_var_base> tmp_var_list;
    LEX *sav_lex= thd->lex, lex_tmp;
    thd->lex= &lex_tmp;
    lex_start(thd, NULL, 0);
    tmp_var_list.push_back(new set_var_user(new Item_func_set_user_var(name,
                                                                       new Item_null())));
    /* Create the variable */
    if (sql_set_variables(thd, &tmp_var_list))
    {
      thd->lex= sav_lex;
      goto err;
    }
    thd->lex= sav_lex;
    if (!(var_entry= get_variable(&thd->user_vars, name, 0)))
      goto err;
  }
+13 −12
Original line number Diff line number Diff line
@@ -2087,7 +2087,8 @@ void reinit_stmt_before_use(THD *thd, LEX *lex)
      sl->exclude_from_table_unique_test= FALSE;

      /*
        Copy WHERE, HAVING clause pointers to avoid damaging them by optimisation
        Copy WHERE, HAVING clause pointers to avoid damaging them
        by optimisation
      */
      if (sl->prep_where)
      {