1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Merge 10.5 into 10.6

This commit is contained in:
Marko Mäkelä
2023-02-10 13:03:01 +02:00
285 changed files with 2180 additions and 1546 deletions

View File

@@ -393,7 +393,7 @@ class Dec_ptr
{
protected:
my_decimal *m_ptr;
Dec_ptr() { }
Dec_ptr() = default;
public:
Dec_ptr(my_decimal *ptr) :m_ptr(ptr) { }
bool is_null() const { return m_ptr == NULL; }
@@ -541,7 +541,7 @@ protected:
{
m_sec= m_usec= m_neg= m_truncated= 0;
}
Sec6() { }
Sec6() = default;
bool add_nanoseconds(uint nanoseconds)
{
DBUG_ASSERT(nanoseconds <= 1000000000);
@@ -701,7 +701,7 @@ protected:
Sec6::make_from_int(nr);
m_nsec= 0;
}
Sec9() { }
Sec9() = default;
public:
Sec9(const my_decimal *d)
{
@@ -2854,7 +2854,7 @@ class Timestamp_or_zero_datetime_native:
public NativeBuffer<STRING_BUFFER_TIMESTAMP_BINARY_SIZE>
{
public:
Timestamp_or_zero_datetime_native() { }
Timestamp_or_zero_datetime_native() = default;
Timestamp_or_zero_datetime_native(const Timestamp_or_zero_datetime &ts,
uint decimals)
{
@@ -3331,13 +3331,9 @@ public:
class Type_all_attributes: public Type_std_attributes
{
public:
Type_all_attributes()
:Type_std_attributes()
{ }
Type_all_attributes(const Type_all_attributes &other)
:Type_std_attributes(other)
{ }
virtual ~Type_all_attributes() {}
Type_all_attributes() = default;
Type_all_attributes(const Type_all_attributes &) = default;
virtual ~Type_all_attributes() = default;
virtual void set_type_maybe_null(bool maybe_null_arg)= 0;
// Returns total number of decimal digits
virtual decimal_digits_t decimal_precision() const= 0;
@@ -3349,7 +3345,7 @@ public:
class Type_cmp_attributes
{
public:
virtual ~Type_cmp_attributes() { }
virtual ~Type_cmp_attributes() = default;
virtual CHARSET_INFO *compare_collation() const= 0;
};
@@ -3560,9 +3556,9 @@ enum vers_kind_t
class Vers_type_handler
{
protected:
Vers_type_handler() {}
Vers_type_handler() = default;
public:
virtual ~Vers_type_handler() {}
virtual ~Vers_type_handler() = default;
virtual vers_kind_t kind() const
{
DBUG_ASSERT(0);
@@ -3859,7 +3855,7 @@ public:
return false;
}
Type_handler() : m_name(0,0) {}
virtual ~Type_handler() {}
virtual ~Type_handler() = default;
/**
Determines MariaDB traditional scalar data types that always present
in the server.
@@ -4376,7 +4372,7 @@ public:
class Type_handler_row: public Type_handler
{
public:
virtual ~Type_handler_row() {}
virtual ~Type_handler_row() = default;
const Name &default_value() const override;
bool validate_implicit_default_value(THD *, const Column_definition &)
const override
@@ -4780,7 +4776,7 @@ public:
bool Item_func_min_max_get_date(THD *thd, Item_func_min_max*,
MYSQL_TIME *, date_mode_t fuzzydate) const
override;
virtual ~Type_handler_numeric() { }
virtual ~Type_handler_numeric() = default;
bool can_change_cond_ref_to_const(Item_bool_func2 *target,
Item *target_expr, Item *target_value,
Item_bool_func2 *source,
@@ -4805,7 +4801,7 @@ public:
{
return DYN_COL_DOUBLE;
}
virtual ~Type_handler_real_result() {}
virtual ~Type_handler_real_result() = default;
const Type_handler *type_handler_for_comparison() const override;
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
@@ -4926,7 +4922,7 @@ public:
{
return DYN_COL_DECIMAL;
}
virtual ~Type_handler_decimal_result() {};
virtual ~Type_handler_decimal_result() = default;
const Type_handler *type_handler_for_comparison() const override;
int stored_field_cmp_to_item(THD *, Field *field, Item *item) const override
{
@@ -5186,7 +5182,7 @@ public:
}
bool is_order_clause_position_type() const override { return true; }
bool is_limit_clause_valid_type() const override { return true; }
virtual ~Type_handler_int_result() {}
virtual ~Type_handler_int_result() = default;
const Type_handler *type_handler_for_comparison() const override;
int stored_field_cmp_to_item(THD *thd, Field *field, Item *item) const override;
bool subquery_type_allows_materialization(const Item *inner,
@@ -5306,7 +5302,7 @@ protected:
public:
Item_result result_type() const override { return STRING_RESULT; }
Item_result cmp_type() const override { return TIME_RESULT; }
virtual ~Type_handler_temporal_result() {}
virtual ~Type_handler_temporal_result() = default;
void
Column_definition_attributes_frm_pack(const Column_definition_attributes *at,
uchar *buff) const override;
@@ -5404,7 +5400,7 @@ public:
return DYN_COL_STRING;
}
CHARSET_INFO *charset_for_protocol(const Item *item) const override;
virtual ~Type_handler_string_result() {}
virtual ~Type_handler_string_result() = default;
const Type_handler *type_handler_for_comparison() const override;
int stored_field_cmp_to_item(THD *thd, Field *field, Item *item) const
override;
@@ -5594,7 +5590,7 @@ public:
class Type_handler_tiny: public Type_handler_general_purpose_int
{
public:
virtual ~Type_handler_tiny() {}
virtual ~Type_handler_tiny() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_TINY; }
const Type_handler *type_handler_unsigned() const override;
const Type_handler *type_handler_signed() const override;
@@ -5645,7 +5641,7 @@ public:
class Type_handler_short: public Type_handler_general_purpose_int
{
public:
virtual ~Type_handler_short() {}
virtual ~Type_handler_short() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_SHORT; }
const Type_handler *type_handler_unsigned() const override;
const Type_handler *type_handler_signed() const override;
@@ -5696,7 +5692,7 @@ public:
class Type_handler_long: public Type_handler_general_purpose_int
{
public:
virtual ~Type_handler_long() {}
virtual ~Type_handler_long() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_LONG; }
const Type_handler *type_handler_unsigned() const override;
const Type_handler *type_handler_signed() const override;
@@ -5758,7 +5754,7 @@ public:
class Type_handler_longlong: public Type_handler_general_purpose_int
{
public:
virtual ~Type_handler_longlong() {}
virtual ~Type_handler_longlong() = default;
enum_field_types field_type() const override{ return MYSQL_TYPE_LONGLONG; }
const Type_handler *type_handler_unsigned() const override;
const Type_handler *type_handler_signed() const override;
@@ -5813,7 +5809,7 @@ public:
class Type_handler_vers_trx_id: public Type_handler_ulonglong
{
public:
virtual ~Type_handler_vers_trx_id() {}
virtual ~Type_handler_vers_trx_id() = default;
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
@@ -5825,7 +5821,7 @@ public:
class Type_handler_int24: public Type_handler_general_purpose_int
{
public:
virtual ~Type_handler_int24() {}
virtual ~Type_handler_int24() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_INT24; }
const Type_handler *type_handler_unsigned() const override;
const Type_handler *type_handler_signed() const override;
@@ -5870,7 +5866,7 @@ public:
class Type_handler_year: public Type_handler_int_result
{
public:
virtual ~Type_handler_year() {}
virtual ~Type_handler_year() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_YEAR; }
uint flags() const override { return UNSIGNED_FLAG; }
protocol_send_type_t protocol_send_type() const override
@@ -5924,7 +5920,7 @@ public:
class Type_handler_bit: public Type_handler_int_result
{
public:
virtual ~Type_handler_bit() {}
virtual ~Type_handler_bit() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_BIT; }
uint flags() const override { return UNSIGNED_FLAG; }
protocol_send_type_t protocol_send_type() const override
@@ -5989,7 +5985,7 @@ public:
class Type_handler_float: public Type_handler_real_result
{
public:
virtual ~Type_handler_float() {}
virtual ~Type_handler_float() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_FLOAT; }
protocol_send_type_t protocol_send_type() const override
{
@@ -6043,7 +6039,7 @@ public:
class Type_handler_double: public Type_handler_real_result
{
public:
virtual ~Type_handler_double() {}
virtual ~Type_handler_double() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_DOUBLE; }
protocol_send_type_t protocol_send_type() const override
{
@@ -6098,7 +6094,7 @@ public:
class Type_handler_time_common: public Type_handler_temporal_result
{
public:
virtual ~Type_handler_time_common() { }
virtual ~Type_handler_time_common() = default;
const Name &default_value() const override;
enum_field_types field_type() const override { return MYSQL_TYPE_TIME; }
enum_dynamic_column_type dyncol_type(const Type_all_attributes *attr)
@@ -6220,7 +6216,7 @@ class Type_handler_time: public Type_handler_time_common
static uint m_hires_bytes[MAX_DATETIME_PRECISION+1];
public:
static uint hires_bytes(uint dec) { return m_hires_bytes[dec]; }
virtual ~Type_handler_time() {}
virtual ~Type_handler_time() = default;
const Name version() const override { return version_mariadb53(); }
uint32 max_display_length_for_field(const Conv_source &src) const override
{ return MIN_TIME_WIDTH; }
@@ -6250,7 +6246,7 @@ public:
class Type_handler_time2: public Type_handler_time_common
{
public:
virtual ~Type_handler_time2() {}
virtual ~Type_handler_time2() = default;
const Name version() const override { return version_mysql56(); }
enum_field_types real_field_type() const override { return MYSQL_TYPE_TIME2; }
uint32 max_display_length_for_field(const Conv_source &src) const override;
@@ -6280,7 +6276,7 @@ public:
class Type_handler_temporal_with_date: public Type_handler_temporal_result
{
public:
virtual ~Type_handler_temporal_with_date() {}
virtual ~Type_handler_temporal_with_date() = default;
Item_literal *create_literal_item(THD *thd, const char *str, size_t length,
CHARSET_INFO *cs, bool send_error)
const override;
@@ -6310,7 +6306,7 @@ public:
class Type_handler_date_common: public Type_handler_temporal_with_date
{
public:
virtual ~Type_handler_date_common() {}
virtual ~Type_handler_date_common() = default;
const Name &default_value() const override;
const Type_handler *type_handler_for_comparison() const override;
enum_field_types field_type() const override { return MYSQL_TYPE_DATE; }
@@ -6381,7 +6377,7 @@ public:
class Type_handler_date: public Type_handler_date_common
{
public:
virtual ~Type_handler_date() {}
virtual ~Type_handler_date() = default;
uint32 calc_pack_length(uint32 length) const override { return 4; }
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
@@ -6408,7 +6404,7 @@ public:
class Type_handler_newdate: public Type_handler_date_common
{
public:
virtual ~Type_handler_newdate() {}
virtual ~Type_handler_newdate() = default;
enum_field_types real_field_type() const override
{
return MYSQL_TYPE_NEWDATE;
@@ -6439,7 +6435,7 @@ public:
class Type_handler_datetime_common: public Type_handler_temporal_with_date
{
public:
virtual ~Type_handler_datetime_common() {}
virtual ~Type_handler_datetime_common() = default;
const Name &default_value() const override;
const Type_handler *type_handler_for_comparison() const override;
enum_field_types field_type() const override
@@ -6523,7 +6519,7 @@ class Type_handler_datetime: public Type_handler_datetime_common
static uint m_hires_bytes[MAX_DATETIME_PRECISION + 1];
public:
static uint hires_bytes(uint dec) { return m_hires_bytes[dec]; }
virtual ~Type_handler_datetime() {}
virtual ~Type_handler_datetime() = default;
const Name version() const override { return version_mariadb53(); }
uint32 max_display_length_for_field(const Conv_source &src) const override
{ return MAX_DATETIME_WIDTH; }
@@ -6553,7 +6549,7 @@ public:
class Type_handler_datetime2: public Type_handler_datetime_common
{
public:
virtual ~Type_handler_datetime2() {}
virtual ~Type_handler_datetime2() = default;
const Name version() const override { return version_mysql56(); }
enum_field_types real_field_type() const override
{
@@ -6588,7 +6584,7 @@ class Type_handler_timestamp_common: public Type_handler_temporal_with_date
protected:
bool TIME_to_native(THD *, const MYSQL_TIME *from, Native *to, uint dec) const;
public:
virtual ~Type_handler_timestamp_common() {}
virtual ~Type_handler_timestamp_common() = default;
const Name &default_value() const override;
const Type_handler *type_handler_for_comparison() const override;
const Type_handler *type_handler_for_native_format() const override;
@@ -6690,7 +6686,7 @@ class Type_handler_timestamp: public Type_handler_timestamp_common
static uint m_sec_part_bytes[MAX_DATETIME_PRECISION + 1];
public:
static uint sec_part_bytes(uint dec) { return m_sec_part_bytes[dec]; }
virtual ~Type_handler_timestamp() {}
virtual ~Type_handler_timestamp() = default;
const Name version() const override { return version_mariadb53(); }
uint32 max_display_length_for_field(const Conv_source &src) const override
{ return MAX_DATETIME_WIDTH; }
@@ -6720,7 +6716,7 @@ public:
class Type_handler_timestamp2: public Type_handler_timestamp_common
{
public:
virtual ~Type_handler_timestamp2() {}
virtual ~Type_handler_timestamp2() = default;
const Name version() const override { return version_mysql56(); }
enum_field_types real_field_type() const override
{
@@ -6755,7 +6751,7 @@ public:
class Type_handler_olddecimal: public Type_handler_decimal_result
{
public:
virtual ~Type_handler_olddecimal() {}
virtual ~Type_handler_olddecimal() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_DECIMAL; }
uint32 max_display_length_for_field(const Conv_source &src) const override;
uint32 calc_pack_length(uint32 length) const override { return length; }
@@ -6789,7 +6785,7 @@ public:
class Type_handler_newdecimal: public Type_handler_decimal_result
{
public:
virtual ~Type_handler_newdecimal() {}
virtual ~Type_handler_newdecimal() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_NEWDECIMAL; }
uint32 max_display_length_for_field(const Conv_source &src) const override;
uint32 calc_pack_length(uint32 length) const override;
@@ -6833,7 +6829,7 @@ public:
class Type_handler_null: public Type_handler_general_purpose_string
{
public:
virtual ~Type_handler_null() {}
virtual ~Type_handler_null() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_NULL; }
enum_dynamic_column_type dyncol_type(const Type_all_attributes *attr)
const override
@@ -6905,7 +6901,7 @@ public:
class Type_handler_string: public Type_handler_longstr
{
public:
virtual ~Type_handler_string() {}
virtual ~Type_handler_string() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_STRING; }
ulong KEY_pack_flags(uint column_nr) const override
{
@@ -6960,7 +6956,7 @@ public:
class Type_handler_var_string: public Type_handler_string
{
public:
virtual ~Type_handler_var_string() {}
virtual ~Type_handler_var_string() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_VAR_STRING; }
enum_field_types real_field_type() const override { return MYSQL_TYPE_STRING; }
enum_field_types traditional_merge_field_type() const override
@@ -6990,7 +6986,7 @@ public:
class Type_handler_varchar: public Type_handler_longstr
{
public:
virtual ~Type_handler_varchar() {}
virtual ~Type_handler_varchar() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_VARCHAR; }
ulong KEY_pack_flags(uint column_nr) const override
{
@@ -7062,7 +7058,7 @@ public:
class Type_handler_hex_hybrid: public Type_handler_varchar
{
public:
virtual ~Type_handler_hex_hybrid() {}
virtual ~Type_handler_hex_hybrid() = default;
const Type_handler *cast_to_int_type_handler() const override;
bool Item_func_round_fix_length_and_dec(Item_func_round *) const override;
bool Item_func_int_val_fix_length_and_dec(Item_func_int_val*) const override;
@@ -7105,7 +7101,7 @@ public:
class Type_handler_blob_common: public Type_handler_longstr
{
public:
virtual ~Type_handler_blob_common() { }
virtual ~Type_handler_blob_common() = default;
virtual uint length_bytes() const= 0;
ulong KEY_pack_flags(uint column_nr) const override
{
@@ -7182,7 +7178,7 @@ public:
class Type_handler_tiny_blob: public Type_handler_blob_common
{
public:
virtual ~Type_handler_tiny_blob() {}
virtual ~Type_handler_tiny_blob() = default;
uint length_bytes() const override { return 1; }
enum_field_types field_type() const override { return MYSQL_TYPE_TINY_BLOB; }
uint32 max_display_length_for_field(const Conv_source &src) const override;
@@ -7199,7 +7195,7 @@ public:
class Type_handler_medium_blob: public Type_handler_blob_common
{
public:
virtual ~Type_handler_medium_blob() {}
virtual ~Type_handler_medium_blob() = default;
uint length_bytes() const override { return 3; }
enum_field_types field_type() const override
{ return MYSQL_TYPE_MEDIUM_BLOB; }
@@ -7217,7 +7213,7 @@ public:
class Type_handler_long_blob: public Type_handler_blob_common
{
public:
virtual ~Type_handler_long_blob() {}
virtual ~Type_handler_long_blob() = default;
uint length_bytes() const override { return 4; }
enum_field_types field_type() const override { return MYSQL_TYPE_LONG_BLOB; }
uint32 max_display_length_for_field(const Conv_source &src) const override;
@@ -7236,7 +7232,7 @@ public:
class Type_handler_blob: public Type_handler_blob_common
{
public:
virtual ~Type_handler_blob() {}
virtual ~Type_handler_blob() = default;
uint length_bytes() const override { return 2; }
enum_field_types field_type() const override { return MYSQL_TYPE_BLOB; }
uint32 max_display_length_for_field(const Conv_source &src) const override;
@@ -7280,7 +7276,7 @@ public:
class Type_handler_typelib: public Type_handler_general_purpose_string
{
public:
virtual ~Type_handler_typelib() { }
virtual ~Type_handler_typelib() = default;
enum_field_types field_type() const override { return MYSQL_TYPE_STRING; }
const Type_handler *type_handler_for_item_field() const override;
const Type_handler *cast_to_int_type_handler() const override;
@@ -7318,7 +7314,7 @@ public:
class Type_handler_enum: public Type_handler_typelib
{
public:
virtual ~Type_handler_enum() {}
virtual ~Type_handler_enum() = default;
enum_field_types real_field_type() const override { return MYSQL_TYPE_ENUM; }
enum_field_types traditional_merge_field_type() const override
{
@@ -7359,7 +7355,7 @@ public:
class Type_handler_set: public Type_handler_typelib
{
public:
virtual ~Type_handler_set() {}
virtual ~Type_handler_set() = default;
enum_field_types real_field_type() const override { return MYSQL_TYPE_SET; }
enum_field_types traditional_merge_field_type() const override
{
@@ -7405,7 +7401,7 @@ public:
class Function_collection
{
public:
virtual ~Function_collection() {}
virtual ~Function_collection() = default;
virtual bool init()= 0;
virtual void cleanup()= 0;
virtual Create_func *find_native_function_builder(THD *thd,
@@ -7417,11 +7413,8 @@ public:
class Type_collection
{
public:
virtual ~Type_collection() {}
virtual bool init(Type_handler_data *data)
{
return false;
}
virtual ~Type_collection() = default;
virtual bool init(Type_handler_data *) { return false; }
virtual const Type_handler *handler_by_name(const LEX_CSTRING &name) const= 0;
virtual const Type_handler *aggregate_for_result(const Type_handler *h1,
const Type_handler *h2)
@@ -7615,7 +7608,7 @@ public:
const Type_handler *m_handler1;
const Type_handler *m_handler2;
const Type_handler *m_result;
Pair() { }
Pair() = default;
Pair(const Type_handler *handler1,
const Type_handler *handler2,
const Type_handler *result)