Commit 005d1dff authored by petr@mysql.com's avatar petr@mysql.com

Merge mysql.com:/home/cps/mysql/trees/mysql-5.0

into mysql.com:/home/cps/mysql/devel/im/prereview/mysql-5.0
parents 96aa04bf b12dfea6
...@@ -4,6 +4,7 @@ dnl Process this file with autoconf to produce a configure script. ...@@ -4,6 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT(sql/mysqld.cc) AC_INIT(sql/mysqld.cc)
AC_CANONICAL_SYSTEM AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line! # The Docs Makefile.am parses this line!
# remember to also change ndb version below and update version.c in ndb
AM_INIT_AUTOMAKE(mysql, 5.0.2-alpha) AM_INIT_AUTOMAKE(mysql, 5.0.2-alpha)
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
...@@ -13,10 +14,10 @@ DOT_FRM_VERSION=6 ...@@ -13,10 +14,10 @@ DOT_FRM_VERSION=6
SHARED_LIB_VERSION=14:0:0 SHARED_LIB_VERSION=14:0:0
# ndb version # ndb version
NDB_VERSION_MAJOR=3 NDB_VERSION_MAJOR=5
NDB_VERSION_MINOR=5 NDB_VERSION_MINOR=0
NDB_VERSION_BUILD=3 NDB_VERSION_BUILD=2
NDB_VERSION_STATUS="" NDB_VERSION_STATUS="alpha"
# Set all version vars based on $VERSION. How do we do this more elegant ? # Set all version vars based on $VERSION. How do we do this more elegant ?
# Remember that regexps needs to quote [ and ] since this is run through m4 # Remember that regexps needs to quote [ and ] since this is run through m4
......
...@@ -30,7 +30,7 @@ noinst_HEADERS = config-win.h config-os2.h config-netware.h \ ...@@ -30,7 +30,7 @@ noinst_HEADERS = config-win.h config-os2.h config-netware.h \
my_nosys.h my_alarm.h queues.h rijndael.h sha1.h \ my_nosys.h my_alarm.h queues.h rijndael.h sha1.h \
my_aes.h my_tree.h hash.h thr_alarm.h \ my_aes.h my_tree.h hash.h thr_alarm.h \
thr_lock.h t_ctype.h violite.h md5.h \ thr_lock.h t_ctype.h violite.h md5.h \
mysql_version.h.in my_handler.h my_time.h mysql_version.h.in my_handler.h my_time.h decimal.h
# mysql_version.h are generated # mysql_version.h are generated
SUPERCLEANFILES = mysql_version.h my_config.h SUPERCLEANFILES = mysql_version.h my_config.h
......
...@@ -24,7 +24,7 @@ insert into t1 values ...@@ -24,7 +24,7 @@ insert into t1 values
(0,4,3,5,"PENDING",1,7),(NULL,4,3,5,"PENDING",1,7),(31,4,3,5,"PENDING",1,7), (7,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7), (100,4,3,5,"PENDING",1,7), (99,4,3,5,"PENDING",1,7), (8,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7); (0,4,3,5,"PENDING",1,7),(NULL,4,3,5,"PENDING",1,7),(31,4,3,5,"PENDING",1,7), (7,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7), (100,4,3,5,"PENDING",1,7), (99,4,3,5,"PENDING",1,7), (8,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7);
show table status; show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 ndbcluster 9 Dynamic 9 0 0 NULL 0 0 102 NULL NULL NULL latin1_swedish_ci NULL t1 ndbcluster 9 Dynamic 9 0 0 NULL 0 0 101 NULL NULL NULL latin1_swedish_ci NULL
select * from t1 order by col1; select * from t1 order by col1;
col1 col2 col3 col4 col5 col6 to_be_deleted col1 col2 col3 col4 col5 col6 to_be_deleted
0 4 3 5 PENDING 1 7 0 4 3 5 PENDING 1 7
......
...@@ -94,7 +94,6 @@ ERROR 42S01: Table 't3' already exists ...@@ -94,7 +94,6 @@ ERROR 42S01: Table 't3' already exists
show status like 'handler_discover%'; show status like 'handler_discover%';
Variable_name Value Variable_name Value
Handler_discover 1 Handler_discover 1
Tables_in_test table_type
create table IF NOT EXISTS t3( create table IF NOT EXISTS t3(
id int not null primary key, id int not null primary key,
id2 int not null, id2 int not null,
...@@ -106,7 +105,7 @@ Handler_discover 2 ...@@ -106,7 +105,7 @@ Handler_discover 2
SHOW CREATE TABLE t3; SHOW CREATE TABLE t3;
Table Create Table Table Create Table
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`id` int(11) NOT NULL default '0', `id` int(11) NOT NULL,
`name` char(255) default NULL, `name` char(255) default NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ) ENGINE=ndbcluster DEFAULT CHARSET=latin1
......
...@@ -107,7 +107,7 @@ insert into t1 values(2,@b2,222,@d2); ...@@ -107,7 +107,7 @@ insert into t1 values(2,@b2,222,@d2);
commit; commit;
explain select * from t1 where c = 111; explain select * from t1 where c = 111;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref c c 4 const 10 Using where 1 SIMPLE t1 ref c c 4 const 10
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
from t1 where c=111; from t1 where c=111;
a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3)
......
...@@ -70,10 +70,13 @@ struct NdbUpGradeCompatible { ...@@ -70,10 +70,13 @@ struct NdbUpGradeCompatible {
#ifndef TEST_VERSION #ifndef TEST_VERSION
struct NdbUpGradeCompatible ndbCompatibleTable_full[] = { struct NdbUpGradeCompatible ndbCompatibleTable_full[] = {
{ MAKE_VERSION(3,5,2), MAKE_VERSION(3,5,1), UG_Exact }, { MAKE_VERSION(3,5,2), MAKE_VERSION(3,5,1), UG_Exact },
{ MAKE_VERSION(4,1,8), MAKE_VERSION(3,5,4), UG_Exact }, /* Aligned version with MySQL */
{ 0, 0, UG_Null } { 0, 0, UG_Null }
}; };
struct NdbUpGradeCompatible ndbCompatibleTable_upgrade[] = { struct NdbUpGradeCompatible ndbCompatibleTable_upgrade[] = {
{ MAKE_VERSION(5,0,2), MAKE_VERSION(4,1,8), UG_Exact },
{ MAKE_VERSION(3,5,4), MAKE_VERSION(3,5,3), UG_Exact },
{ 0, 0, UG_Null } { 0, 0, UG_Null }
}; };
......
...@@ -579,18 +579,44 @@ int decimal2bin(decimal *from, char *to, int precision, int frac) ...@@ -579,18 +579,44 @@ int decimal2bin(decimal *from, char *to, int precision, int frac)
{ {
dec1 mask=from->sign ? -1 : 0, *buf1=from->buf, *stop1; dec1 mask=from->sign ? -1 : 0, *buf1=from->buf, *stop1;
int error=E_DEC_OK, intg=precision-frac, int error=E_DEC_OK, intg=precision-frac,
isize1, intg1, intg1x=from->intg,
intg0=intg/DIG_PER_DEC1, intg0=intg/DIG_PER_DEC1,
frac0=frac/DIG_PER_DEC1, frac0=frac/DIG_PER_DEC1,
intg0x=intg-intg0*DIG_PER_DEC1, intg0x=intg-intg0*DIG_PER_DEC1,
frac0x=frac-frac0*DIG_PER_DEC1, frac0x=frac-frac0*DIG_PER_DEC1,
intg1=from->intg/DIG_PER_DEC1,
frac1=from->frac/DIG_PER_DEC1, frac1=from->frac/DIG_PER_DEC1,
intg1x=from->intg-intg1*DIG_PER_DEC1,
frac1x=from->frac-frac1*DIG_PER_DEC1, frac1x=from->frac-frac1*DIG_PER_DEC1,
isize0=intg0*sizeof(dec1)+dig2bytes[intg0x], isize0=intg0*sizeof(dec1)+dig2bytes[intg0x],
fsize0=frac0*sizeof(dec1)+dig2bytes[frac0x], fsize0=frac0*sizeof(dec1)+dig2bytes[frac0x],
isize1=intg1*sizeof(dec1)+dig2bytes[intg1x],
fsize1=frac1*sizeof(dec1)+dig2bytes[frac1x]; fsize1=frac1*sizeof(dec1)+dig2bytes[frac1x];
/* removing leading zeroes */
intg1=((intg1x-1) % DIG_PER_DEC1)+1;
while (intg1x > 0 && *buf1 == 0)
{
intg1x-=intg1;
intg1=DIG_PER_DEC1;
buf1++;
}
if (intg1x > 0)
{
for (intg1=(intg1x-1) % DIG_PER_DEC1; *buf1 < powers10[intg1--]; intg1x--) ;
DBUG_ASSERT(intg1x > 0);
}
else
intg1x=0;
if (unlikely(intg1x+fsize1==0))
{
mask=0; /* just in case */
intg=1;
buf1=&mask;
}
intg1=intg1x/DIG_PER_DEC1;
intg1x=intg1x-intg1*DIG_PER_DEC1;
isize1=intg1*sizeof(dec1)+dig2bytes[intg1x];
if (isize0 < isize1) if (isize0 < isize1)
{ {
buf1+=intg1-intg0+(intg1x>0)-(intg0x>0); buf1+=intg1-intg0+(intg1x>0)-(intg0x>0);
......
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