Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
d0c4526e
Commit
d0c4526e
authored
Oct 11, 2022
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MDEV-20760 fixup: clang -Winconsistent-missing-override
parent
2f1a4328
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
242 additions
and
226 deletions
+242
-226
sql/sql_type.h
sql/sql_type.h
+242
-226
No files found.
sql/sql_type.h
View file @
d0c4526e
#ifndef SQL_TYPE_H_INCLUDED
#define SQL_TYPE_H_INCLUDED
/*
Copyright (c) 2015, 202
0
, MariaDB
Copyright (c) 2015, 202
2
, MariaDB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
...
...
@@ -3827,8 +3827,8 @@ class Type_handler
CHARSET_INFO
*
cs
,
bool
send_error
)
const
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
Item_literal
*
create_literal_item
(
THD
*
thd
,
const
String
*
str
,
bool
send_error
)
const
...
...
@@ -3839,13 +3839,13 @@ class Type_handler
virtual
Item
*
create_typecast_item
(
THD
*
thd
,
Item
*
item
,
const
Type_cast_attributes
&
attr
)
const
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
virtual
Item_copy
*
create_item_copy
(
THD
*
thd
,
Item
*
item
)
const
;
virtual
int
cmp_native
(
const
Native
&
a
,
const
Native
&
b
)
const
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
virtual
bool
set_comparator_func
(
Arg_comparator
*
cmp
)
const
=
0
;
...
...
@@ -4000,67 +4000,65 @@ class Type_handler_row: public Type_handler
static
const
Name
m_name_row
;
public:
virtual
~
Type_handler_row
()
{}
const
Name
name
()
const
{
return
m_name_row
;
}
bool
is_scalar_type
()
const
{
return
false
;
}
bool
can_return_int
()
const
{
return
false
;
}
bool
can_return_decimal
()
const
{
return
false
;
}
bool
can_return_real
()
const
{
return
false
;
}
bool
can_return_str
()
const
{
return
false
;
}
bool
can_return_text
()
const
{
return
false
;
}
bool
can_return_date
()
const
{
return
false
;
}
bool
can_return_time
()
const
{
return
false
;
}
enum_field_types
field_type
()
const
{
DBUG_ASSERT
(
0
);
const
Name
name
()
const
override
{
return
m_name_row
;
}
bool
is_scalar_type
()
const
override
{
return
false
;
}
bool
can_return_int
()
const
override
{
return
false
;
}
bool
can_return_decimal
()
const
override
{
return
false
;
}
bool
can_return_real
()
const
override
{
return
false
;
}
bool
can_return_str
()
const
override
{
return
false
;
}
bool
can_return_text
()
const
override
{
return
false
;
}
bool
can_return_date
()
const
override
{
return
false
;
}
bool
can_return_time
()
const
override
{
return
false
;
}
enum_field_types
field_type
()
const
override
{
MY_ASSERT_UNREACHABLE
(
);
return
MYSQL_TYPE_NULL
;
};
protocol_send_type_t
protocol_send_type
()
const
protocol_send_type_t
protocol_send_type
()
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
PROTOCOL_SEND_STRING
;
}
Item_result
result_type
()
const
Item_result
result_type
()
const
override
{
return
ROW_RESULT
;
}
Item_result
cmp_type
()
const
Item_result
cmp_type
()
const
override
{
return
ROW_RESULT
;
}
const
Type_handler
*
type_handler_for_comparison
()
const
;
int
stored_field_cmp_to_item
(
THD
*
thd
,
Field
*
field
,
Item
*
item
)
const
const
Type_handler
*
type_handler_for_comparison
()
const
override
;
int
stored_field_cmp_to_item
(
THD
*
,
Field
*
,
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
bool
subquery_type_allows_materialization
(
const
Item
*
inner
,
const
Item
*
outer
,
bool
is_in_predicate
)
const
bool
subquery_type_allows_materialization
(
const
Item
*
,
const
Item
*
,
bool
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
false
;
}
Field
*
make_num_distinct_aggregator_field
(
MEM_ROOT
*
,
const
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
Field
*
make_conversion_table_field
(
TABLE
*
TABLE
,
uint
metadata
,
const
Field
*
target
)
const
Field
*
make_conversion_table_field
(
TABLE
*
,
uint
,
const
Field
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
bool
Column_definition_fix_attributes
(
Column_definition
*
)
const
override
{
return
false
;
}
void
Column_definition_reuse_fix_attributes
(
THD
*
thd
,
Column_definition
*
c
,
const
Field
*
field
)
const
void
Column_definition_reuse_fix_attributes
(
THD
*
,
Column_definition
*
,
const
Field
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
}
bool
Column_definition_prepare_stage1
(
THD
*
thd
,
MEM_ROOT
*
mem_root
,
...
...
@@ -4069,28 +4067,25 @@ class Type_handler_row: public Type_handler
ulonglong
table_flags
,
const
Column_derived_attributes
*
derived_attr
)
const
;
bool
Column_definition_redefine_stage1
(
Column_definition
*
def
,
const
Column_definition
*
dup
,
const
handler
*
file
)
const
const
override
;
bool
Column_definition_redefine_stage1
(
Column_definition
*
,
const
Column_definition
*
,
const
handler
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Column_definition_prepare_stage2
(
Column_definition
*
c
,
handler
*
file
,
ulonglong
table_flags
)
const
bool
Column_definition_prepare_stage2
(
Column_definition
*
,
handler
*
,
ulonglong
)
const
override
{
return
false
;
}
Field
*
make_table_field
(
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Type_all_attributes
&
attr
,
TABLE
*
table
)
const
Field
*
make_table_field
(
const
LEX_CSTRING
*
,
const
Record_addr
&
,
const
Type_all_attributes
&
,
TABLE
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
Field
*
make_table_field_from_def
(
TABLE_SHARE
*
share
,
MEM_ROOT
*
mem_root
,
...
...
@@ -4098,252 +4093,263 @@ class Type_handler_row: public Type_handler
const
Record_addr
&
addr
,
const
Bit_addr
&
bit
,
const
Column_definition_attributes
*
attr
,
uint32
flags
)
const
;
void
make_sort_key
(
uchar
*
to
,
Item
*
item
,
const
SORT_FIELD_ATTR
*
sort_field
,
Sort_param
*
param
)
const
uint32
flags
)
const
override
;
void
make_sort_key
(
uchar
*
,
Item
*
,
const
SORT_FIELD_ATTR
*
,
Sort_param
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
}
void
sortlength
(
THD
*
thd
,
const
Type_std_attributes
*
item
,
SORT_FIELD_ATTR
*
attr
)
const
void
sortlength
(
THD
*
,
const
Type_std_attributes
*
,
SORT_FIELD_ATTR
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
}
uint32
max_display_length
(
const
Item
*
item
)
const
uint32
max_display_length
(
const
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
uint32
calc_pack_length
(
uint32
length
)
const
uint32
calc_pack_length
(
uint32
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
bool
Item_eq_value
(
THD
*
thd
,
const
Type_cmp_attributes
*
attr
,
Item
*
a
,
Item
*
b
)
const
;
uint
Item_decimal_precision
(
const
Item
*
item
)
const
Item
*
a
,
Item
*
b
)
const
override
;
uint
Item_decimal_precision
(
const
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
DECIMAL_MAX_PRECISION
;
}
bool
Item_save_in_value
(
THD
*
thd
,
Item
*
item
,
st_value
*
value
)
const
;
bool
Item_save_in_value
(
THD
*
thd
,
Item
*
item
,
st_value
*
value
)
const
override
;
bool
Item_param_set_from_value
(
THD
*
thd
,
Item_param
*
param
,
const
Type_all_attributes
*
attr
,
const
st_value
*
value
)
const
;
bool
Item_send
(
Item
*
item
,
Protocol
*
protocol
,
st_value
*
buf
)
const
const
st_value
*
value
)
const
override
;
bool
Item_send
(
Item
*
,
Protocol
*
,
st_value
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
void
Item_update_null_value
(
Item
*
item
)
const
;
int
Item_save_in_field
(
Item
*
item
,
Field
*
field
,
bool
no_conversions
)
const
void
Item_update_null_value
(
Item
*
item
)
const
override
;
int
Item_save_in_field
(
Item
*
,
Field
*
,
bool
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
1
;
}
String
*
print_item_value
(
THD
*
thd
,
Item
*
item
,
String
*
str
)
const
;
bool
can_change_cond_ref_to_const
(
Item_bool_func2
*
target
,
Item
*
target_expr
,
Item
*
target_value
,
Item_bool_func2
*
source
,
Item
*
source_expr
,
Item
*
source_const
)
const
String
*
print_item_value
(
THD
*
thd
,
Item
*
item
,
String
*
str
)
const
override
;
bool
can_change_cond_ref_to_const
(
Item_bool_func2
*
,
Item
*
,
Item
*
,
Item_bool_func2
*
,
Item
*
,
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
false
;
}
Item
*
make_const_item_for_comparison
(
THD
*
,
Item
*
src
,
const
Item
*
cmp
)
const
;
Item_cache
*
Item_get_cache
(
THD
*
thd
,
const
Item
*
item
)
const
;
Item_copy
*
create_item_copy
(
THD
*
thd
,
Item
*
item
)
const
Item
*
make_const_item_for_comparison
(
THD
*
,
Item
*
src
,
const
Item
*
cmp
)
const
override
;
Item_cache
*
Item_get_cache
(
THD
*
thd
,
const
Item
*
item
)
const
override
;
Item_copy
*
create_item_copy
(
THD
*
,
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
bool
set_comparator_func
(
Arg_comparator
*
cmp
)
const
;
bool
set_comparator_func
(
Arg_comparator
*
cmp
)
const
override
;
bool
Item_hybrid_func_fix_attributes
(
THD
*
thd
,
const
char
*
name
,
Type_handler_hybrid_field_type
*
,
Type_all_attributes
*
atrr
,
Item
**
items
,
uint
nitems
)
const
Item
**
items
,
uint
nitems
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_sum_hybrid_fix_length_and_dec
(
Item_sum_hybrid
*
func
)
const
bool
Item_sum_hybrid_fix_length_and_dec
(
Item_sum_hybrid
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_sum_sum_fix_length_and_dec
(
Item_sum_sum
*
)
const
bool
Item_sum_sum_fix_length_and_dec
(
Item_sum_sum
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_sum_avg_fix_length_and_dec
(
Item_sum_avg
*
)
const
bool
Item_sum_avg_fix_length_and_dec
(
Item_sum_avg
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_sum_variance_fix_length_and_dec
(
Item_sum_variance
*
)
const
bool
Item_sum_variance_fix_length_and_dec
(
Item_sum_variance
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_val_bool
(
Item
*
item
)
const
bool
Item_val_bool
(
Item
*
item
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
false
;
}
void
Item_get_date
(
THD
*
thd
,
Item
*
item
,
Temporal
::
Warn
*
warn
,
MYSQL_TIME
*
ltime
,
date_mode_t
fuzzydate
)
const
void
Item_get_date
(
THD
*
,
Item
*
,
Temporal
::
Warn
*
,
MYSQL_TIME
*
ltime
,
date_mode_t
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
set_zero_time
(
ltime
,
MYSQL_TIMESTAMP_NONE
);
}
longlong
Item_val_int_signed_typecast
(
Item
*
item
)
const
longlong
Item_val_int_signed_typecast
(
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
longlong
Item_val_int_unsigned_typecast
(
Item
*
item
)
const
longlong
Item_val_int_unsigned_typecast
(
Item
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
String
*
Item_func_hex_val_str_ascii
(
Item_func_hex
*
item
,
String
*
str
)
const
String
*
Item_func_hex_val_str_ascii
(
Item_func_hex
*
,
String
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
String
*
Item_func_hybrid_field_type_val_str
(
Item_func_hybrid_field_type
*
,
String
*
)
const
String
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
double
Item_func_hybrid_field_type_val_real
(
Item_func_hybrid_field_type
*
)
const
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0.0
;
}
longlong
Item_func_hybrid_field_type_val_int
(
Item_func_hybrid_field_type
*
)
const
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
my_decimal
*
Item_func_hybrid_field_type_val_decimal
(
Item_func_hybrid_field_type
*
,
my_decimal
*
)
const
my_decimal
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
void
Item_func_hybrid_field_type_get_date
(
THD
*
,
Item_func_hybrid_field_type
*
,
Temporal
::
Warn
*
,
MYSQL_TIME
*
ltime
,
date_mode_t
fuzzydate
)
const
date_mode_t
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
set_zero_time
(
ltime
,
MYSQL_TIMESTAMP_NONE
);
}
String
*
Item_func_min_max_val_str
(
Item_func_min_max
*
,
String
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
double
Item_func_min_max_val_real
(
Item_func_min_max
*
)
const
double
Item_func_min_max_val_real
(
Item_func_min_max
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
longlong
Item_func_min_max_val_int
(
Item_func_min_max
*
)
const
longlong
Item_func_min_max_val_int
(
Item_func_min_max
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
my_decimal
*
Item_func_min_max_val_decimal
(
Item_func_min_max
*
,
my_decimal
*
)
const
my_decimal
*
)
const
override
{
DBUG_ASSERT
(
0
);
return
NULL
;
MY_ASSERT_UNREACHABLE
(
);
return
nullptr
;
}
bool
Item_func_min_max_get_date
(
THD
*
thd
,
Item_func_min_max
*
,
MYSQL_TIME
*
,
date_mode_t
fuzzydate
)
const
bool
Item_func_min_max_get_date
(
THD
*
,
Item_func_min_max
*
,
MYSQL_TIME
*
,
date_mode_t
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_func_between_fix_length_and_dec
(
Item_func_between
*
func
)
const
bool
Item_func_between_fix_length_and_dec
(
Item_func_between
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
longlong
Item_func_between_val_int
(
Item_func_between
*
func
)
const
;
cmp_item
*
make_cmp_item
(
THD
*
thd
,
CHARSET_INFO
*
cs
)
const
;
in_vector
*
make_in_vector
(
THD
*
thd
,
const
Item_func_in
*
f
,
uint
nargs
)
const
;
longlong
Item_func_between_val_int
(
Item_func_between
*
func
)
const
override
;
cmp_item
*
make_cmp_item
(
THD
*
thd
,
CHARSET_INFO
*
cs
)
const
override
;
in_vector
*
make_in_vector
(
THD
*
thd
,
const
Item_func_in
*
f
,
uint
nargs
)
const
override
;
bool
Item_func_in_fix_comparator_compatible_types
(
THD
*
thd
,
Item_func_in
*
)
const
;
bool
Item_func_round_fix_length_and_dec
(
Item_func_round
*
)
const
;
bool
Item_func_int_val_fix_length_and_dec
(
Item_func_int_val
*
)
const
;
bool
Item_func_abs_fix_length_and_dec
(
Item_func_abs
*
)
const
;
bool
Item_func_neg_fix_length_and_dec
(
Item_func_neg
*
)
const
;
Item_func_in
*
)
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
;
bool
Item_func_abs_fix_length_and_dec
(
Item_func_abs
*
)
const
override
;
bool
Item_func_neg_fix_length_and_dec
(
Item_func_neg
*
)
const
override
;
bool
Item_func_signed_fix_length_and_dec
(
Item_func_signed
*
)
const
bool
Item_func_signed_fix_length_and_dec
(
Item_func_signed
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_func_unsigned_fix_length_and_dec
(
Item_func_unsigned
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_double_typecast_fix_length_and_dec
(
Item_double_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_float_typecast_fix_length_and_dec
(
Item_float_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_decimal_typecast_fix_length_and_dec
(
Item_decimal_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_char_typecast_fix_length_and_dec
(
Item_char_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_time_typecast_fix_length_and_dec
(
Item_time_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_date_typecast_fix_length_and_dec
(
Item_date_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_datetime_typecast_fix_length_and_dec
(
Item_datetime_typecast
*
)
const
bool
Item_datetime_typecast_fix_length_and_dec
(
Item_datetime_typecast
*
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
true
;
}
bool
Item_func_plus_fix_length_and_dec
(
Item_func_plus
*
)
const
;
bool
Item_func_minus_fix_length_and_dec
(
Item_func_minus
*
)
const
;
bool
Item_func_mul_fix_length_and_dec
(
Item_func_mul
*
)
const
;
bool
Item_func_div_fix_length_and_dec
(
Item_func_div
*
)
const
;
bool
Item_func_mod_fix_length_and_dec
(
Item_func_mod
*
)
const
;
bool
Item_func_plus_fix_length_and_dec
(
Item_func_plus
*
)
const
override
;
bool
Item_func_minus_fix_length_and_dec
(
Item_func_minus
*
)
const
override
;
bool
Item_func_mul_fix_length_and_dec
(
Item_func_mul
*
)
const
override
;
bool
Item_func_div_fix_length_and_dec
(
Item_func_div
*
)
const
override
;
bool
Item_func_mod_fix_length_and_dec
(
Item_func_mod
*
)
const
override
;
};
...
...
@@ -4353,7 +4359,7 @@ class Type_handler_row: public Type_handler
class
Type_handler_numeric
:
public
Type_handler
{
public:
String
*
print_item_value
(
THD
*
thd
,
Item
*
item
,
String
*
str
)
const
;
String
*
print_item_value
(
THD
*
thd
,
Item
*
item
,
String
*
str
)
const
override
;
bool
Column_definition_prepare_stage1
(
THD
*
thd
,
MEM_ROOT
*
mem_root
,
Column_definition
*
c
,
...
...
@@ -4361,20 +4367,24 @@ class Type_handler_numeric: public Type_handler
ulonglong
table_flags
,
const
Column_derived_attributes
*
derived_attr
)
const
;
double
Item_func_min_max_val_real
(
Item_func_min_max
*
)
const
;
longlong
Item_func_min_max_val_int
(
Item_func_min_max
*
)
const
;
const
override
;
double
Item_func_min_max_val_real
(
Item_func_min_max
*
)
const
override
;
longlong
Item_func_min_max_val_int
(
Item_func_min_max
*
)
const
override
;
my_decimal
*
Item_func_min_max_val_decimal
(
Item_func_min_max
*
,
my_decimal
*
)
const
;
my_decimal
*
)
const
override
;
bool
Item_func_min_max_get_date
(
THD
*
thd
,
Item_func_min_max
*
,
MYSQL_TIME
*
,
date_mode_t
fuzzydate
)
const
;
MYSQL_TIME
*
,
date_mode_t
fuzzydate
)
const
override
;
virtual
~
Type_handler_numeric
()
{
}
bool
can_change_cond_ref_to_const
(
Item_bool_func2
*
target
,
Item
*
target_expr
,
Item
*
target_value
,
Item_bool_func2
*
source
,
Item
*
source_expr
,
Item
*
source_const
)
const
;
bool
Item_func_between_fix_length_and_dec
(
Item_func_between
*
func
)
const
;
bool
Item_char_typecast_fix_length_and_dec
(
Item_char_typecast
*
)
const
;
Item
*
source_expr
,
Item
*
source_const
)
const
override
;
bool
Item_func_between_fix_length_and_dec
(
Item_func_between
*
func
)
const
override
;
bool
Item_char_typecast_fix_length_and_dec
(
Item_char_typecast
*
)
const
override
;
};
...
...
@@ -6151,35 +6161,36 @@ class Type_handler_string: public Type_handler_longstr
static
const
Name
m_name_char
;
public:
virtual
~
Type_handler_string
()
{}
const
Name
name
()
const
{
return
m_name_char
;
}
enum_field_types
field_type
()
const
{
return
MYSQL_TYPE_STRING
;
}
const
Name
name
()
const
override
{
return
m_name_char
;
}
enum_field_types
field_type
()
const
override
{
return
MYSQL_TYPE_STRING
;
}
ulong
KEY_pack_flags
(
uint
column_nr
)
const
override
{
return
HA_PACK_KEY
;
}
bool
is_param_long_data_type
()
const
{
return
true
;
}
uint32
calc_pack_length
(
uint32
length
)
const
{
return
length
;
}
bool
is_param_long_data_type
()
const
override
{
return
true
;
}
uint32
calc_pack_length
(
uint32
length
)
const
override
{
return
length
;
}
const
Type_handler
*
type_handler_for_tmp_table
(
const
Item
*
item
)
const
override
{
return
varstring_type_handler
(
item
);
}
Field
*
make_conversion_table_field
(
TABLE
*
,
uint
metadata
,
const
Field
*
target
)
const
;
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
;
const
Field
*
target
)
const
override
;
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
override
;
bool
Column_definition_prepare_stage2
(
Column_definition
*
c
,
handler
*
file
,
ulonglong
table_flags
)
const
;
ulonglong
table_flags
)
const
override
;
Field
*
make_table_field
(
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Type_all_attributes
&
attr
,
TABLE
*
table
)
const
;
TABLE
*
table
)
const
override
;
Field
*
make_table_field_from_def
(
TABLE_SHARE
*
share
,
MEM_ROOT
*
mem_root
,
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Bit_addr
&
bit
,
const
Column_definition_attributes
*
attr
,
uint32
flags
)
const
;
uint32
flags
)
const
override
;
};
...
...
@@ -6218,8 +6229,8 @@ class Type_handler_varchar: public Type_handler_longstr
static
const
Name
m_name_varchar
;
public:
virtual
~
Type_handler_varchar
()
{}
const
Name
name
()
const
{
return
m_name_varchar
;
}
enum_field_types
field_type
()
const
{
return
MYSQL_TYPE_VARCHAR
;
}
const
Name
name
()
const
override
{
return
m_name_varchar
;
}
enum_field_types
field_type
()
const
override
{
return
MYSQL_TYPE_VARCHAR
;
}
ulong
KEY_pack_flags
(
uint
column_nr
)
const
override
{
#if MARIADB_VERSION_ID >= 100500
...
...
@@ -6230,41 +6241,42 @@ class Type_handler_varchar: public Type_handler_longstr
return
HA_BINARY_PACK_KEY
|
HA_VAR_LENGTH_KEY
;
#endif
}
enum_field_types
type_code_for_protocol
()
const
enum_field_types
type_code_for_protocol
()
const
override
{
return
MYSQL_TYPE_VAR_STRING
;
// Keep things compatible for old clients
}
uint32
calc_pack_length
(
uint32
length
)
const
uint32
calc_pack_length
(
uint32
length
)
const
override
{
return
(
length
+
(
length
<
256
?
1
:
2
));
}
const
Type_handler
*
type_handler_for_tmp_table
(
const
Item
*
item
)
const
override
{
return
varstring_type_handler
(
item
);
}
const
Type_handler
*
type_handler_for_union
(
const
Item
*
item
)
const
const
Type_handler
*
type_handler_for_union
(
const
Item
*
item
)
const
override
{
return
varstring_type_handler
(
item
);
}
bool
is_param_long_data_type
()
const
{
return
true
;
}
bool
is_param_long_data_type
()
const
override
{
return
true
;
}
Field
*
make_conversion_table_field
(
TABLE
*
,
uint
metadata
,
const
Field
*
target
)
const
;
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
;
const
Field
*
target
)
const
override
;
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
override
;
bool
Column_definition_prepare_stage2
(
Column_definition
*
c
,
handler
*
file
,
ulonglong
table_flags
)
const
;
ulonglong
table_flags
)
const
override
;
Field
*
make_table_field
(
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Type_all_attributes
&
attr
,
TABLE
*
table
)
const
;
TABLE
*
table
)
const
override
;
Field
*
make_table_field_from_def
(
TABLE_SHARE
*
share
,
MEM_ROOT
*
mem_root
,
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Bit_addr
&
bit
,
const
Column_definition_attributes
*
attr
,
uint32
flags
)
const
;
bool
adjust_spparam_type
(
Spvar_definition
*
def
,
Item
*
from
)
const
;
uint32
flags
)
const
override
;
bool
adjust_spparam_type
(
Spvar_definition
*
def
,
Item
*
from
)
const
override
;
};
...
...
@@ -6273,11 +6285,12 @@ class Type_handler_hex_hybrid: public Type_handler_varchar
static
const
Name
m_name_hex_hybrid
;
public:
virtual
~
Type_handler_hex_hybrid
()
{}
const
Name
name
()
const
{
return
m_name_hex_hybrid
;
}
const
Type_handler
*
cast_to_int_type_handler
()
const
;
const
Type_handler
*
type_handler_for_system_time
()
const
;
bool
Item_func_round_fix_length_and_dec
(
Item_func_round
*
)
const
;
bool
Item_func_int_val_fix_length_and_dec
(
Item_func_int_val
*
)
const
;
const
Name
name
()
const
override
{
return
m_name_hex_hybrid
;
}
const
Type_handler
*
cast_to_int_type_handler
()
const
override
;
const
Type_handler
*
type_handler_for_system_time
()
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
;
};
...
...
@@ -6285,10 +6298,10 @@ class Type_handler_varchar_compressed: public Type_handler_varchar
{
public:
Field
*
make_conversion_table_field
(
TABLE
*
,
uint
metadata
,
const
Field
*
target
)
const
;
ulong
KEY_pack_flags
(
uint
column_nr
)
const
override
const
Field
*
target
)
const
override
;
ulong
KEY_pack_flags
(
uint
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
};
...
...
@@ -6299,7 +6312,7 @@ class Type_handler_blob_common: public Type_handler_longstr
public:
virtual
~
Type_handler_blob_common
()
{
}
Field
*
make_conversion_table_field
(
TABLE
*
,
uint
metadata
,
const
Field
*
target
)
const
;
const
Field
*
target
)
const
override
;
ulong
KEY_pack_flags
(
uint
column_nr
)
const
override
{
if
(
column_nr
==
0
)
...
...
@@ -6307,33 +6320,35 @@ class Type_handler_blob_common: public Type_handler_longstr
return
HA_PACK_KEY
;
}
const
Type_handler
*
type_handler_for_tmp_table
(
const
Item
*
item
)
const
override
{
return
blob_type_handler
(
item
);
}
const
Type_handler
*
type_handler_for_union
(
const
Item
*
item
)
const
const
Type_handler
*
type_handler_for_union
(
const
Item
*
item
)
const
override
{
return
blob_type_handler
(
item
);
}
bool
subquery_type_allows_materialization
(
const
Item
*
inner
,
const
Item
*
outer
,
bool
is_in_predicate
)
const
bool
subquery_type_allows_materialization
(
const
Item
*
,
const
Item
*
,
bool
)
const
override
{
return
false
;
// Materialization does not work with BLOB columns
}
bool
is_param_long_data_type
()
const
{
return
true
;
}
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
;
bool
is_param_long_data_type
()
const
override
{
return
true
;
}
bool
Column_definition_fix_attributes
(
Column_definition
*
c
)
const
override
;
void
Column_definition_reuse_fix_attributes
(
THD
*
thd
,
Column_definition
*
c
,
const
Field
*
field
)
const
;
const
Field
*
field
)
const
override
;
bool
Column_definition_prepare_stage2
(
Column_definition
*
c
,
handler
*
file
,
ulonglong
table_flags
)
const
;
ulonglong
table_flags
)
const
override
;
bool
Item_hybrid_func_fix_attributes
(
THD
*
thd
,
const
char
*
name
,
Type_handler_hybrid_field_type
*
,
Type_all_attributes
*
atrr
,
Item
**
items
,
uint
nitems
)
const
;
void
Item_param_setup_conversion
(
THD
*
thd
,
Item_param
*
)
const
;
Item
**
items
,
uint
nitems
)
const
override
;
void
Item_param_setup_conversion
(
THD
*
thd
,
Item_param
*
)
const
override
;
Field
*
make_table_field_from_def
(
TABLE_SHARE
*
share
,
MEM_ROOT
*
mem_root
,
...
...
@@ -6341,7 +6356,7 @@ class Type_handler_blob_common: public Type_handler_longstr
const
Record_addr
&
addr
,
const
Bit_addr
&
bit
,
const
Column_definition_attributes
*
attr
,
uint32
flags
)
const
;
uint32
flags
)
const
override
;
};
...
...
@@ -6350,14 +6365,14 @@ class Type_handler_tiny_blob: public Type_handler_blob_common
static
const
Name
m_name_tinyblob
;
public:
virtual
~
Type_handler_tiny_blob
()
{}
const
Name
name
()
const
{
return
m_name_tinyblob
;
}
enum_field_types
field_type
()
const
{
return
MYSQL_TYPE_TINY_BLOB
;
}
uint32
calc_pack_length
(
uint32
length
)
const
;
const
Name
name
()
const
override
{
return
m_name_tinyblob
;
}
enum_field_types
field_type
()
const
override
{
return
MYSQL_TYPE_TINY_BLOB
;
}
uint32
calc_pack_length
(
uint32
length
)
const
override
;
Field
*
make_table_field
(
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Type_all_attributes
&
attr
,
TABLE
*
table
)
const
;
uint
max_octet_length
()
const
{
return
UINT_MAX8
;
}
TABLE
*
table
)
const
override
;
uint
max_octet_length
()
const
override
{
return
UINT_MAX8
;
}
};
...
...
@@ -6366,14 +6381,15 @@ class Type_handler_medium_blob: public Type_handler_blob_common
static
const
Name
m_name_mediumblob
;
public:
virtual
~
Type_handler_medium_blob
()
{}
const
Name
name
()
const
{
return
m_name_mediumblob
;
}
enum_field_types
field_type
()
const
{
return
MYSQL_TYPE_MEDIUM_BLOB
;
}
uint32
calc_pack_length
(
uint32
length
)
const
;
const
Name
name
()
const
override
{
return
m_name_mediumblob
;
}
enum_field_types
field_type
()
const
override
{
return
MYSQL_TYPE_MEDIUM_BLOB
;
}
uint32
calc_pack_length
(
uint32
length
)
const
override
;
Field
*
make_table_field
(
const
LEX_CSTRING
*
name
,
const
Record_addr
&
addr
,
const
Type_all_attributes
&
attr
,
TABLE
*
table
)
const
;
uint
max_octet_length
()
const
{
return
UINT_MAX24
;
}
TABLE
*
table
)
const
override
;
uint
max_octet_length
()
const
override
{
return
UINT_MAX24
;
}
};
...
...
@@ -6415,10 +6431,10 @@ class Type_handler_blob_compressed: public Type_handler_blob
{
public:
Field
*
make_conversion_table_field
(
TABLE
*
,
uint
metadata
,
const
Field
*
target
)
const
;
ulong
KEY_pack_flags
(
uint
column_nr
)
const
override
const
Field
*
target
)
const
override
;
ulong
KEY_pack_flags
(
uint
)
const
override
{
DBUG_ASSERT
(
0
);
MY_ASSERT_UNREACHABLE
(
);
return
0
;
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment