Commit dbf83295 authored by unknown's avatar unknown

Merge


BitKeeper/etc/logging_ok:
  auto-union
sql/item_func.cc:
  Auto merged
ndb/src/common/util/NdbSqlUtil.cpp:
  merge
parents e33ef0d9 876b4a59
......@@ -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;
......@@ -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;
......@@ -550,8 +550,6 @@ NdbSqlUtil::cmpDate(const void* info, const void* p1, unsigned n1, const void* p
return +1;
return 0;
}
assert(! full);
return CmpUnknown;
#else
char t1[4], t2[4];
if (n1 == 3 && n2 == 3)
......@@ -562,6 +560,7 @@ NdbSqlUtil::cmpDate(const void* info, const void* p1, unsigned n1, const void* p
p2 = t2;
n1 = n2 = 4;
}
#ifdef ndb_date_sol9x86_cc_xO3_madness
if (n2 >= 4) { // may access 4-th byte
const uchar* v1 = (const uchar*)p1;
const uchar* v2 = (const uchar*)p2;
......@@ -576,9 +575,40 @@ NdbSqlUtil::cmpDate(const void* info, const void* p1, unsigned n1, const void* p
return +1;
return 0;
}
#else
if (n2 >= 4) {
const uchar* v1 = (const uchar*)p1;
const uchar* v2 = (const uchar*)p2;
uint j1 = uint3korr(v1);
uint j2 = uint3korr(v2);
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
assert(! full);
return CmpUnknown;
#endif
}
// not supported
......
......@@ -2383,14 +2383,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 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment