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