diff options
author | unknown <tsmith@sita.local> | 2007-08-29 15:28:38 -0600 |
---|---|---|
committer | unknown <tsmith@sita.local> | 2007-08-29 15:28:38 -0600 |
commit | dc8ffcb146a4730210a9f419ff06728095420bac (patch) | |
tree | 81c00dc60322deeb0c094deef5d141509c980a60 /storage/innobase | |
parent | 12bb451c41dd41d4f0dae53252b4265a3c3b95c2 (diff) | |
parent | 952df32e651c3d9c44c26e6a72c4586aadf74a40 (diff) | |
download | mariadb-git-dc8ffcb146a4730210a9f419ff06728095420bac.tar.gz |
Merge sita.local:/Users/tsmith/m/bk/maint/51-target22
into sita.local:/Users/tsmith/m/bk/maint/51
sql/field.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/rpl_record.h:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/slave.h:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
sql/log_event.cc:
Manual merge
sql/log_event.h:
Manual merge
sql/log_event_old.h:
Manual merge
sql/rpl_record.cc:
Manual merge
sql/slave.cc:
Manual merge
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/dict/dict0mem.c | 2 | ||||
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 4 | ||||
-rw-r--r-- | storage/innobase/row/row0sel.c | 10 |
3 files changed, 13 insertions, 3 deletions
diff --git a/storage/innobase/dict/dict0mem.c b/storage/innobase/dict/dict0mem.c index f4012c11973..47cf7a0bc9c 100644 --- a/storage/innobase/dict/dict0mem.c +++ b/storage/innobase/dict/dict0mem.c @@ -209,7 +209,7 @@ dict_mem_table_add_col( col = (dict_col_t*) dict_table_get_nth_col(table, i); - col->ind = i; + col->ind = (unsigned int) i; col->ord_part = 0; col->mtype = (unsigned int) mtype; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 355b924ce4b..267ebc5bb1e 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -7220,7 +7220,7 @@ ulong ha_innobase::innobase_get_auto_increment( ulonglong* value) /* out: autoinc value */ { - ulint error; + ulong error; do { error = innobase_autoinc_lock(); @@ -7323,7 +7323,7 @@ ha_innobase::get_auto_increment( /* Called for the first time ? */ if (prebuilt->trx->n_autoinc_rows == 0) { - prebuilt->trx->n_autoinc_rows = nb_desired_values; + prebuilt->trx->n_autoinc_rows = (ulint) nb_desired_values; /* It's possible for nb_desired_values to be 0: e.g., INSERT INTO T1(C) SELECT C FROM T2; */ diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index ee79bc94906..9cb4e0f6f20 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -4555,6 +4555,15 @@ row_search_autoinc_read_column( ut_a(len != UNIV_SQL_NULL); ut_a(len <= sizeof value); +#ifdef WORDS_BIGENDIAN + /* Copy integer data and restore sign bit */ + + memcpy((ptr = dest), data, len); + + if (!unsigned_type) { + dest[0] ^= 128; + } +#else /* Convert integer data from Innobase to a little-endian format, sign bit restored to normal */ @@ -4566,6 +4575,7 @@ row_search_autoinc_read_column( if (!unsigned_type) { dest[len - 1] ^= 128; } +#endif /* The assumption here is that the AUTOINC value can't be negative.*/ switch (len) { |