59#include "mysqld_error.h"
167#define MY_COLL_ALLOW_SUPERSET_CONV 1
168#define MY_COLL_ALLOW_COERCIBLE_CONV 2
169#define MY_COLL_DISALLOW_NONE 4
170#define MY_COLL_ALLOW_NUMERIC_CONV 8
172#define MY_COLL_ALLOW_CONV \
173 (MY_COLL_ALLOW_SUPERSET_CONV | MY_COLL_ALLOW_COERCIBLE_CONV)
174#define MY_COLL_CMP_CONV (MY_COLL_ALLOW_CONV | MY_COLL_DISALLOW_NONE)
207 uint repertoire_arg) {
292 if (is_null_terminated)
349#define NAME_STRING(x) Name_string(STRING_WITH_LEN(x))
380 void copy(
const char *str_arg,
size_t length_arg,
const CHARSET_INFO *cs_arg,
381 bool is_autogenerated_arg);
469 DBUG_PRINT(
"outer_field", (
"creating ctx %p",
this));
510 ? ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
512 ? ER_DEFAULT_VAL_GENERATED_FUNCTION_IS_NOT_ALLOWED
513 : ER_CHECK_CONSTRAINT_FUNCTION_IS_NOT_ALLOWED);
784 if (*num < std::numeric_limits<T>::max()) {
951 static void *
operator new(
size_t size)
noexcept {
952 return (*THR_MALLOC)->Alloc(size);
955 const std::nothrow_t &arg
956 [[maybe_unused]] = std::nothrow)
noexcept {
960 static void operator delete(
void *ptr [[maybe_unused]],
961 size_t size [[maybe_unused]]) {
965 const std::nothrow_t &)
noexcept {}
1256 if (pc->m_show_parse_tree ==
nullptr || this->m_pos.is_empty())
1271 void
rename(
char *new_name);
1301 [[maybe_unused]]) {}
1333 bool pin =
false,
bool inherit =
false) {
1372 const Query_block *outer_query_block [[maybe_unused]]) {
1373 return std::nullopt;
1394 bool no_conversions);
1408 bool no_conversions);
1440 virtual bool eq(
const Item *,
bool binary_cmp)
const;
1845 bool *incl_endp [[maybe_unused]]) {
2068 my_error(ER_NOT_SUPPORTED_YET,
MYF(0),
"item type for JSON");
2100 double rows_in_table [[maybe_unused]]) {
2102 assert((read_tables & filter_for_table) == 0);
2229 return decimal_value;
2475 const char *used_alias)
const;
2493 bool skip_registered);
2603 return (this->*processor)(arg);
2609 return (*
reinterpret_cast<std::remove_reference_t<T> *
>(arg))(
this);
2615 return (*
reinterpret_cast<std::remove_reference_t<T> *
>(*arg))(
this);
2686 if ((this->*analyzer)(arg_p))
return ((this->*transformer)(arg_t));
2692 (*traverser)(
this, arg);
2811 table->mark_column_used(field, mark_field->
mark);
2866 assert(root !=
nullptr);
2889 assert(arg !=
nullptr);
3017 if (*arg) *arg =
nullptr;
3131 virtual uint
cols()
const {
return 1; }
3273 if (this_context == other_context) {
3461 Item **items, uint nitems);
3685 [[maybe_unused]])
const {
3726 return item->
walk(&Item::walk_helper_thunk<T>, walk,
3727 reinterpret_cast<uchar *
>(&functor));
3735 auto to_const = [&](
const Item *descendant) {
return functor(descendant); };
3736 return WalkItem(
const_cast<Item *
>(item), walk, to_const);
3746template <
class T,
class U>
3748 uchar *analyzer_ptr =
reinterpret_cast<uchar *
>(&analyzer);
3749 return item->
compile(&Item::analyze_helper_thunk<T>, &analyzer_ptr,
3750 &Item::walk_helper_thunk<U>,
3751 reinterpret_cast<uchar *
>(&transformer));
3761 return item->
transform(&Item::walk_helper_thunk<T>,
3762 pointer_cast<uchar *>(&transformer));
3841 Field *field,
bool no_conversions)
override;
3855 Field *field,
bool no_conversions) {
4004 bool no_conversions)
override {
4012 uint nargs, uint
flags,
int item_sep,
4015 uint nitems, uint
flags,
int item_sep,
bool only_consts);
4018 uint nitems,
int item_sep = 1) {
4024 Item **items, uint nitems,
4043#define NO_FIELD_INDEX ((uint16)(-1))
4142 const char *table_name_arg,
const char *field_name_arg)
4157 const char *table_name_arg,
const char *field_name_arg)
4235 const char *db_name_arg,
const char *table_name_arg)
const;
4281 bool any_privileges);
4293 const char *table_name_arg)
4332 bool no_conversions)
override;
4394 if (
item_equal ==
nullptr && item_equal_arg !=
nullptr) {
4431 const char *table_name_arg,
const char *field_name_arg);
4432 Item_field(
const POS &pos,
const char *db_arg,
const char *table_name_arg,
4433 const char *field_name_arg);
4442 bool eq(
const Item *item,
bool binary_cmp)
const override;
4499 return pointer_cast<Field *>(arg) ==
field;
4503 auto mark_field = pointer_cast<Mark_field *>(arg);