MySQL  8.0.27
Source Code Documentation
mysql.h
Go to the documentation of this file.
1 /* Copyright (c) 2000, 2021, 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 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  Without limiting anything contained in the foregoing, this file,
15  which is part of C Driver for MySQL (Connector/C), is also subject to the
16  Universal FOSS Exception, version 1.0, a copy of which can be found at
17  http://oss.oracle.com/licenses/universal-foss-exception.
18 
19  This program is distributed in the hope that it will be useful,
20  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  GNU General Public License, version 2.0, for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with this program; if not, write to the Free Software
26  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
27 
28 /**
29  @file include/mysql.h
30  This file defines the client API to MySQL and also the ABI of the
31  dynamically linked libmysqlclient.
32 
33  The ABI should never be changed in a released product of MySQL,
34  thus you need to take great care when changing the file. In case
35  the file is changed so the ABI is broken, you must also update
36  the SHARED_LIB_MAJOR_VERSION in cmake/mysql_version.cmake
37 */
38 
39 #ifndef _mysql_h
40 #define _mysql_h
41 
42 #ifndef MYSQL_ABI_CHECK
43 #include <stdbool.h>
44 #include <stddef.h>
45 #include <stdint.h>
46 #include <sys/types.h>
47 #endif
48 
49 // Legacy definition for the benefit of old code. Use uint64_t in new code.
50 // If you get warnings from printf, use the PRIu64 macro, or, if you need
51 // compatibility with older versions of the client library, cast
52 // before printing.
53 typedef uint64_t my_ulonglong;
54 
55 #ifndef my_socket_defined
56 #define my_socket_defined
57 #ifdef _WIN32
58 #include <windows.h>
59 #ifdef WIN32_LEAN_AND_MEAN
60 #include <winsock2.h>
61 #endif
62 #define my_socket SOCKET
63 #else
64 typedef int my_socket;
65 #endif /* _WIN32 */
66 #endif /* my_socket_defined */
67 
68 // Small extra definition to avoid pulling in my_compiler.h in client code.
69 // IWYU pragma: no_include "my_compiler.h"
70 #ifndef MY_COMPILER_INCLUDED
71 #if !defined(_WIN32)
72 #define STDCALL
73 #else
74 #define STDCALL __stdcall
75 #endif
76 #endif /* MY_COMPILER_INCLUDED */
77 
78 #include "field_types.h"
79 #include "my_list.h"
80 #include "mysql_com.h"
81 
82 /* Include declarations of plug-in API */
83 #include "mysql/client_plugin.h" // IWYU pragma: keep
84 
85 /*
86  The client should be able to know which version it is compiled against,
87  even if mysql.h doesn't use this information directly.
88 */
89 #include "mysql_version.h" // IWYU pragma: keep
90 
91 // MYSQL_TIME is part of our public API.
92 #include "mysql_time.h" // IWYU pragma: keep
93 
94 // The error messages are part of our public API.
95 #include "errmsg.h" // IWYU pragma: keep
96 
97 #ifdef __cplusplus
98 extern "C" {
99 #endif
100 
101 extern unsigned int mysql_port;
102 extern char *mysql_unix_port;
103 
104 #define CLIENT_NET_RETRY_COUNT 1 /* Retry count */
105 #define CLIENT_NET_READ_TIMEOUT 365 * 24 * 3600 /* Timeout on read */
106 #define CLIENT_NET_WRITE_TIMEOUT 365 * 24 * 3600 /* Timeout on write */
107 
108 #define IS_PRI_KEY(n) ((n)&PRI_KEY_FLAG)
109 #define IS_NOT_NULL(n) ((n)&NOT_NULL_FLAG)
110 #define IS_BLOB(n) ((n)&BLOB_FLAG)
111 /**
112  Returns true if the value is a number which does not need quotes for
113  the sql_lex.cc parser to parse correctly.
114 */
115 #define IS_NUM(t) \
116  (((t) <= MYSQL_TYPE_INT24 && (t) != MYSQL_TYPE_TIMESTAMP) || \
117  (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL)
118 #define IS_LONGDATA(t) ((t) >= MYSQL_TYPE_TINY_BLOB && (t) <= MYSQL_TYPE_STRING)
119 
120 typedef struct MYSQL_FIELD {
121  char *name; /* Name of column */
122  char *org_name; /* Original column name, if an alias */
123  char *table; /* Table of column if column was a field */
124  char *org_table; /* Org table name, if table was an alias */
125  char *db; /* Database for table */
126  char *catalog; /* Catalog for table */
127  char *def; /* Default value (set by mysql_list_fields) */
128  unsigned long length; /* Width of column (create length) */
129  unsigned long max_length; /* Max width for selected set */
130  unsigned int name_length;
131  unsigned int org_name_length;
132  unsigned int table_length;
133  unsigned int org_table_length;
134  unsigned int db_length;
135  unsigned int catalog_length;
136  unsigned int def_length;
137  unsigned int flags; /* Div flags */
138  unsigned int decimals; /* Number of decimals in field */
139  unsigned int charsetnr; /* Character set */
140  enum enum_field_types type; /* Type of field. See mysql_com.h for types */
141  void *extension;
143 
144 typedef char **MYSQL_ROW; /* return data as array of strings */
145 typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */
146 
147 #define MYSQL_COUNT_ERROR (~(uint64_t)0)
148 
149 /* backward compatibility define - to be removed eventually */
150 #define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED
151 
152 typedef struct MYSQL_ROWS {
153  struct MYSQL_ROWS *next; /* list of rows */
155  unsigned long length;
157 
158 typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */
159 
160 struct MEM_ROOT;
161 
162 typedef struct MYSQL_DATA {
164  struct MEM_ROOT *alloc;
165  uint64_t rows;
166  unsigned int fields;
168 
215 };
216 
217 /**
218  @todo remove the "extension", move st_mysql_options completely
219  out of mysql.h
220 */
222 
225  unsigned int port, protocol;
226  unsigned long client_flag;
227  char *host, *user, *password, *unix_socket, *db;
230  char *ssl_key; /* PEM key file */
231  char *ssl_cert; /* PEM cert file */
232  char *ssl_ca; /* PEM CA file */
233  char *ssl_capath; /* PEM directory of CA-s? */
234  char *ssl_cipher; /* cipher to use */
236  unsigned long max_allowed_packet;
238  /**
239  The local address to bind when connecting to remote server.
240  */
242  /* 0 - never report, 1 - always report (default) */
244 
245  /* function pointers for local infile support */
246  int (*local_infile_init)(void **, const char *, void *);
247  int (*local_infile_read)(void *, char *, unsigned int);
248  void (*local_infile_end)(void *);
249  int (*local_infile_error)(void *, char *, unsigned int);
252 };
253 
259 };
260 
267 };
268 
275 };
276 
281 };
282 
283 typedef struct character_set {
284  unsigned int number; /* character set number */
285  unsigned int state; /* character set state */
286  const char *csname; /* collation name */
287  const char *name; /* character set name */
288  const char *comment; /* comment */
289  const char *dir; /* character set directory */
290  unsigned int mbminlen; /* min. length for multibyte strings */
291  unsigned int mbmaxlen; /* max. length for multibyte strings */
293 
294 struct MYSQL_METHODS;
295 struct MYSQL_STMT;
296 
297 typedef struct MYSQL {
298  NET net; /* Communication parameters */
299  unsigned char *connector_fd; /* ConnectorFd for SSL */
301  char *info, *db;
305  uint64_t affected_rows;
306  uint64_t insert_id; /* id if insert on table with NEXTNR */
307  uint64_t extra_info; /* Not used */
308  unsigned long thread_id; /* Id for connection in server */
309  unsigned long packet_length;
310  unsigned int port;
312  unsigned int protocol_version;
313  unsigned int field_count;
314  unsigned int server_status;
315  unsigned int server_language;
316  unsigned int warning_count;
317  struct st_mysql_options options;
318  enum mysql_status status;
320  bool free_me; /* If free in mysql_close */
321  bool reconnect; /* set to 1 if automatic reconnect */
322 
323  /* session-wide random string */
325 
326  LIST *stmts; /* list of all statements */
327  const struct MYSQL_METHODS *methods;
328  void *thd;
329  /*
330  Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag
331  from mysql_stmt_close if close had to cancel result set of this object.
332  */
334  void *extension;
336 
337 typedef struct MYSQL_RES {
338  uint64_t row_count;
340  struct MYSQL_DATA *data;
342  unsigned long *lengths; /* column lengths of current row */
343  MYSQL *handle; /* for unbuffered reads */
344  const struct MYSQL_METHODS *methods;
345  MYSQL_ROW row; /* If unbuffered read */
346  MYSQL_ROW current_row; /* buffer to current row */
348  unsigned int field_count, current_field;
349  bool eof; /* Used by mysql_fetch_row */
350  /* mysql_stmt_close() had to cancel this result */
353  void *extension;
355 
356 /**
357  Flag to indicate that COM_BINLOG_DUMP_GTID should
358  be used rather than COM_BINLOG_DUMP in the @sa mysql_binlog_open().
359 */
360 #define MYSQL_RPL_GTID (1 << 16)
361 /**
362  Skip HEARBEAT events in the @sa mysql_binlog_fetch().
363 */
364 #define MYSQL_RPL_SKIP_HEARTBEAT (1 << 17)
365 
366 /**
367  Struct for information about a replication stream.
368 
369  @sa mysql_binlog_open()
370  @sa mysql_binlog_fetch()
371  @sa mysql_binlog_close()
372 */
373 typedef struct MYSQL_RPL {
374  size_t file_name_length; /** Length of the 'file_name' or 0 */
375  const char *file_name; /** Filename of the binary log to read */
376  uint64_t start_position; /** Position in the binary log to */
377  /* start reading from */
378  unsigned int server_id; /** Server ID to use when identifying */
379  /* with the master */
380  unsigned int flags; /** Flags, e.g. MYSQL_RPL_GTID */
381 
382  /** Size of gtid set data */
384  /** Callback function which is called */
385  /* from @sa mysql_binlog_open() to */
386  /* fill command packet gtid set */
387  void (*fix_gtid_set)(struct MYSQL_RPL *rpl, unsigned char *packet_gtid_set);
388  void *gtid_set_arg; /** GTID set data or an argument for */
389  /* fix_gtid_set() callback function */
390 
391  unsigned long size; /** Size of the packet returned by */
392  /* mysql_binlog_fetch() */
393  const unsigned char *buffer; /** Pointer to returned data */
395 
396 /*
397  Set up and bring down the server; to ensure that applications will
398  work when linked against either the standard client library or the
399  embedded server library, these functions should be called.
400 */
401 int STDCALL mysql_server_init(int argc, char **argv, char **groups);
402 void STDCALL mysql_server_end(void);
403 
404 /*
405  mysql_server_init/end need to be called when using libmysqld or
406  libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so
407  you don't need to call it explicitely; but you need to call
408  mysql_server_end() to free memory). The names are a bit misleading
409  (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general
410  names which suit well whether you're using libmysqld or libmysqlclient. We
411  intend to promote these aliases over the mysql_server* ones.
412 */
413 #define mysql_library_init mysql_server_init
414 #define mysql_library_end mysql_server_end
415 
416 /*
417  Set up and bring down a thread; these function should be called
418  for each thread in an application which opens at least one MySQL
419  connection. All uses of the connection(s) should be between these
420  function calls.
421 */
422 bool STDCALL mysql_thread_init(void);
423 void STDCALL mysql_thread_end(void);
424 
425 /*
426  Functions to get information from the MYSQL and MYSQL_RES structures
427  Should definitely be used if one uses shared libraries.
428 */
429 
430 uint64_t STDCALL mysql_num_rows(MYSQL_RES *res);
431 unsigned int STDCALL mysql_num_fields(MYSQL_RES *res);
432 bool STDCALL mysql_eof(MYSQL_RES *res);
434  unsigned int fieldnr);
439 
440 unsigned int STDCALL mysql_field_count(MYSQL *mysql);
443 unsigned int STDCALL mysql_errno(MYSQL *mysql);
444 const char *STDCALL mysql_error(MYSQL *mysql);
445 const char *STDCALL mysql_sqlstate(MYSQL *mysql);
446 unsigned int STDCALL mysql_warning_count(MYSQL *mysql);
447 const char *STDCALL mysql_info(MYSQL *mysql);
448 unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
450 int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname);
451 
453 bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert,
454  const char *ca, const char *capath,
455  const char *cipher);
457 bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
458  const char *passwd, const char *db);
460  const char *user, const char *passwd,
461  const char *db, unsigned int port,
462  const char *unix_socket,
463  unsigned long clientflag);
464 int STDCALL mysql_select_db(MYSQL *mysql, const char *db);
465 int STDCALL mysql_query(MYSQL *mysql, const char *q);
466 int STDCALL mysql_send_query(MYSQL *mysql, const char *q, unsigned long length);
467 int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);
470 
472  MYSQL *mysql, const char *host, const char *user, const char *passwd,
473  const char *db, unsigned int port, const char *unix_socket,
474  unsigned long clientflag);
476  MYSQL *mysql, const char *query, unsigned long length);
478  MYSQL *mysql, const char *query, unsigned long length);
483  const char *db,
484  bool *error);
487 
490  const char **data, size_t *length);
493  const char **data, size_t *length);
494 /* local infile support */
495 
496 #define LOCAL_INFILE_ERROR_LEN 512
497 
499  MYSQL *mysql, int (*local_infile_init)(void **, const char *, void *),
500  int (*local_infile_read)(void *, char *, unsigned int),
501  void (*local_infile_end)(void *),
502  int (*local_infile_error)(void *, char *, unsigned int), void *);
503 
506  enum mysql_enum_shutdown_level shutdown_level);
508 int STDCALL mysql_refresh(MYSQL *mysql, unsigned int refresh_options);
509 int STDCALL mysql_kill(MYSQL *mysql, unsigned long pid);
511  enum enum_mysql_set_option option);
513 const char *STDCALL mysql_stat(MYSQL *mysql);
515 const char *STDCALL mysql_get_client_info(void);
516 unsigned long STDCALL mysql_get_client_version(void);
517 const char *STDCALL mysql_get_host_info(MYSQL *mysql);
519 unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
520 MYSQL_RES *STDCALL mysql_list_dbs(MYSQL *mysql, const char *wild);
521 MYSQL_RES *STDCALL mysql_list_tables(MYSQL *mysql, const char *wild);
523 int STDCALL mysql_options(MYSQL *mysql, enum mysql_option option,
524  const void *arg);
525 int STDCALL mysql_options4(MYSQL *mysql, enum mysql_option option,
526  const void *arg1, const void *arg2);
528  const void *arg);
531 void STDCALL mysql_data_seek(MYSQL_RES *result, uint64_t offset);
533  MYSQL_ROW_OFFSET offset);
535  MYSQL_FIELD_OFFSET offset);
538  MYSQL_ROW *row);
539 
542 MYSQL_RES *STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
543  const char *wild);
544 unsigned long STDCALL mysql_escape_string(char *to, const char *from,
545  unsigned long from_length);
546 unsigned long STDCALL mysql_hex_string(char *to, const char *from,
547  unsigned long from_length);
548 unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, char *to,
549  const char *from,
550  unsigned long length);
552  const char *from,
553  unsigned long length,
554  char quote);
555 void STDCALL mysql_debug(const char *debug);
557 unsigned int STDCALL mysql_thread_safe(void);
560 
564 
565 /*
566  The following definitions are added for the enhanced
567  client-server protocol
568 */
569 
570 /* statement state */
576 };
577 
578 /*
579  This structure is used to define bind information, and
580  internally by the client library.
581  Public members with their descriptions are listed below
582  (conventionally `On input' refers to the binds given to
583  mysql_stmt_bind_param, `On output' refers to the binds given
584  to mysql_stmt_bind_result):
585 
586  buffer_type - One of the MYSQL_* types, used to describe
587  the host language type of buffer.
588  On output: if column type is different from
589  buffer_type, column value is automatically converted
590  to buffer_type before it is stored in the buffer.
591  buffer - On input: points to the buffer with input data.
592  On output: points to the buffer capable to store
593  output data.
594  The type of memory pointed by buffer must correspond
595  to buffer_type. See the correspondence table in
596  the comment to mysql_stmt_bind_param.
597 
598  The two above members are mandatory for any kind of bind.
599 
600  buffer_length - the length of the buffer. You don't have to set
601  it for any fixed length buffer: float, double,
602  int, etc. It must be set however for variable-length
603  types, such as BLOBs or STRINGs.
604 
605  length - On input: in case when lengths of input values
606  are different for each execute, you can set this to
607  point at a variable containining value length. This
608  way the value length can be different in each execute.
609  If length is not NULL, buffer_length is not used.
610  Note, length can even point at buffer_length if
611  you keep bind structures around while fetching:
612  this way you can change buffer_length before
613  each execution, everything will work ok.
614  On output: if length is set, mysql_stmt_fetch will
615  write column length into it.
616 
617  is_null - On input: points to a boolean variable that should
618  be set to TRUE for NULL values.
619  This member is useful only if your data may be
620  NULL in some but not all cases.
621  If your data is never NULL, is_null should be set to 0.
622  If your data is always NULL, set buffer_type
623  to MYSQL_TYPE_NULL, and is_null will not be used.
624 
625  is_unsigned - On input: used to signify that values provided for one
626  of numeric types are unsigned.
627  On output describes signedness of the output buffer.
628  If, taking into account is_unsigned flag, column data
629  is out of range of the output buffer, data for this column
630  is regarded truncated. Note that this has no correspondence
631  to the sign of result set column, if you need to find it out
632  use mysql_stmt_result_metadata.
633  error - where to write a truncation error if it is present.
634  possible error value is:
635  0 no truncation
636  1 value is out of range or buffer is too small
637 
638  Please note that MYSQL_BIND also has internals members.
639 */
640 
641 typedef struct MYSQL_BIND {
642  unsigned long *length; /* output length pointer */
643  bool *is_null; /* Pointer to null indicator */
644  void *buffer; /* buffer to get/put data */
645  /* set this if you want to track data truncations happened during fetch */
646  bool *error;
647  unsigned char *row_ptr; /* for the current data position */
648  void (*store_param_func)(NET *net, struct MYSQL_BIND *param);
649  void (*fetch_result)(struct MYSQL_BIND *, MYSQL_FIELD *, unsigned char **row);
650  void (*skip_result)(struct MYSQL_BIND *, MYSQL_FIELD *, unsigned char **row);
651  /* output buffer length, must be set when fetching str/binary */
652  unsigned long buffer_length;
653  unsigned long offset; /* offset position for char/binary fetch */
654  unsigned long length_value; /* Used if length is 0 */
655  unsigned int param_number; /* For null count and error messages */
656  unsigned int pack_length; /* Internal length for packed data */
657  enum enum_field_types buffer_type; /* buffer type */
658  bool error_value; /* used if error is 0 */
659  bool is_unsigned; /* set if integer type is unsigned */
660  bool long_data_used; /* If used with mysql_send_long_data */
661  bool is_null_value; /* Used if is_null is 0 */
662  void *extension;
664 
665 struct MYSQL_STMT_EXT;
666 
667 /* statement handler */
668 typedef struct MYSQL_STMT {
669  struct MEM_ROOT *mem_root; /* root allocations */
670  LIST list; /* list to keep track of all stmts */
671  MYSQL *mysql; /* connection handle */
672  MYSQL_BIND *params; /* input parameters */
673  MYSQL_BIND *bind; /* output parameters */
674  MYSQL_FIELD *fields; /* result set metadata */
675  MYSQL_DATA result; /* cached result set */
676  MYSQL_ROWS *data_cursor; /* current row in cached result */
677  /*
678  mysql_stmt_fetch() calls this function to fetch one row (it's different
679  for buffered, unbuffered and cursor fetch).
680  */
681  int (*read_row_func)(struct MYSQL_STMT *stmt, unsigned char **row);
682  /* copy of mysql->affected_rows after statement execution */
683  uint64_t affected_rows;
684  uint64_t insert_id; /* copy of mysql->insert_id */
685  unsigned long stmt_id; /* Id for prepared statement */
686  unsigned long flags; /* i.e. type of cursor to open */
687  unsigned long prefetch_rows; /* number of rows per one COM_FETCH */
688  /*
689  Copied from mysql->server_status after execute/fetch to know
690  server-side cursor status for this statement.
691  */
692  unsigned int server_status;
693  unsigned int last_errno; /* error code */
694  unsigned int param_count; /* input parameter count */
695  unsigned int field_count; /* number of columns in result set */
696  enum enum_mysql_stmt_state state; /* statement state */
697  char last_error[MYSQL_ERRMSG_SIZE]; /* error message */
699  /* Types of input parameters should be sent to server */
701  bool bind_param_done; /* input buffers were supplied */
702  unsigned char bind_result_done; /* output buffers were supplied */
703  /* mysql_stmt_close() had to cancel this result */
705  /*
706  Is set to true if we need to calculate field->max_length for
707  metadata fields when doing mysql_stmt_store_result.
708  */
712 
714  /*
715  When doing mysql_stmt_store_result calculate max_length attribute
716  of statement metadata. This is to be consistent with the old API,
717  where this was done automatically.
718  In the new API we do that only by request because it slows down
719  mysql_stmt_store_result sufficiently.
720  */
722  /*
723  unsigned long with combination of cursor flags (read only, for update,
724  etc)
725  */
727  /*
728  Amount of rows to retrieve from server per one fetch if using cursors.
729  Accepts unsigned long attribute in the range 1 - ulong_max
730  */
732 };
733 
734 bool STDCALL mysql_bind_param(MYSQL *mysql, unsigned n_params,
735  MYSQL_BIND *binds, const char **names);
736 
739  unsigned long length);
743  unsigned int column, unsigned long offset);
745 unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT *stmt);
747  enum enum_stmt_attr_type attr_type,
748  const void *attr);
750  enum enum_stmt_attr_type attr_type,
751  void *attr);
758  unsigned int param_number,
759  const char *data, unsigned long length);
762 unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT *stmt);
763 const char *STDCALL mysql_stmt_error(MYSQL_STMT *stmt);
764 const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT *stmt);
766  MYSQL_ROW_OFFSET offset);
768 void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, uint64_t offset);
769 uint64_t STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt);
771 uint64_t STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt);
772 unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt);
773 
776 bool STDCALL mysql_autocommit(MYSQL *mysql, bool auto_mode);
781 
782 /* Public key reset */
784 
785 /* status return codes */
786 #define MYSQL_NO_DATA 100
787 #define MYSQL_DATA_TRUNCATED 101
788 
789 #define mysql_reload(mysql) mysql_refresh((mysql), REFRESH_GRANT)
790 
791 #define HAVE_MYSQL_REAL_CONNECT
792 
794  const char *dns_srv_name,
795  const char *user, const char *passwd,
796  const char *db,
797  unsigned long client_flag);
798 
799 #ifdef __cplusplus
800 }
801 #endif
802 
803 #endif /* _mysql_h */
MySQL Client Plugin API.
char * argv[]
Definition: do_ctype.cc:45
get_options & argc
Definition: do_ctype.cc:51
Error messages for MySQL clients.
This file contains the field type.
enum_field_types
Column types for MySQL.
Definition: field_types.h:57
mysql_enum_shutdown_level
We want levels to be in growing order of hardness (because we use number comparisons).
Definition: mysql_com.h:1001
static char * query
Definition: myisam_ftdump.cc:44
static char * dns_srv_name
Definition: mysql.cc:183
static MYSQL mysql
Definition: mysql.cc:153
int STDCALL mysql_refresh(MYSQL *mysql, unsigned int refresh_options)
Definition: libmysql.cc:818
unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt)
Definition: libmysql.cc:2260
bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt)
Definition: libmysql.cc:4190
MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, unsigned int fieldnr)
Definition: libmysql.cc:902
void STDCALL mysql_data_seek(MYSQL_RES *result, uint64_t offset)
Definition: libmysql.cc:672
bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, enum enum_stmt_attr_type attr_type, void *attr)
Definition: libmysql.cc:2089
MYSQL *STDCALL mysql_real_connect_dns_srv(MYSQL *mysql, const char *dns_srv_name, const char *user, const char *passwd, const char *db, unsigned long client_flag)
Connect to a server using a DNS SRV name.
Definition: dns_srv.cc:161
int STDCALL mysql_binlog_open(MYSQL *mysql, MYSQL_RPL *rpl)
Open a new replication stream.
Definition: client.cc:6938
unsigned int STDCALL mysql_thread_safe(void)
Definition: libmysql.cc:982
MYSQL_RES *STDCALL mysql_store_result(MYSQL *mysql)
Definition: client.cc:7790
unsigned int STDCALL mysql_errno(MYSQL *mysql)
Definition: client.cc:8763
uint64_t STDCALL mysql_num_rows(MYSQL_RES *res)
Definition: client.cc:8757
MYSQL_FIELD *STDCALL mysql_fetch_field(MYSQL_RES *result)
Definition: libmysql.cc:662
int STDCALL mysql_send_query(MYSQL *mysql, const char *q, unsigned long length)
int STDCALL mysql_reset_connection(MYSQL *mysql)
Definition: libmysql.cc:4435
void STDCALL mysql_reset_server_public_key(void)
Definition: client_authentication.cc:844
bool STDCALL mysql_more_results(MYSQL *mysql)
Definition: libmysql.cc:4324
unsigned long STDCALL mysql_hex_string(char *to, const char *from, unsigned long from_length)
bool STDCALL mysql_stmt_bind_param(MYSQL_STMT *stmt, MYSQL_BIND *bnd)
Definition: libmysql.cc:2453
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length)
bool STDCALL mysql_rollback(MYSQL *mysql)
Definition: libmysql.cc:4298
mysql_option
Definition: mysql.h:169
@ MYSQL_OPT_CONNECT_TIMEOUT
Definition: mysql.h:170
@ MYSQL_OPT_COMPRESS
Definition: mysql.h:171
@ MYSQL_OPT_LOAD_DATA_LOCAL_DIR
Definition: mysql.h:213
@ MYSQL_SET_CHARSET_DIR
Definition: mysql.h:176
@ MYSQL_OPT_PROTOCOL
Definition: mysql.h:179
@ MYSQL_OPT_CONNECT_ATTR_DELETE
Definition: mysql.h:198
@ MYSQL_OPT_SSL_CIPHER
Definition: mysql.h:193
@ MYSQL_OPT_LOCAL_INFILE
Definition: mysql.h:178
@ MYSQL_SET_CHARSET_NAME
Definition: mysql.h:177
@ MYSQL_OPT_NET_BUFFER_LENGTH
Definition: mysql.h:203
@ MYSQL_OPT_MAX_ALLOWED_PACKET
Definition: mysql.h:202
@ MYSQL_SHARED_MEMORY_BASE_NAME
Definition: mysql.h:180
@ MYSQL_SERVER_PUBLIC_KEY
Definition: mysql.h:199
@ MYSQL_OPT_SSL_CA
Definition: mysql.h:191
@ MYSQL_OPT_READ_TIMEOUT
Definition: mysql.h:181
@ MYSQL_OPT_BIND
Definition: mysql.h:188
@ MYSQL_OPT_TLS_VERSION
Definition: mysql.h:204
@ MYSQL_OPT_WRITE_TIMEOUT
Definition: mysql.h:182
@ MYSQL_OPT_SSL_KEY
Definition: mysql.h:189
@ MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
Definition: mysql.h:201
@ MYSQL_OPT_CONNECT_ATTR_ADD
Definition: mysql.h:197
@ MYSQL_OPT_SSL_FIPS_MODE
Definition: mysql.h:209
@ MYSQL_OPT_ZSTD_COMPRESSION_LEVEL
Definition: mysql.h:212
@ MYSQL_READ_DEFAULT_GROUP
Definition: mysql.h:175
@ MYSQL_OPT_CONNECT_ATTR_RESET
Definition: mysql.h:196
@ MYSQL_OPT_SSL_CRLPATH
Definition: mysql.h:195
@ MYSQL_OPT_GET_SERVER_PUBLIC_KEY
Definition: mysql.h:206
@ MYSQL_OPT_SSL_CERT
Definition: mysql.h:190
@ MYSQL_READ_DEFAULT_FILE
Definition: mysql.h:174
@ MYSQL_OPT_SSL_MODE
Definition: mysql.h:205
@ MYSQL_OPT_SSL_CAPATH
Definition: mysql.h:192
@ MYSQL_DEFAULT_AUTH
Definition: mysql.h:187
@ MYSQL_PLUGIN_DIR
Definition: mysql.h:186
@ MYSQL_OPT_USER_PASSWORD
Definition: mysql.h:214
@ MYSQL_OPT_USE_RESULT
Definition: mysql.h:183
@ MYSQL_OPT_RETRY_COUNT
Definition: mysql.h:207
@ MYSQL_REPORT_DATA_TRUNCATION
Definition: mysql.h:184
@ MYSQL_OPT_COMPRESSION_ALGORITHMS
Definition: mysql.h:211
@ MYSQL_OPT_SSL_CRL
Definition: mysql.h:194
@ MYSQL_OPT_OPTIONAL_RESULTSET_METADATA
Definition: mysql.h:208
@ MYSQL_ENABLE_CLEARTEXT_PLUGIN
Definition: mysql.h:200
@ MYSQL_OPT_NAMED_PIPE
Definition: mysql.h:172
@ MYSQL_INIT_COMMAND
Definition: mysql.h:173
@ MYSQL_OPT_TLS_CIPHERSUITES
Definition: mysql.h:210
@ MYSQL_OPT_RECONNECT
Definition: mysql.h:185
MYSQL_RES *STDCALL mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
Definition: libmysql.cc:755
uint64_t STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt)
Definition: libmysql.cc:2280
enum net_async_status STDCALL mysql_real_connect_nonblocking(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag)
unsigned int STDCALL mysql_field_count(MYSQL *mysql)
Definition: libmysql.cc:925
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result)
Definition: client.cc:7981
MYSQL_FIELD *STDCALL mysql_fetch_fields(MYSQL_RES *res)
Definition: libmysql.cc:907
uint64_t STDCALL mysql_affected_rows(MYSQL *mysql)
Definition: libmysql.cc:929
const char *STDCALL mysql_sqlstate(MYSQL *mysql)
Definition: libmysql.cc:935
enum_mysql_stmt_state
Definition: mysql.h:571
@ MYSQL_STMT_PREPARE_DONE
Definition: mysql.h:573
@ MYSQL_STMT_INIT_DONE
Definition: mysql.h:572
@ MYSQL_STMT_FETCH_DONE
Definition: mysql.h:575
@ MYSQL_STMT_EXECUTE_DONE
Definition: mysql.h:574
bool STDCALL mysql_eof(MYSQL_RES *res)
Definition: libmysql.cc:900
unsigned long STDCALL mysql_thread_id(MYSQL *mysql)
Definition: libmysql.cc:952
const char *STDCALL mysql_get_ssl_cipher(MYSQL *mysql)
int STDCALL mysql_kill(MYSQL *mysql, unsigned long pid)
#define STDCALL
Definition: mysql.h:72
void mysql_set_local_infile_handler(MYSQL *mysql, int(*local_infile_init)(void **, const char *, void *), int(*local_infile_read)(void *, char *, unsigned int), void(*local_infile_end)(void *), int(*local_infile_error)(void *, char *, unsigned int), void *)
Definition: libmysql.cc:630
MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt)
Definition: libmysql.cc:4068
int STDCALL mysql_options4(MYSQL *mysql, enum mysql_option option, const void *arg1, const void *arg2)
Definition: client.cc:8660
enum net_async_status STDCALL mysql_send_query_nonblocking(MYSQL *mysql, const char *query, unsigned long length)
int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname)
Definition: client.cc:8890
bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt)
Definition: libmysql.cc:4166
bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, enum enum_stmt_attr_type attr_type, const void *attr)
Definition: libmysql.cc:2059
bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, unsigned int param_number, const char *data, unsigned long length)
int STDCALL mysql_next_result(MYSQL *mysql)
Definition: libmysql.cc:4336
int STDCALL mysql_select_db(MYSQL *mysql, const char *db)
Definition: client.cc:7120
MYSQL *STDCALL mysql_init(MYSQL *mysql)
Definition: client.cc:3168
int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt)
Definition: libmysql.cc:3762
bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, const char *passwd, const char *db)
Definition: libmysql.cc:266
bool STDCALL mysql_bind_param(MYSQL *mysql, unsigned n_params, MYSQL_BIND *binds, const char **names)
Definition: libmysql.cc:2486
MYSQL_RES *STDCALL mysql_list_tables(MYSQL *mysql, const char *wild)
Definition: libmysql.cc:721
unsigned long STDCALL mysql_get_server_version(MYSQL *mysql)
Definition: client.cc:8867
int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind_arg, unsigned int column, unsigned long offset)
const char *STDCALL mysql_get_host_info(MYSQL *mysql)
Definition: libmysql.cc:888
MYSQL *STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag)
struct MYSQL_DATA MYSQL_DATA
unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT *stmt)
Definition: libmysql.cc:2242
const char *STDCALL mysql_character_set_name(MYSQL *mysql)
Definition: libmysql.cc:962
int STDCALL mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level)
MYSQL_RES *STDCALL mysql_use_result(MYSQL *mysql)
Definition: libmysql.cc:4427
unsigned int STDCALL mysql_warning_count(MYSQL *mysql)
Definition: libmysql.cc:939
enum_stmt_attr_type
Definition: mysql.h:713
@ STMT_ATTR_PREFETCH_ROWS
Definition: mysql.h:731
@ STMT_ATTR_UPDATE_MAX_LENGTH
Definition: mysql.h:721
@ STMT_ATTR_CURSOR_TYPE
Definition: mysql.h:726
int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt)
Definition: libmysql.cc:4392
enum net_async_status STDCALL mysql_real_query_nonblocking(MYSQL *mysql, const char *query, unsigned long length)
const char *STDCALL mysql_info(MYSQL *mysql)
Definition: libmysql.cc:941
void STDCALL myodbc_remove_escape(MYSQL *mysql, char *name)
Definition: libmysql.cc:1127
int STDCALL mysql_server_init(int argc, char **argv, char **groups)
enum net_async_status STDCALL mysql_select_db_nonblocking(MYSQL *mysql, const char *db, bool *error)
bool STDCALL mysql_stmt_reset(MYSQL_STMT *stmt)
Definition: libmysql.cc:4245
enum net_async_status STDCALL mysql_next_result_nonblocking(MYSQL *mysql)
Definition: libmysql.cc:4372
bool STDCALL mysql_read_query_result(MYSQL *mysql)
Definition: libmysql.cc:4431
unsigned int mysql_port
Definition: client.cc:197
struct MYSQL_FIELD MYSQL_FIELD
MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res)
Definition: libmysql.cc:915
struct MYSQL_STMT MYSQL_STMT
MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)
Definition: libmysql.cc:696
int STDCALL mysql_get_option(MYSQL *mysql, enum mysql_option option, const void *arg)
Return the current values for the options settable through mysql_options()
Definition: client.cc:8476
int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt)
Definition: libmysql.cc:3958
int STDCALL mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option)
Definition: libmysql.cc:841
mysql_status
Definition: mysql.h:254
@ MYSQL_STATUS_USE_RESULT
Definition: mysql.h:257
@ MYSQL_STATUS_STATEMENT_GET_RESULT
Definition: mysql.h:258
@ MYSQL_STATUS_GET_RESULT
Definition: mysql.h:256
@ MYSQL_STATUS_READY
Definition: mysql.h:255
int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, unsigned long length)
uint64_t STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt)
Definition: libmysql.cc:2251
uint64_t STDCALL mysql_insert_id(MYSQL *mysql)
Definition: libmysql.cc:933
struct MYSQL_RES MYSQL_RES
MYSQL_STMT *STDCALL mysql_stmt_init(MYSQL *mysql)
Definition: libmysql.cc:1365
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql)
Definition: libmysql.cc:892
void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, uint64_t offset)
Definition: libmysql.cc:4078
MYSQL_ROWS * MYSQL_ROW_OFFSET
Definition: mysql.h:158
bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert, const char *ca, const char *capath, const char *cipher)
const char *STDCALL mysql_error(MYSQL *mysql)
Definition: client.cc:8767
int STDCALL mysql_session_track_get_next(MYSQL *mysql, enum enum_session_state_type type, const char **data, size_t *length)
Get the subsequent state change information received from the server.
Definition: client.cc:8831
int STDCALL mysql_binlog_fetch(MYSQL *mysql, MYSQL_RPL *rpl)
Fetch one event from the server.
Definition: client.cc:7065
enum net_async_status STDCALL mysql_store_result_nonblocking(MYSQL *mysql, MYSQL_RES **result)
This API reads all result set sent by server in an asynchronous way.
Definition: client.cc:7849
MYSQL_RES *STDCALL mysql_list_dbs(MYSQL *mysql, const char *wild)
Definition: libmysql.cc:707
const char *STDCALL mysql_get_client_info(void)
Definition: libmysql.cc:896
int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt)
Definition: libmysql.cc:2215
MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res)
Definition: libmysql.cc:911
void STDCALL mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *charset)
Definition: libmysql.cc:966
enum net_async_status STDCALL mysql_free_result_nonblocking(MYSQL_RES *result)
Frees the memory allocated for a result, set by APIs which would have returned rows.
Definition: client.cc:1875
unsigned long STDCALL mysql_escape_string(char *to, const char *from, unsigned long from_length)
void STDCALL mysql_server_end(void)
Definition: libmysql.cc:193
const char *STDCALL mysql_stmt_error(MYSQL_STMT *stmt)
Definition: libmysql.cc:4276
int STDCALL mysql_query(MYSQL *mysql, const char *q)
Definition: libmysql.cc:654
struct MYSQL_ROWS MYSQL_ROWS
MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset)
Definition: libmysql.cc:688
struct MYSQL MYSQL
bool STDCALL mysql_commit(MYSQL *mysql)
Definition: libmysql.cc:4289
const char *STDCALL mysql_stat(MYSQL *mysql)
Definition: libmysql.cc:868
mysql_protocol_type
Definition: mysql.h:261
@ MYSQL_PROTOCOL_TCP
Definition: mysql.h:263
@ MYSQL_PROTOCOL_DEFAULT
Definition: mysql.h:262
@ MYSQL_PROTOCOL_MEMORY
Definition: mysql.h:266
@ MYSQL_PROTOCOL_PIPE
Definition: mysql.h:265
@ MYSQL_PROTOCOL_SOCKET
Definition: mysql.h:264
unsigned long STDCALL mysql_get_client_version(void)
Definition: libmysql.cc:898
char * mysql_unix_port
Definition: client.cc:198
unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT *stmt)
Definition: libmysql.cc:4262
uint64_t STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt)
Definition: libmysql.cc:4097
unsigned long STDCALL mysql_real_escape_string_quote(MYSQL *mysql, char *to, const char *from, unsigned long length, char quote)
struct character_set MY_CHARSET_INFO
MYSQL_RES *STDCALL mysql_list_processes(MYSQL *mysql)
Definition: libmysql.cc:792
bool STDCALL mysql_autocommit(MYSQL *mysql, bool auto_mode)
Definition: libmysql.cc:4307
void STDCALL mysql_free_result(MYSQL_RES *result)
Definition: client.cc:1904
enum net_async_status STDCALL mysql_fetch_row_nonblocking(MYSQL_RES *res, MYSQL_ROW *row)
Reads next row of a result set in an asynchronous way.
Definition: client.cc:8031
int STDCALL mysql_options(MYSQL *mysql, enum mysql_option option, const void *arg)
Definition: client.cc:8152
void STDCALL mysql_debug(const char *debug)
bool STDCALL mysql_thread_init(void)
Definition: libmysql.cc:211
mysql_ssl_mode
Definition: mysql.h:269
@ SSL_MODE_REQUIRED
Definition: mysql.h:272
@ SSL_MODE_PREFERRED
Definition: mysql.h:271
@ SSL_MODE_VERIFY_CA
Definition: mysql.h:273
@ SSL_MODE_DISABLED
Definition: mysql.h:270
@ SSL_MODE_VERIFY_IDENTITY
Definition: mysql.h:274
unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)
unsigned long *STDCALL mysql_fetch_lengths(MYSQL_RES *result)
Definition: client.cc:8106
bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bnd)
Definition: libmysql.cc:3621
void mysql_set_local_infile_default(MYSQL *mysql)
Definition: libmysql.cc:642
void STDCALL mysql_binlog_close(MYSQL *mysql, MYSQL_RPL *rpl)
Close replication stream.
Definition: client.cc:7105
MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, MYSQL_ROW_OFFSET offset)
Definition: libmysql.cc:4055
void STDCALL mysql_close(MYSQL *sock)
Definition: client.cc:7277
struct MYSQL_RPL MYSQL_RPL
Struct for information about a replication stream.
int my_socket
Definition: mysql.h:64
const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT *stmt)
Definition: libmysql.cc:4267
uint64_t my_ulonglong
Definition: mysql.h:53
int STDCALL mysql_dump_debug_info(MYSQL *mysql)
Definition: libmysql.cc:849
enum enum_resultset_metadata STDCALL mysql_result_metadata(MYSQL_RES *result)
Definition: libmysql.cc:919
MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt)
Definition: libmysql.cc:1697
int STDCALL mysql_session_track_get_first(MYSQL *mysql, enum enum_session_state_type type, const char **data, size_t *length)
Get the first state change information received from the server.
Definition: client.cc:8804
void STDCALL mysql_thread_end(void)
Definition: libmysql.cc:213
unsigned int MYSQL_FIELD_OFFSET
Definition: mysql.h:145
const char *STDCALL mysql_get_server_info(MYSQL *mysql)
Definition: libmysql.cc:884
MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt)
Definition: libmysql.cc:1655
char ** MYSQL_ROW
Definition: mysql.h:144
int STDCALL mysql_ping(MYSQL *mysql)
Definition: libmysql.cc:875
unsigned int STDCALL mysql_num_fields(MYSQL_RES *res)
Definition: client.cc:8759
struct MYSQL_BIND MYSQL_BIND
mysql_ssl_fips_mode
Definition: mysql.h:277
@ SSL_FIPS_MODE_OFF
Definition: mysql.h:278
@ SSL_FIPS_MODE_STRICT
Definition: mysql.h:280
@ SSL_FIPS_MODE_ON
Definition: mysql.h:279
Common definition between mysql server & client.
enum_session_state_type
Type of state change information that the server can include in the Ok packet.
Definition: mysql_com.h:1066
#define MYSQL_ERRMSG_SIZE
Max length of a error message.
Definition: mysql_com.h:877
#define SCRAMBLE_LENGTH
Length of random string sent by server on handshake; this is also length of obfuscated password,...
Definition: mysql_com.h:127
enum_mysql_set_option
options for mysql_options()
Definition: mysql_com.h:1053
#define SQLSTATE_LENGTH
Definition: mysql_com.h:74
enum_resultset_metadata
Definition: mysql_com.h:1020
Log error(cerr, "ERROR")
Time declarations shared between the server and client API: you should not add anything to this heade...
char * user
Definition: mysqladmin.cc:59
const char * host
Definition: mysqladmin.cc:58
static MYSQL * sock
Definition: mysqlcheck.cc:55
const std::string charset("charset")
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
Definition: buffer.h:42
Definition: options.cc:45
net_async_status
Definition: plugin_auth_common.h:135
required string key
Definition: replication_asynchronous_connection_failover.proto:59
required uint64 port
Definition: replication_asynchronous_connection_failover.proto:32
required string type
Definition: replication_group_member_actions.proto:33
case opt name
Definition: sslopt-case.h:32
Definition: m_ctype.h:354
Definition: init_commands_array.h:25
Definition: my_list.h:35
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:78
Definition: mysql.h:641
unsigned long buffer_length
Definition: mysql.h:652
void * extension
Definition: mysql.h:662
unsigned int param_number
Definition: mysql.h:655
void(* store_param_func)(NET *net, struct MYSQL_BIND *param)
Definition: mysql.h:648
bool error_value
Definition: mysql.h:658
bool long_data_used
Definition: mysql.h:660
void * buffer
Definition: mysql.h:644
bool is_unsigned
Definition: mysql.h:659
void(* fetch_result)(struct MYSQL_BIND *, MYSQL_FIELD *, unsigned char **row)
Definition: mysql.h:649
unsigned long length_value
Definition: mysql.h:654
unsigned long * length
Definition: mysql.h:642
unsigned long offset
Definition: mysql.h:653
void(* skip_result)(struct MYSQL_BIND *, MYSQL_FIELD *, unsigned char **row)
Definition: mysql.h:650
bool * is_null
Definition: mysql.h:643
bool is_null_value
Definition: mysql.h:661
unsigned int pack_length
Definition: mysql.h:656
enum enum_field_types buffer_type
Definition: mysql.h:657
bool * error
Definition: mysql.h:646
unsigned char * row_ptr
Definition: mysql.h:647
Definition: mysql.h:162
MYSQL_ROWS * data
Definition: mysql.h:163
uint64_t rows
Definition: mysql.h:165
unsigned int fields
Definition: mysql.h:166
struct MEM_ROOT * alloc
Definition: mysql.h:164
Definition: mysql.h:120
unsigned int db_length
Definition: mysql.h:134
unsigned int name_length
Definition: mysql.h:130
unsigned int org_table_length
Definition: mysql.h:133
char * name
Definition: mysql.h:121
char * org_name
Definition: mysql.h:122
char * db
Definition: mysql.h:125
char * def
Definition: mysql.h:127
char * catalog
Definition: mysql.h:126
unsigned int charsetnr
Definition: mysql.h:139
unsigned int catalog_length
Definition: mysql.h:135
unsigned int org_name_length
Definition: mysql.h:131
unsigned int decimals
Definition: mysql.h:138
unsigned long max_length
Definition: mysql.h:129
unsigned int table_length
Definition: mysql.h:132
char * org_table
Definition: mysql.h:124
unsigned int def_length
Definition: mysql.h:136
void * extension
Definition: mysql.h:141
char * table
Definition: mysql.h:123
unsigned int flags
Definition: mysql.h:137
unsigned long length
Definition: mysql.h:128
enum enum_field_types type
Definition: mysql.h:140
Definition: sql_common.h:190
Definition: mysql.h:337
MYSQL_ROW current_row
Definition: mysql.h:346
struct MYSQL_DATA * data
Definition: mysql.h:340
unsigned int current_field
Definition: mysql.h:348
void * extension
Definition: mysql.h:353
enum enum_resultset_metadata metadata
Definition: mysql.h:352
MYSQL * handle
Definition: mysql.h:343
MYSQL_FIELD * fields
Definition: mysql.h:339
MYSQL_ROWS * data_cursor
Definition: mysql.h:341
bool eof
Definition: mysql.h:349
const struct MYSQL_METHODS * methods
Definition: mysql.h:344
MYSQL_ROW row
Definition: mysql.h:345
struct MEM_ROOT * field_alloc
Definition: mysql.h:347
uint64_t row_count
Definition: mysql.h:338
unsigned long * lengths
Definition: mysql.h:342
unsigned int field_count
Definition: mysql.h:348
bool unbuffered_fetch_cancelled
Definition: mysql.h:351
Definition: mysql.h:152
MYSQL_ROW data
Definition: mysql.h:154
struct MYSQL_ROWS * next
Definition: mysql.h:153
unsigned long length
Definition: mysql.h:155
Struct for information about a replication stream.
Definition: mysql.h:373
unsigned int server_id
Position in the binary log to
Definition: mysql.h:378
size_t file_name_length
Definition: mysql.h:374
unsigned long size
GTID set data or an argument for
Definition: mysql.h:391
uint64_t start_position
Filename of the binary log to read.
Definition: mysql.h:376
const unsigned char * buffer
Size of the packet returned by
Definition: mysql.h:393
void(* fix_gtid_set)(struct MYSQL_RPL *rpl, unsigned char *packet_gtid_set)
Callback function which is called
Definition: mysql.h:387
const char * file_name
Length of the 'file_name' or 0
Definition: mysql.h:375
size_t gtid_set_encoded_size
Flags, e.g.
Definition: mysql.h:383
void * gtid_set_arg
Definition: mysql.h:388
unsigned int flags
Server ID to use when identifying
Definition: mysql.h:380
Definition: libmysql.cc:106
Definition: mysql.h:668
bool bind_param_done
Definition: mysql.h:701
unsigned int last_errno
Definition: mysql.h:693
unsigned long flags
Definition: mysql.h:686
MYSQL * mysql
Definition: mysql.h:671
MYSQL_ROWS * data_cursor
Definition: mysql.h:676
unsigned int server_status
Definition: mysql.h:692
MYSQL_FIELD * fields
Definition: mysql.h:674
char last_error[MYSQL_ERRMSG_SIZE]
Definition: mysql.h:697
int(* read_row_func)(struct MYSQL_STMT *stmt, unsigned char **row)
Definition: mysql.h:681
enum enum_mysql_stmt_state state
Definition: mysql.h:696
bool send_types_to_server
Definition: mysql.h:700
unsigned char bind_result_done
Definition: mysql.h:702
MYSQL_BIND * bind
Definition: mysql.h:673
unsigned long prefetch_rows
Definition: mysql.h:687
uint64_t insert_id
Definition: mysql.h:684
MYSQL_DATA result
Definition: mysql.h:675
bool unbuffered_fetch_cancelled
Definition: mysql.h:704
unsigned int param_count
Definition: mysql.h:694
unsigned int field_count
Definition: mysql.h:695
unsigned long stmt_id
Definition: mysql.h:685
bool update_max_length
Definition: mysql.h:709
uint64_t affected_rows
Definition: mysql.h:683
LIST list
Definition: mysql.h:670
struct MYSQL_STMT_EXT * extension
Definition: mysql.h:710
char sqlstate[SQLSTATE_LENGTH+1]
Definition: mysql.h:698
MYSQL_BIND * params
Definition: mysql.h:672
struct MEM_ROOT * mem_root
Definition: mysql.h:669
Definition: mysql.h:297
unsigned int server_language
Definition: mysql.h:315
struct MEM_ROOT * field_alloc
Definition: mysql.h:304
bool free_me
Definition: mysql.h:320
unsigned int port
Definition: mysql.h:310
const struct MYSQL_METHODS * methods
Definition: mysql.h:327
unsigned long server_capabilities
Definition: mysql.h:311
struct CHARSET_INFO * charset
Definition: mysql.h:302
char * host_info
Definition: mysql.h:300
unsigned long packet_length
Definition: mysql.h:309
char * info
Definition: mysql.h:301
char * unix_socket
Definition: mysql.h:300
char * server_version
Definition: mysql.h:300
unsigned long client_flag
Definition: mysql.h:311
char * passwd
Definition: mysql.h:300
char * host
Definition: mysql.h:300
char * user
Definition: mysql.h:300
char scramble[SCRAMBLE_LENGTH+1]
Definition: mysql.h:324
void * thd
Definition: mysql.h:328
uint64_t affected_rows
Definition: mysql.h:305
MYSQL_FIELD * fields
Definition: mysql.h:303
unsigned int server_status
Definition: mysql.h:314
bool * unbuffered_fetch_owner
Definition: mysql.h:333
unsigned int warning_count
Definition: mysql.h:316
unsigned int protocol_version
Definition: mysql.h:312
char * db
Definition: mysql.h:301
NET net
Definition: mysql.h:298
bool reconnect
Definition: mysql.h:321
uint64_t insert_id
Definition: mysql.h:306
unsigned long thread_id
Definition: mysql.h:308
enum mysql_status status
Definition: mysql.h:318
LIST * stmts
Definition: mysql.h:326
uint64_t extra_info
Definition: mysql.h:307
void * extension
Definition: mysql.h:334
enum enum_resultset_metadata resultset_metadata
Definition: mysql.h:319
unsigned int field_count
Definition: mysql.h:313
unsigned char * connector_fd
Definition: mysql.h:299
Definition: mysql_com.h:910
Definition: mysql.h:283
const char * comment
Definition: mysql.h:288
const char * name
Definition: mysql.h:287
const char * csname
Definition: mysql.h:286
const char * dir
Definition: mysql.h:289
unsigned int number
Definition: mysql.h:284
unsigned int state
Definition: mysql.h:285
unsigned int mbminlen
Definition: mysql.h:290
unsigned int mbmaxlen
Definition: mysql.h:291
Definition: result.h:29
Definition: sql_common.h:166
Definition: mysql.h:223
unsigned int port
Definition: mysql.h:225
char * ssl_capath
Definition: mysql.h:233
char * my_cnf_group
Definition: mysql.h:229
int(* local_infile_init)(void **, const char *, void *)
Definition: mysql.h:246
char * ssl_ca
Definition: mysql.h:232
char * ssl_key
Definition: mysql.h:230
void(* local_infile_end)(void *)
Definition: mysql.h:248
char * ssl_cert
Definition: mysql.h:231
char * my_cnf_file
Definition: mysql.h:229
struct Init_commands_array * init_commands
Definition: mysql.h:228
void * local_infile_userdata
Definition: mysql.h:250
char * unix_socket
Definition: mysql.h:227
unsigned int read_timeout
Definition: mysql.h:224
unsigned long max_allowed_packet
Definition: mysql.h:236
char * password
Definition: mysql.h:227
int(* local_infile_error)(void *, char *, unsigned int)
Definition: mysql.h:249
char * ssl_cipher
Definition: mysql.h:234
char * host
Definition: mysql.h:227
char * db
Definition: mysql.h:227
unsigned int protocol
Definition: mysql.h:225
unsigned int write_timeout
Definition: mysql.h:224
bool report_data_truncation
Definition: mysql.h:243
char * charset_dir
Definition: mysql.h:229
char * bind_address
The local address to bind when connecting to remote server.
Definition: mysql.h:241
bool named_pipe
Definition: mysql.h:237
unsigned long client_flag
Definition: mysql.h:226
char * charset_name
Definition: mysql.h:229
char * user
Definition: mysql.h:227
unsigned int connect_timeout
Definition: mysql.h:224
bool compress
Definition: mysql.h:237
char * shared_memory_base_name
Definition: mysql.h:235
struct st_mysql_options_extention * extension
Definition: mysql.h:251
int(* local_infile_read)(void *, char *, unsigned int)
Definition: mysql.h:247
synode_no q[FIFO_SIZE]
Definition: xcom_base.cc:4028