Skip to content

Commit 3a0df3c

Browse files
author
Alexander Barkov
committed
MDEV-8372 Use helper methods introduced in MDEV-7824 all around the code
1 parent 3079bd4 commit 3a0df3c

File tree

2 files changed

+8
-13
lines changed

2 files changed

+8
-13
lines changed

sql/field.cc

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10434,16 +10434,14 @@ Create_field::Create_field(THD *thd, Field *old_field, Field *orig_field)
1043410434
if (!default_now) // Give a constant default
1043510435
{
1043610436
/* Get the value from default_values */
10437-
my_ptrdiff_t diff= orig_field->table->default_values_offset();
10438-
orig_field->move_field_offset(diff);// Points now at default_values
10439-
if (!orig_field->is_real_null())
10437+
const uchar *dv= orig_field->table->s->default_values;
10438+
if (!orig_field->is_null_in_record(dv))
1044010439
{
1044110440
StringBuffer<MAX_FIELD_WIDTH> tmp(charset);
10442-
String *res= orig_field->val_str(&tmp);
10441+
String *res= orig_field->val_str(&tmp, orig_field->ptr_in_record(dv));
1044310442
char *pos= (char*) sql_strmake(res->ptr(), res->length());
1044410443
def= new (thd->mem_root) Item_string(thd, pos, res->length(), charset);
1044510444
}
10446-
orig_field->move_field_offset(-diff);// Back to record[0]
1044710445
}
1044810446
}
1044910447
}

sql/sql_select.cc

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16571,20 +16571,17 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List<Item> &fields,
1657116571
inherit the default value that is defined for the field referred
1657216572
by the Item_field object from which 'field' has been created.
1657316573
*/
16574-
my_ptrdiff_t diff;
16575-
Field *orig_field= default_field[i];
16574+
const Field *orig_field= default_field[i];
1657616575
/* Get the value from default_values */
16577-
diff= (my_ptrdiff_t) (orig_field->table->s->default_values-
16578-
orig_field->table->record[0]);
16579-
orig_field->move_field_offset(diff); // Points now at default_values
16580-
if (orig_field->is_real_null())
16576+
if (orig_field->is_null_in_record(orig_field->table->s->default_values))
1658116577
field->set_null();
1658216578
else
1658316579
{
1658416580
field->set_notnull();
16585-
memcpy(field->ptr, orig_field->ptr, field->pack_length());
16581+
memcpy(field->ptr,
16582+
orig_field->ptr_in_record(orig_field->table->s->default_values),
16583+
field->pack_length());
1658616584
}
16587-
orig_field->move_field_offset(-diff); // Back to record[0]
1658816585
}
1658916586

1659016587
if (from_field[i])

0 commit comments

Comments
 (0)