Commit 41780a75 authored by unknown's avatar unknown
Browse files

Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/Users/kent/mysql/bk/mysql-4.1-perl

parents 90095cbc 876b4a59
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -212,3 +212,10 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
drop table t1, t2;
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
insert into t1 (id_str) values ("test");
update t1 set id_str = concat(id_str, id) where id = last_insert_id();
select * from t1;
id	id_str
1	test1
drop table t1;
+9 −0
Original line number Diff line number Diff line
@@ -170,3 +170,12 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
drop table t1, t2;

#
# Bug #8057
#
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
insert into t1 (id_str) values ("test");
update t1 set id_str = concat(id_str, id) where id = last_insert_id();
select * from t1;
drop table t1;
+28 −0
Original line number Diff line number Diff line
@@ -526,6 +526,7 @@ NdbSqlUtil::cmpDate(const void* info, const Uint32* p1, const Uint32* p2, Uint32
  union { const Uint32* p; const unsigned char* v; } u1, u2;
  u1.p = p1;
  u2.p = p2;
#ifdef ndb_date_sol9x86_cc_xO3_madness
  // from Field_newdate::val_int
  Uint64 j1 = uint3korr(u1.v);
  Uint64 j2 = uint3korr(u2.v);
@@ -536,6 +537,33 @@ NdbSqlUtil::cmpDate(const void* info, const Uint32* p1, const Uint32* p2, Uint32
  if (j1 > j2)
    return +1;
  return 0;
#else
  uint j1 = uint3korr(u1.v);
  uint j2 = uint3korr(u2.v);
  uint d1 = (j1 & 31);
  uint d2 = (j2 & 31);
  j1 = (j1 >> 5);
  j2 = (j2 >> 5);
  uint m1 = (j1 & 15);
  uint m2 = (j2 & 15);
  j1 = (j1 >> 4);
  j2 = (j2 >> 4);
  uint y1 = j1;
  uint y2 = j2;
  if (y1 < y2)
    return -1;
  if (y1 > y2)
    return +1;
  if (m1 < m2)
    return -1;
  if (m1 > m2)
    return +1;
  if (d1 < d2)
    return -1;
  if (d1 > d2)
    return +1;
  return 0;
#endif
#endif
}

+2 −6
Original line number Diff line number Diff line
@@ -2298,14 +2298,10 @@ longlong Item_func_last_insert_id::val_int()
    longlong value=args[0]->val_int();
    current_thd->insert_id(value);
    null_value=args[0]->null_value;
    return value;
  }
  else
  {
    Item *it= get_system_var(current_thd, OPT_SESSION, "last_insert_id", 14,
			     "last_insert_id()");
    return it->val_int();
  }
    current_thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
  return current_thd->insert_id();
}

/* This function is just used to test speed of different functions */