Commit ef16a041 authored by unknown's avatar unknown

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into serg.mylan:/usr/home/serg/Abk/mysql-5.0


sql/ha_innodb.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.h:
  Auto merged
parents 463d86a9 822b0737
...@@ -2625,11 +2625,11 @@ test.t1 1531596814 ...@@ -2625,11 +2625,11 @@ test.t1 1531596814
insert into t1 values(3); insert into t1 values(3);
checksum table t1; checksum table t1;
Table Checksum Table Checksum
test.t1 2605035534 test.t1 1531596814
commit; commit;
checksum table t1; checksum table t1;
Table Checksum Table Checksum
test.t1 127268899 test.t1 2050879373
commit; commit;
drop table t1; drop table t1;
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
...@@ -2642,7 +2642,7 @@ set autocommit=1; ...@@ -2642,7 +2642,7 @@ set autocommit=1;
insert into t1 values(3); insert into t1 values(3);
checksum table t1; checksum table t1;
Table Checksum Table Checksum
test.t1 127268899 test.t1 2050879373
drop table t1; drop table t1;
create table t1 (col1 integer primary key, col2 integer) engine=innodb; create table t1 (col1 integer primary key, col2 integer) engine=innodb;
insert t1 values (1,100); insert t1 values (1,100);
......
...@@ -940,7 +940,7 @@ printNodeStatus(OutputStream *output, ...@@ -940,7 +940,7 @@ printNodeStatus(OutputStream *output,
output->println("node.%d.dynamic_id: %d", nodeId, dynamicId); output->println("node.%d.dynamic_id: %d", nodeId, dynamicId);
output->println("node.%d.node_group: %d", nodeId, nodeGroup); output->println("node.%d.node_group: %d", nodeId, nodeGroup);
output->println("node.%d.connect_count: %d", nodeId, connectCount); output->println("node.%d.connect_count: %d", nodeId, connectCount);
output->println("node.%d.address: %s", nodeId, address); output->println("node.%d.address: %s", nodeId, address ? address : "");
} }
} }
......
...@@ -4110,6 +4110,7 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables, HA_CHECK_OPT *check_opt) ...@@ -4110,6 +4110,7 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables, HA_CHECK_OPT *check_opt)
{ {
/* calculating table's checksum */ /* calculating table's checksum */
ha_checksum crc= 0; ha_checksum crc= 0;
uchar null_mask=256 - (1 << t->s->last_null_bit_pos);
/* InnoDB must be told explicitly to retrieve all columns, because /* InnoDB must be told explicitly to retrieve all columns, because
this function does not set field->query_id in the columns to the this function does not set field->query_id in the columns to the
...@@ -4130,9 +4131,12 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables, HA_CHECK_OPT *check_opt) ...@@ -4130,9 +4131,12 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables, HA_CHECK_OPT *check_opt)
continue; continue;
break; break;
} }
if (t->record[0] != (byte*) t->field[0]->ptr) if (t->s->null_bytes)
row_crc= my_checksum(row_crc, t->record[0], {
((byte*) t->field[0]->ptr) - t->record[0]); /* fix undefined null bits */
t->record[0][t->s->null_bytes-1] |= null_mask;
row_crc= my_checksum(row_crc, t->record[0], t->s->null_bytes);
}
for (uint i= 0; i < t->s->fields; i++ ) for (uint i= 0; i < t->s->fields; i++ )
{ {
...@@ -4176,9 +4180,9 @@ static bool check_engine(THD *thd, const char *table_name, ...@@ -4176,9 +4180,9 @@ static bool check_engine(THD *thd, const char *table_name,
enum db_type *new_engine) enum db_type *new_engine)
{ {
enum db_type req_engine= *new_engine; enum db_type req_engine= *new_engine;
bool no_substitution= bool no_substitution=
test(thd->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION); test(thd->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION);
if ((*new_engine= if ((*new_engine=
ha_checktype(thd, req_engine, no_substitution, 1)) == DB_TYPE_UNKNOWN) ha_checktype(thd, req_engine, no_substitution, 1)) == DB_TYPE_UNKNOWN)
return TRUE; return TRUE;
......
...@@ -874,6 +874,7 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, ...@@ -874,6 +874,7 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
/* the correct null_bytes can now be set, since bitfields have been taken into account */ /* the correct null_bytes can now be set, since bitfields have been taken into account */
share->null_bytes= null_pos - (uchar*) outparam->null_flags + (null_bit_pos + 7) / 8; share->null_bytes= null_pos - (uchar*) outparam->null_flags + (null_bit_pos + 7) / 8;
share->last_null_bit_pos= null_bit_pos;
/* The table struct is now initialized; Open the table */ /* The table struct is now initialized; Open the table */
error=2; error=2;
......
...@@ -141,7 +141,7 @@ typedef struct st_table_share ...@@ -141,7 +141,7 @@ typedef struct st_table_share
enum tmp_table_type tmp_table; enum tmp_table_type tmp_table;
uint blob_ptr_size; /* 4 or 8 */ uint blob_ptr_size; /* 4 or 8 */
uint null_bytes; uint null_bytes, last_null_bit_pos;
uint key_length; /* Length of table_cache_key */ uint key_length; /* Length of table_cache_key */
uint fields; /* Number of fields */ uint fields; /* Number of fields */
uint rec_buff_length; /* Size of table->record[] buffer */ uint rec_buff_length; /* Size of table->record[] buffer */
......
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