Commit ce09acfb authored by Sinisa@sinisa.nasamreza.org's avatar Sinisa@sinisa.nasamreza.org
Browse files

Making multi-table delete BETA !!

parent 85388703
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -368,3 +368,4 @@ libmysqld/hash_filo.cc
libmysqld/sql_unions.cc
libmysqld/stacktrace.c
sql/share/mysql
locked
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ eval select $BIG_TEST as using_big_test;

drop table if exists t1,t2,t3;
create table t1(id1 int not null auto_increment primary key, t char(12));
create table t2(id2 int not null, t char(12), index(id2));
create table t2(id2 int not null, t char(12));
create table t3(id3 int not null, t char(12), index(id3));
let $1 = 10000;
while ($1)
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
   MA 02111-1307, USA */

/* Written by Sinisa Milivojevic <sinisa@coresinc.com> */
/* Written by Sinisa Milivojevic <sinisa@mysql.com> */

#include <global.h>
#ifdef HAVE_COMPRESS
+0 −5
Original line number Diff line number Diff line
@@ -685,7 +685,6 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
  uchar *strpos;
  BUFFPEK *buffpek,**refpek;
  QUEUE queue;
  volatile bool *killed= &current_thd->killed;
  qsort2_cmp    cmp;
  DBUG_ENTER("merge_buffers");

@@ -739,10 +738,6 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,

  while (queue.elements > 1)
  {
    if (*killed)
    {
      error=1; goto err;			/* purecov: inspected */
    }
    for (;;)
    {
      buffpek=(BUFFPEK*) queue_top(&queue);
+4 −0
Original line number Diff line number Diff line
@@ -410,6 +410,8 @@ class sql_exchange :public Sql_alloc
** This is used to get result from a select
*/

class JOIN;

class select_result :public Sql_alloc {
protected:
  THD *thd;
@@ -419,6 +421,7 @@ class select_result :public Sql_alloc {
  virtual int prepare(List<Item> &list) { return 0; }
  virtual bool send_fields(List<Item> &list,uint flag)=0;
  virtual bool send_data(List<Item> &items)=0;
  virtual void initialize_tables (JOIN *join=0) {};
  virtual void send_error(uint errcode,const char *err)=0;
  virtual bool send_eof()=0;
  virtual void abort() {}
@@ -621,6 +624,7 @@ class Unique :public Sql_alloc
   bool send_fields(List<Item> &list,
 		   uint flag) { return 0; }
   bool send_data(List<Item> &items);
   void initialize_tables (JOIN *join);
   void send_error(uint errcode,const char *err);
   int  do_deletes (bool from_send_error);
   bool send_eof();
Loading