summaryrefslogtreecommitdiff
path: root/storage/innobase/mtr/mtr0log.c
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/mtr/mtr0log.c')
-rw-r--r--storage/innobase/mtr/mtr0log.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/storage/innobase/mtr/mtr0log.c b/storage/innobase/mtr/mtr0log.c
index ba5284d9169..cb03f207a56 100644
--- a/storage/innobase/mtr/mtr0log.c
+++ b/storage/innobase/mtr/mtr0log.c
@@ -445,21 +445,21 @@ mlog_open_and_write_index(
dict_index_get_n_unique_in_tree(index));
log_ptr += 2;
for (i = 0; i < n; i++) {
- dict_field_t* field;
- dtype_t* type;
- ulint len;
+ dict_field_t* field;
+ const dict_col_t* col;
+ ulint len;
+
field = dict_index_get_nth_field(index, i);
- type = dict_col_get_type(dict_field_get_col(field));
+ col = dict_field_get_col(field);
len = field->fixed_len;
ut_ad(len < 0x7fff);
if (len == 0
- && (dtype_get_len(type) > 255
- || dtype_get_mtype(type) == DATA_BLOB)) {
+ && (col->len > 255 || col->mtype == DATA_BLOB)) {
/* variable-length field
with maximum length > 255 */
len = 0x7fff;
}
- if (dtype_get_prtype(type) & DATA_NOT_NULL) {
+ if (col->prtype & DATA_NOT_NULL) {
len |= 0x8000;
}
if (log_ptr + 2 > log_end) {
@@ -541,14 +541,16 @@ mlog_parse_index(
/* The high-order bit of len is the NOT NULL flag;
the rest is 0 or 0x7fff for variable-length fields,
and 1..0x7ffe for fixed-length fields. */
- dict_mem_table_add_col
- (table, "DUMMY",
- ((len + 1) & 0x7fff) <= 1
- ? DATA_BINARY : DATA_FIXBINARY,
- len & 0x8000 ? DATA_NOT_NULL : 0,
- len & 0x7fff, 0);
- dict_index_add_col
- (ind, dict_table_get_nth_col(table, i), 0);
+ dict_mem_table_add_col(
+ table, "DUMMY",
+ ((len + 1) & 0x7fff) <= 1
+ ? DATA_BINARY : DATA_FIXBINARY,
+ len & 0x8000 ? DATA_NOT_NULL : 0,
+ len & 0x7fff);
+
+ dict_index_add_col(ind, table, (dict_col_t*)
+ dict_table_get_nth_col(table, i),
+ 0);
}
ptr += 2;
}