MySQL  8.0.16
Source Code Documentation
my_sys.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 #ifndef _my_sys_h
24 #define _my_sys_h
25 
26 /**
27  @defgroup MYSYS Mysys - low level utilities for MySQL
28  @ingroup Runtime_Environment
29  @{
30  @file include/my_sys.h Common header for many mysys elements.
31  @note Many mysys implementation files now have their own header file.
32 */
33 
34 #include "my_config.h"
35 
36 #ifdef HAVE_ALLOCA_H
37 #include <alloca.h>
38 #endif
39 #include <limits.h>
40 #ifdef _WIN32
41 #include <malloc.h>
42 #endif
43 #ifdef HAVE_UNISTD_H
44 #include <unistd.h>
45 #endif
46 #include <stdarg.h>
47 #include <stdio.h>
48 #ifdef HAVE_SYS_SELECT_H
49 #include <sys/select.h>
50 #endif
51 #include <sys/types.h>
52 #include <time.h>
53 
54 #include "m_string.h" /* IWYU pragma: keep */
55 #include "my_compiler.h"
56 #include "my_inttypes.h"
57 #include "my_loglevel.h"
58 #include "my_psi_config.h" /* IWYU pragma: keep */
59 #include "my_sharedlib.h"
66 #include "mysql/psi/psi_base.h"
67 
68 struct CHARSET_INFO;
69 struct MY_CHARSET_LOADER;
70 
71 struct PSI_cond_bootstrap;
73 struct PSI_error_bootstrap;
74 struct PSI_file_bootstrap;
75 struct PSI_idle_bootstrap;
76 struct PSI_mdl_bootstrap;
78 struct PSI_mutex_bootstrap;
81 struct PSI_stage_bootstrap;
84 struct PSI_table_bootstrap;
87 struct MEM_ROOT;
88 
89 #define MY_INIT(name) \
90  { \
91  my_progname = name; \
92  my_init(); \
93  }
94 
95 /**
96  Max length of an error message generated by mysys utilities.
97  Some mysys functions produce error messages. These mostly go
98  to stderr.
99  This constant defines the size of the buffer used to format
100  the message. It should be kept in sync with MYSQL_ERRMSG_SIZE,
101  since sometimes mysys errors are stored in the server diagnostics
102  area, and we would like to avoid unexpected truncation.
103 */
104 #define MYSYS_ERRMSG_SIZE (512)
105 #define MYSYS_STRERROR_SIZE (128)
106 
107 #define MY_FILE_ERROR ((size_t)-1)
108 
109 /* General bitmaps for my_func's */
110 #define MY_FFNF 1 /* Fatal if file not found */
111 #define MY_FNABP 2 /* Fatal if not all bytes read/writen */
112 #define MY_NABP 4 /* Error if not all bytes read/writen */
113 #define MY_FAE 8 /* Fatal if any error */
114 #define MY_WME 16 /* Write message on error */
115 #define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */
116 #define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */
117 #define MY_SYNC_DIR 8192 /* my_create/delete/rename: sync directory */
118 #define MY_REPORT_WAITING_IF_FULL 64 /* my_write: set status as waiting */
119 #define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */
120 #define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */
121 #define MY_LINK_WARNING 32 /* my_redel() gives warning if links */
122 #define MY_COPYTIME 64 /* my_redel() copys time */
123 #define MY_DELETE_OLD 256 /* my_create_with_symlink() */
124 #define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */
125 #define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */
126 #define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */
127 #define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */
128 #define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */
129 #define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */
130 #define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */
131 #define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */
132 #define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */
133 #define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */
134 #define MY_SYNC 4096 /* my_copy(): sync dst file */
135 
136 #define MYF_RW MYF(MY_WME + MY_NABP) /* For my_read & my_write */
137 
138 #define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */
139 #define MY_GIVE_INFO 2 /* Give time info about process*/
140 #define MY_DONT_FREE_DBUG 4 /* Do not call DBUG_END() in my_end() */
141 
142 /* Flags for my_error() */
143 #define ME_BELL 4 /* DEPRECATED: Ring bell then printing message */
144 #define ME_ERRORLOG 64 /* Write the error message to error log */
145 #define ME_FATALERROR 1024 /* Fatal statement error */
146 
147 /* Bits in last argument to fn_format */
148 #define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */
149 #define MY_REPLACE_EXT 2 /* replace extension with 'ext' */
150 #define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */
151 /* 8 Unused. Previously used for MY_PACK_FILENAME. */
152 #define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */
153 #define MY_RETURN_REAL_PATH 32 /* return full path for file */
154 #define MY_SAFE_PATH 64 /* Return NULL if too long path */
155 #define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */
156 #define MY_APPEND_EXT 256 /* add 'ext' as additional extension*/
157 
158 /* My seek flags */
159 #define MY_SEEK_SET 0
160 #define MY_SEEK_CUR 1
161 #define MY_SEEK_END 2
162 
163 /* Some constants */
164 #define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */
165 #define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */
166 #define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */
167 #define DFLT_INIT_HITS 3
168 
169 /* root_alloc flags */
170 #define MY_KEEP_PREALLOC 1
171 #define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */
172 
173 /* Internal error numbers (for assembler functions) */
174 #define MY_ERRNO_EDOM 33
175 #define MY_ERRNO_ERANGE 34
176 
177 /* defines when allocating data */
178 extern void *my_multi_malloc(PSI_memory_key key, myf flags, ...);
179 
180 /*
181  Switch to my_malloc() if the memory block to be allocated is bigger than
182  max_alloca_sz.
183 */
185 #define my_safe_alloca(size, max_alloca_sz) \
186  ((size <= max_alloca_sz) ? my_alloca(size) \
187  : my_malloc(key_memory_max_alloca, size, MYF(0)))
188 #define my_safe_afree(ptr, size, max_alloca_sz) \
189  if (size > max_alloca_sz) my_free(ptr)
190 
191 #if defined(ENABLED_DEBUG_SYNC)
192 extern "C" void (*debug_sync_C_callback_ptr)(const char *, size_t);
193 #define DEBUG_SYNC_C(_sync_point_name_) \
194  do { \
195  if (debug_sync_C_callback_ptr != NULL) \
196  (*debug_sync_C_callback_ptr)(STRING_WITH_LEN(_sync_point_name_)); \
197  } while (0)
198 #define DEBUG_SYNC_C_IF_THD(thd, _sync_point_name_) \
199  do { \
200  if (debug_sync_C_callback_ptr != NULL && thd) \
201  (*debug_sync_C_callback_ptr)(STRING_WITH_LEN(_sync_point_name_)); \
202  } while (0)
203 #else
204 #define DEBUG_SYNC_C(_sync_point_name_)
205 #define DEBUG_SYNC_C_IF_THD(thd, _sync_point_name_)
206 #endif /* defined(ENABLED_DEBUG_SYNC) */
207 
208 #ifdef HAVE_LINUX_LARGE_PAGES
209 extern uint my_get_large_page_size(void);
210 #else
211 #define my_get_large_page_size() (0)
212 #endif /* HAVE_LINUX_LARGE_PAGES */
213 
214 #define my_alloca(SZ) alloca((size_t)(SZ))
215 
216 extern char *home_dir; /* Home directory for user */
217 extern const char *my_progname; /* program-name (printed in errors) */
218 extern void (*error_handler_hook)(uint my_err, const char *str, myf MyFlags);
219 extern void (*fatal_error_handler_hook)(uint my_err, const char *str,
220  myf MyFlags);
221 extern void (*local_message_hook)(enum loglevel ll, uint ecode, va_list args);
222 extern uint my_file_limit;
224 
225 /*
226  Hooks for reporting execution stage information. The server implementation
227  of these will also set THD::current_cond/current_mutex.
228  By having hooks, we avoid direct dependencies on server code.
229 */
230 extern void (*enter_cond_hook)(void *opaque_thd, mysql_cond_t *cond,
232  const PSI_stage_info *stage,
233  PSI_stage_info *old_stage,
234  const char *src_function, const char *src_file,
235  int src_line);
236 
237 extern void (*exit_cond_hook)(void *opaque_thd, const PSI_stage_info *stage,
238  const char *src_function, const char *src_file,
239  int src_line);
240 
241 extern void (*enter_stage_hook)(void *opaque_thd,
242  const PSI_stage_info *new_stage,
243  PSI_stage_info *old_stage,
244  const char *src_function, const char *src_file,
245  int src_line);
246 
247 /*
248  Hook for setting THD waiting_for_disk_space flag.
249 */
250 extern void (*set_waiting_for_disk_space_hook)(void *opaque_thd, bool waiting);
251 /*
252  Hook for checking if the thread has been killed.
253 */
254 extern int (*is_killed_hook)(const void *opaque_thd);
255 
256 /* charsets */
257 #define MY_ALL_CHARSETS_SIZE 2048
261 
262 /* statistics */
265 extern bool my_init_done;
266 
267 extern MYSQL_PLUGIN_IMPORT int my_umask; /* Default creation mask */
268 extern int my_umask_dir;
269 
272 
273 extern const char *charsets_dir;
274 
279  SEQ_READ_APPEND /* sequential read or append */,
283 };
284 
286  FLUSH_KEEP, /* flush block and keep it in the cache */
287  FLUSH_RELEASE, /* flush block and remove it from the cache */
288  FLUSH_IGNORE_CHANGED, /* remove block from the cache */
289  /*
290  As my_disable_flush_pagecache_blocks is always 0, the following option
291  is strictly equivalent to FLUSH_KEEP
292  */
294 };
295 
296 enum file_type {
297  UNOPEN = 0,
304 };
305 
307  char *name;
308 #ifdef _WIN32
309  HANDLE fhandle; /* win32 file handle */
310  int oflag; /* open flags, e.g O_APPEND */
311 #endif
313 };
314 
315 extern struct st_my_file_info *my_file_info;
316 
318  uchar *buffer{nullptr};
323 };
324 
325 struct MY_TMPDIR {
326  char **list{nullptr};
327  uint cur{0}, max{0};
329 };
330 
332  char *str;
334 };
335 
336 struct IO_CACHE;
337 typedef int (*IO_CACHE_CALLBACK)(IO_CACHE *);
338 
340  mysql_mutex_t mutex; /* To sync on reads into buffer. */
341  mysql_cond_t cond; /* To wait for signals. */
342  mysql_cond_t cond_writer; /* For a synchronized writer. */
343  /* Offset in file corresponding to the first byte of buffer. */
345  /* If a synchronized write cache is the source of the data. */
347  uchar *buffer; /* The read buffer. */
348  uchar *read_end; /* Behind last valid byte of buffer. */
349  int running_threads; /* threads not in lock. */
350  int total_threads; /* threads sharing the cache. */
351  int error; /* Last error. */
352 };
353 
354 struct IO_CACHE /* Used when cacheing files */
355 {
356  /* Offset in file corresponding to the first byte of uchar* buffer. */
358  /*
359  The offset of end of file for READ_CACHE and WRITE_CACHE.
360  For SEQ_READ_APPEND it the maximum of the actual end of file and
361  the position represented by read_end.
362  */
364  /* Points to current read position in the buffer */
365  uchar *read_pos{nullptr};
366  /* the non-inclusive boundary in the buffer for the currently valid read */
367  uchar *read_end{nullptr};
368  uchar *buffer{nullptr}; /* The read buffer */
369  /* Used in ASYNC_IO */
370  uchar *request_pos{nullptr};
371 
372  /* Only used in WRITE caches and in SEQ_READ_APPEND to buffer writes */
373  uchar *write_buffer{nullptr};
374  /*
375  Only used in SEQ_READ_APPEND, and points to the current read position
376  in the write buffer. Note that reads in SEQ_READ_APPEND caches can
377  happen from both read buffer (uchar* buffer) and write buffer
378  (uchar* write_buffer).
379  */
381  /* Points to current write position in the write buffer */
382  uchar *write_pos{nullptr};
383  /* The non-inclusive boundary of the valid write area */
384  uchar *write_end{nullptr};
385 
386  /*
387  Current_pos and current_end are convenience variables used by
388  my_b_tell() and other routines that need to know the current offset
389  current_pos points to &write_pos, and current_end to &write_end in a
390  WRITE_CACHE, and &read_pos and &read_end respectively otherwise
391  */
392  uchar **current_pos{nullptr}, **current_end{nullptr};
393 
394  /*
395  The lock is for append buffer used in SEQ_READ_APPEND cache
396  need mutex copying from append buffer to read buffer.
397  */
399  /*
400  The following is used when several threads are reading the
401  same file in parallel. They are synchronized on disk
402  accesses reading the cached part of the file asynchronously.
403  It should be set to NULL to disable the feature. Only
404  READ_CACHE mode is supported.
405  */
407 
408  /*
409  A caller will use my_b_read() macro to read from the cache
410  if the data is already in cache, it will be simply copied with
411  memcpy() and internal variables will be accordinging updated with
412  no functions invoked. However, if the data is not fully in the cache,
413  my_b_read() will call read_function to fetch the data. read_function
414  must never be invoked directly.
415  */
416  int (*read_function)(IO_CACHE *, uchar *, size_t){nullptr};
417  /*
418  Same idea as in the case of read_function, except my_b_write() needs to
419  be replaced with my_b_append() for a SEQ_READ_APPEND cache
420  */
421  int (*write_function)(IO_CACHE *, const uchar *, size_t){nullptr};
422  /*
423  Specifies the type of the cache. Depending on the type of the cache
424  certain operations might not be available and yield unpredicatable
425  results. Details to be documented later
426  */
428  /*
429  Callbacks when the actual read I/O happens. These were added and
430  are currently used for binary logging of LOAD DATA INFILE - when a
431  block is read from the file, we create a block create/append event, and
432  when IO_CACHE is closed, we create an end event. These functions could,
433  of course be used for other things
434  */
438  /*
439  Counts the number of times, when we were forced to use disk. We use it to
440  increase the binlog_cache_disk_use and binlog_stmt_cache_disk_use status
441  variables.
442  */
444  void *arg{nullptr}; /* for use by pre/post_read */
445  char *file_name{nullptr}; /* if used with 'open_cached_file' */
446  char *dir{nullptr}, *prefix{nullptr};
447  File file{-1}; /* file descriptor */
448  PSI_file_key file_key{PSI_NOT_INSTRUMENTED}; /* instrumented file key */
449 
450  /*
451  seek_not_done is set by my_b_seek() to inform the upcoming read/write
452  operation that a seek needs to be preformed prior to the actual I/O
453  error is 0 if the cache operation was successful, -1 if there was a
454  "hard" error, and the actual number of I/O-ed bytes if the read/write was
455  partial.
456  */
457  bool seek_not_done{false};
458  int error{0};
459  /* buffer_length is memory size allocated for buffer or write_buffer */
460  size_t buffer_length{0};
461  /* read_length is the same as buffer_length except when we use async io */
462  size_t read_length{0};
463  myf myflags{0}; /* Flags used to my_read/my_write */
464  /*
465  alloced_buffer is 1 if the buffer was allocated by init_io_cache() and
466  0 if it was supplied by the user.
467  Currently READ_NET is the only one that will use a buffer allocated
468  somewhere else
469  */
470  bool alloced_buffer{false};
471 };
472 
473 typedef int (*qsort2_cmp)(const void *, const void *, const void *);
474 
475 /*
476  Subset of struct stat fields filled by stat/lstat/fstat that uniquely
477  identify a file
478 */
479 struct ST_FILE_ID {
480  dev_t st_dev;
481  ino_t st_ino;
482 };
483 
484 typedef void (*my_error_reporter)(enum loglevel level, uint ecode, ...);
485 
487 
488 /* defines for mf_iocache */
490 
491 /* Test if buffer is inited */
492 inline void my_b_clear(IO_CACHE *info) { info->buffer = nullptr; }
493 
494 inline bool my_b_inited(const IO_CACHE *info) {
495  return info->buffer != nullptr;
496 }
497 
498 constexpr int my_b_EOF = INT_MIN;
499 
500 inline int my_b_read(IO_CACHE *info, uchar *buffer, size_t count) {
501  if (info->read_pos + count <= info->read_end) {
502  memcpy(buffer, info->read_pos, count);
503  info->read_pos += count;
504  return 0;
505  }
506  return (*info->read_function)(info, buffer, count);
507 }
508 
509 inline int my_b_write(IO_CACHE *info, const uchar *buffer, size_t count) {
510  if (info->write_pos + count <= info->write_end) {
511  memcpy(info->write_pos, buffer, count);
512  info->write_pos += count;
513  return 0;
514  }
515  return (*info->write_function)(info, buffer, count);
516 }
517 
518 extern int _my_b_get(IO_CACHE *info);
519 
520 inline int my_b_get(IO_CACHE *info) {
521  if (info->read_pos != info->read_end) {
522  info->read_pos++;
523  return info->read_pos[-1];
524  }
525  return _my_b_get(info);
526 }
527 
528 inline my_off_t my_b_tell(const IO_CACHE *info) {
529  return info->pos_in_file + *info->current_pos - info->request_pos;
530 }
531 
533  return info->request_pos;
534 }
535 
536 inline size_t my_b_get_bytes_in_buffer(const IO_CACHE *info) {
537  return info->read_end - my_b_get_buffer_start(info);
538 }
539 
541  return info->pos_in_file;
542 }
543 
544 /* tell write offset in the SEQ_APPEND cache */
545 int my_b_copy_to_file(IO_CACHE *cache, FILE *file);
546 
547 inline size_t my_b_bytes_in_cache(const IO_CACHE *info) {
548  return *info->current_end - *info->current_pos;
549 }
550 
551 typedef uint32 ha_checksum;
552 
553 /*
554  How much overhead does malloc have. The code often allocates
555  something like 1024-MALLOC_OVERHEAD bytes
556 */
557 #define MALLOC_OVERHEAD 8
558 
559 /* Typical record cache */
560 #define RECORD_CACHE_SIZE (uint)(64 * 1024 - MALLOC_OVERHEAD)
561 
562 /** struct for once_alloc (block) */
563 struct USED_MEM {
564  USED_MEM *next; /**< Next block in use */
565  unsigned int left; /**< memory left in block */
566  unsigned int size; /**< size of block */
567 };
568 
569 /* Prototypes for mysys and my_func functions */
570 
571 extern int my_copy(const char *from, const char *to, myf MyFlags);
572 extern int my_delete(const char *name, myf MyFlags);
573 extern int my_getwd(char *buf, size_t size, myf MyFlags);
574 extern int my_setwd(const char *dir, myf MyFlags);
575 extern void *my_once_alloc(size_t Size, myf MyFlags);
576 extern void my_once_free(void);
577 extern char *my_once_strdup(const char *src, myf myflags);
578 extern void *my_once_memdup(const void *src, size_t len, myf myflags);
579 extern File my_open(const char *FileName, int Flags, myf MyFlags);
580 extern File my_register_filename(File fd, const char *FileName,
581  enum file_type type_of_file,
582  uint error_message_number, myf MyFlags);
583 extern File my_create(const char *FileName, int CreateFlags, int AccessFlags,
584  myf MyFlags);
585 extern int my_close(File Filedes, myf MyFlags);
586 extern int my_mkdir(const char *dir, int Flags, myf MyFlags);
587 extern int my_readlink(char *to, const char *filename, myf MyFlags);
588 extern int my_is_symlink(const char *filename, ST_FILE_ID *file_id);
589 extern int my_realpath(char *to, const char *filename, myf MyFlags);
590 extern int my_is_same_file(File file, const ST_FILE_ID *file_id);
591 extern File my_create_with_symlink(const char *linkname, const char *filename,
592  int createflags, int access_flags,
593  myf MyFlags);
594 extern int my_delete_with_symlink(const char *name, myf MyFlags);
595 extern int my_rename_with_symlink(const char *from, const char *to,
596  myf MyFlags);
597 #ifndef _WIN32
598 extern int my_symlink(const char *content, const char *linkname, myf MyFlags);
599 #endif
600 extern size_t my_read(File Filedes, uchar *Buffer, size_t Count, myf MyFlags);
601 extern size_t my_pread(File Filedes, uchar *Buffer, size_t Count,
602  my_off_t offset, myf MyFlags);
603 extern int my_rename(const char *from, const char *to, myf MyFlags);
604 extern my_off_t my_seek(File fd, my_off_t pos, int whence, myf MyFlags);
605 extern my_off_t my_tell(File fd, myf MyFlags);
606 extern size_t my_write(File Filedes, const uchar *Buffer, size_t Count,
607  myf MyFlags);
608 extern size_t my_pwrite(File Filedes, const uchar *Buffer, size_t Count,
609  my_off_t offset, myf MyFlags);
610 extern size_t my_fread(FILE *stream, uchar *Buffer, size_t Count, myf MyFlags);
611 extern size_t my_fwrite(FILE *stream, const uchar *Buffer, size_t Count,
612  myf MyFlags);
613 extern my_off_t my_fseek(FILE *stream, my_off_t pos, int whence);
614 extern my_off_t my_ftell(FILE *stream);
615 
616 /* implemented in my_syslog.c */
617 
618 // Maximum size of message that will be logged.
619 #define MAX_SYSLOG_MESSAGE_SIZE 1024
620 
621 /* Platform-independent SysLog support */
623 
624 extern int my_openlog(const char *eventSourceName, int option, int facility);
625 extern int my_closelog();
626 extern int my_syslog(const CHARSET_INFO *cs, enum loglevel level,
627  const char *msg);
628 
629 #ifdef _WIN32
630 extern int my_access(const char *path, int amode);
631 #else
632 #define my_access access
633 #endif
634 
635 extern int check_if_legal_filename(const char *path);
636 extern int check_if_legal_tablename(const char *path);
637 
638 #ifdef _WIN32
639 extern bool is_filename_allowed(const char *name, size_t length,
640  bool allow_current_dir);
641 #else /* _WIN32 */
642 #define is_filename_allowed(name, length, allow_cwd) (true)
643 #endif /* _WIN32 */
644 
645 #ifdef _WIN32
646 extern int nt_share_delete(const char *name, myf MyFlags);
647 #define my_delete_allow_opened(fname, flags) nt_share_delete((fname), (flags))
648 #else
649 #define my_delete_allow_opened(fname, flags) my_delete((fname), (flags))
650 #endif
651 
652 #ifdef _WIN32
653 /* Windows-only functions (CRT equivalents)*/
654 extern HANDLE my_get_osfhandle(File fd);
655 extern void my_osmaperr(unsigned long last_error);
656 #endif
657 
658 extern const char *get_global_errmsg(int nr);
659 extern void wait_for_free_space(const char *filename, int errors);
660 extern FILE *my_fopen(const char *FileName, int Flags, myf MyFlags);
661 extern FILE *my_fdopen(File Filedes, const char *name, int Flags, myf MyFlags);
662 extern FILE *my_freopen(const char *path, const char *mode, FILE *stream);
663 extern int my_fclose(FILE *fd, myf MyFlags);
664 extern File my_fileno(FILE *fd);
665 extern int my_chsize(File fd, my_off_t newlength, int filler, myf MyFlags);
666 extern int my_fallocator(File fd, my_off_t newlength, int filler, myf MyFlags);
667 extern void thr_set_sync_wait_callback(void (*before_sync)(void),
668  void (*after_sync)(void));
669 extern int my_sync(File fd, myf my_flags);
670 extern int my_sync_dir(const char *dir_name, myf my_flags);
671 extern int my_sync_dir_by_file(const char *file_name, myf my_flags);
672 extern char *my_strerror(char *buf, size_t len, int errnum);
673 extern const char *my_get_err_msg(int nr);
674 extern void my_error(int nr, myf MyFlags, ...);
675 extern void my_printf_error(uint my_err, const char *format, myf MyFlags, ...)
676  MY_ATTRIBUTE((format(printf, 2, 4)));
677 extern void my_printv_error(uint error, const char *format, myf MyFlags,
678  va_list ap) MY_ATTRIBUTE((format(printf, 2, 0)));
679 extern int my_error_register(const char *(*get_errmsg)(int), int first,
680  int last);
681 extern bool my_error_unregister(int first, int last);
682 extern void my_message(uint my_err, const char *str, myf MyFlags);
683 extern void my_message_stderr(uint my_err, const char *str, myf MyFlags);
684 void my_message_local_stderr(enum loglevel, uint ecode, va_list args);
685 extern void my_message_local(enum loglevel ll, uint ecode, ...);
686 extern bool my_init(void);
687 extern void my_end(int infoflag);
688 extern const char *my_filename(File fd);
689 extern MY_MODE get_file_perm(ulong perm_flags);
690 extern bool my_chmod(const char *filename, ulong perm_flags, myf my_flags);
691 
692 #ifdef EXTRA_DEBUG
693 void my_print_open_files(void);
694 #else
695 #define my_print_open_files()
696 #endif
697 
698 extern bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist);
699 extern char *my_tmpdir(MY_TMPDIR *tmpdir);
700 extern void free_tmpdir(MY_TMPDIR *tmpdir);
701 
702 extern size_t dirname_part(char *to, const char *name, size_t *to_res_length);
703 extern size_t dirname_length(const char *name);
704 #define base_name(A) (A + dirname_length(A))
705 extern int test_if_hard_path(const char *dir_name);
706 extern bool has_path(const char *name);
707 extern char *convert_dirname(char *to, const char *from, const char *from_end);
708 extern void to_unix_path(char *name);
709 extern char *fn_ext(char *name);
710 extern const char *fn_ext(const char *name);
711 extern char *fn_same(char *toname, const char *name, int flag);
712 extern char *fn_format(char *to, const char *name, const char *dir,
713  const char *form, uint flag);
714 extern size_t strlength(const char *str);
715 extern size_t normalize_dirname(char *to, const char *from);
716 extern size_t unpack_dirname(char *to, const char *from);
717 extern size_t cleanup_dirname(char *to, const char *from);
718 extern size_t system_filename(char *to, const char *from);
719 extern size_t unpack_filename(char *to, const char *from);
720 extern char *intern_filename(char *to, const char *from);
721 extern char *my_path(char *to, const char *progname,
722  const char *own_pathname_part);
723 extern char *my_load_path(char *to, const char *path,
724  const char *own_path_prefix);
725 extern bool array_append_string_unique(const char *str, const char **array,
726  size_t size);
727 
728 void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos);
729 my_off_t my_get_ptr(uchar *ptr, size_t pack_length);
730 extern int init_io_cache_ext(IO_CACHE *info, File file, size_t cachesize,
731  enum cache_type type, my_off_t seek_offset,
732  bool use_async_io, myf cache_myflags,
733  PSI_file_key file_key);
734 extern int init_io_cache(IO_CACHE *info, File file, size_t cachesize,
735  enum cache_type type, my_off_t seek_offset,
736  bool use_async_io, myf cache_myflags);
737 extern bool reinit_io_cache(IO_CACHE *info, enum cache_type type,
738  my_off_t seek_offset, bool use_async_io,
739  bool clear_cache);
740 extern void setup_io_cache(IO_CACHE *info);
741 extern int _my_b_read(IO_CACHE *info, uchar *Buffer, size_t Count);
742 extern int _my_b_read_r(IO_CACHE *info, uchar *Buffer, size_t Count);
743 extern void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare,
744  IO_CACHE *write_cache, uint num_threads);
745 extern void remove_io_thread(IO_CACHE *info);
746 extern int _my_b_seq_read(IO_CACHE *info, uchar *Buffer, size_t Count);
747 extern int _my_b_net_read(IO_CACHE *info, uchar *Buffer, size_t Count);
748 extern int _my_b_write(IO_CACHE *info, const uchar *Buffer, size_t Count);
749 extern int my_b_append(IO_CACHE *info, const uchar *Buffer, size_t Count);
750 extern int my_b_safe_write(IO_CACHE *info, const uchar *Buffer, size_t Count);
751 
752 extern int my_block_write(IO_CACHE *info, const uchar *Buffer, size_t Count,
753  my_off_t pos);
754 extern int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock);
755 
756 #define flush_io_cache(info) my_b_flush_io_cache((info), 1)
757 
758 extern int end_io_cache(IO_CACHE *info);
759 extern size_t my_b_fill(IO_CACHE *info);
760 extern void my_b_seek(IO_CACHE *info, my_off_t pos);
761 extern size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length);
763 extern size_t my_b_printf(IO_CACHE *info, const char *fmt, ...)
764  MY_ATTRIBUTE((format(printf, 2, 3)));
765 extern size_t my_b_vprintf(IO_CACHE *info, const char *fmt, va_list ap);
766 extern bool open_cached_file(IO_CACHE *cache, const char *dir,
767  const char *prefix, size_t cache_size,
768  myf cache_myflags);
769 extern bool real_open_cached_file(IO_CACHE *cache);
770 extern void close_cached_file(IO_CACHE *cache);
771 File create_temp_file(char *to, const char *dir, const char *pfx, int mode,
772  myf MyFlags);
773 
774 // Use Prealloced_array or std::vector or something similar in C++
776  uint element_size, void *init_buffer,
777  uint init_alloc, uint alloc_increment);
778 /* init_dynamic_array() function is deprecated */
779 
780 #define dynamic_element(array, array_index, type) \
781  ((type)((array)->buffer) + (array_index))
782 
783 /* Some functions are still in use in C++, because HASH uses DYNAMIC_ARRAY */
784 extern bool insert_dynamic(DYNAMIC_ARRAY *array, const void *element);
785 extern void *alloc_dynamic(DYNAMIC_ARRAY *array);
786 extern void *pop_dynamic(DYNAMIC_ARRAY *);
787 extern void claim_dynamic(DYNAMIC_ARRAY *array);
788 extern void delete_dynamic(DYNAMIC_ARRAY *array);
789 extern void freeze_size(DYNAMIC_ARRAY *array);
790 static inline void reset_dynamic(DYNAMIC_ARRAY *array) { array->elements = 0; }
791 
792 extern bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str,
793  size_t init_alloc, size_t alloc_increment);
794 extern bool dynstr_append(DYNAMIC_STRING *str, const char *append);
795 bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, size_t length);
796 extern bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append,
797  ...);
798 extern bool dynstr_set(DYNAMIC_STRING *str, const char *init_str);
799 extern bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size);
800 extern bool dynstr_trunc(DYNAMIC_STRING *str, size_t n);
801 extern void dynstr_free(DYNAMIC_STRING *str);
802 #define alloc_root_inited(A) ((A)->inited())
803 extern void *multi_alloc_root(MEM_ROOT *mem_root, ...);
804 extern char *strdup_root(MEM_ROOT *root, const char *str);
805 extern char *safe_strdup_root(MEM_ROOT *root, const char *str);
806 extern char *strmake_root(MEM_ROOT *root, const char *str, size_t len);
807 extern void *memdup_root(MEM_ROOT *root, const void *str, size_t len);
808 extern bool my_compress(uchar *, size_t *, size_t *);
809 extern bool my_uncompress(uchar *, size_t, size_t *);
810 extern uchar *my_compress_alloc(const uchar *packet, size_t *len,
811  size_t *complen);
812 extern ha_checksum my_checksum(ha_checksum crc, const uchar *mem, size_t count);
813 
815 void my_free_open_file_info(void);
816 
817 extern bool my_gethwaddr(uchar *to);
818 
819 #ifdef HAVE_SYS_MMAN_H
820 #include <sys/mman.h>
821 
822 #ifndef MAP_NOSYNC
823 #define MAP_NOSYNC 0
824 #endif
825 
826 /*
827  Not defined in FreeBSD 11.
828  Was never implemented in FreeBSD, so we just set it to 0.
829 */
830 #ifndef MAP_NORESERVE
831 #define MAP_NORESERVE 0
832 #endif
833 
834 #ifdef HAVE_MMAP64
835 #define my_mmap(a, b, c, d, e, f) mmap64(a, b, c, d, e, f)
836 #else
837 #define my_mmap(a, b, c, d, e, f) mmap(a, b, c, d, e, f)
838 #endif
839 #define my_munmap(a, b) munmap((a), (b))
840 
841 #else
842 /* not a complete set of mmap() flags, but only those that nesessary */
843 #define PROT_READ 1
844 #define PROT_WRITE 2
845 #define MAP_NORESERVE 0
846 #define MAP_SHARED 0x0001
847 #define MAP_PRIVATE 0x0002
848 #define MAP_NOSYNC 0x0800
849 #define MAP_FAILED ((void *)-1)
850 #define MS_SYNC 0x0000
851 
852 void *my_mmap(void *, size_t, int, int, int, my_off_t);
853 int my_munmap(void *, size_t);
854 #endif
855 
856 /* my_getpagesize */
857 static inline int my_getpagesize() {
858 #ifndef _WIN32
859  return getpagesize();
860 #else
861  SYSTEM_INFO si;
862  GetSystemInfo(&si);
863  return (int)si.dwPageSize;
864 #endif
865 }
866 
867 int my_msync(int, void *, size_t, int);
868 
869 /* character sets */
871 extern uint get_charset_number(const char *cs_name, uint cs_flags);
872 extern uint get_collation_number(const char *name);
873 extern const char *get_charset_name(uint cs_number);
874 
875 extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
876 extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
878  const char *name, myf flags);
879 extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, uint cs_flags,
880  myf my_flags);
882  const char *name, uint cs_flags,
883  myf my_flags);
884 extern bool resolve_charset(const char *cs_name, const CHARSET_INFO *default_cs,
885  const CHARSET_INFO **cs);
886 extern bool resolve_collation(const char *cl_name,
887  const CHARSET_INFO *default_cl,
888  const CHARSET_INFO **cl);
889 extern char *get_charsets_dir(char *buf);
890 extern bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2);
891 extern bool init_compiled_charsets(myf flags);
892 extern void add_compiled_collation(CHARSET_INFO *cs);
894  char *to, size_t to_length,
895  const char *from, size_t length);
896 extern void charset_uninit();
897 #ifdef _WIN32
898 /* File system character set */
899 extern CHARSET_INFO *fs_character_set(void);
900 #endif
901 extern size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info, char *to,
902  size_t to_length, const char *from,
903  size_t length, char quote);
904 #ifdef _WIN32
905 extern bool have_tcpip; /* Is set if tcpip is used */
906 
907 /* implemented in my_windac.c */
908 
909 int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror,
910  DWORD owner_rights, DWORD everybody_rights);
911 
912 void my_security_attr_free(SECURITY_ATTRIBUTES *sa);
913 
914 /* implemented in my_conio.c */
915 bool my_win_is_console(FILE *file);
916 char *my_win_console_readline(const CHARSET_INFO *cs, char *mbbuf,
917  size_t mbbufsize, size_t *nread);
918 void my_win_console_write(const CHARSET_INFO *cs, const char *data,
919  size_t datalen);
920 void my_win_console_fputs(const CHARSET_INFO *cs, const char *data);
921 void my_win_console_putc(const CHARSET_INFO *cs, int c);
922 void my_win_console_vfprintf(const CHARSET_INFO *cs, const char *fmt,
923  va_list args);
924 int my_win_translate_command_line_args(const CHARSET_INFO *cs, int *ac,
925  char ***av);
926 #endif /* _WIN32 */
927 
928 #ifdef HAVE_PSI_INTERFACE
929 void my_init_mysys_psi_keys(void);
930 
932 extern void set_psi_cond_service(void *psi);
934 extern void set_psi_data_lock_service(void *psi);
936 extern void set_psi_error_service(void *psi);
938 extern void set_psi_file_service(void *psi);
940 extern void set_psi_idle_service(void *psi);
942 extern void set_psi_mdl_service(void *psi);
944 extern void set_psi_memory_service(void *psi);
946 extern void set_psi_mutex_service(void *psi);
948 extern void set_psi_rwlock_service(void *psi);
950 extern void set_psi_socket_service(void *psi);
952 extern void set_psi_stage_service(void *psi);
954 extern void set_psi_statement_service(void *psi);
956 extern void set_psi_system_service(void *psi);
958 extern void set_psi_table_service(void *psi);
960 extern void set_psi_thread_service(void *psi);
962 extern void set_psi_transaction_service(void *psi);
963 #endif /* HAVE_PSI_INTERFACE */
964 
965 struct MYSQL_FILE;
966 extern MYSQL_FILE *mysql_stdin;
967 
968 /**
969  @} (end of group MYSYS)
970 */
971 
972 #endif /* _my_sys_h */
char * safe_strdup_root(MEM_ROOT *root, const char *str)
Definition: my_alloc.cc:251
void my_message_local_stderr(enum loglevel, uint ecode, va_list args)
Issue a message locally (i.e.
Definition: my_error.cc:446
my_off_t my_seek(File fd, my_off_t pos, int whence, myf MyFlags)
Definition: my_seek.cc:82
PSI_memory_key key_memory_max_alloca
Definition: my_static.cc:66
my_syslog_options
Definition: my_sys.h:622
size_t my_pwrite(File Filedes, const uchar *Buffer, size_t Count, my_off_t offset, myf MyFlags)
Write a chunk of bytes to a file at a given position.
Definition: my_pread.cc:161
void(* my_error_reporter)(enum loglevel level, uint ecode,...)
Definition: my_sys.h:484
void set_psi_mdl_service(void *psi)
Definition: psi_noop.cc:548
Definition: my_sys.h:278
void my_message_local(enum loglevel ll, uint ecode,...)
Issue a message locally (i.e.
Definition: my_error.cc:477
void * memdup_root(MEM_ROOT *root, const void *str, size_t len)
Definition: my_alloc.cc:273
int test_if_hard_path(const char *dir_name)
Definition: my_getwd.cc:138
const char * my_progname
Definition: my_static.cc:82
static pfs_os_file_t files[1000]
Files comprising the system tablespace.
Definition: srv0start.cc:168
my_off_t my_b_tell(const IO_CACHE *info)
Definition: my_sys.h:528
unsigned char uchar
Definition: my_inttypes.h:49
my_off_t my_ftell(FILE *stream)
Definition: my_fstream.cc:168
unsigned int PSI_file_key
Instrumented file key.
Definition: psi_file_bits.h:46
uchar ** current_end
Definition: my_sys.h:392
uchar * my_compress_alloc(const uchar *packet, size_t *len, size_t *complen)
Definition: my_compress.cc:72
uint max_element
Definition: my_sys.h:319
char * dir
Definition: my_sys.h:446
MYSQL_PLUGIN_IMPORT PSI_idle_bootstrap * psi_idle_hook
Definition: psi_noop.cc:564
void set_psi_socket_service(void *psi)
Definition: psi_noop.cc:456
t pos
Definition: dbug_analyze.cc:148
Definition: my_sys.h:479
bool my_init(void)
Initialize my_sys functions, resources and variables.
Definition: my_init.cc:132
void set_psi_thread_service(void *psi)
Definition: psi_noop.cc:226
struct for once_alloc (block)
Definition: my_sys.h:563
void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos)
Definition: ptr_cmp.cc:42
constexpr int my_b_EOF
Definition: my_sys.h:498
void free_tmpdir(MY_TMPDIR *tmpdir)
Definition: mf_tempdir.cc:100
size_t length
Definition: my_sys.h:333
const char * get_charset_name(uint cs_number)
Definition: charset.cc:519
Entry point for the performance schema interface.
Definition: psi_thread.h:63
void delete_dynamic(DYNAMIC_ARRAY *array)
Definition: array.cc:200
PSI_file_key file_key
Definition: my_sys.h:448
CHARSET_INFO * my_charset_get_by_name(MY_CHARSET_LOADER *loader, const char *name, uint cs_flags, myf my_flags)
Find character set by name: extended version of get_charset_by_csname() to return error messages to t...
Definition: charset.cc:638
ssize_t count
Definition: memcached.c:386
size_t dirname_part(char *to, const char *name, size_t *to_res_length)
Gives directory part of filename.
Definition: mf_dirname.cc:96
int my_getwd(char *buf, size_t size, myf MyFlags)
Definition: my_getwd.cc:75
void thr_set_sync_wait_callback(void(*before_sync)(void), void(*after_sync)(void))
Definition: my_sync.cc:55
MYSQL_PLUGIN_IMPORT PSI_system_bootstrap * psi_system_hook
Definition: psi_noop.cc:933
const string name("\ame\)
Entry point for the performance schema interface.
Definition: psi_mutex.h:42
char buffer[STRING_BUFFER]
Definition: test_sql_9_sessions.cc:57
uint elements
Definition: my_sys.h:319
MYSQL_PLUGIN_IMPORT PSI_thread_bootstrap * psi_thread_hook
Definition: psi_noop.cc:223
size_t escape_string_for_mysql(const CHARSET_INFO *charset_info, char *to, size_t to_length, const char *from, size_t length)
Definition: charset.cc:748
uint my_file_limit
Definition: my_static.cc:89
size_t my_b_bytes_in_cache(const IO_CACHE *info)
Definition: my_sys.h:547
An instrumented cond structure.
Definition: mysql_cond_bits.h:49
Definition: my_sys.h:299
File my_create_with_symlink(const char *linkname, const char *filename, int createflags, int access_flags, myf MyFlags)
Definition: my_symlink2.cc:53
ulong my_file_opened
Definition: my_static.cc:84
int my_mkdir(const char *dir, int Flags, myf MyFlags)
Definition: my_mkdir.cc:44
uint get_charset_number(const char *cs_name, uint cs_flags)
Definition: charset.cc:510
MYSQL_PLUGIN_IMPORT PSI_stage_bootstrap * psi_stage_hook
Definition: psi_noop.cc:589
Definition: my_sys.h:325
int my_delete_with_symlink(const char *name, myf MyFlags)
Definition: my_symlink2.cc:132
size_t buffer_length
Definition: my_sys.h:460
Some integer typedefs for easier portability.
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:215
int my_error_register(const char *(*get_errmsg)(int), int first, int last)
Register error messages for use with my_error().
Definition: my_error.cc:335
int my_delete(const char *name, myf MyFlags)
Definition: my_delete.cc:45
bool dynstr_trunc(DYNAMIC_STRING *str, size_t n)
Definition: my_string.cc:125
int(* qsort2_cmp)(const void *, const void *, const void *)
Definition: my_sys.h:473
pthread_mutex_t mutex
Definition: memcached.c:384
PSI_memory_key m_psi_key
Definition: my_sys.h:322
MYSQL_PLUGIN_IMPORT PSI_memory_bootstrap * psi_memory_hook
Definition: psi_noop.cc:900
int check_if_legal_tablename(const char *path)
Definition: my_access.cc:157
void(* local_message_hook)(enum loglevel ll, uint ecode, va_list args)
Definition: my_static.cc:104
MYSQL_PLUGIN_IMPORT PSI_data_lock_bootstrap * psi_data_lock_hook
Definition: psi_noop.cc:920
bool my_b_inited(const IO_CACHE *info)
Definition: my_sys.h:494
ino_t st_ino
Definition: my_sys.h:481
#define MYSQL_PLUGIN_IMPORT
Definition: my_sharedlib.h:70
void set_psi_data_lock_service(void *psi)
Definition: psi_noop.cc:923
const char * charsets_dir
Definition: charset.cc:358
FILE * my_freopen(const char *path, const char *mode, FILE *stream)
Change the file associated with a file stream.
Definition: my_fopen.cc:173
void my_osmaperr(unsigned long oserrno)
Definition: my_winerr.cc:125
char ** list
Definition: my_sys.h:326
bool my_chmod(const char *filename, ulong perm_flags, myf my_flags)
Definition: my_chmod.cc:88
int my_block_write(IO_CACHE *info, const uchar *Buffer, size_t Count, my_off_t pos)
Definition: mf_iocache.cc:1353
int my_chsize(File fd, my_off_t newlength, int filler, myf MyFlags)
Definition: my_chsize.cc:71
uchar * read_end
Definition: my_sys.h:367
char * my_tmpdir(MY_TMPDIR *tmpdir)
Definition: mf_tempdir.cc:90
IO_CACHE * source_cache
Definition: my_sys.h:346
char * strdup_root(MEM_ROOT *root, const char *str)
Definition: my_alloc.cc:247
size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length)
Definition: mf_iocache2.cc:192
Definition: my_sys.h:306
Entry point for the performance schema interface.
Definition: psi_rwlock.h:50
bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2)
Definition: charset.cc:78
int end_io_cache(IO_CACHE *info)
Definition: mf_iocache.cc:1490
enum file_type type
Definition: my_sys.h:312
ulong my_stream_opened
Definition: my_static.cc:84
int my_openlog(const char *eventSourceName, int option, int facility)
Opens/Registers a new handle for system logging.
Definition: my_syslog.cc:244
void my_charset_loader_init_mysys(MY_CHARSET_LOADER *loader)
Initialize character set loader to use mysys memory management functions.
Definition: charset.cc:344
char * fn_same(char *toname, const char *name, int flag)
Definition: mf_same.cc:45
bool resolve_charset(const char *cs_name, const CHARSET_INFO *default_cs, const CHARSET_INFO **cs)
Resolve character set by the character set name (utf8, latin1, ...).
Definition: charset.cc:683
struct st_my_file_info * my_file_info
Definition: my_static.cc:90
int my_sync_dir_by_file(const char *file_name, myf my_flags)
Definition: my_sync.cc:181
Performance schema instrumentation interface.
Definition: my_sys.h:331
MYSQL_PLUGIN_IMPORT PSI_mdl_bootstrap * psi_mdl_hook
Definition: psi_noop.cc:545
void add_compiled_collation(CHARSET_INFO *cs)
Definition: charset.cc:415
bool seek_not_done
Definition: my_sys.h:457
int _my_b_read_r(IO_CACHE *info, uchar *Buffer, size_t Count)
Definition: mf_iocache.cc:918
printf("== done ==\)
MYSQL_PLUGIN_IMPORT PSI_statement_bootstrap * psi_statement_hook
Definition: psi_noop.cc:781
bool dynstr_set(DYNAMIC_STRING *str, const char *init_str)
Definition: my_string.cc:66
size_t my_b_vprintf(IO_CACHE *info, const char *fmt, va_list ap)
Implementation of my_b_printf.
Definition: mf_iocache2.cc:257
PSI_file_key key_file_io_cache
Definition: mf_iocache.cc:90
my_off_t my_b_filelength(IO_CACHE *info)
Definition: mf_iocache2.cc:221
uint size_of_element
Definition: my_sys.h:321
int my_syslog(const CHARSET_INFO *cs, enum loglevel level, const char *msg)
Sends message to the system logger.
Definition: my_syslog.cc:72
#define PSI_NOT_INSTRUMENTED
Definition: validate_password_imp.cc:38
ulong my_default_record_cache_size
Definition: my_static.cc:93
void set_psi_system_service(void *psi)
Definition: psi_noop.cc:936
unsigned int PSI_memory_key
Instrumented memory key.
Definition: psi_memory_bits.h:46
unsigned int root
Definition: dbug_analyze.cc:514
const char * my_filename(File fd)
Definition: my_div.cc:46
char * my_once_strdup(const char *src, myf myflags)
Definition: my_once.cc:99
const std::string FILE("FILE")
void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare, IO_CACHE *write_cache, uint num_threads)
Definition: mf_iocache.cc:610
void * my_mmap(void *, size_t, int, int, int, my_off_t)
int my_closelog()
Closes/de-registers the system logging handle.
Definition: my_syslog.cc:284
Entry point for the performance schema interface.
Definition: psi_error.h:55
MYSQL_PLUGIN_IMPORT PSI_table_bootstrap * psi_table_hook
Definition: psi_noop.cc:511
ha_checksum my_checksum(ha_checksum crc, const uchar *mem, size_t count)
Definition: checksum.cc:49
int running_threads
Definition: my_sys.h:349
int(* write_function)(IO_CACHE *, const uchar *, size_t)
Definition: my_sys.h:421
MYSQL_PLUGIN_IMPORT PSI_mutex_bootstrap * psi_mutex_hook
Definition: psi_noop.cc:252
uint32 ha_checksum
Definition: my_sys.h:551
Instrumentation helpers for conditions.
void my_free_open_file_info(void)
Definition: my_file.cc:147
uchar * read_pos
Definition: my_sys.h:365
uchar * buffer
Definition: my_sys.h:318
char * intern_filename(char *to, const char *from)
Fix a filename to intern (UNIX format).
Definition: mf_pack.cc:375
static MEM_ROOT mem
Definition: sql_servers.cc:97
FILE * my_fopen(const char *FileName, int Flags, myf MyFlags)
Definition: my_fopen.cc:63
int my_readlink(char *to, const char *filename, myf MyFlags)
Definition: my_symlink.cc:64
bool open_cached_file(IO_CACHE *cache, const char *dir, const char *prefix, size_t cache_size, myf cache_myflags)
Definition: mf_cache.cc:52
void wait_for_free_space(const char *filename, int errors)
Definition: errors.cc:151
Definition: my_sys.h:281
void my_b_clear(IO_CACHE *info)
Definition: my_sys.h:492
Functions related to handling of plugins and other dynamically loaded libraries.
bool dynstr_append(DYNAMIC_STRING *str, const char *append)
Definition: my_string.cc:103
Performance schema instrumentation interface.
#define my_print_open_files()
Definition: my_sys.h:695
Entry point for the performance schema interface.
Definition: psi_idle.h:56
File my_register_filename(File fd, const char *FileName, enum file_type type_of_file, uint error_message_number, myf MyFlags)
Definition: my_open.cc:143
CHARSET_INFO * get_charset_by_name(const char *cs_name, myf flags)
Definition: charset.cc:623
bool my_enable_symlinks
Definition: my_static.cc:164
#define my_access
Definition: my_sys.h:632
myf myflags
Definition: my_sys.h:463
int my_b_copy_to_file(IO_CACHE *cache, FILE *file)
Definition: mf_iocache2.cc:73
void(* exit_cond_hook)(void *opaque_thd, const PSI_stage_info *stage, const char *src_function, const char *src_file, int src_line)
Definition: my_static.cc:143
size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags)
Write a chunk of bytes to a file.
Definition: my_write.cc:78
Definition: my_sys.h:282
cache_type type
Definition: my_sys.h:427
int my_setwd(const char *dir, myf MyFlags)
Definition: my_getwd.cc:105
char * home_dir
Definition: my_static.cc:81
int check_if_legal_filename(const char *path)
void(* error_handler_hook)(uint my_err, const char *str, myf MyFlags)
Definition: my_static.cc:100
Entry point for the performance schema interface.
Definition: psi_statement.h:43
const char * get_global_errmsg(int nr)
Definition: errors.cc:174
File my_fileno(FILE *fd)
Definition: my_fstream.cc:178
int init_io_cache(IO_CACHE *info, File file, size_t cachesize, enum cache_type type, my_off_t seek_offset, bool use_async_io, myf cache_myflags)
Definition: mf_iocache.cc:305
int my_realpath(char *to, const char *filename, myf MyFlags)
Definition: my_symlink.cc:139
void(* set_waiting_for_disk_space_hook)(void *opaque_thd, bool waiting)
Definition: my_static.cc:149
int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
Definition: mf_iocache.cc:1408
Performance schema instrumentation interface.
char * my_path(char *to, const char *progname, const char *own_pathname_part)
Definition: mf_path.cc:61
IO_CACHE_CALLBACK pre_read
Definition: my_sys.h:435
void charset_uninit()
Definition: charset.cc:917
void close_cached_file(IO_CACHE *cache)
Definition: mf_cache.cc:91
size_t normalize_dirname(char *to, const char *from)
Convert a directory name to a format which can be compared as strings.
Definition: mf_pack.cc:201
int my_fclose(FILE *fd, myf MyFlags)
Definition: my_fopen.cc:186
structure to define some default "config_option" option settings
Definition: innodb_config.h:180
MYSQL_PLUGIN_IMPORT ulong my_thread_stack_size
Definition: my_init.cc:92
int _my_b_net_read(IO_CACHE *info, uchar *Buffer, size_t Count)
Read buffered from the net.
Definition: mf_iocache.cc:60
bool my_init_dynamic_array(DYNAMIC_ARRAY *array, PSI_memory_key key, uint element_size, void *init_buffer, uint init_alloc, uint alloc_increment)
Definition: array.cc:66
bool init_compiled_charsets(myf flags)
Definition: charset-def.cc:255
cache_type
Definition: my_sys.h:275
void set_psi_stage_service(void *psi)
Definition: psi_noop.cc:592
char * fn_ext(char *name)
Definition: mf_fn_ext.cc:71
Definition: my_sys.h:277
CHARSET_INFO * get_charset(uint cs_number, myf flags)
Definition: charset.cc:573
Stage instrument information.
Definition: psi_stage_bits.h:71
char * name
Definition: my_sys.h:307
mysql_cond_t cond
Definition: my_sys.h:341
void(* enter_stage_hook)(void *opaque_thd, const PSI_stage_info *new_stage, PSI_stage_info *old_stage, const char *src_function, const char *src_file, int src_line)
Definition: my_static.cc:146
#define MY_ALL_CHARSETS_SIZE
Definition: my_sys.h:257
int my_copy(const char *from, const char *to, myf MyFlags)
Definition: my_copy.cc:78
MYSQL_PLUGIN_IMPORT PSI_file_bootstrap * psi_file_hook
Definition: psi_noop.cc:407
void * my_once_alloc(size_t Size, myf MyFlags)
Definition: my_once.cc:61
int _my_b_get(IO_CACHE *info)
Definition: mf_iocache.cc:1214
Definition: my_sys.h:302
uint get_collation_number(const char *name)
Definition: charset.cc:459
const char * my_get_err_msg(int nr)
Get an error format string from one of the my_error_register()ed sets.
Definition: my_error.cc:183
void my_printv_error(uint error, const char *format, myf MyFlags, va_list ap)
Print an error message.
Definition: my_error.cc:291
#define is_filename_allowed(name, length, allow_cwd)
Definition: my_sys.h:642
uchar * write_pos
Definition: my_sys.h:382
Definition: my_sys.h:354
#define HANDLE
Definition: violite.h:156
bool alloced_buffer
Definition: my_sys.h:470
mysql_mutex_t mutex
Definition: my_sys.h:328
Definition: my_sys.h:298
Definition: my_sys.h:300
void * alloc_dynamic(DYNAMIC_ARRAY *array)
Definition: array.cc:138
Header for compiler-dependent features.
static char * path
Definition: mysqldump.cc:122
int my_b_get(IO_CACHE *info)
Definition: my_sys.h:520
void set_psi_statement_service(void *psi)
Definition: psi_noop.cc:784
bool array_append_string_unique(const char *str, const char **array, size_t size)
Append str to array, or move to the end if it already exists.
Definition: mf_arr_appstr.cc:50
size_t my_read(File Filedes, uchar *Buffer, size_t Count, myf MyFlags)
Read a chunk of bytes from a file with retry&#39;s if needed If flag MY_FULL_IO is set then keep reading ...
Definition: my_read.cc:72
int my_umask_dir
Definition: my_static.cc:86
Defines various enable/disable and HAVE_ macros related to the performance schema instrumentation sys...
int total_threads
Definition: my_sys.h:350
uchar * write_buffer
Definition: my_sys.h:373
unsigned int len
Definition: dbug_analyze.cc:216
dev_t st_dev
Definition: my_sys.h:480
uint cur
Definition: my_sys.h:327
unsigned int uint
Definition: uca-dump.cc:29
Definition: my_sys.h:280
char * convert_dirname(char *to, const char *from, const char *from_end)
Convert directory name to use under this system.
Definition: mf_dirname.cc:139
bool my_gethwaddr(uchar *to)
Definition: my_gethwaddr.cc:237
my_off_t my_get_ptr(uchar *ptr, size_t pack_length)
Definition: ptr_cmp.cc:76
MYSQL_PLUGIN_IMPORT PSI_cond_bootstrap * psi_cond_hook
Definition: psi_noop.cc:326
static const CHARSET_INFO * charset_info
Definition: mysql.cc:216
int _my_b_read(IO_CACHE *info, uchar *Buffer, size_t Count)
Definition: mf_iocache.cc:414
void(* enter_cond_hook)(void *opaque_thd, mysql_cond_t *cond, mysql_mutex_t *mutex, const PSI_stage_info *stage, PSI_stage_info *old_stage, const char *src_function, const char *src_file, int src_line)
Definition: my_static.cc:139
void my_message(uint my_err, const char *str, myf MyFlags)
Print an error message.
Definition: my_error.cc:313
int my_symlink(const char *content, const char *linkname, myf MyFlags)
Definition: my_symlink.cc:97
Definition: my_sys.h:339
void set_psi_idle_service(void *psi)
Definition: psi_noop.cc:567
char msg[1024]
Definition: test_sql_9_sessions.cc:282
USED_MEM * next
Next block in use.
Definition: my_sys.h:564
void * arg
Definition: my_sys.h:444
size_t cleanup_dirname(char *to, const char *from)
Remove unwanted chars from dirname.
Definition: mf_pack.cc:77
uchar * read_end
Definition: my_sys.h:348
void append(ENGINE_HANDLE *h, ENGINE_HANDLE_V1 *h1)
Definition: suite_stubs.c:73
bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, size_t length)
Definition: my_string.cc:107
An instrumented FILE structure.
Definition: mysql_file.h:475
uchar * write_end
Definition: my_sys.h:384
size_t my_b_printf(IO_CACHE *info, const char *fmt,...)
Simple printf version.
Definition: mf_iocache2.cc:239
Definition: m_ctype.h:358
mysql_cond_t cond_writer
Definition: my_sys.h:342
File my_open(const char *FileName, int Flags, myf MyFlags)
Definition: my_open.cc:65
int my_sync(File fd, myf my_flags)
Definition: my_sync.cc:84
static const char * whence(const Field *cached_field)
Get the name of the cached field of an Item_cache_json instance.
Definition: item.cc:8736
void * my_once_memdup(const void *src, size_t len, myf myflags)
Definition: my_once.cc:106
void my_init_mysys_psi_keys(void)
Definition: my_init.cc:555
Definition: my_sys.h:303
ulong my_tmp_file_created
Definition: my_static.cc:84
int my_b_append(IO_CACHE *info, const uchar *Buffer, size_t Count)
Definition: mf_iocache.cc:1298
mysql_mutex_t append_buffer_lock
Definition: my_sys.h:398
void set_psi_mutex_service(void *psi)
Definition: psi_noop.cc:255
void set_psi_memory_service(void *psi)
Definition: psi_noop.cc:903
flush_type
Definition: my_sys.h:285
size_t unpack_dirname(char *to, const char *from)
Fixes a directory name so that can be used by open().
Definition: mf_pack.cc:251
size_t my_fwrite(FILE *stream, const uchar *Buffer, size_t Count, myf MyFlags)
Definition: my_fstream.cc:111
static const char * key
Definition: suite_stubs.c:14
void setup_io_cache(IO_CACHE *info)
Definition: mf_iocache.cc:112
Definition: my_sys.h:297
bool my_compress(uchar *, size_t *, size_t *)
Definition: my_compress.cc:58
int File
Definition: my_io_bits.h:50
static MEM_ROOT mem_root
Definition: client_plugin.cc:107
Definition of the global "loglevel" enumeration.
file_type
Definition: my_sys.h:296
int my_b_read(IO_CACHE *info, uchar *buffer, size_t count)
Definition: my_sys.h:500
bool reinit_io_cache(IO_CACHE *info, enum cache_type type, my_off_t seek_offset, bool use_async_io, bool clear_cache)
Definition: mf_iocache.cc:319
unsigned long my_off_t
Definition: my_inttypes.h:88
void set_psi_table_service(void *psi)
Definition: psi_noop.cc:514
size_t unpack_filename(char *to, const char *from)
Fix filename so it can be used by open, create.
Definition: mf_pack.cc:323
uint alloc_increment
Definition: my_sys.h:320
int _my_b_write(IO_CACHE *info, const uchar *Buffer, size_t Count)
Definition: mf_iocache.cc:1233
int _my_b_seq_read(IO_CACHE *info, uchar *Buffer, size_t Count)
Definition: mf_iocache.cc:1079
CHARSET_INFO compiled_charsets[]
Definition: ctype-extra.cc:7235
Entry point for the performance schema interface.
Definition: psi_table.h:56
char * file_name
Definition: my_sys.h:445
bool resolve_collation(const char *cl_name, const CHARSET_INFO *default_cl, const CHARSET_INFO **cl)
Resolve collation by the collation name (utf8_general_ci, ...).
Definition: charset.cc:711
int my_rename_with_symlink(const char *from, const char *to, myf MyFlags)
Definition: my_symlink2.cc:159
MYSQL_PLUGIN_IMPORT PSI_socket_bootstrap * psi_socket_hook
Definition: psi_noop.cc:453
uchar ** current_pos
Definition: my_sys.h:392
Entry point for the performance schema interface.
Definition: psi_data_lock.h:79
void claim_dynamic(DYNAMIC_ARRAY *array)
Definition: array.cc:183
uint max
Definition: my_sys.h:327
Definition: my_sys.h:288
my_off_t pos_in_file
Definition: my_sys.h:357
int error
Definition: my_sys.h:458
Performance schema instrumentation interface.
bool my_disable_locking
Definition: my_static.cc:163
void remove_io_thread(IO_CACHE *info)
Definition: mf_iocache.cc:663
CHARSET_INFO * get_charset_by_csname(const char *cs_name, uint cs_flags, myf my_flags)
Definition: charset.cc:660
Definition: my_sys.h:293
const char * filename
Definition: pfs_example_component_population.cc:64
static int flag
Definition: hp_test1.cc:39
void set_psi_file_service(void *psi)
Definition: psi_noop.cc:410
MYSQL_PLUGIN_IMPORT int my_umask
Definition: my_static.cc:86
Definition: my_sys.h:287
int type
Definition: http_common.h:411
bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist)
Definition: mf_tempdir.cc:47
int my_close(File Filedes, myf MyFlags)
Definition: my_open.cc:95
MYSQL_PLUGIN_IMPORT PSI_rwlock_bootstrap * psi_rwlock_hook
Definition: psi_noop.cc:294
Entry point for the performance schema interface.
Definition: psi_system.h:56
MY_MODE get_file_perm(ulong perm_flags)
Definition: my_chmod.cc:52
void to_unix_path(char *name)
Convert filename to unix style filename.
Definition: mf_unixpath.cc:43
File my_create(const char *FileName, int CreateFlags, int AccessFlags, myf MyFlags)
Definition: my_create.cc:58
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
int my_is_same_file(File file, const ST_FILE_ID *file_id)
Return non-zero if the file descriptor and a previously lstat-ed file identified by file_id point to ...
Definition: my_symlink.cc:190
int myf
Definition: my_inttypes.h:128
bool insert_dynamic(DYNAMIC_ARRAY *array, const void *element)
Definition: array.cc:109
Definition: m_ctype.h:158
void freeze_size(DYNAMIC_ARRAY *array)
Definition: array.cc:222
size_t my_fread(FILE *stream, uchar *Buffer, size_t Count, myf MyFlags)
Definition: my_fstream.cc:70
IO_CACHE_CALLBACK post_read
Definition: my_sys.h:436
static void reset_dynamic(DYNAMIC_ARRAY *array)
Definition: my_sys.h:790
Definition: my_sys.h:622
char * progname
Definition: do_ctype.cc:76
int my_sync_dir(const char *dir_name, myf my_flags)
Definition: my_sync.cc:139
my_off_t end_of_file
Definition: my_sys.h:363
ABI for instrumented mutexes.
MYSQL_PLUGIN_IMPORT CHARSET_INFO * default_charset_info
Definition: charset.cc:413
my_off_t my_b_get_pos_in_file(const IO_CACHE *info)
Definition: my_sys.h:540
my_off_t my_tell(File fd, myf MyFlags)
Definition: my_seek.cc:116
char * prefix
Definition: my_sys.h:446
static int my_getpagesize()
Definition: my_sys.h:857
size_t alloc_increment
Definition: my_sys.h:333
bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size)
Definition: my_string.cc:87
mode_t MY_MODE
Definition: my_io_bits.h:57
void my_once_free(void)
Definition: my_once.cc:119
Entry point for the performance schema interface.
Definition: psi_transaction.h:56
mysql_mutex_t mutex
Definition: my_sys.h:340
Definition: my_sys.h:279
unsigned int left
memory left in block
Definition: my_sys.h:565
Entry point for the performance schema interface.
Definition: psi_stage.h:43
IO_CACHE_CALLBACK pre_close
Definition: my_sys.h:437
loglevel
Definition: my_loglevel.h:32
bool real_open_cached_file(IO_CACHE *cache)
Definition: mf_cache.cc:74
Entry point for the performance schema interface.
Definition: psi_cond.h:43
size_t my_pread(File Filedes, uchar *Buffer, size_t Count, my_off_t offset, myf MyFlags)
Definition: my_pread.cc:82
size_t system_filename(char *to, const char *from)
Convert filename (unix standard) to system standard Used before system command&#39;s like open()...
Definition: mf_pack.cc:355
FILE * my_fdopen(File Filedes, const char *name, int Flags, myf MyFlags)
Definition: my_fopen.cc:218
ulong my_file_total_opened
Definition: my_static.cc:85
int init_io_cache_ext(IO_CACHE *info, File file, size_t cachesize, enum cache_type type, my_off_t seek_offset, bool use_async_io, myf cache_myflags, PSI_file_key file_key)
Definition: mf_iocache.cc:171
Types to make file and socket I/O compatible.
void set_psi_rwlock_service(void *psi)
Definition: psi_noop.cc:297
my_off_t my_fseek(FILE *stream, my_off_t pos, int whence)
Definition: my_fstream.cc:158
uchar * append_read_pos
Definition: my_sys.h:380
int error
Definition: my_sys.h:351
Entry point for the performance schema interface.
Definition: psi_memory.h:75
int my_is_symlink(const char *filename, ST_FILE_ID *file_id)
Definition: my_symlink.cc:117
char * fn_format(char *to, const char *name, const char *dir, const char *form, uint flag)
Formats a filename with possible replace of directory of extension Function can handle the case where...
Definition: mf_format.cc:68
void * multi_alloc_root(MEM_ROOT *mem_root,...)
Definition: my_alloc.cc:219
uint my_set_max_open_files(uint files)
Definition: my_file.cc:122
char * str
Definition: my_sys.h:332
int my_msync(int, void *, size_t, int)
char * my_load_path(char *to, const char *path, const char *own_path_prefix)
Returns full load-path for a file.
Definition: mf_loadpath.cc:61
File file
Definition: my_sys.h:447
CHARSET_INFO * my_collation_get_by_name(MY_CHARSET_LOADER *loader, const char *name, myf flags)
Find collation by name: extended version of get_charset_by_name() to return error messages to the cal...
Definition: charset.cc:605
int my_b_safe_write(IO_CACHE *info, const uchar *Buffer, size_t Count)
Definition: mf_iocache.cc:1336
int my_b_write(IO_CACHE *info, const uchar *buffer, size_t count)
Definition: my_sys.h:509
bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, size_t init_alloc, size_t alloc_increment)
Definition: my_string.cc:44
File create_temp_file(char *to, const char *dir, const char *pfx, int mode, myf MyFlags)
Definition: mf_tempfile.cc:84
char * my_strerror(char *buf, size_t len, int errnum)
Get a string describing a system or handler error.
Definition: my_error.cc:109
bool my_init_done
Definition: my_init.cc:91
Log info(cout, "NOTE")
char * get_charsets_dir(char *buf)
Definition: charset.cc:392
char * strmake_root(MEM_ROOT *root, const char *str, size_t len)
Definition: my_alloc.cc:264
ulong disk_writes
Definition: my_sys.h:443
size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info, char *to, size_t to_length, const char *from, size_t length, char quote)
Definition: charset.cc:874
uchar * buffer
Definition: my_sys.h:347
size_t my_b_fill(IO_CACHE *info)
Definition: mf_iocache2.cc:150
int my_rename(const char *from, const char *to, myf MyFlags)
Definition: my_rename.cc:46
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:77
MYSQL_PLUGIN_IMPORT PSI_transaction_bootstrap * psi_transaction_hook
Definition: psi_noop.cc:848
size_t strlength(const char *str)
Calculate the length of str not including any trailing &#39; &#39;-bytes.
Definition: mf_format.cc:151
unsigned int size
size of block
Definition: my_sys.h:566
static int flags[50]
Definition: hp_test1.cc:39
Definition: my_sys.h:317
size_t dirname_length(const char *name)
Get the string length of the directory part of name, including the last FN_LIBCHAR.
Definition: mf_dirname.cc:51
Entry point for the performance schema interface.
Definition: psi_socket.h:48
Definition: my_sys.h:301
Entry point for the performance schema interface.
Definition: psi_file.h:55
Definition: my_sys.h:286
bool has_path(const char *name)
Definition: my_getwd.cc:161
my_off_t pos_in_file
Definition: my_sys.h:344
Entry point for the performance schema interface.
Definition: psi_mdl.h:56
int my_munmap(void *, size_t)
int my_fallocator(File fd, my_off_t newlength, int filler, myf MyFlags)
Change size of the specified file.
Definition: my_fallocator.cc:69
IO_CACHE_SHARE * share
Definition: my_sys.h:406
bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append,...)
Definition: my_string.cc:147
MYSQL_PLUGIN_IMPORT CHARSET_INFO * all_charsets[MY_ALL_CHARSETS_SIZE]
Definition: charset.cc:412
void(* fatal_error_handler_hook)(uint my_err, const char *str, myf MyFlags)
Definition: my_static.cc:102
void my_end(int infoflag)
Definition: my_init.cc:176
void dynstr_free(DYNAMIC_STRING *str)
Definition: my_string.cc:180
void set_psi_transaction_service(void *psi)
Definition: psi_noop.cc:851
my_error_reporter my_charset_error_reporter
Definition: charset.cc:320
size_t max_length
Definition: my_sys.h:333
unsigned long ulong
Definition: my_inttypes.h:46
size_t my_b_get_bytes_in_buffer(const IO_CACHE *info)
Definition: my_sys.h:536
#define my_get_large_page_size()
Definition: my_sys.h:211
size_t read_length
Definition: my_sys.h:462
bool my_uncompress(uchar *, size_t, size_t *)
Definition: my_compress.cc:118
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
MYSQL_PLUGIN_IMPORT PSI_error_bootstrap * psi_error_hook
Definition: psi_noop.cc:861
void my_printf_error(uint my_err, const char *format, myf MyFlags,...)
Print an error message.
Definition: my_error.cc:265
void my_b_seek(IO_CACHE *info, my_off_t pos)
Definition: mf_iocache2.cc:95
int(* is_killed_hook)(const void *opaque_thd)
Definition: my_static.cc:152
void my_message_stderr(uint my_err, const char *str, myf MyFlags)
Print an error message on stderr.
Definition: my_mess.cc:59
bool my_error_unregister(int first, int last)
Unregister formerly registered error messages.
Definition: my_error.cc:381
void * pop_dynamic(DYNAMIC_ARRAY *)
Definition: array.cc:177
int(* read_function)(IO_CACHE *, uchar *, size_t)
Definition: my_sys.h:416
void set_psi_cond_service(void *psi)
Definition: psi_noop.cc:329
uchar * my_b_get_buffer_start(const IO_CACHE *info)
Definition: my_sys.h:532
Definition: my_sys.h:276
uchar * request_pos
Definition: my_sys.h:370
int(* IO_CACHE_CALLBACK)(IO_CACHE *)
Definition: my_sys.h:337
void * my_multi_malloc(PSI_memory_key key, myf flags,...)
Definition: mulalloc.cc:58
void set_psi_error_service(void *psi)
Definition: psi_noop.cc:864
MYSQL_FILE * mysql_stdin
Definition: my_init.cc:93
uchar * buffer
Definition: my_sys.h:368
Log error(cerr, "ERROR")