Commit 11225c18 authored by Marko Mäkelä's avatar Marko Mäkelä

dict_table_t::prepare_instant(): Set n_nullable correctly

parent 3464e039
......@@ -306,7 +306,7 @@ inline void dict_table_t::prepare_instant(const dict_table_t& old,
->is_nullable());
if (index.fields[i].col->is_nullable()
&& !oindex.fields[i].col->is_nullable()) {
&& oindex.fields[i].col->was_not_null()) {
instant->leaf_redundant = 1;
break;
}
......@@ -383,7 +383,7 @@ inline void dict_table_t::prepare_instant(const dict_table_t& old,
DBUG_ASSERT(!f.name);
f.col = instant->dropped + d;
}
if (f.col->is_nullable()) {
if (!f.col->was_not_null()) {
found_nullable:
n_nullable++;
ut_d(core_null
......@@ -419,8 +419,13 @@ inline void dict_table_t::prepare_instant(const dict_table_t& old,
DBUG_ASSERT(!fields[i].col->is_dropped());
DBUG_ASSERT(fields[i].name
== fields[i].col->name(*this));
DBUG_ASSERT(fields[i].same(oindex.fields[i]));
if (fields[i].col->is_nullable()) {
goto found_nullable;
if (!oindex.fields[i]
.col->was_not_null()) {
goto found_nullable;
}
fields[i].col->set_was_not_null();
}
continue;
}
......@@ -429,7 +434,7 @@ inline void dict_table_t::prepare_instant(const dict_table_t& old,
DBUG_ASSERT(d < n_drop);
f.col = &instant->dropped[d++];
f.name = NULL;
if (f.col->is_nullable()) {
if (!f.col->was_not_null()) {
goto found_nullable;
}
}
......@@ -443,7 +448,7 @@ inline void dict_table_t::prepare_instant(const dict_table_t& old,
DBUG_ASSERT(d == n_drop);
for (; i < n_fields; i++) {
fields[i] = index.fields[j++];
n_nullable += fields[i].col->is_nullable();
n_nullable += !fields[i].col->was_not_null();
DBUG_ASSERT(!fields[i].col->is_dropped());
DBUG_ASSERT(fields[i].name
== fields[i].col->name(*this));
......@@ -451,7 +456,6 @@ inline void dict_table_t::prepare_instant(const dict_table_t& old,
DBUG_ASSERT(j == index.n_fields);
index.n_fields = index.n_def = n_fields;
index.fields = fields;
DBUG_ASSERT(n_nullable >= index.n_nullable);
DBUG_ASSERT(n_nullable >= oindex.n_nullable);
index.n_nullable = n_nullable;
goto set_core_fields;
......
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