mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-19283 Move the code from Field_str::is_equal() to Field_string::is_equal()
This commit is contained in:
17
sql/field.cc
17
sql/field.cc
@@ -2436,6 +2436,15 @@ void Field_null::sql_type(String &res) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint Field_null::is_equal(Create_field *new_field)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(!compression_method());
|
||||||
|
return new_field->type_handler() == type_handler() &&
|
||||||
|
new_field->charset == field_charset &&
|
||||||
|
new_field->length == max_display_length();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
Field_row, e.g. for ROW-type SP variables
|
Field_row, e.g. for ROW-type SP variables
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@@ -7069,14 +7078,10 @@ int Field_str::store(double nr)
|
|||||||
return store(buff, (uint)length, &my_charset_numeric);
|
return store(buff, (uint)length, &my_charset_numeric);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint Field::is_equal(Create_field *new_field)
|
|
||||||
{
|
|
||||||
return new_field->type_handler() == type_handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
uint Field_string::is_equal(Create_field *new_field)
|
||||||
uint Field_str::is_equal(Create_field *new_field)
|
|
||||||
{
|
{
|
||||||
|
DBUG_ASSERT(!compression_method());
|
||||||
if (new_field->type_handler() != type_handler())
|
if (new_field->type_handler() != type_handler())
|
||||||
return IS_EQUAL_NO;
|
return IS_EQUAL_NO;
|
||||||
if (new_field->length < max_display_length())
|
if (new_field->length < max_display_length())
|
||||||
|
@@ -1504,7 +1504,7 @@ public:
|
|||||||
of a table is compatible with the old definition so that it can
|
of a table is compatible with the old definition so that it can
|
||||||
determine if data needs to be copied over (table data change).
|
determine if data needs to be copied over (table data change).
|
||||||
*/
|
*/
|
||||||
virtual uint is_equal(Create_field *new_field);
|
virtual uint is_equal(Create_field *new_field)= 0;
|
||||||
/* convert decimal to longlong with overflow check */
|
/* convert decimal to longlong with overflow check */
|
||||||
longlong convert_decimal2longlong(const my_decimal *val, bool unsigned_flag,
|
longlong convert_decimal2longlong(const my_decimal *val, bool unsigned_flag,
|
||||||
int *err);
|
int *err);
|
||||||
@@ -1868,7 +1868,6 @@ public:
|
|||||||
my_decimal *val_decimal(my_decimal *);
|
my_decimal *val_decimal(my_decimal *);
|
||||||
bool val_bool() { return val_real() != 0e0; }
|
bool val_bool() { return val_real() != 0e0; }
|
||||||
virtual bool str_needs_quotes() { return TRUE; }
|
virtual bool str_needs_quotes() { return TRUE; }
|
||||||
uint is_equal(Create_field *new_field);
|
|
||||||
bool eq_cmp_as_binary() { return MY_TEST(flags & BINARY_FLAG); }
|
bool eq_cmp_as_binary() { return MY_TEST(flags & BINARY_FLAG); }
|
||||||
virtual uint length_size() { return 0; }
|
virtual uint length_size() { return 0; }
|
||||||
double pos_in_interval(Field *min, Field *max)
|
double pos_in_interval(Field *min, Field *max)
|
||||||
@@ -2640,6 +2639,7 @@ public:
|
|||||||
my_decimal *val_decimal(my_decimal *) { return 0; }
|
my_decimal *val_decimal(my_decimal *) { return 0; }
|
||||||
String *val_str(String *value,String *value2)
|
String *val_str(String *value,String *value2)
|
||||||
{ value2->length(0); return value2;}
|
{ value2->length(0); return value2;}
|
||||||
|
uint is_equal(Create_field *new_field);
|
||||||
int cmp(const uchar *a, const uchar *b) { return 0;}
|
int cmp(const uchar *a, const uchar *b) { return 0;}
|
||||||
void sort_string(uchar *buff, uint length) {}
|
void sort_string(uchar *buff, uint length) {}
|
||||||
uint32 pack_length() const { return 0; }
|
uint32 pack_length() const { return 0; }
|
||||||
@@ -3563,6 +3563,7 @@ public:
|
|||||||
int cmp(const uchar *,const uchar *);
|
int cmp(const uchar *,const uchar *);
|
||||||
void sort_string(uchar *buff,uint length);
|
void sort_string(uchar *buff,uint length);
|
||||||
void sql_type(String &str) const;
|
void sql_type(String &str) const;
|
||||||
|
uint is_equal(Create_field *new_field);
|
||||||
virtual uchar *pack(uchar *to, const uchar *from,
|
virtual uchar *pack(uchar *to, const uchar *from,
|
||||||
uint max_length);
|
uint max_length);
|
||||||
virtual const uchar *unpack(uchar* to, const uchar *from,
|
virtual const uchar *unpack(uchar* to, const uchar *from,
|
||||||
|
Reference in New Issue
Block a user