MySQL  8.0.17
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 *thd) override;
245 
246  String *val_str_ascii(String *) override;
247 
248  private:
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 *thd) override;
264 
265  bool check_function_as_value_generator(uchar *checker_args) override {
268  checker_args);
269  func_arg->banned_function_name = func_name();
270  return (func_arg->source == VGS_GENERATED_COLUMN);
271  }
272  String *val_str(String *) override;
273 
274  private:
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_typecast_char(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_typecast_char(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 
950 
952 
953  public:
955 
956  bool itemize(Parse_context *pc, Item **res) override;
957  String *val_str(String *) override;
958  const char *func_name() const override { return "load_file"; }
959  bool resolve_type(THD *) override {
962  maybe_null = true;
963  return false;
964  }
965  bool check_function_as_value_generator(uchar *checker_args) override {
968  checker_args);
969  func_arg->banned_function_name = func_name();
970  return true;
971  }
972 };
973 
975  public:
976  Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
977  : Item_str_func(pos, a, b, c) {}
978  Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
979  : Item_str_func(pos, a, b, c, d) {}
980  Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d,
981  Item *e)
982  : Item_str_func(pos, a, b, c, d, e) {}
983  String *val_str(String *str) override;
984  bool resolve_type(THD *) override;
985  const char *func_name() const override { return "export_set"; }
986 };
987 
990 
991  public:
993  const char *func_name() const override { return "quote"; }
994  String *val_str(String *) override;
995  bool resolve_type(THD *thd) override;
996 };
997 
999  /// Marks weather the underlying Item is constant and may be cached.
1002 
1003  public:
1004  /**
1005  The following types of conversions are considered safe:
1006 
1007  Conversion to and from "binary".
1008  Conversion to Unicode.
1009  Other kind of conversions are potentially lossy.
1010  */
1011  bool safe;
1012  const CHARSET_INFO *conv_charset; // keep it public
1014  : Item_str_func(pos, a) {
1015  conv_charset = cs;
1016  use_cached_value = false;
1017  safe = false;
1018  }
1019 
1021  bool cache_if_const)
1022  : Item_str_func(a) {
1023  DBUG_ASSERT(args[0]->fixed);
1024 
1025  conv_charset = cs;
1026  if (cache_if_const && args[0]->may_evaluate_const(thd)) {
1027  uint errors = 0;
1028  String tmp, *str = args[0]->val_str(&tmp);
1029  if (!str || str_value.copy(str->ptr(), str->length(), str->charset(),
1030  conv_charset, &errors))
1031  null_value = 1;
1032  use_cached_value = true;
1034  safe = (errors == 0);
1035  } else {
1036  use_cached_value = false;
1037  // Marks weather the conversion is safe
1039  cs == &my_charset_bin || (cs->state & MY_CS_UNICODE));
1040  }
1041  }
1042  String *val_str(String *) override;
1043  bool resolve_type(THD *) override;
1044  const char *func_name() const override { return "convert"; }
1045  void print(const THD *thd, String *str,
1046  enum_query_type query_type) const override;
1047 };
1048 
1051 
1053 
1054  public:
1056  const LEX_STRING &collation_string_arg)
1057  : super(pos, a, NULL), collation_string(collation_string_arg) {}
1058 
1059  bool itemize(Parse_context *pc, Item **res) override;
1060  String *val_str(String *) override;
1061  bool resolve_type(THD *) override;
1062  bool eq(const Item *item, bool binary_cmp) const override;
1063  const char *func_name() const override { return "collate"; }
1064  enum Functype functype() const override { return COLLATE_FUNC; }
1065  void print(const THD *thd, String *str,
1066  enum_query_type query_type) const override;
1068  /* this function is transparent for view updating */
1069  return args[0]->field_for_view_update();
1070  }
1071 };
1072 
1074  public:
1076  null_on_null = false;
1077  }
1078  String *val_str(String *) override;
1079  const char *func_name() const override { return "charset"; }
1080  bool resolve_type(THD *) override {
1082  maybe_null = false;
1083  return false;
1084  }
1085 };
1086 
1088  public:
1090  null_on_null = false;
1091  }
1092  String *val_str(String *) override;
1093  const char *func_name() const override { return "collation"; }
1094  bool resolve_type(THD *) override {
1096  maybe_null = false;
1097  return false;
1098  }
1099 };
1100 
1103 
1109  const bool as_binary;
1110 
1111  public:
1112  Item_func_weight_string(const POS &pos, Item *a, uint result_length_arg,
1113  uint num_codepoints_arg, uint flags_arg,
1114  bool as_binary_arg = false)
1115  : Item_str_func(pos, a),
1116  flags(flags_arg),
1117  num_codepoints(num_codepoints_arg),
1118  result_length(result_length_arg),
1119  field(NULL),
1120  as_binary(as_binary_arg) {}
1121 
1122  bool itemize(Parse_context *pc, Item **res) override;
1123 
1124  const char *func_name() const override { return "weight_string"; }
1125  bool eq(const Item *item, bool binary_cmp) const override;
1126  String *val_str(String *) override;
1127  bool resolve_type(THD *) override;
1128  void print(const THD *thd, String *str,
1129  enum_query_type query_type) const override;
1130 };
1131 
1134 
1135  public:
1137  unsigned_flag = true;
1138  }
1139  const char *func_name() const override { return "crc32"; }
1140  bool resolve_type(THD *) override {
1141  max_length = 10;
1142  return false;
1143  }
1144  longlong val_int() override;
1145 };
1146 
1149 
1150  public:
1152  : Item_int_func(pos, a) {}
1153  const char *func_name() const override { return "uncompressed_length"; }
1154  bool resolve_type(THD *) override {
1155  max_length = 10;
1156  return false;
1157  }
1158  longlong val_int() override;
1159 };
1160 
1163 
1164  public:
1166  bool resolve_type(THD *) override {
1167  set_data_type_string((args[0]->max_length * 120U) / 100U + 12U);
1168  return false;
1169  }
1170  const char *func_name() const override { return "compress"; }
1171  String *val_str(String *str) override;
1172 };
1173 
1176 
1177  public:
1179  bool resolve_type(THD *) override {
1180  maybe_null = true;
1182  return false;
1183  }
1184  const char *func_name() const override { return "uncompress"; }
1185  String *val_str(String *str) override;
1186 };
1187 
1190 
1191  public:
1193  explicit Item_func_uuid(const POS &pos) : Item_str_func(pos) {}
1194 
1195  bool itemize(Parse_context *pc, Item **res) override;
1197  return RAND_TABLE_BIT;
1198  }
1199  bool resolve_type(THD *) override;
1200  const char *func_name() const override { return "uuid"; }
1201  String *val_str(String *) override;
1202  bool check_function_as_value_generator(uchar *checker_args) override {
1205  checker_args);
1206  func_arg->banned_function_name = func_name();
1207  return ((func_arg->source == VGS_GENERATED_COLUMN) ||
1208  (func_arg->source == VGS_CHECK_CONSTRAINT));
1209  }
1210 };
1211 
1214 
1215  public:
1217  : Item_str_ascii_func(pos, a, b) {}
1218  bool resolve_type(THD *) override;
1219  const char *func_name() const override { return "gtid_subtract"; }
1220  String *val_str_ascii(String *) override;
1221 };
1222 
1225 
1226  public:
1228  explicit Item_func_current_role(const POS &pos)
1229  : super(pos), value_cache_set(false) {}
1230  const char *func_name() const override { return "current_role"; }
1231  void cleanup() override;
1232  String *val_str(String *) override;
1233  bool resolve_type(THD *) override {
1235  return false;
1236  }
1237  const Name_string fully_qualified_func_name() const override {
1238  return NAME_STRING("current_role()");
1239  }
1240 
1241  protected:
1242  void set_current_role(THD *thd);
1243  /** a flag whether @ref value_cache is set or not */
1245  /**
1246  @brief Cache for the result value
1247 
1248  Set by init(). And consumed by val_str().
1249  Needed to avoid re-calculation of the current_roles() in the
1250  course of the query.
1251  */
1253 };
1254 
1257 
1258  public:
1261  : super(pos), value_cache_set(false) {}
1262  String *val_str(String *) override;
1263  void cleanup() override;
1264 
1265  bool resolve_type(THD *) override {
1267  return false;
1268  }
1269 
1270  const char *func_name() const override { return "roles_graphml"; }
1271 
1272  const Name_string fully_qualified_func_name() const override {
1273  return NAME_STRING("roles_graphml()");
1274  }
1275 
1276  protected:
1277  bool calculate_graphml(THD *thd);
1278  /**
1279  @brief Cache for the result value
1280 
1281  Set by init(). And consumed by val_str().
1282  Needed to avoid re-calculation of the current_roles() in the
1283  course of the query.
1284  */
1286 
1287  /** Set to true if @ref value_cache is set */
1289 };
1290 
1292  public:
1294  : Item_str_func(pos, a, b, c) {}
1295 
1296  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1297  bool resolve_type(THD *) override {
1298  /*
1299  There are 14 kinds of grants, with a max length
1300  per privileges is 11 chars.
1301  So, setting max approximate to 200.
1302  */
1304  maybe_null = true;
1305  null_on_null = false;
1306 
1307  return false;
1308  }
1309 
1310  const char *func_name() const override { return "get_dd_column_privileges"; }
1311 
1312  String *val_str(String *) override;
1313 };
1314 
1316  public:
1318  : Item_str_func(pos, a, b, c) {}
1319 
1320  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1321  bool resolve_type(THD *) override {
1322  // maximum string length of all options is expected
1323  // to be less than 256 characters.
1325  maybe_null = false;
1326  null_on_null = false;
1327 
1328  return false;
1329  }
1330 
1331  const char *func_name() const override { return "get_dd_create_options"; }
1332 
1333  String *val_str(String *) override;
1334 };
1335 
1337  public:
1339  : Item_str_func(pos, list) {}
1340 
1341  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1342  bool resolve_type(THD *) override {
1343  /*
1344  maximum expected string length to be less than 2048 characters,
1345  which is same as size of column holding comments in dictionary,
1346  i.e., the mysql.tables.comment DD column.
1347  */
1349  maybe_null = 1;
1350  null_on_null = false;
1351 
1352  return false;
1353  }
1354 
1355  const char *func_name() const override {
1356  return "internal_get_comment_or_error";
1357  }
1358 
1359  String *val_str(String *) override;
1360 };
1361 
1363  public:
1365  : Item_str_func(pos, a, b) {}
1366 
1367  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1368  bool resolve_type(THD *) override {
1369  /* maximum string length of the property value is expected
1370  to be less than 256 characters. */
1371  max_length = 256;
1372  maybe_null = false;
1373  null_on_null = false;
1374 
1375  return false;
1376  }
1377 
1378  const char *func_name() const override {
1379  return "get_dd_tablespace_private_data";
1380  }
1381 
1382  String *val_str(String *) override;
1383 };
1384 
1386  public:
1388  : Item_str_func(pos, a, b) {}
1389 
1390  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1391  bool resolve_type(THD *) override {
1392  /* maximum string length of the property value is expected
1393  to be less than 256 characters. */
1394  max_length = 256;
1395  maybe_null = false;
1396  null_on_null = false;
1397 
1398  return false;
1399  }
1400 
1401  const char *func_name() const override { return "get_dd_index_private_data"; }
1402 
1403  String *val_str(String *) override;
1404 };
1405 
1407  public:
1409  : Item_str_func(pos, a) {}
1410 
1411  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1412  bool resolve_type(THD *) override {
1413  // maximum string length of all options is expected
1414  // to be less than 256 characters.
1416  maybe_null = 1;
1417  null_on_null = false;
1418 
1419  return false;
1420  }
1421 
1422  const char *func_name() const override {
1423  return "internal_get_partition_nodegroup";
1424  }
1425 
1426  String *val_str(String *) override;
1427 };
1428 
1430  public:
1432  Item *d)
1433  : Item_str_func(pos, a, b, c, d) {}
1434 
1435  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1436  bool resolve_type(THD *) override {
1437  // maximum string length of all options is expected
1438  // to be less than 256 characters.
1440  maybe_null = 1;
1441  null_on_null = false;
1442 
1443  return false;
1444  }
1445 
1446  const char *func_name() const override { return "internal_tablespace_type"; }
1447 
1448  String *val_str(String *) override;
1449 };
1450 
1452  public:
1454  Item *b, Item *c, Item *d)
1455  : Item_str_func(pos, a, b, c, d) {}
1456 
1457  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1458  bool resolve_type(THD *) override {
1459  // maximum string length of all options is expected
1460  // to be less than 256 characters.
1462  maybe_null = 1;
1463  null_on_null = false;
1464 
1465  return false;
1466  }
1467 
1468  const char *func_name() const override {
1469  return "internal_tablespace_logfile_group_name";
1470  }
1471 
1472  String *val_str(String *) override;
1473 };
1474 
1476  public:
1478  Item *c, Item *d)
1479  : Item_str_func(pos, a, b, c, d) {}
1480 
1481  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1482  bool resolve_type(THD *) override {
1483  // maximum string length of all options is expected
1484  // to be less than 256 characters.
1486  maybe_null = 1;
1487  null_on_null = false;
1488 
1489  return false;
1490  }
1491 
1492  const char *func_name() const override {
1493  return "internal_tablespace_status";
1494  }
1495  String *val_str(String *) override;
1496 };
1497 
1499  public:
1501  Item *c, Item *d)
1502  : Item_str_func(pos, a, b, c, d) {}
1503 
1504  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1505  bool resolve_type(THD *) override {
1506  // maximum string length of all options is expected
1507  // to be less than 256 characters.
1509  maybe_null = 1;
1510  null_on_null = false;
1511 
1512  return false;
1513  }
1514 
1515  const char *func_name() const override {
1516  return "internal_tablespace_row_format";
1517  }
1518 
1519  String *val_str(String *) override;
1520 };
1521 
1523  public:
1525  Item *d)
1526  : Item_str_func(pos, a, b, c, d) {}
1527 
1528  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1529  bool resolve_type(THD *) override {
1530  // maximum string length of all options is expected
1531  // to be less than 256 characters.
1533  maybe_null = 1;
1534  null_on_null = false;
1535 
1536  return false;
1537  }
1538 
1539  const char *func_name() const override { return "internal_tablespace_extra"; }
1540 
1541  String *val_str(String *) override;
1542 };
1543 
1545  public:
1547  : Item_str_func(pos, list) {}
1548 
1549  bool resolve_type(THD *) override {
1550  max_length = 1024;
1551  maybe_null = false;
1553  return false;
1554  }
1555 
1556  const char *func_name() const override { return "convert_cpu_id_mask"; }
1557 
1558  String *val_str(String *) override;
1559 };
1560 
1562  public:
1564  : Item_str_func(pos, a, b) {}
1565 
1566  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1567  bool resolve_type(THD *) override {
1569  maybe_null = true;
1570  null_on_null = false;
1571 
1572  return false;
1573  }
1574 
1575  const char *func_name() const override { return "get_dd_property_key_value"; }
1576 
1577  String *val_str(String *) override;
1578 };
1579 
1581  public:
1583  : Item_str_func(pos, a, b) {}
1584 
1585  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1586  bool resolve_type(THD *) override {
1588  maybe_null = true;
1589  null_on_null = false;
1590 
1591  return false;
1592  }
1593 
1594  const char *func_name() const override { return "remove_dd_property_key"; }
1595 
1596  String *val_str(String *) override;
1597 };
1598 
1600  public:
1602  : Item_str_func(pos, a, b) {}
1603 
1604  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1605  bool resolve_type(THD *) override {
1606  // maximum string length of all options is expected
1607  // to be less than 256 characters.
1609  maybe_null = true;
1610  null_on_null = false;
1611 
1612  return false;
1613  }
1614 
1615  const char *func_name() const override {
1616  return "convert_interval_to_user_interval";
1617  }
1618 
1619  String *val_str(String *) override;
1620 };
1621 
1623  public:
1625  : Item_str_func(pos, list) {}
1626 
1627  enum Functype functype() const override { return DD_INTERNAL_FUNC; }
1628  bool resolve_type(THD *) override {
1629  // maximum string length of all options is expected
1630  // to be less than 256 characters.
1632  maybe_null = false;
1633  null_on_null = false;
1634 
1635  return false;
1636  }
1637 
1638  const char *func_name() const override {
1639  return "internal_get_dd_column_extra";
1640  }
1641 
1642  String *val_str(String *) override;
1643 };
1644 
1645 #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:1672
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3170
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:1575
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:1505
Definition: item.h:3349
unsigned long long int ulonglong
Definition: my_inttypes.h:74
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:1770
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1605
unsigned char uchar
Definition: my_inttypes.h:51
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:1529
Our own string classes, used pervasively throughout the executor.
longlong cast_length
Definition: item_strfunc.h:928
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
const char * func_name() const override
Definition: item_strfunc.h:941
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 char * func_name() const override
Definition: item_strfunc.h:916
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1285
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
String tmp_value
Definition: item_strfunc.h:931
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3246
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:254
uint state
Definition: m_ctype.h:363
Item_func_current_role()
Definition: item_strfunc.h:1227
ulonglong table_map
Definition: my_table_map.h:32
longlong val_int() override
Definition: item_strfunc.cc:3759
String * val_str(String *) override
Definition: item_strfunc.cc:4341
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
char * user
Definition: mysqladmin.cc:58
Definition: mysql_lex_string.h:34
const char * func_name() const override
Definition: item_strfunc.h:810
Definition: item_strfunc.h:783
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:1982
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
const char * func_name() const override
Definition: item_strfunc.h:1124
enum Functype functype() const override
Definition: item_strfunc.h:1457
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:1094
enum Functype functype() const override
Definition: item_strfunc.h:1528
String * val_str(String *) override
Definition: item_strfunc.cc:4800
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:4950
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1710
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
enum Functype functype() const override
Definition: item_strfunc.h:1627
const char * func_name() const override
Definition: item_strfunc.h:1270
Definition: item_strfunc.h:364
void set_data_type_blob(uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1161
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1318
Definition: item_strfunc.h:1622
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:3138
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:213
enum Functype functype() const override
Definition: item_strfunc.h:1411
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:3828
Item_str_func super
Definition: item_strfunc.h:698
Definition: item_strfunc.h:1475
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:1446
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1228
const char * func_name() const override
Definition: item_strfunc.h:1422
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:326
String buf2
Definition: item_strfunc.h:1213
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:1112
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:2737
Some integer typedefs for easier portability.
Item_str_func super
Definition: item_strfunc.h:1102
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:2875
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:995
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:1272
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:4503
#define USERNAME_CHAR_LENGTH
Definition: mysql_com.h:61
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:103
String tmp_value
Definition: item_strfunc.h:951
String * val_str(String *) override
Definition: item_strfunc.cc:1167
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:1367
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:1087
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:271
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1281
String * val_str(String *) override
Definition: item_strfunc.cc:3066
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:664
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:2118
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
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:1328
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:4625
const char * func_name() const override
Definition: item_strfunc.h:1093
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:4694
Definition: field.h:709
const char * func_name() const override
Definition: item_strfunc.h:923
String * val_str(String *) override
Definition: item_strfunc.cc:2977
const char * func_name() const override
Definition: item_strfunc.h:424
Definition: item_func.h:81
longlong val_int() override
Definition: item_strfunc.cc:2696
String * val_str(String *) override
Definition: item_strfunc.cc:2917
const char * host
Definition: mysqladmin.cc:57
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1293
#define MY_REPERTOIRE_ASCII
Definition: m_ctype.h:134
Definition: field.h:184
virtual bool fix_fields(THD *, Item **)
Definition: item.cc:4384
Definition: item_strfunc.h:1174
const char * func_name() const override
Definition: item_strfunc.h:1310
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:985
String tmp_value
Definition: item_strfunc.h:350
Item_str_func super
Definition: item_strfunc.h:1050
Definition: item_strfunc.h:1212
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3263
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:1001
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3022
String buffer
Definition: item_strfunc.h:1175
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1338
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:1336
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1233
const char * func_name() const override
Definition: item_strfunc.h:1468
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:3730
Definition: item_strfunc.h:1522
Definition: item_func.h:164
Item * transform(Item_transformer transformer, uchar *arg) override
Transform an Item_func object with a transformer callback function.
Definition: item_strfunc.cc:2257
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
class udf_list * list
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1136
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1244
Item_func_roles_graphml()
Definition: item_strfunc.h:1259
virtual Item_field * field_for_view_update()
Definition: item.h:2384
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:893
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:3542
String buffer
Definition: item_strfunc.h:1162
String * val_str(String *) override
Definition: item_strfunc.cc:4031
bool get_time(MYSQL_TIME *ltime) override
Definition: item_strfunc.h:137
#define RAND_TABLE_BIT
Definition: sql_const.h:114
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:434
const char * func_name() const override
Definition: item_strfunc.h:208
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:4053
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:1049
const char * func_name() const override
Definition: item_strfunc.h:1492
bool charset_conversion
Definition: item_strfunc.h:930
String * val_str(String *) override
Definition: item_strfunc.cc:4446
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:1367
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:918
String * val_str(String *str) override
Definition: item_strfunc.cc:3460
String value
Definition: item_strfunc.h:1148
Item_func_internal_get_comment_or_error(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1338
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:2173
String tmp_value
Definition: item_strfunc.h:773
MY_LOCALE * get_locale(Item *item)
Definition: item_strfunc.cc:1983
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:3047
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:4104
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1431
String * val_str(String *) override
Definition: item_strfunc.cc:2988
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:827
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:1561
Definition: item_strfunc.h:736
String * val_str(String *) override
Definition: item_strfunc.cc:1291
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:756
const char * func_name() const override
Definition: item_strfunc.h:824
virtual const char * func_name() const =0
static const CHARSET_INFO * default_charset()
Definition: item.cc:1389
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
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:1823
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:183
Definition: item_strfunc.h:1255
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:2189
Definition: item_strfunc.h:1073
virtual bool check_cols(uint c)
Definition: item.cc:948
bool may_evaluate_const(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
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:2671
Item_func_user super
Definition: item_strfunc.h:659
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1408
const uint result_length
Definition: item_strfunc.h:1107
Definition: item_strfunc.h:686
Item * safe_charset_converter(THD *thd, const CHARSET_INFO *tocs) override
Definition: item_strfunc.cc:1740
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:1200
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1458
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:2332
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1628
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:936
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:1601
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1482
const char * func_name() const override
Definition: item_strfunc.h:958
const char * func_name() const override
Definition: item_strfunc.h:694
String * val_str(String *) override
Definition: item_strfunc.cc:3216
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:1817
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
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1412
bool fix_fields(THD *, Item **ref) override
Definition: item_func.cc:258
String * val_str(String *) override
Definition: item_strfunc.cc:4924
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:1196
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:179
Definition: item_strfunc.h:1544
Item_func_internal_tablespace_extra(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1524
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.h:709
#define DBUG_ASSERT(A)
Definition: my_dbug.h:183
#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:1317
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:203
Definition: item_strfunc.h:927
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1151
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:2463
Item_func_sysconst super
Definition: item_strfunc.h:1256
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:1460
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:818
enum Functype functype() const override
Definition: item_strfunc.h:1604
const char * func_name() const override
Definition: item_strfunc.h:1331
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:4036
Definition: item_strfunc.h:1049
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:166
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:459
enum Functype functype() const override
Definition: item_strfunc.h:939
const char * func_name() const override
Definition: item_strfunc.h:847
String * val_str(String *a) override
Definition: item_strfunc.cc:3276
String tmp_value
Definition: item_strfunc.h:865
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1165
Definition: item_strfunc.h:1315
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:1786
String * val_str(String *str) override
Definition: item_strfunc.cc:2159
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1321
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:959
String tmp_value
Definition: item_strfunc.h:221
String * val_str(String *str) override
Definition: item_strfunc.cc:2212
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:4878
Definition: item_strfunc.h:489
Bison "location" class.
Definition: parse_location.h:43
String * val_str(String *) override
Definition: item_strfunc.cc:2434
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:1477
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:1219
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1453
Definition: item_strfunc.h:414
Definition: item_strfunc.h:478
uchar * m_token_buffer
Definition: item_strfunc.h:249
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
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:1188
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:3917
const char * func_name() const override
Definition: item_strfunc.h:993
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:3911
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:1368
enum Functype functype() const override
Definition: item_strfunc.h:1566
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:1153
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
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:1166
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3530
Item_func_gtid_subtract(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1216
Definition: item_strfunc.h:912
Item_str_func super
Definition: item_strfunc.h:1189
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:2950
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:1105
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1085
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:1202
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:1378
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1154
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1013
String * val_str(String *) override
Replace all occurences of string2 in string1 with string3.
Definition: item_strfunc.cc:1096
Definition: item_strfunc.h:1223
Item_func_sysconst super
Definition: item_strfunc.h:1224
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:442
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:1807
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1081
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2802
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2898
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1075
Definition: item_strfunc.h:1429
const char * func_name() const override
Definition: item_strfunc.h:1184
Definition: item.h:666
const char * func_name() const override
Definition: item_strfunc.h:1044
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:272
const CHARSET_INFO * cast_cs
Definition: item_strfunc.h:929
bool null_value
True if item is null.
Definition: item.h:2736
#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:1297
String tmp_value
Definition: item_strfunc.h:676
const CHARSET_INFO * conv_charset
Definition: item_strfunc.h:1012
long long int longlong
Definition: my_inttypes.h:73
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:1391
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1563
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:2907
void update_used_tables() override
Definition: item_strfunc.cc:2205
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:879
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:182
const CHARSET_INFO * collation
Definition: item.h:170
static constexpr int HOSTNAME_LENGTH
Definition: my_hostname.h:42
enum Functype functype() const override
Definition: item_strfunc.h:1064
Item_func super
Definition: item_strfunc.h:72
const char * func_name() const override
Definition: item_strfunc.h:683
uint32_t uint32
Definition: my_inttypes.h:62
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2584
String * val_str(String *) override
Definition: item_strfunc.cc:925
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1364
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1271
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2892
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:1345
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:4821
String tmp_value
Definition: item_strfunc.h:1104
bool trim_leading() const
Definition: item_strfunc.h:526
Definition: item_strfunc.h:438
String * val_str(String *) override
Definition: item_strfunc.cc:1239
Item_str_func()
Definition: item_strfunc.h:75
Definition: item_strfunc.h:1147
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:1390
const char * func_name() const override
Definition: item_strfunc.h:669
Definition: item_func.h:820
Item_str_func super
Definition: item_strfunc.h:305
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1342
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1252
Definition: m_ctype.h:359
virtual String * val_str(String *str)=0
String * val_str(String *) override
Definition: item_strfunc.cc:2808
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:992
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:976
const char * func_name() const override
Definition: item_strfunc.h:1539
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:1089
longlong val_int() override
Definition: item_strfunc.cc:2146
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:974
String * val_str(String *) override
Definition: item_strfunc.cc:2282
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1582
LEX_STRING collation_string
Definition: item_strfunc.h:1052
Definition: field.h:584
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement...
Definition: item_strfunc.cc:3579
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:976
String * val_str(String *) override
Definition: item_strfunc.cc:2709
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:1594
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1567
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:2613
const char * func_name() const override
Definition: item_strfunc.h:1615
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:2183
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:2999
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:2647
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1436
Definition: item_strfunc.h:855
void left_right_max_length()
Definition: item_strfunc.cc:1311
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:3925
String tmp_value
Definition: item_strfunc.h:452
double val_real() override
Definition: item_strfunc.cc:2134
Item_str_func super
Definition: item_strfunc.h:949
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2016
const char * func_name() const override
Definition: item_strfunc.h:1063
bool(Item::* Item_processor)(uchar *arg)
Processor type for {Item,SELECT_LEX[_UNIT],Table_function}walk.
Definition: sql_const.h:452
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:1355
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:1453
Definition: item.h:390
Definition: item_strfunc.h:486
String * val_str(String *) override
Definition: item_strfunc.cc:2485
const char * func_name() const override
Definition: item_strfunc.h:1230
Item_func_sysconst super
Definition: item_strfunc.h:620
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1067
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:1080
Item_typecast_char(Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:934
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1546
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1020
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:950
Definition: item_strfunc.h:488
String * val_str(String *) override
Definition: item_strfunc.cc:3395
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1998
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:4559
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1179
enum Functype functype() const override
Definition: item_strfunc.h:1296
const CHARSET_INFO * from_cs
Definition: item_strfunc.h:929
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:423
const uint num_codepoints
Definition: item_strfunc.h:1106
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:502
String * val_str(String *) override
Definition: item_strfunc.cc:4463
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2607
bool maybe_null
True if this item may be null.
Definition: item.h:2735
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:1079
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:1133
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:4712
Definition: item_strfunc.h:1406
Item_func_uuid()
Definition: item_strfunc.h:1192
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:4767
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:2653
Definition: item_strfunc.h:791
bool use_cached_value
Marks weather the underlying Item is constant and may be cached.
Definition: item_strfunc.h:1000
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:1831
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:122
enum Functype functype() const override
Definition: item_strfunc.h:1320
enum Functype functype() const override
Definition: item_strfunc.h:1504
Item * item
Definition: item_strfunc.h:700
void cleanup() override
Definition: item_strfunc.cc:4805
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1387
Definition: item_strfunc.h:948
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize()/contextualize_() but with additional parameter.
Definition: item_strfunc.cc:1762
const char * func_name() const override
Definition: item_strfunc.h:235
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1624
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4176
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1418
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:1229
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:3347
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:1139
Definition: item_strfunc.h:1132
String * val_str(String *) override
Definition: item_strfunc.cc:4762
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1178
String * val_str(String *) override
Definition: item_strfunc.cc:1580
Definition: item_strfunc.h:1362
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:978
const char * func_name() const override
Definition: item_strfunc.h:1401
bool fixed
True if item has been resolved.
Definition: item.h:2715
Item_func_internal_tablespace_row_format(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1500
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:1586
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:3382
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2965
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:1152
Definition: item_strfunc.h:675
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:174
String tmp_value
Definition: item_strfunc.h:989
Definition: item_strfunc.h:1599
String str_value
str_values&#39;s main purpose is to cache the value in save_in_field
Definition: item.h:2646
static void start(PluginFuncEnv *env)
Definition: http_server_plugin.cc:572
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1260
String tmp_value
Definition: item_strfunc.h:390
Definition: item_strfunc.h:421
Definition: item_strfunc.h:1161
const CHARSET_INFO * charset() const
Definition: sql_string.h:232
enum Functype functype() const override
Definition: item_strfunc.h:1341
const char * func_name() const override
Definition: item_strfunc.h:217
const char * func_name() const override
Definition: item_strfunc.h:1170
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:1213
String * val_str(String *) override
Definition: item_strfunc.cc:4525
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:1288
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:2925
Definition: item_strfunc.h:998
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:980
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:1556
void mark_as_const()
Definition: sql_string.h:239
const char * func_name() const override
Definition: item_strfunc.h:373
Definition: item_strfunc.h:988
Item_str_func super
Definition: item_strfunc.h:290
enum Functype functype() const override
Definition: item_strfunc.h:1435
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:1549
void cleanup() override
Definition: item_strfunc.cc:4755
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:1055
String * val_str(String *) override
Definition: item_strfunc.cc:4486
const bool m_trim_trailing
Definition: item_strfunc.h:499
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2654
const char * ptr() const
Definition: sql_string.h:241
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:965
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:392
uchar * m_token_buffer
Definition: item_strfunc.h:275
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
String tmp_value
Definition: item_strfunc.h:194
const bool as_binary
Definition: item_strfunc.h:1109
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:954
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:2105
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:1101
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:2412
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:2368
void set_data_type_string_init()
Initialize an Item to be of VARCHAR type, other properties undetermined.
Definition: item.h:1070
enum Functype functype() const override
Definition: item_strfunc.h:1481
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:3770
String * val_str(String *) override
Definition: item_strfunc.cc:4406
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:1515
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.cc:1033
const char * func_name() const override
Definition: item_strfunc.h:361
Definition: item_strfunc.h:1580
Definition: item_strfunc.h:1385
Contains the classes representing events operating in the replication stream properties.
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:1291
String * val_str(String *) override
Definition: item_strfunc.cc:1882
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1265
String * val_str(String *) override
Definition: item_strfunc.cc:1375
Definition: item_strfunc.h:230
#define false
Definition: config_static.h:43
Field * field
Definition: item_strfunc.h:1108
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:198
Definition: dtoa.cc:601
size_t length() const
Definition: sql_string.h:233
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string
Definition: item_strfunc.cc:4785
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1193
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:1237
Definition: item_func.h:173
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2271
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:1839
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:1011
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3010
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:582
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:179
Definition: item_strfunc.h:1498
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:777
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:265
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size...
Definition: item_strfunc.h:1140
const char * func_name() const override
Definition: item_strfunc.h:1638
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:1585
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