Commit c8597d1f authored by sunny's avatar sunny

branches/5.1: This is an interim fix, fix tests and make read float/double arg const.

parent c6412767
...@@ -266,8 +266,8 @@ UNIV_INLINE ...@@ -266,8 +266,8 @@ UNIV_INLINE
double double
mach_double_read( mach_double_read(
/*=============*/ /*=============*/
/* out: double read */ /* out: double read */
byte* b); /* in: pointer to memory from where to read */ const byte* b); /* in: pointer to memory from where to read */
/************************************************************* /*************************************************************
Writes a double. It is stored in a little-endian format. */ Writes a double. It is stored in a little-endian format. */
UNIV_INLINE UNIV_INLINE
...@@ -282,8 +282,8 @@ UNIV_INLINE ...@@ -282,8 +282,8 @@ UNIV_INLINE
float float
mach_float_read( mach_float_read(
/*============*/ /*============*/
/* out: float read */ /* out: float read */
byte* b); /* in: pointer to memory from where to read */ const byte* b); /* in: pointer to memory from where to read */
/************************************************************* /*************************************************************
Writes a float. It is stored in a little-endian format. */ Writes a float. It is stored in a little-endian format. */
UNIV_INLINE UNIV_INLINE
......
...@@ -504,8 +504,8 @@ UNIV_INLINE ...@@ -504,8 +504,8 @@ UNIV_INLINE
double double
mach_double_read( mach_double_read(
/*=============*/ /*=============*/
/* out: double read */ /* out: double read */
byte* b) /* in: pointer to memory from where to read */ const byte* b) /* in: pointer to memory from where to read */
{ {
double d; double d;
ulint i; ulint i;
...@@ -553,8 +553,8 @@ UNIV_INLINE ...@@ -553,8 +553,8 @@ UNIV_INLINE
float float
mach_float_read( mach_float_read(
/*============*/ /*============*/
/* out: float read */ /* out: float read */
byte* b) /* in: pointer to memory from where to read */ const byte* b) /* in: pointer to memory from where to read */
{ {
float d; float d;
ulint i; ulint i;
......
...@@ -1131,9 +1131,7 @@ Warnings: ...@@ -1131,9 +1131,7 @@ Warnings:
Note 1051 Unknown table 'T1' Note 1051 Unknown table 'T1'
CREATE TABLE T1(C1 DOUBLE AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB; CREATE TABLE T1(C1 DOUBLE AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB;
INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb'); INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb');
INSERT INTO T1(C1) VALUES ('innodb'); INSERT INTO T1(C2) VALUES ('innodb');
Warnings:
Warning 1265 Data truncated for column 'C1' at row 1
SHOW CREATE TABLE T1; SHOW CREATE TABLE T1;
Table Create Table Table Create Table
T1 CREATE TABLE `T1` ( T1 CREATE TABLE `T1` (
...@@ -1144,9 +1142,7 @@ T1 CREATE TABLE `T1` ( ...@@ -1144,9 +1142,7 @@ T1 CREATE TABLE `T1` (
DROP TABLE T1; DROP TABLE T1;
CREATE TABLE T1(C1 FLOAT AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB; CREATE TABLE T1(C1 FLOAT AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB;
INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb'); INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb');
INSERT INTO T1(C1) VALUES ('innodb'); INSERT INTO T1(C2) VALUES ('innodb');
Warnings:
Warning 1265 Data truncated for column 'C1' at row 1
SHOW CREATE TABLE T1; SHOW CREATE TABLE T1;
Table Create Table Table Create Table
T1 CREATE TABLE `T1` ( T1 CREATE TABLE `T1` (
...@@ -1154,3 +1150,4 @@ T1 CREATE TABLE `T1` ( ...@@ -1154,3 +1150,4 @@ T1 CREATE TABLE `T1` (
`C2` char(10) DEFAULT NULL, `C2` char(10) DEFAULT NULL,
PRIMARY KEY (`C1`) PRIMARY KEY (`C1`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
DROP TABLE T1;
...@@ -629,14 +629,13 @@ CREATE TABLE T1(C1 DOUBLE AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB; ...@@ -629,14 +629,13 @@ CREATE TABLE T1(C1 DOUBLE AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB;
INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb'); INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb');
# Restart the server # Restart the server
-- source include/restart_mysqld.inc -- source include/restart_mysqld.inc
INSERT INTO T1(C1) VALUES ('innodb'); INSERT INTO T1(C2) VALUES ('innodb');
SHOW CREATE TABLE T1; SHOW CREATE TABLE T1;
DROP TABLE T1; DROP TABLE T1;
CREATE TABLE T1(C1 FLOAT AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB; CREATE TABLE T1(C1 FLOAT AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB;
INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb'); INSERT INTO T1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb');
# Restart the server # Restart the server
-- source include/restart_mysqld.inc -- source include/restart_mysqld.inc
INSERT INTO T1(C1) VALUES ('innodb'); INSERT INTO T1(C2) VALUES ('innodb');
SHOW CREATE TABLE T1; SHOW CREATE TABLE T1;
DROP TABLE T1;
...@@ -4536,18 +4536,20 @@ row_search_autoinc_read_column( ...@@ -4536,18 +4536,20 @@ row_search_autoinc_read_column(
data = rec_get_nth_field((rec_t*)rec, offsets, col_no, &len); data = rec_get_nth_field((rec_t*)rec, offsets, col_no, &len);
ut_a(len != UNIV_SQL_NULL); ut_a(len != UNIV_SQL_NULL);
ut_a(len <= sizeof value);
switch (mtype) { switch (mtype) {
case DATA_INT: case DATA_INT:
ut_a(len <= sizeof value);
value = mach_read_int_type(data, len, unsigned_type); value = mach_read_int_type(data, len, unsigned_type);
break; break;
case DATA_FLOAT: case DATA_FLOAT:
ut_a(len == sizeof(float));
value = mach_float_read(data); value = mach_float_read(data);
break; break;
case DATA_DOUBLE: case DATA_DOUBLE:
ut_a(len == sizeof(double));
value = mach_double_read(data); value = mach_double_read(data);
break; break;
...@@ -4642,7 +4644,7 @@ row_search_max_autoinc( ...@@ -4642,7 +4644,7 @@ row_search_max_autoinc(
*value = row_search_autoinc_read_column( *value = row_search_autoinc_read_column(
index, rec, i, index, rec, i,
dfield->col->mtype, unsigned_type); dfield->col->mtype, unsigned_type);
} }
} }
......
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