Hi!

Thanks to your test case a bug with big result sets in UNION's has
been fixed.

This is a patch that fixes a problem :

===== sql/sql_insert.cc 1.62 vs edited =====
*** /tmp/sql_insert.cc-1.62-31035       Thu May  9 17:30:57 2002
--- edited/sql/sql_insert.cc    Fri May 24 14:05:51 2002
***************
*** 447,452 ****
--- 447,453 ----
  err:
    if (key)
      my_afree(key);
+   info->errorno= error;
    table->file->print_error(error,MYF(0));
    return 1;
  }
===== sql/sql_union.cc 1.30 vs edited =====
*** /tmp/sql_union.cc-1.30-31035        Fri Apr 12 16:01:08 2002
--- edited/sql/sql_union.cc     Fri May 24 14:06:30 2002
***************
*** 132,138 ****
      goto exit;
    }
    union_result->save_time_stamp=!describe;
! 
    for (sl= &lex->select_lex; sl; sl=sl->next)
    {
      lex->select=sl;
--- 132,138 ----
      goto exit;
    }
    union_result->save_time_stamp=!describe;
!   union_result->tmp_table_param=&tmp_table_param;
    for (sl= &lex->select_lex; sl; sl=sl->next)
    {
      lex->select=sl;
***************
*** 253,259 ****
      return 0;
    }
    fill_record(table->field,values);
!   return write_record(table,&info) ? 1 : 0;
  }
  
  bool select_union::send_eof()
--- 253,264 ----
      return 0;
    }
    fill_record(table->field,values);
!   if ((write_record(table,&info)))
!   {
!     if (create_myisam_from_heap(table, tmp_table_param, info.errorno, 0))
!       return 1;
!   }
!   return 0;
  }
  
  bool select_union::send_eof()
===== sql/sql_class.h 1.117 vs edited =====
*** /tmp/sql_class.h-1.117-31035        Wed May 15 13:50:27 2002
--- edited/sql/sql_class.h      Fri May 24 14:06:06 2002
***************
*** 182,188 ****
    ha_rows copied;
    ha_rows error;
    enum enum_duplicates handle_duplicates;
!   int escape_char;
  } COPY_INFO;
  
  
--- 182,188 ----
    ha_rows copied;
    ha_rows error;
    enum enum_duplicates handle_duplicates;
!   int escape_char, errorno;
  } COPY_INFO;
  
  
***************
*** 666,671 ****
--- 666,672 ----
    TABLE *table;
    COPY_INFO info;
    uint save_time_stamp;
+   TMP_TABLE_PARAM *tmp_table_param;
  
    select_union(TABLE *table_par);
    ~select_union();


-- 
Regards,
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Mr. Sinisa Milivojevic <[EMAIL PROTECTED]>
 / /|_/ / // /\ \/ /_/ / /__   MySQL AB, Fulltime Developer
/_/  /_/\_, /___/\___\_\___/   Larnaca, Cyprus
       <___/   www.mysql.com


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to