mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
This commit is contained in:
commit
5e3a68892a
6 changed files with 43 additions and 11 deletions
|
@ -201,6 +201,24 @@ a b
|
|||
202 5
|
||||
203 6
|
||||
204 7
|
||||
alter table t1 modify b mediumint;
|
||||
select * from t1 order by b;
|
||||
a b
|
||||
1 1
|
||||
200 2
|
||||
0 3
|
||||
201 4
|
||||
202 5
|
||||
203 6
|
||||
204 7
|
||||
create table t2 (a int);
|
||||
insert t2 values (1),(2);
|
||||
alter table t2 add b int auto_increment primary key;
|
||||
select * from t2;
|
||||
a b
|
||||
1 1
|
||||
2 2
|
||||
drop table t2;
|
||||
delete from t1 where a=0;
|
||||
update t1 set a=0 where b=5;
|
||||
select * from t1 order by b;
|
||||
|
|
|
@ -138,6 +138,13 @@ insert into t1(b)values(5);
|
|||
insert into t1(b)values(6);
|
||||
insert into t1(b)values(7);
|
||||
select * from t1 order by b;
|
||||
alter table t1 modify b mediumint;
|
||||
select * from t1 order by b;
|
||||
create table t2 (a int);
|
||||
insert t2 values (1),(2);
|
||||
alter table t2 add b int auto_increment primary key;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
delete from t1 where a=0;
|
||||
update t1 set a=0 where b=5;
|
||||
select * from t1 order by b;
|
||||
|
|
|
@ -38,7 +38,7 @@ class Field
|
|||
public:
|
||||
static void *operator new(size_t size) {return (void*) sql_alloc((uint) size); }
|
||||
static void operator delete(void *ptr_arg, size_t size) {
|
||||
#ifdef PEDANTIC_SAFEMALLOC
|
||||
#ifdef SAFEMALLOC
|
||||
bfill(ptr_arg, size, 0x8F);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -2587,7 +2587,7 @@ fill_record(List<Item> &fields,List<Item> &values, bool ignore_errors)
|
|||
Field *rfield= field->field;
|
||||
TABLE *table= rfield->table;
|
||||
if (rfield == table->next_number_field)
|
||||
table->auto_increment_field_not_null= true;
|
||||
table->auto_increment_field_not_null= TRUE;
|
||||
if ((value->save_in_field(rfield, 0) < 0) && !ignore_errors)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
@ -2608,7 +2608,7 @@ fill_record(Field **ptr,List<Item> &values, bool ignore_errors)
|
|||
value=v++;
|
||||
TABLE *table= field->table;
|
||||
if (field == table->next_number_field)
|
||||
table->auto_increment_field_not_null= true;
|
||||
table->auto_increment_field_not_null= TRUE;
|
||||
if ((value->save_in_field(field, 0) < 0) && !ignore_errors)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
#pragma interface /* gcc class implementation */
|
||||
#endif
|
||||
|
||||
/* mysql standard class memoryallocator */
|
||||
/* mysql standard class memory allocator */
|
||||
|
||||
#ifdef PEDANTIC_SAFEMALLOC
|
||||
#ifdef SAFEMALLOC
|
||||
#define TRASH(XX,YY) bfill((XX), (YY), 0x8F)
|
||||
#else
|
||||
#define TRASH(XX,YY) /* no-op */
|
||||
|
|
|
@ -3271,13 +3271,12 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||
ha_rows *deleted)
|
||||
{
|
||||
int error;
|
||||
Copy_field *copy,*copy_end;
|
||||
Copy_field *copy,*copy_end, *next_field;
|
||||
ulong found_count,delete_count;
|
||||
THD *thd= current_thd;
|
||||
uint length;
|
||||
SORT_FIELD *sortorder;
|
||||
READ_RECORD info;
|
||||
Field *next_field;
|
||||
TABLE_LIST tables;
|
||||
List<Item> fields;
|
||||
List<Item> all_fields;
|
||||
|
@ -3298,7 +3297,12 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||
{
|
||||
def=it++;
|
||||
if (def->field)
|
||||
{
|
||||
if (*ptr == to->next_number_field)
|
||||
next_field= copy_end;
|
||||
(copy_end++)->set(*ptr,def->field,0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
found_count=delete_count=0;
|
||||
|
@ -3334,7 +3338,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||
error= 1;
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
/* Handler must be told explicitly to retrieve all columns, because
|
||||
this function does not set field->query_id in the columns to the
|
||||
current query id */
|
||||
|
@ -3343,7 +3347,6 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||
if (handle_duplicates == DUP_IGNORE ||
|
||||
handle_duplicates == DUP_REPLACE)
|
||||
to->file->extra(HA_EXTRA_IGNORE_DUP_KEY);
|
||||
next_field=to->next_number_field;
|
||||
thd->row_count= 0;
|
||||
while (!(error=info.read_record(&info)))
|
||||
{
|
||||
|
@ -3354,10 +3357,14 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||
break;
|
||||
}
|
||||
thd->row_count++;
|
||||
if (next_field)
|
||||
next_field->reset();
|
||||
if (to->next_number_field)
|
||||
to->next_number_field->reset();
|
||||
for (Copy_field *copy_ptr=copy ; copy_ptr != copy_end ; copy_ptr++)
|
||||
{
|
||||
if (copy_ptr == next_field)
|
||||
to->auto_increment_field_not_null= TRUE;
|
||||
copy_ptr->do_copy(copy_ptr);
|
||||
}
|
||||
if ((error=to->file->write_row((byte*) to->record[0])))
|
||||
{
|
||||
if ((handle_duplicates != DUP_IGNORE &&
|
||||
|
|
Loading…
Reference in a new issue