MySQL  8.0.16
Source Code Documentation
item_strfunc.h
Go to the documentation of this file.
1 /* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 /* This file defines all string functions */
24 #ifndef ITEM_STRFUNC_INCLUDED
25 #define ITEM_STRFUNC_INCLUDED
26 
27 #include <stddef.h>
28 #include <sys/types.h>
29 #include <algorithm>
30 
31 #include "control_events.h"
32 #include "lex_string.h"
33 #include "m_ctype.h"
34 #include "my_dbug.h"
35 #include "my_inttypes.h"
36 #include "my_table_map.h"
37 #include "my_time.h"
39 #include "mysql_com.h"
40 #include "mysql_time.h"
41 #include "sql/enum_query_type.h"
42 #include "sql/field.h"
43 #include "sql/item.h"
44 #include "sql/item_cmpfunc.h" // Item_bool_func
45 #include "sql/item_func.h" // Item_func
47 #include "sql/sql_const.h"
48 #include "sql/sql_digest.h" // DIGEST_HASH_TO_STRING[_LENGTH]
49 #include "sql_string.h"
50 
51 class MY_LOCALE;
52 class PT_item_list;
53 class THD;
54 class my_decimal;
55 template <class T>
56 class List;
57 
59  const char *name, CHARSET_INFO *name_cs = system_charset_info);
60 
61 /**
62  Generate Universal Unique Identifier (UUID).
63 
64  @param str Pointer to string which will hold the UUID.
65 
66  @return str Pointer to string which contains the UUID.
67 */
68 
70 
71 class Item_str_func : public Item_func {
72  typedef Item_func super;
73 
74  public:
76 
77  explicit Item_str_func(const POS &pos) : super(pos) {
79  }
80 
82 
83  Item_str_func(const POS &pos, Item *a) : Item_func(pos, a) {
85  }
86 
87  Item_str_func(Item *a, Item *b) : Item_func(a, b) {
89  }
90 
91  Item_str_func(const POS &pos, Item *a, Item *b) : Item_func(pos, a, b) {
93  }
94 
95  Item_str_func(Item *a, Item *b, Item *c) : Item_func(a, b, c) {
97  }
98  Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
99  : Item_func(pos, a, b, c) {
101  }
102 
103  Item_str_func(Item *a, Item *b, Item *c, Item *d) : Item_func(a, b, c, d) {
105  }
106 
107  Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
108  : Item_func(pos, a, b, c, d) {
110  }
111 
112  Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
113  : Item_func(a, b, c, d, e) {
115  }
116 
117  Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
118  : Item_func(pos, a, b, c, d, e) {
120  }
121 
124  }
125 
126  Item_str_func(const POS &pos, PT_item_list *opt_list)
127  : Item_func(pos, opt_list) {
129  }
130 
131  longlong val_int() override;
132  double val_real() override;
133  my_decimal *val_decimal(my_decimal *) override;
134  bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override {
135  return get_date_from_string(ltime, fuzzydate);
136  }
137  bool get_time(MYSQL_TIME *ltime) override {
138  return get_time_from_string(ltime);
139  }
140  enum Item_result result_type() const override { return STRING_RESULT; }
141  void left_right_max_length();
142  bool fix_fields(THD *thd, Item **ref) override;
144 
145  protected:
146  /**
147  Calls push_warning_printf for packet overflow.
148  @return error_str().
149  */
150  String *push_packet_overflow_warning(THD *thd, const char *func);
151 };
152 
153 /*
154  Functions that return values with ASCII repertoire
155 */
158 
159  public:
162  }
163 
166  }
169  }
170 
173  }
175  : Item_str_func(pos, a, b) {
177  }
178 
179  Item_str_ascii_func(Item *a, Item *b, Item *c) : Item_str_func(a, b, c) {
181  }
182  Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
183  : Item_str_func(pos, a, b, c) {
185  }
186 
187  String *val_str(String *str) override {
189  }
190  virtual String *val_str_ascii(String *) override = 0;
191 };
192 
195 
196  public:
198  String *val_str_ascii(String *) override;
199  bool resolve_type(THD *thd) override;
200  const char *func_name() const override { return "md5"; }
201 };
202 
204  public:
206  String *val_str_ascii(String *) override;
207  bool resolve_type(THD *thd) override;
208  const char *func_name() const override { return "sha"; }
209 };
210 
212  public:
213  Item_func_sha2(const POS &pos, Item *a, Item *b)
214  : Item_str_ascii_func(pos, a, b) {}
215  String *val_str_ascii(String *) override;
216  bool resolve_type(THD *thd) override;
217  const char *func_name() const override { return "sha2"; }
218 };
219 
222 
223  public:
225  String *val_str_ascii(String *) override;
226  bool resolve_type(THD *) override;
227  const char *func_name() const override { return "to_base64"; }
228 };
229 
231  public:
232  Item_func_statement_digest(const POS &pos, Item *query_string)
233  : Item_str_ascii_func(pos, query_string) {}
234 
235  const char *func_name() const override { return "statement_digest"; }
236  bool check_function_as_value_generator(uchar *checker_args) override {
239  checker_args);
240  func_arg->banned_function_name = func_name();
241  return (func_arg->source == VGS_GENERATED_COLUMN);
242  }
243 
244  bool resolve_type(THD *) override {
246  return false;
247  }
248 
249  String *val_str_ascii(String *) override;
250 };
251 
253  public:
255  : Item_str_func(pos, query_string) {}
256 
257  const char *func_name() const override { return "statement_digest_text"; }
258 
259  /**
260  The type is always LONGTEXT, just like the digest_text columns in
261  Performance Schema
262  */
263  bool resolve_type(THD *) override {
265  return false;
266  }
267 
268  bool check_function_as_value_generator(uchar *checker_args) override {
271  checker_args);
272  func_arg->banned_function_name = func_name();
273  return (func_arg->source == VGS_GENERATED_COLUMN);
274  }
275  String *val_str(String *) override;
276 };
277 
280 
281  public:
283  String *val_str(String *) override;
284  bool resolve_type(THD *thd) override;
285  const char *func_name() const override { return "from_base64"; }
286 };
287 
291 
292  public:
294  : Item_str_func(pos, a, b) {}
296  : Item_str_func(pos, a, b, c) {}
297 
298  bool itemize(Parse_context *pc, Item **res) override;
299  String *val_str(String *) override;
300  bool resolve_type(THD *) override;
301  const char *func_name() const override { return "aes_encrypt"; }
302 };
303 
306 
307  public:
309  : Item_str_func(pos, a, b) {}
311  : Item_str_func(pos, a, b, c) {}
312 
313  bool itemize(Parse_context *pc, Item **res) override;
314  String *val_str(String *) override;
315  bool resolve_type(THD *thd) override;
316  const char *func_name() const override { return "aes_decrypt"; }
317 };
318 
321 
322  /** limitation from the SSL library */
324 
325  public:
327 
328  bool itemize(Parse_context *pc, Item **res) override;
329  bool resolve_type(THD *thd) override;
330  String *val_str(String *a) override;
331 
332  const char *func_name() const override { return "random_bytes"; }
333 };
334 
336  String tmp_value{"", 0, collation.collation}; // Initialize to empty
337  public:
339  : Item_str_func(pos, opt_list) {}
341  Item_func_concat(const POS &pos, Item *a, Item *b)
342  : Item_str_func(pos, a, b) {}
343 
344  String *val_str(String *) override;
345  bool resolve_type(THD *thd) override;
346  const char *func_name() const override { return "concat"; }
347 };
348 
350  String tmp_value{"", 0, collation.collation}; // Initialize to empty
351  public:
353  null_on_null = false;
354  }
356  : Item_str_func(pos, opt_list) {
357  null_on_null = false;
358  }
359  String *val_str(String *) override;
360  bool resolve_type(THD *thd) override;
361  const char *func_name() const override { return "concat_ws"; }
362 };
363 
366 
367  public:
370 
371  String *val_str(String *) override;
372  bool resolve_type(THD *thd) override;
373  const char *func_name() const override { return "reverse"; }
374 };
375 
378  /// Holds result in case we need to allocate our own result buffer.
380 
381  public:
382  Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
383  : Item_str_func(pos, org, find, replace) {}
384  String *val_str(String *) override;
385  bool resolve_type(THD *thd) override;
386  const char *func_name() const override { return "replace"; }
387 };
388 
391  /// Holds result in case we need to allocate our own result buffer.
393 
394  public:
396  Item *new_str)
397  : Item_str_func(pos, org, start, length, new_str) {}
398  String *val_str(String *) override;
399  bool resolve_type(THD *thd) override;
400  const char *func_name() const override { return "insert"; }
401 };
402 
403 class Item_str_conv : public Item_str_func {
404  protected:
408 
409  public:
410  Item_str_conv(const POS &pos, Item *item) : Item_str_func(pos, item) {}
411  String *val_str(String *) override;
412 };
413 
415  public:
416  Item_func_lower(const POS &pos, Item *item) : Item_str_conv(pos, item) {}
417  const char *func_name() const override { return "lower"; }
418  bool resolve_type(THD *) override;
419 };
420 
422  public:
423  Item_func_upper(const POS &pos, Item *item) : Item_str_conv(pos, item) {}
424  const char *func_name() const override { return "upper"; }
425  bool resolve_type(THD *) override;
426 };
427 
430 
431  public:
432  Item_func_left(const POS &pos, Item *a, Item *b) : Item_str_func(pos, a, b) {}
433  String *val_str(String *) override;
434  bool resolve_type(THD *thd) override;
435  const char *func_name() const override { return "left"; }
436 };
437 
440 
441  public:
442  Item_func_right(const POS &pos, Item *a, Item *b)
443  : Item_str_func(pos, a, b) {}
444  String *val_str(String *) override;
445  bool resolve_type(THD *thd) override;
446  const char *func_name() const override { return "right"; }
447 };
448 
451 
453 
454  public:
456  Item_func_substr(const POS &pos, Item *a, Item *b) : super(pos, a, b) {}
457 
458  Item_func_substr(Item *a, Item *b, Item *c) : Item_str_func(a, b, c) {}
459  Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
460  : super(pos, a, b, c) {}
461 
462  String *val_str(String *) override;
463  bool resolve_type(THD *thd) override;
464  const char *func_name() const override { return "substr"; }
465 };
466 
469 
470  public:
472  : Item_str_func(pos, a, b, c) {}
473  String *val_str(String *) override;
474  bool resolve_type(THD *) override;
475  const char *func_name() const override { return "substring_index"; }
476 };
477 
479  public:
480  /**
481  Why all the trim modes in this enum?
482  We need to maintain parsing information, so that our print() function
483  can reproduce correct messages and view definitions.
484  */
485  enum TRIM_MODE {
492  };
493 
494  private:
496  String remove;
498  const bool m_trim_leading;
499  const bool m_trim_trailing;
500 
501  public:
503  : Item_str_func(a, b),
504  m_trim_mode(tm),
507 
508  Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
509  : Item_str_func(pos, a, b),
510  m_trim_mode(tm),
513 
515  : Item_str_func(a),
516  m_trim_mode(tm),
519 
521  : Item_str_func(pos, a),
522  m_trim_mode(tm),
525 
526  bool trim_leading() const {
529  }
530 
531  bool trim_trailing() const {
534  }
535 
536  String *val_str(String *) override;
537  bool resolve_type(THD *) override;
538  const char *func_name() const override {
539  switch (m_trim_mode) {
540  case TRIM_BOTH_DEFAULT:
541  return "trim";
542  case TRIM_BOTH:
543  return "trim";
544  case TRIM_LEADING:
545  return "ltrim";
546  case TRIM_TRAILING:
547  return "rtrim";
548  case TRIM_LTRIM:
549  return "ltrim";
550  case TRIM_RTRIM:
551  return "rtrim";
552  }
553  return NULL;
554  }
555  void print(const THD *thd, String *str,
556  enum_query_type query_type) const override;
557 };
558 
560  public:
562  : Item_func_trim(pos, a, TRIM_LTRIM) {}
563 };
564 
566  public:
568  : Item_func_trim(pos, a, TRIM_RTRIM) {}
569 };
570 
573 
574  public:
577  }
578  explicit Item_func_sysconst(const POS &pos) : super(pos) {
580  }
581 
582  Item *safe_charset_converter(THD *thd, const CHARSET_INFO *tocs) override;
583  /*
584  Used to create correct Item name in new converted item in
585  safe_charset_converter, return string representation of this function
586  call
587  */
588  virtual const Name_string fully_qualified_func_name() const = 0;
589  bool check_function_as_value_generator(uchar *checker_args) override {
592  checker_args);
593  func_arg->banned_function_name = func_name();
594  return ((func_arg->source == VGS_GENERATED_COLUMN) ||
595  (func_arg->source == VGS_CHECK_CONSTRAINT));
596  }
597 };
598 
601 
602  public:
604 
605  bool itemize(Parse_context *pc, Item **res) override;
606 
607  String *val_str(String *) override;
608  bool resolve_type(THD *) override {
610  maybe_null = true;
611  return false;
612  }
613  const char *func_name() const override { return "database"; }
614  const Name_string fully_qualified_func_name() const override {
615  return NAME_STRING("database()");
616  }
617 };
618 
621 
622  protected:
623  bool init(const char *user, const char *host);
625  return save_str_value_in_field(field, &str_value);
626  }
627 
628  public:
630  explicit Item_func_user(const POS &pos) : super(pos) {
632  }
633 
634  bool itemize(Parse_context *pc, Item **res) override;
635 
636  String *val_str(String *) override {
637  DBUG_ASSERT(fixed == 1);
638  return (null_value ? 0 : &str_value);
639  }
640  bool fix_fields(THD *thd, Item **ref) override;
641  bool check_function_as_value_generator(uchar *checker_args) override {
644  checker_args);
645  func_arg->banned_function_name = func_name();
646  return true;
647  }
648  bool resolve_type(THD *) override {
650  return false;
651  }
652  const char *func_name() const override { return "user"; }
653  const Name_string fully_qualified_func_name() const override {
654  return NAME_STRING("user()");
655  }
656 };
657 
660 
662 
663  public:
664  explicit Item_func_current_user(const POS &pos) : super(pos) {}
665 
666  bool itemize(Parse_context *pc, Item **res) override;
667 
668  bool fix_fields(THD *thd, Item **ref) override;
669  const char *func_name() const override { return "current_user"; }
670  const Name_string fully_qualified_func_name() const override {
671  return NAME_STRING("current_user()");
672  }
673 };
674 
677 
678  public:
681  String *val_str(String *) override;
682  bool resolve_type(THD *thd) override;
683  const char *func_name() const override { return "soundex"; }
684 };
685 
687  public:
688  Item_func_elt(const POS &pos, PT_item_list *opt_list)
689  : Item_str_func(pos, opt_list) {}
690  double val_real() override;
691  longlong val_int() override;
692  String *val_str(String *str) override;
693  bool resolve_type(THD *thd) override;
694  const char *func_name() const override { return "elt"; }
695 };
696 
699 
702 
703  public:
704  Item_func_make_set(const POS &pos, Item *a, PT_item_list *opt_list)
705  : Item_str_func(pos, opt_list), item(a) {}
706 
707  bool itemize(Parse_context *pc, Item **res) override;
708  String *val_str(String *str) override;
709  bool fix_fields(THD *thd, Item **ref) override {
710  DBUG_ASSERT(fixed == 0);
711  bool res = ((!item->fixed && item->fix_fields(thd, &item)) ||
712  item->check_cols(1) || Item_func::fix_fields(thd, ref));
714  return res;
715  }
716  void split_sum_func(THD *thd, Ref_item_array ref_item_array,
717  List<Item> &fields) override;
718  bool resolve_type(THD *) override;
719  void update_used_tables() override;
720  const char *func_name() const override { return "make_set"; }
721 
722  bool walk(Item_processor processor, enum_walk walk, uchar *arg) override {
723  if ((walk & enum_walk::PREFIX) && (this->*processor)(arg)) return true;
724  if (item->walk(processor, walk, arg)) return true;
725  for (uint i = 0; i < arg_count; i++) {
726  if (args[i]->walk(processor, walk, arg)) return true;
727  }
728  return ((walk & enum_walk::POSTFIX) && (this->*processor)(arg));
729  }
730 
731  Item *transform(Item_transformer transformer, uchar *arg) override;
732  void print(const THD *thd, String *str,
733  enum_query_type query_type) const override;
734 };
735 
739 
740  public:
741  Item_func_format(const POS &pos, Item *org, Item *dec)
742  : Item_str_ascii_func(pos, org, dec) {}
743  Item_func_format(const POS &pos, Item *org, Item *dec, Item *lang)
744  : Item_str_ascii_func(pos, org, dec, lang) {}
745 
746  MY_LOCALE *get_locale(Item *item);
747  String *val_str_ascii(String *) override;
748  bool resolve_type(THD *thd) override;
749  const char *func_name() const override { return "format"; }
750  void print(const THD *thd, String *str,
751  enum_query_type query_type) const override;
752 };
753 
755  public:
757  : Item_str_func(pos, list) {
759  }
761  : Item_str_func(pos, list) {
762  collation.set(cs);
763  }
764  String *val_str(String *) override;
765  bool resolve_type(THD *) override {
767  return false;
768  }
769  const char *func_name() const override { return "char"; }
770 };
771 
774 
775  public:
776  Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
777  : Item_str_func(pos, arg1, arg2) {}
778  String *val_str(String *) override;
779  bool resolve_type(THD *thd) override;
780  const char *func_name() const override { return "repeat"; }
781 };
782 
784  public:
785  Item_func_space(const POS &pos, Item *arg1) : Item_str_func(pos, arg1) {}
786  String *val_str(String *) override;
787  bool resolve_type(THD *) override;
788  const char *func_name() const override { return "space"; }
789 };
790 
793 
794  public:
795  Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
796  : Item_str_func(pos, arg1, arg2, arg3) {}
797  String *val_str(String *) override;
798  bool resolve_type(THD *) override;
799  const char *func_name() const override { return "rpad"; }
800 };
801 
804 
805  public:
806  Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
807  : Item_str_func(pos, arg1, arg2, arg3) {}
808  String *val_str(String *) override;
809  bool resolve_type(THD *) override;
810  const char *func_name() const override { return "lpad"; }
811 };
812 
814  /// Buffer to store the binary result
816 
817  public:
819  : Item_str_func(pos, arg1) {}
820  Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
821  : Item_str_func(pos, arg1, arg2) {}
822  String *val_str(String *) override;
823  bool resolve_type(THD *) override;
824  const char *func_name() const override { return "uuid_to_bin"; }
825 };
826 
828  /// Buffer to store the text result
830 
831  public:
833  : Item_str_ascii_func(pos, arg1) {}
834  Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
835  : Item_str_ascii_func(pos, arg1, arg2) {}
836  String *val_str_ascii(String *) override;
837  bool resolve_type(THD *thd) override;
838  const char *func_name() const override { return "bin_to_uuid"; }
839 };
840 
843 
844  public:
846  longlong val_int() override;
847  const char *func_name() const override { return "is_uuid"; }
848  bool resolve_type(THD *thd) override {
849  bool res = super::resolve_type(thd);
850  maybe_null = true;
851  return res;
852  }
853 };
854 
856  public:
857  Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
858  : Item_str_func(pos, a, b, c) {}
859  const char *func_name() const override { return "conv"; }
860  String *val_str(String *) override;
861  bool resolve_type(THD *) override;
862 };
863 
866 
867  public:
869  const char *func_name() const override { return "hex"; }
870  String *val_str_ascii(String *) override;
871  bool resolve_type(THD *) override {
873  return false;
874  }
875 };
876 
879 
880  public:
882  /* there can be bad hex strings */
883  maybe_null = 1;
884  }
885  const char *func_name() const override { return "unhex"; }
886  String *val_str(String *) override;
887  bool resolve_type(THD *) override {
889  return false;
890  }
891 };
892 
893 #ifndef DBUG_OFF
895  protected:
898  const bool is_min;
899 
900  public:
901  Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
902  : Item_str_func(pos, a, b), is_min(is_min_arg) {
903  maybe_null = true;
904  }
905  String *val_str(String *) override;
906  bool resolve_type(THD *) override {
908  return false;
909  }
910 };
911 
913  public:
915  : Item_func_like_range(pos, a, b, true) {}
916  const char *func_name() const override { return "like_range_min"; }
917 };
918 
920  public:
922  : Item_func_like_range(pos, a, b, false) {}
923  const char *func_name() const override { return "like_range_max"; }
924 };
925 #endif
926 
932 
933  public:
934  Item_char_typecast(Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
935  : Item_str_func(a), cast_length(length_arg), cast_cs(cs_arg) {}
936  Item_char_typecast(const POS &pos, Item *a, longlong length_arg,
937  const CHARSET_INFO *cs_arg)
938  : Item_str_func(pos, a), cast_length(length_arg), cast_cs(cs_arg) {}
939  enum Functype functype() const override { return TYPECAST_FUNC; }
940  bool eq(const Item *item, bool binary_cmp) const override;
941  const char *func_name() const override { return "cast_as_char"; }
942  String *val_str(String *a) override;
943  bool resolve_type(THD *) override;
944  void print(const THD *thd, String *str,
945  enum_query_type query_type) const override;
946 };
947 
949  public:
951  String *val_str(String *a) override {
952  DBUG_ASSERT(fixed == 1);
953  String *tmp = args[0]->val_str(a);
954  null_value = args[0]->null_value;
955  if (tmp) tmp->set_charset(&my_charset_bin);
956  return tmp;
957  }
958  bool resolve_type(THD *) override {
959  // Determine binary string length from max length of argument in bytes
961  return false;
962  }
963  void print(const THD *thd, String *str,
964  enum_query_type query_type) const override;
965  const char *func_name() const override { return "cast_as_binary"; }
966  enum Functype functype() const override { return TYPECAST_FUNC; }
967 };
968 
971 
973 
974  public:
976 
977  bool itemize(Parse_context *pc, Item **res) override;
978  String *val_str(String *) override;
979  const char *func_name() const override { return "load_file"; }
980  bool resolve_type(THD *) override {
983  maybe_null = true;
984  return false;
985  }
986  bool check_function_as_value_generator(uchar *checker_args) override {
989  checker_args);
990  func_arg->banned_function_name = func_name();
991  return true;
992  }
993 };
994 
996  public:
997  Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
998  : Item_str_func(pos, a, b, c) {}
999  Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
1000  : Item_str_func(pos, a, b, c, d) {}
1001  Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d,
1002  Item *e)
1003  : Item_str_func(pos, a, b, c, d, e) {}
1004  String *val_str(String *str) override;
1005  bool resolve_type(THD *) override;
1006  const char *func_name() const override { return "export_set"; }
1007 };
1008 
1011 
1012  public:
1014  const char *func_name() const override { return "quote"; }
1015  String *val_str(String *) override;
1016  bool resolve_type(THD *thd) override;
1017 };
1018 
1020  /// Marks weather the underlying Item is constant and may be cached.
1023 
1024  public:
1025  /**
1026  The following types of conversions are considered safe:
1027 
1028  Conversion to and from "binary".
1029  Conversion to Unicode.
1030  Other kind of conversions are potentially lossy.
1031  */
1032  bool safe;
1033  const CHARSET_INFO *conv_charset; // keep it public
1035  : Item_str_func(pos, a) {
1036  conv_charset = cs;
1037  use_cached_value = false;
1038  safe = false;
1039  }
1040 
1042  bool cache_if_const)
1043  : Item_str_func(a) {
1044  DBUG_ASSERT(args[0]->fixed);
1045 
1046  conv_charset = cs;
1047  if (cache_if_const && args[0]->may_evaluate_const(thd)) {
1048  uint errors = 0;
1049  String tmp, *str = args[0]->val_str(&tmp);
1050  if (!str || str_value.copy(str->ptr(), str->length(), str->charset(),
1051  conv_charset, &errors))
1052  null_value = 1;
1053  use_cached_value = true;
1055  safe = (errors == 0);
1056  } else {
1057  use_cached_value = false;
1058  // Marks weather the conversion is safe
1060  cs == &my_charset_bin || (cs->state & MY_CS_UNICODE));
1061  }
1062  }
1063  String *val_str(String *) override;
1064  bool resolve_type(THD *) override;
1065  const char *func_name() const override { return "convert"; }
1066  void print(const THD *thd, String *str,
1067  enum_query_type query_type) const override;
1068 };
1069 
1072 
1074 
1075  public:
1077  const LEX_STRING &collation_string_arg)
1078  : super(pos, a, NULL), collation_string(collation_string_arg) {}
1079 
1080  bool itemize(Parse_context *pc, Item **res) override;
1081  String *val_str(String *) override;
1082  bool resolve_type(THD *) override;
1083  bool eq(const Item *item, bool binary_cmp) const override;
1084  const char *func_name() const override { return "collate"; }
1085  enum Functype functype() const override { return COLLATE_FUNC; }
1086  void print(const THD *thd, String *str,
1087  enum_query_type query_type) const override;
1089  /* this function is transparent for view updating */
1090  return args[0]->field_for_view_update();
1091  }
1092 };
1093 
1095  public:
1097  null_on_null = false;
1098  }
1099  String *val_str(String *) override;
1100  const char *func_name() const override { return "charset"; }
1101  bool resolve_type(THD *) override {
1103  maybe_null = false;
1104  return false;
1105  }
1106 };
1107 
1109  public:
1111  null_on_null = false;
1112  }
1113  String *val_str(String *) override;
1114  const char *func_name() const override { return "collation"; }
1115  bool resolve_type(THD *) override {
1117  maybe_null = false;
1118  return false;
1119  }
1120 };
1121 
1124 
1130  const bool as_binary;
1131 
1132  public:
1133  Item_func_weight_string(const POS &pos, Item *a, uint result_length_arg,
1134  uint num_codepoints_arg, uint flags_arg,
1135  bool as_binary_arg = false)
1136  : Item_str_func(pos, a),
1137  flags(flags_arg),
1138  num_codepoints(num_codepoints_arg),
1139  result_length(result_length_arg),
1140  field(NULL),
1141  as_binary(as_binary_arg) {}
1142 
1143  bool itemize(Parse_context *pc, Item **res) override;
1144 
1145  const char *func_name() const override { return "weight_string"; }
1146  bool eq(const Item *item, bool binary_cmp) const override;
1147  String *val_str(String *) override;
1148  bool resolve_type(THD *) override;
1149  void print(const THD *thd, String *str,
1150  enum_query_type query_type) const override;
1151 };
1152 
1155 
1156  public:
1158  unsigned_flag = true;
1159  }
1160  const char *func_name() const override { return "crc32"; }
1161  bool resolve_type(THD *) override {
1162  max_length = 10;
1163  return false;
1164  }
1165  longlong val_int() override;
1166 };
1167 
1170 
1171  public:
1173  : Item_int_func(pos, a) {}
1174  const char *func_name() const override { return "uncompressed_length"; }
1175  bool resolve_type(THD *) override {
1176  max_length = 10;
1177  return false;
1178  }
1179  longlong val_int() override;
1180 };
1181 
1184 
1185  public:
1187  bool resolve_type(THD *) override {
1188  set_data_type_string((args[0]->max_length * 120U) / 100U + 12U);
1189  return false;
1190  }
1191  const char *func_name() const override { return "compress"; }
1192  String *val_str(String *str) override;
1193 };
1194 
1197 
1198  public:
1200  bool resolve_type(THD *) override {
1201  maybe_null = true;
1203  return false;
1204  }
1205  const char *func_name() const override { return "uncompress"; }
1206  String *val_str(String *str) override;
1207 };
1208 
1211 
1212  public:
1214  explicit Item_func_uuid(const POS &pos) : Item_str_func(pos) {}
1215 
1216  bool itemize(Parse_context *pc, Item **res) override;
1218  return RAND_TABLE_BIT;
1219  }
1220  bool resolve_type(THD *) override;
1221  const char *func_name() const override { return "uuid"; }
1222  String *val_str(String *) override;
1223  bool check_function_as_value_generator(uchar *checker_args) override {
1226  checker_args);
1227  func_arg->banned_function_name = func_name();
1228  return ((func_arg->source == VGS_GENERATED_COLUMN) ||
1229  (func_arg->source == VGS_CHECK_CONSTRAINT));
1230  }
1231 };
1232 
1235 
1236  public:
1238  : Item_str_ascii_func(pos, a, b) {}
1239  bool resolve_type(THD *) override;
1240  const char *func_name() const override { return "gtid_subtract"; }
1241  String *val_str_ascii(String *) override;
1242 };
1243 
1246 
1247  public:
1249  explicit Item_func_current_role(const POS &pos)
1250  : super(pos), value_cache_set(false) {}
1251  const char *func_name() const override { return "current_role"; }
1252  void cleanup() override;
1253  String *val_str(String *) override;
1254  bool resolve_type(THD *) override {
1256  return false;
1257  }
1258  const Name_string fully_qualified_func_name() const override {
1259  return NAME_STRING("current_role()");
1260  }
1261 
1262  protected:
1263  void set_current_role(THD *thd);
1264  /** a flag whether @ref value_cache is set or not */
1266  /**
1267  @brief Cache for the result value
1268 
1269  Set by init(). And consumed by val_str().
1270  Needed to avoid re-calculation of the current_roles() in the
1271  course of the query.
1272  */
1274 };
1275 
1278 
1279  public:
1282  : super(pos), value_cache_set(false) {}
1283  String *val_str(String *) override;
1284  void cleanup() override;
1285 
1286  bool resolve_type(THD *) override {
1288  return false;
1289  }
1290 
1291  const char *func_name() const override { return "roles_graphml"; }
1292 
1293  const Name_string fully_qualified_func_name() const override {
1294  return NAME_STRING("roles_graphml()");
1295  }
1296 
1297  protected:
1298  bool calculate_graphml(THD *thd);
1299  /**
1300  @brief Cache for the result value
1301 
1302  Set by init(). And consumed by val_str().
1303  Needed to avoid re-calculation of the current_roles() in the
1304  course of the query.
1305  */
1307 
1308  /** Set to true if @ref value_cache is set */
1310 };
1311 
1313  public:
1315  : Item_str_func(pos, a, b, c) {}
1316 
1317  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1318  bool resolve_type(THD *) override {
1319  /*
1320  There are 14 kinds of grants, with a max length
1321  per privileges is 11 chars.
1322  So, setting max approximate to 200.
1323  */
1325  maybe_null = true;
1326  null_on_null = false;
1327 
1328  return false;
1329  }
1330 
1331  const char *func_name() const override { return "get_dd_column_privileges"; }
1332 
1333  String *val_str(String *) override;
1334 };
1335 
1337  public:
1339  : Item_str_func(pos, a, b, c) {}
1340 
1341  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1342  bool resolve_type(THD *) override {
1343  // maximum string length of all options is expected
1344  // to be less than 256 characters.
1346  maybe_null = false;
1347  null_on_null = false;
1348 
1349  return false;
1350  }
1351 
1352  const char *func_name() const override { return "get_dd_create_options"; }
1353 
1354  String *val_str(String *) override;
1355 };
1356 
1358  public:
1360  : Item_str_func(pos, list) {}
1361 
1362  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1363  bool resolve_type(THD *) override {
1364  /*
1365  maximum expected string length to be less than 2048 characters,
1366  which is same as size of column holding comments in dictionary,
1367  i.e., the mysql.tables.comment DD column.
1368  */
1370  maybe_null = 1;
1371  null_on_null = false;
1372 
1373  return false;
1374  }
1375 
1376  const char *func_name() const override {
1377  return "internal_get_comment_or_error";
1378  }
1379 
1380  String *val_str(String *) override;
1381 };
1382 
1384  public:
1386  : Item_str_func(pos, a, b) {}
1387 
1388  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1389  bool resolve_type(THD *) override {
1390  /* maximum string length of the property value is expected
1391  to be less than 256 characters. */
1392  max_length = 256;
1393  maybe_null = false;
1394  null_on_null = false;
1395 
1396  return false;
1397  }
1398 
1399  const char *func_name() const override {
1400  return "get_dd_tablespace_private_data";
1401  }
1402 
1403  String *val_str(String *) override;
1404 };
1405 
1407  public:
1409  : Item_str_func(pos, a, b) {}
1410 
1411  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1412  bool resolve_type(THD *) override {
1413  /* maximum string length of the property value is expected
1414  to be less than 256 characters. */
1415  max_length = 256;
1416  maybe_null = false;
1417  null_on_null = false;
1418 
1419  return false;
1420  }
1421 
1422  const char *func_name() const override { return "get_dd_index_private_data"; }
1423 
1424  String *val_str(String *) override;
1425 };
1426 
1428  public:
1430  : Item_str_func(pos, a) {}
1431 
1432  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1433  bool resolve_type(THD *) override {
1434  // maximum string length of all options is expected
1435  // to be less than 256 characters.
1437  maybe_null = 1;
1438  null_on_null = false;
1439 
1440  return false;
1441  }
1442 
1443  const char *func_name() const override {
1444  return "internal_get_partition_nodegroup";
1445  }
1446 
1447  String *val_str(String *) override;
1448 };
1449 
1451  public:
1453  Item *d)
1454  : Item_str_func(pos, a, b, c, d) {}
1455 
1456  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1457  bool resolve_type(THD *) override {
1458  // maximum string length of all options is expected
1459  // to be less than 256 characters.
1461  maybe_null = 1;
1462  null_on_null = false;
1463 
1464  return false;
1465  }
1466 
1467  const char *func_name() const override { return "internal_tablespace_type"; }
1468 
1469  String *val_str(String *) override;
1470 };
1471 
1473  public:
1475  Item *b, Item *c, Item *d)
1476  : Item_str_func(pos, a, b, c, d) {}
1477 
1478  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1479  bool resolve_type(THD *) override {
1480  // maximum string length of all options is expected
1481  // to be less than 256 characters.
1483  maybe_null = 1;
1484  null_on_null = false;
1485 
1486  return false;
1487  }
1488 
1489  const char *func_name() const override {
1490  return "internal_tablespace_logfile_group_name";
1491  }
1492 
1493  String *val_str(String *) override;
1494 };
1495 
1497  public:
1499  Item *c, Item *d)
1500  : Item_str_func(pos, a, b, c, d) {}
1501 
1502  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1503  bool resolve_type(THD *) override {
1504  // maximum string length of all options is expected
1505  // to be less than 256 characters.
1507  maybe_null = 1;
1508  null_on_null = false;
1509 
1510  return false;
1511  }
1512 
1513  const char *func_name() const override {
1514  return "internal_tablespace_status";
1515  }
1516  String *val_str(String *) override;
1517 };
1518 
1520  public:
1522  Item *c, Item *d)
1523  : Item_str_func(pos, a, b, c, d) {}
1524 
1525  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1526  bool resolve_type(THD *) override {
1527  // maximum string length of all options is expected
1528  // to be less than 256 characters.
1530  maybe_null = 1;
1531  null_on_null = false;
1532 
1533  return false;
1534  }
1535 
1536  const char *func_name() const override {
1537  return "internal_tablespace_row_format";
1538  }
1539 
1540  String *val_str(String *) override;
1541 };
1542 
1544  public:
1546  Item *d)
1547  : Item_str_func(pos, a, b, c, d) {}
1548 
1549  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1550  bool resolve_type(THD *) override {
1551  // maximum string length of all options is expected
1552  // to be less than 256 characters.
1554  maybe_null = 1;
1555  null_on_null = false;
1556 
1557  return false;
1558  }
1559 
1560  const char *func_name() const override { return "internal_tablespace_extra"; }
1561 
1562  String *val_str(String *) override;
1563 };
1564 
1566  public:
1568  : Item_str_func(pos, list) {}
1569 
1570  bool resolve_type(THD *) override {
1571  max_length = 1024;
1572  maybe_null = false;
1574  return false;
1575  }
1576 
1577  const char *func_name() const override { return "convert_cpu_id_mask"; }
1578 
1579  String *val_str(String *) override;
1580 };
1581 
1583  public:
1585  : Item_str_func(pos, a, b) {}
1586 
1587  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1588  bool resolve_type(THD *) override {
1590  maybe_null = true;
1591  null_on_null = false;
1592 
1593  return false;
1594  }
1595 
1596  const char *func_name() const override { return "get_dd_property_key_value"; }
1597 
1598  String *val_str(String *) override;
1599 };
1600 
1602  public:
1604  : Item_str_func(pos, a, b) {}
1605 
1606  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1607  bool resolve_type(THD *) override {
1609  maybe_null = true;
1610  null_on_null = false;
1611 
1612  return false;
1613  }
1614 
1615  const char *func_name() const override { return "remove_dd_property_key"; }
1616 
1617  String *val_str(String *) override;
1618 };
1619 
1621  public:
1623  : Item_str_func(pos, a, b) {}
1624 
1625  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1626  bool resolve_type(THD *) override {
1627  // maximum string length of all options is expected
1628  // to be less than 256 characters.
1630  maybe_null = true;
1631  null_on_null = false;
1632 
1633  return false;
1634  }
1635 
1636  const char *func_name() const override {
1637  return "convert_interval_to_user_interval";
1638  }
1639 
1640  String *val_str(String *) override;
1641 };
1642 
1643 #endif /* ITEM_STRFUNC_INCLUDED */
Definition: item_strfunc.h:864
Item_str_func super
Definition: item_strfunc.h:572
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1652
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3135
static bool replace
Definition: mysqlimport.cc:64
Item *(Item::* Item_transformer)(uchar *arg)
Definition: item.h:663
const char * func_name() const override
Definition: item_strfunc.h:1596
static const size_t BYTE_LENGTH
The number of bytes in the data of a Uuid.
Definition: uuid.h:136
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:308
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1526
Definition: item.h:3287
unsigned long long int ulonglong
Definition: my_inttypes.h:69
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:282
longlong val_int() override
Definition: item_strfunc.cc:171
virtual const Name_string fully_qualified_func_name() const =0
String * val_str(String *str) override
Definition: item_strfunc.h:187
const char * func_name() const override
Definition: item_strfunc.h:257
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:349
String * val_str(String *) override
Definition: item_strfunc.cc:1750
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1626
unsigned char uchar
Definition: my_inttypes.h:49
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:820
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1550
Our own string classes, used pervasively throughout the executor.
const char * func_name() const override
Definition: item_strfunc.h:346
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:653
t pos
Definition: dbug_analyze.cc:148
Item_result
Type of the user defined function return slot and arguments
Definition: udf_registration_types.h:38
const CHARSET_INFO * from_cs
Definition: item_strfunc.h:929
const char * func_name() const override
Definition: item_strfunc.h:916
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1306
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:598
not valid for UDFs
Definition: udf_registration_types.h:40
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:254
uint state
Definition: m_ctype.h:362
Item_func_current_role()
Definition: item_strfunc.h:1248
ulonglong table_map
Definition: my_table_map.h:32
longlong val_int() override
Definition: item_strfunc.cc:3728
String * val_str(String *) override
Definition: item_strfunc.cc:4300
String lpad_str
Definition: item_strfunc.h:803
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:382
Definition: mysql_lex_string.h:34
const char * func_name() const override
Definition: item_strfunc.h:810
Definition: item_strfunc.h:783
#define DIGEST_HASH_TO_STRING_LENGTH
SHA-256 = 32 bytes of binary = 64 printable characters.
Definition: sql_digest.h:53
T pointer_cast(void *p)
Casts from one pointer type, to another, without using reinterpret_cast or C-style cast: foo f; bar *...
Definition: template_utils.h:70
virtual bool walk(Item_processor processor, enum_walk walk, uchar *arg)
Traverses a tree of Items in prefix and/or postfix order.
Definition: item.h:1955
const char * func_name() const override
Definition: item_strfunc.h:720
Definition: item_strfunc.h:772
String tmp_value
Definition: item_strfunc.h:336
Name_resolution_context * context
Definition: item_strfunc.h:661
Definition: item_strfunc.h:948
const char * func_name() const override
Definition: item_strfunc.h:1145
enum Functype functype() const override
Definition: item_strfunc.h:1478
String tmp_value
Definition: item_strfunc.h:279
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1115
enum Functype functype() const override
Definition: item_strfunc.h:1549
String * val_str(String *) override
Definition: item_strfunc.cc:4757
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1690
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:567
char m_text_buf[binary_log::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:829
const char * func_name() const override
Definition: item_strfunc.h:1291
Definition: item_strfunc.h:364
void set_data_type_blob(uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1136
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1274
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3310
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:252
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3103
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:213
enum Functype functype() const override
Definition: item_strfunc.h:1432
const string name("\ame\)
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:523
String * val_str(String *str) override
Definition: item_strfunc.cc:3797
Item_str_func super
Definition: item_strfunc.h:698
Definition: item_strfunc.h:1496
const char * func_name() const override
Definition: item_strfunc.h:332
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:614
const char * func_name() const override
Definition: item_strfunc.h:1467
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1249
const char * func_name() const override
Definition: item_strfunc.h:1443
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:326
String buf2
Definition: item_strfunc.h:1234
Item_func_weight_string(const POS &pos, Item *a, uint result_length_arg, uint num_codepoints_arg, uint flags_arg, bool as_binary_arg=false)
Definition: item_strfunc.h:1133
File containing constants that can be used throughout the server.
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:87
Definition: item_strfunc.h:428
bool unsigned_flag
Definition: item.h:2701
Some integer typedefs for easier portability.
Item_str_func super
Definition: item_strfunc.h:1123
String tmp_value
Definition: item_strfunc.h:377
Item_func_concat_ws(List< Item > &list)
Definition: item_strfunc.h:352
String * val_str(String *) override
Definition: item_strfunc.cc:2845
Definition: item_strfunc.h:927
String tmp_value
Definition: item_strfunc.h:931
Definition: item_strfunc.h:389
Item_str_ascii_func()
Definition: item_strfunc.h:160
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:977
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:171
A wrapper class which provides array bounds checking.
Definition: sql_array.h:41
Definition: item_strfunc.h:335
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1293
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:652
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:674
String * val_str(String *) override
Definition: item_strfunc.h:636
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:868
String * val_str(String *) override
Definition: item_strfunc.cc:4462
#define USERNAME_CHAR_LENGTH
Definition: mysql_com.h:62
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:103
String tmp_value
Definition: item_strfunc.h:972
String * val_str(String *) override
Definition: item_strfunc.cc:1148
Definition: item_strfunc.h:559
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1347
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:293
bool copy()
Definition: sql_string.cc:191
Definition: item_strfunc.h:1108
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:270
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1261
String * val_str(String *) override
Definition: item_strfunc.cc:3031
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:664
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3345
const char * func_name() const override
Definition: item_strfunc.h:446
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:295
Item_str_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:91
String tmp_value
Definition: item_strfunc.h:803
const char * func_name() const override
Definition: item_strfunc.h:285
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2095
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:164
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:457
enum Functype functype() const override
Definition: item_strfunc.h:966
Definition: item_strfunc.h:619
Item_func_user(const POS &pos)
Definition: item_strfunc.h:630
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1308
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:4584
const char * func_name() const override
Definition: item_strfunc.h:1114
CHARSET_INFO * mysqld_collation_get_by_name(const char *name, CHARSET_INFO *name_cs=system_charset_info)
Get collation by name, send error to client on failure.
Definition: item_strfunc.cc:4653
Definition: field.h:707
const char * func_name() const override
Definition: item_strfunc.h:923
String * val_str(String *) override
Definition: item_strfunc.cc:2946
const char * func_name() const override
Definition: item_strfunc.h:424
Definition: item_func.h:81
longlong val_int() override
Definition: item_strfunc.cc:2666
String * val_str(String *) override
Definition: item_strfunc.cc:2887
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1314
#define MY_REPERTOIRE_ASCII
Definition: m_ctype.h:133
Definition: field.h:182
virtual bool fix_fields(THD *, Item **)
Definition: item.cc:4374
Definition: item_strfunc.h:1195
const char * func_name() const override
Definition: item_strfunc.h:1331
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:497
Definition: item_strfunc.h:278
const char * func_name() const override
Definition: item_strfunc.h:1006
String tmp_value
Definition: item_strfunc.h:350
Item_str_func super
Definition: item_strfunc.h:1071
Definition: item_strfunc.h:1233
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:795
Sergei Dialog Client Authentication NULL
Definition: dialog.cc:352
String tmp_value
Definition: item_strfunc.h:1022
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2991
String buffer
Definition: item_strfunc.h:1196
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1318
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:224
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:432
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:670
uint arg_count
Definition: item_func.h:109
String min_str
Definition: item_strfunc.h:896
Value_generator_source source
Definition: item.h:492
String * val_str(String *) override
Definition: item_strfunc.cc:533
Definition: item_strfunc.h:1357
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1254
const char * func_name() const override
Definition: item_strfunc.h:1489
const char * func_name() const override
Definition: item_strfunc.h:400
String tmp_value
Definition: item_strfunc.h:365
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:887
longlong val_int() override
Definition: item_strfunc.cc:3699
Definition: item_strfunc.h:1543
Definition: item_func.h:162
Item * transform(Item_transformer transformer, uchar *arg) override
Transform an Item_func object with a transformer callback function.
Definition: item_strfunc.cc:2234
virtual String * val_str_ascii(String *) override=0
const char * func_name() const override
Definition: item_strfunc.h:301
const char * func_name() const override
Definition: item_strfunc.h:838
Item_char_typecast(Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:934
class udf_list * list
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1157
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1265
Item_func_roles_graphml()
Definition: item_strfunc.h:1280
virtual Item_field * field_for_view_update()
Definition: item.h:2357
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:882
const char * func_name() const override
Definition: item_strfunc.h:769
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3512
String buffer
Definition: item_strfunc.h:1183
String * val_str(String *) override
Definition: item_strfunc.cc:4000
bool get_time(MYSQL_TIME *ltime) override
Definition: item_strfunc.h:137
#define RAND_TABLE_BIT
Definition: sql_const.h:115
enum Item_result result_type() const override
Definition: item_strfunc.h:140
enum_walk
Enumeration for {Item,SELECT_LEX[_UNIT],Table_function}walk.
Definition: sql_const.h:435
const char * func_name() const override
Definition: item_strfunc.h:208
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:4022
Item_str_func(const POS &pos, Item *a)
Definition: item_strfunc.h:83
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1276
String * val_str(String *) override
Definition: item_strfunc.cc:1031
const char * func_name() const override
Definition: item_strfunc.h:1513
String * val_str(String *) override
Definition: item_strfunc.cc:4405
String tmp_value
Definition: item_strfunc.h:429
MY_LOCALE * locale
Definition: item_strfunc.h:738
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:96
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:578
enum Functype functype() const override
Definition: item_strfunc.h:1388
String * val_str(String *str) override
Definition: item_strfunc.cc:3430
String value
Definition: item_strfunc.h:1169
Item_func_internal_get_comment_or_error(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1359
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:2150
String tmp_value
Definition: item_strfunc.h:773
MY_LOCALE * get_locale(Item *item)
Definition: item_strfunc.cc:1960
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:30
TRIM_MODE
Why all the trim modes in this enum? We need to maintain parsing information, so that our print() fun...
Definition: item_strfunc.h:485
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:845
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3016
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:765
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4073
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1452
String * val_str(String *) override
Definition: item_strfunc.cc:2957
Item_func_make_set(const POS &pos, Item *a, PT_item_list *opt_list)
Definition: item_strfunc.h:704
bool trim_trailing() const
Definition: item_strfunc.h:531
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:455
#define MAX_BLOB_WIDTH
Default width for blob.
Definition: mysql_com.h:836
Definition: item_strfunc.h:467
Using this class is fraught with peril, and you need to be very careful when doing so...
Definition: sql_string.h:159
Definition: item_strfunc.h:1582
Definition: item_strfunc.h:736
String * val_str(String *) override
Definition: item_strfunc.cc:1271
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:756
const CHARSET_INFO * cast_cs
Definition: item_strfunc.h:929
const char * func_name() const override
Definition: item_strfunc.h:824
virtual const char * func_name() const =0
type_conversion_status save_in_field_inner(Field *field, bool) override
Helper function which does all of the work for save_in_field(Field*, bool), except some error checkin...
Definition: item_strfunc.h:624
static const CHARSET_INFO * default_charset()
Definition: item.cc:1389
bool resolve_type(THD *) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.h:263
Definition: item_strfunc.h:319
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:561
static const size_t TEXT_LENGTH
The number of bytes in the textual representation of a Uuid.
Definition: uuid.h:154
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:1803
Definition: item_strfunc.h:658
Item_str_func(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:126
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:117
Definition: field.h:181
Definition: item_strfunc.h:1276
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:379
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:182
const char * func_name() const override
Definition: item_strfunc.h:538
Common definition between mysql server & client.
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2166
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3225
Definition: item_strfunc.h:1094
virtual bool check_cols(uint c)
Definition: item.cc:948
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:2635
Item_func_user super
Definition: item_strfunc.h:659
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1429
const uint result_length
Definition: item_strfunc.h:1128
Definition: item_strfunc.h:686
Item * safe_charset_converter(THD *thd, const CHARSET_INFO *tocs) override
Definition: item_strfunc.cc:1720
const bool m_trim_leading
Definition: item_strfunc.h:498
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:680
const char * func_name() const override
Definition: item_strfunc.h:1221
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1479
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:231
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2309
Item_func_soundex(Item *a)
Definition: item_strfunc.h:679
Item_func_user()
Definition: item_strfunc.h:629
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:458
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1622
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1503
const char * func_name() const override
Definition: item_strfunc.h:979
const char * func_name() const override
Definition: item_strfunc.h:694
String * val_str(String *) override
Definition: item_strfunc.cc:3181
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:1797
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:410
const char * func_name() const override
Definition: item_strfunc.h:200
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:224
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:266
char * host
Definition: mysqladmin.cc:57
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1433
bool fix_fields(THD *, Item **ref) override
Definition: item_func.cc:255
String * val_str(String *) override
Definition: item_strfunc.cc:4881
Definition: item_strfunc.h:304
Definition: item_strfunc.h:919
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_strfunc.h:1217
Item_func_format(const POS &pos, Item *org, Item *dec)
Definition: item_strfunc.h:741
String rpad_str
Definition: item_strfunc.h:792
Definition: item_cmpfunc.h:175
Definition: item_strfunc.h:1565
Item_func_internal_tablespace_extra(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1545
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.h:709
#define DBUG_ASSERT(A)
Definition: my_dbug.h:128
#define NAME_STRING(x)
Definition: item.h:340
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1338
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:148
Definition: item_strfunc.h:802
Item_str_func(const POS &pos)
Definition: item_strfunc.h:77
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:575
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:201
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1172
Definition: item_strfunc.h:491
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2433
Item_func_sysconst super
Definition: item_strfunc.h:1277
Definition: item_strfunc.h:827
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:881
my_charset_conv_case converter
Definition: item_strfunc.h:406
String * val_str(String *) override
Definition: item_strfunc.cc:1440
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:818
enum Functype functype() const override
Definition: item_strfunc.h:1625
const char * func_name() const override
Definition: item_strfunc.h:1352
uint multiply
Definition: item_strfunc.h:405
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:236
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:4005
Definition: item_strfunc.h:1070
String tmp_str
Definition: item_strfunc.h:737
const bool is_min
Definition: item_strfunc.h:898
Definition: item_strfunc.h:211
Definition: item_strfunc.h:490
Definition: item_func.h:164
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:459
const char * func_name() const override
Definition: item_strfunc.h:847
String tmp_value
Definition: item_strfunc.h:865
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1186
Definition: item_strfunc.h:1336
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:232
bool init(const char *user, const char *host)
Definition: item_strfunc.cc:1766
String * val_str(String *str) override
Definition: item_strfunc.cc:2136
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1342
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:980
String tmp_value
Definition: item_strfunc.h:221
String * val_str(String *str) override
Definition: item_strfunc.cc:2189
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:4835
Definition: item_strfunc.h:489
Bison "location" class.
Definition: parse_location.h:43
String * val_str(String *) override
Definition: item_strfunc.cc:2404
Definition: item_strfunc.h:877
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1498
String tmp_str
Definition: item_strfunc.h:701
const char * func_name() const override
Definition: item_strfunc.h:859
const char * func_name() const override
Definition: item_strfunc.h:1240
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1474
Definition: item_strfunc.h:414
const char * func_name() const override
Definition: item_strfunc.h:941
Definition: item_strfunc.h:478
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:637
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:514
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:369
String * val_str(String *a) override
Definition: item_strfunc.h:951
Definition: item_strfunc.h:754
Item_func_format(const POS &pos, Item *org, Item *dec, Item *lang)
Definition: item_strfunc.h:743
void set(const DTCollation &dt)
Definition: item.h:188
Item_func_sha(const POS &pos, Item *a)
Definition: item_strfunc.h:205
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:395
Definition: item_strfunc.h:1209
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:776
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:3886
const char * func_name() const override
Definition: item_strfunc.h:1014
char * user
Definition: mysqladmin.cc:57
String tmp_value
Definition: item_strfunc.h:878
const char * func_name() const override
Definition: item_strfunc.h:869
Definition: item_strfunc.h:403
Definition: aggregate_check.h:523
Item_func_md5(const POS &pos, Item *a)
Definition: item_strfunc.h:197
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3880
Definition: item_strfunc.h:376
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1389
enum Functype functype() const override
Definition: item_strfunc.h:1587
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:806
Item_func_sysconst()
Definition: item_strfunc.h:575
const char * func_name() const override
Definition: item_strfunc.h:1174
my_decimal class limits &#39;decimal_t&#39; type to what we need in MySQL.
Definition: my_decimal.h:100
Functype
Definition: item_func.h:119
void set_charset(const CHARSET_INFO *charset_arg)
Definition: sql_string.h:231
const char * func_name() const override
Definition: item_strfunc.h:613
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1187
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3500
Item_func_gtid_subtract(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1237
Definition: item_strfunc.h:912
Item_str_func super
Definition: item_strfunc.h:1210
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:2920
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:323
Item_str_func super
Definition: item_strfunc.h:450
uint flags
Definition: item_strfunc.h:1126
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1066
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:1223
String tmp_value
Definition: item_strfunc.h:468
const char * func_name() const override
Definition: item_strfunc.h:227
const char * func_name() const override
Definition: item_strfunc.h:1399
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1175
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1034
String * val_str(String *) override
Replace all occurences of string2 in string1 with string3.
Definition: item_strfunc.cc:1077
Definition: item_strfunc.h:1244
Item_func_sysconst super
Definition: item_strfunc.h:1245
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:442
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:958
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:520
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:1787
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1056
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2772
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2868
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1096
Definition: item_strfunc.h:1450
const char * func_name() const override
Definition: item_strfunc.h:1205
Definition: item.h:666
const char * func_name() const override
Definition: item_strfunc.h:1065
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:514
unsigned int uint
Definition: uca-dump.cc:29
#define final(a, b, c)
Definition: hash.c:109
Definition: item_strfunc.h:252
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:111
void set(String &str, size_t offset, size_t arg_length)
Definition: sql_string.h:270
bool null_value
True if item is null.
Definition: item.h:2700
#define true
Definition: config_static.h:44
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1318
String tmp_value
Definition: item_strfunc.h:676
const CHARSET_INFO * conv_charset
Definition: item_strfunc.h:1033
long long int longlong
Definition: my_inttypes.h:70
Definition: item_strfunc.h:71
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1412
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1584
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:2877
void update_used_tables() override
Definition: item_strfunc.cc:2182
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:182
const CHARSET_INFO * collation
Definition: item.h:170
enum Functype functype() const override
Definition: item_strfunc.h:1085
Item_func super
Definition: item_strfunc.h:72
const char * func_name() const override
Definition: item_strfunc.h:683
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2554
bool may_evaluate_const(THD *thd) const
Return true if this is a const item that may be evaluated in the current phase of statement processin...
Definition: item.cc:942
#define HOSTNAME_LENGTH
Definition: mysql_com.h:54
String * val_str(String *) override
Definition: item_strfunc.cc:907
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1385
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1251
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2862
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:494
Item_func_reverse(Item *a)
Definition: item_strfunc.h:368
String * val_str(String *) override
Definition: item_strfunc.cc:1325
String max_str
Definition: item_strfunc.h:897
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:4778
String tmp_value
Definition: item_strfunc.h:1125
bool trim_leading() const
Definition: item_strfunc.h:526
Definition: item_strfunc.h:438
String * val_str(String *) override
Definition: item_strfunc.cc:1219
longlong cast_length
Definition: item_strfunc.h:928
Item_str_func()
Definition: item_strfunc.h:75
Definition: item_strfunc.h:1168
Definition: item_strfunc.h:697
const char * func_name() const override
Definition: item_strfunc.h:788
enum Functype functype() const override
Definition: item_strfunc.h:1411
const char * func_name() const override
Definition: item_strfunc.h:669
Definition: item_func.h:827
Item_str_func super
Definition: item_strfunc.h:305
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3211
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1363
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1273
Definition: m_ctype.h:358
virtual String * val_str(String *str)=0
String * val_str(String *) override
Definition: item_strfunc.cc:2778
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1013
Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:112
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:958
const char * func_name() const override
Definition: item_strfunc.h:1560
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:906
const char * func_name() const override
Definition: item_strfunc.h:780
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1110
longlong val_int() override
Definition: item_strfunc.cc:2123
Item ** args
Definition: item_func.h:85
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:921
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:99
const char * func_name() const override
Definition: item_strfunc.h:749
Definition: item_strfunc.h:995
String * val_str(String *) override
Definition: item_strfunc.cc:2259
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1603
LEX_STRING collation_string
Definition: item_strfunc.h:1073
Definition: field.h:582
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement...
Definition: item_strfunc.cc:3549
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:997
String * val_str(String *) override
Definition: item_strfunc.cc:2679
bool walk(Item_processor processor, enum_walk walk, uchar *arg) override
Traverses a tree of Items in prefix and/or postfix order.
Definition: item_strfunc.h:722
String * val_str(String *) override
Definition: item_strfunc.cc:467
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:785
const char * func_name() const override
Definition: item_strfunc.h:1615
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1588
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:901
String * val_str(String *) override
Definition: item_strfunc.cc:2583
const char * func_name() const override
Definition: item_strfunc.h:1636
Definition: item_strfunc.h:571
void split_sum_func(THD *thd, Ref_item_array ref_item_array, List< Item > &fields) override
See comments in Item_cmp_func::split_sum_func()
Definition: item_strfunc.cc:2160
bool charset_conversion
Definition: item_strfunc.h:930
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:2968
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:116
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2617
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1457
Definition: item_strfunc.h:855
void left_right_max_length()
Definition: item_strfunc.cc:1291
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:3894
String tmp_value
Definition: item_strfunc.h:452
double val_real() override
Definition: item_strfunc.cc:2111
Item_str_func super
Definition: item_strfunc.h:970
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:1993
const char * func_name() const override
Definition: item_strfunc.h:1084
bool(Item::* Item_processor)(uchar *arg)
Processor type for {Item,SELECT_LEX[_UNIT],Table_function}walk.
Definition: sql_const.h:453
String tmp_value
Definition: item_strfunc.h:407
Definition: item_strfunc.h:220
unsigned int my_time_flags_t
Flags to str_to_datetime and number_to_datetime.
Definition: my_time.h:82
const char * func_name() const override
Definition: item_strfunc.h:1376
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_strfunc.h:134
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1433
Definition: item.h:390
Definition: item_strfunc.h:486
String * val_str(String *) override
Definition: item_strfunc.cc:2455
const char * func_name() const override
Definition: item_strfunc.h:1251
Item_func_sysconst super
Definition: item_strfunc.h:620
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1088
Definition: item_strfunc.h:841
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1101
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1567
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1041
String * val_str(String *) override
Concatenate args with the following premises: If only one arg (which is ok), return value of arg;...
Definition: item_strfunc.cc:932
Definition: item_strfunc.h:488
String * val_str(String *) override
Definition: item_strfunc.cc:3365
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1975
String tmp_value
Definition: item_strfunc.h:792
Definition: mysql_time.h:64
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:4518
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1200
enum Functype functype() const override
Definition: item_strfunc.h:1317
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:423
const uint num_codepoints
Definition: item_strfunc.h:1127
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:502
String * val_str(String *) override
Definition: item_strfunc.cc:4422
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2577
bool maybe_null
True if this item may be null.
Definition: item.h:2699
void set_repertoire(uint repertoire_arg)
Definition: item.h:214
Definition: item_strfunc.h:565
const char * func_name() const override
Definition: item_strfunc.h:885
const char * func_name() const override
Definition: item_strfunc.h:1100
Item_str_func(Item *a)
Definition: item_strfunc.h:81
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:340
String value
Definition: item_strfunc.h:1154
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:508
String * val_str(String *) override
Definition: item_strfunc.cc:4671
Definition: item_strfunc.h:1427
Item_func_uuid()
Definition: item_strfunc.h:1213
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:848
const char * func_name() const override
Definition: item_strfunc.h:435
void set_current_role(THD *thd)
Definition: item_strfunc.cc:4726
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:589
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:2617
Definition: item_strfunc.h:791
bool use_cached_value
Marks weather the underlying Item is constant and may be cached.
Definition: item_strfunc.h:1021
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:1811
const char * func_name() const override
Definition: item_strfunc.h:417
Storage for name strings.
Definition: item.h:281
String * val_str(String *) override
Definition: item_strfunc.cc:685
#define MY_CS_UNICODE
Definition: m_ctype.h:121
enum Functype functype() const override
Definition: item_strfunc.h:1341
enum Functype functype() const override
Definition: item_strfunc.h:1525
Item * item
Definition: item_strfunc.h:700
void cleanup() override
Definition: item_strfunc.cc:4762
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1408
Item_func_binary(const POS &pos, Item *a)
Definition: item_strfunc.h:950
Definition: item_strfunc.h:969
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:1742
const char * func_name() const override
Definition: item_strfunc.h:235
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4145
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1398
type_conversion_status save_str_value_in_field(Field *field, String *result)
Definition: item.cc:504
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1210
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:471
const char * func_name() const override
Definition: item_strfunc.h:1160
Definition: item_strfunc.h:1153
String * val_str(String *) override
Definition: item_strfunc.cc:4721
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1199
String * val_str(String *) override
Definition: item_strfunc.cc:1560
Definition: item_strfunc.h:1383
String tmp_value
Definition: item_strfunc.h:289
const char * func_name() const override
Definition: item_strfunc.h:316
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:999
const char * func_name() const override
Definition: item_strfunc.h:1422
bool fixed
True if item has been resolved.
Definition: item.h:2679
Item_func_internal_tablespace_row_format(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1521
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:138
const char * func_name() const override
Definition: item_strfunc.h:464
Item_func_database(const POS &pos)
Definition: item_strfunc.h:603
Time declarations shared between the server and client API: you should not add anything to this heade...
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1607
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:760
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:3352
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2934
Item_str_func super
Definition: item_strfunc.h:320
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:688
const char * func_name() const override
Definition: item_strfunc.h:386
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:480
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1133
Definition: item_strfunc.h:675
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:174
String * val_str(String *a) override
Definition: item_strfunc.cc:3238
String tmp_value
Definition: item_strfunc.h:1010
Definition: item_strfunc.h:1620
String str_value
str_values&#39;s main purpose is to cache the value in save_in_field
Definition: item.h:2610
static void start(PluginFuncEnv *env)
Definition: http_server_plugin.cc:484
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1281
String tmp_value
Definition: item_strfunc.h:390
Definition: item_strfunc.h:421
Definition: item_strfunc.h:1182
const CHARSET_INFO * charset() const
Definition: sql_string.h:232
enum Functype functype() const override
Definition: item_strfunc.h:1362
const char * func_name() const override
Definition: item_strfunc.h:217
const char * func_name() const override
Definition: item_strfunc.h:1191
Item_func_sysconst super
Definition: item_strfunc.h:600
A better implementation of the UNIX ctype(3) library.
#define MAX_FIELD_NAME
Definition: sql_const.h:49
String buf1
Definition: item_strfunc.h:1234
String * val_str(String *) override
Definition: item_strfunc.cc:4484
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:510
String * val_str(String *a) override
Definition: item_strfunc.cc:603
Item_str_func(List< Item > &list)
Definition: item_strfunc.h:122
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1309
Definition: item_strfunc.h:487
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2895
Definition: item_strfunc.h:1019
Definition: item_strfunc.h:193
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:341
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:107
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1001
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:416
Definition: item_strfunc.h:894
const char * func_name() const override
Definition: item_strfunc.h:1577
void mark_as_const()
Definition: sql_string.h:238
const char * func_name() const override
Definition: item_strfunc.h:373
Definition: item_strfunc.h:1009
Item_str_func super
Definition: item_strfunc.h:290
enum Functype functype() const override
Definition: item_strfunc.h:1456
Interface for low level time utilities.
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1570
void cleanup() override
Definition: item_strfunc.cc:4714
String ascii_buf
Definition: item_strfunc.h:157
Definition: item_strfunc.h:349
Item_func_set_collation(const POS &pos, Item *a, const LEX_STRING &collation_string_arg)
Definition: item_strfunc.h:1076
String * val_str(String *) override
Definition: item_strfunc.cc:4445
const bool m_trim_trailing
Definition: item_strfunc.h:499
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2624
const char * ptr() const
Definition: sql_string.h:240
Item_str_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:95
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:986
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:392
Definition: item_strfunc.h:449
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:857
String tmp_value
Definition: item_strfunc.h:495
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:244
Item_char_typecast(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:936
String tmp_value
Definition: item_strfunc.h:194
const bool as_binary
Definition: item_strfunc.h:1130
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:456
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:338
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:581
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:914
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:975
double val_real() override
Definition: item_strfunc.cc:159
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2082
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:608
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:834
Definition: item_strfunc.h:1122
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2382
String * val_str(String *) override
Item_func_repeat::str is carefully written to avoid reallocs as much as possible at the cost of a loc...
Definition: item_strfunc.cc:2338
void set_data_type_string_init()
Initialize an Item to be of VARCHAR type, other properties undetermined.
Definition: item.h:1045
enum Functype functype() const override
Definition: item_strfunc.h:1502
const char * func_name() const override
Definition: item_strfunc.h:652
String tmp_value2
Definition: item_strfunc.h:377
String * val_str(String *str) override
Definition: item_strfunc.cc:3739
String * val_str(String *) override
Definition: item_strfunc.cc:4365
Definition: sql_locale.h:36
Item_bool_func super
Definition: item_strfunc.h:842
Definition: item_strfunc.h:813
const char * func_name() const override
Definition: item_strfunc.h:1536
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1015
const char * func_name() const override
Definition: item_strfunc.h:361
Definition: item_strfunc.h:1601
Definition: item_strfunc.h:1406
Contains the classes representing events operating in the replication stream properties.
const char * func_name() const override
Definition: item_strfunc.h:965
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:355
uchar m_bin_buf[binary_log::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:815
Definition: item_strfunc.h:1312
String * val_str(String *) override
Definition: item_strfunc.cc:1862
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1286
String * val_str(String *) override
Definition: item_strfunc.cc:1355
Definition: item_strfunc.h:230
#define false
Definition: config_static.h:43
Field * field
Definition: item_strfunc.h:1129
const char * func_name() const override
Definition: item_strfunc.h:799
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_cmpfunc.h:194
Definition: dtoa.cc:601
size_t length() const
Definition: sql_string.h:233
enum Functype functype() const override
Definition: item_strfunc.h:939
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string
Definition: item_strfunc.cc:4744
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1214
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:648
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1258
Definition: item_func.h:171
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2248
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:310
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1819
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1189
Definition: item_strfunc.h:156
bool safe
The following types of conversions are considered safe:
Definition: item_strfunc.h:1032
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2979
Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:98
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:641
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:832
String tmp_value
Definition: item_strfunc.h:439
Definition: field.h:580
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:179
Definition: item_strfunc.h:1519
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:776
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:167
Definition: item_strfunc.h:203
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:268
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1161
Definition: item_strfunc.h:288
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:97
enum Functype functype() const override
Definition: item_strfunc.h:1606
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:871
Definition: item_strfunc.h:599
const char * func_name() const override
Definition: item_strfunc.h:475