1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #ifndef MYSQLND_ENUM_N_DEF_H
23 #define MYSQLND_ENUM_N_DEF_H
24
25 #ifndef TRUE
26 #define TRUE 1
27 #endif
28
29 #ifndef FALSE
30 #define FALSE 0
31 #endif
32
33
34 #define MYSQLND_MIN_COMPRESS_LEN 0
35
36 #define MYSQLND_MAX_PACKET_SIZE (256L*256L*256L-1)
37
38 #define MYSQLND_ASSEMBLED_PACKET_MAX_SIZE 3UL*1024UL*1024UL*1024UL
39
40 #define MYSQLND_DEFAULT_AUTH_PROTOCOL "mysql_native_password"
41
42 #define MYSQLND_ERRMSG_SIZE 512
43 #define MYSQLND_SQLSTATE_LENGTH 5
44 #define MYSQLND_SQLSTATE_NULL "00000"
45
46 #define MYSQLND_MAX_ALLOWED_USER_LEN 252
47 #define MYSQLND_MAX_ALLOWED_DB_LEN 1024
48
49 #define MYSQLND_NET_CMD_BUFFER_MIN_SIZE 4096
50 #define MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR "4096"
51
52 #define SERVER_STATUS_IN_TRANS 1
53 #define SERVER_STATUS_AUTOCOMMIT 2
54 #define SERVER_MORE_RESULTS_EXISTS 8
55 #define SERVER_QUERY_NO_GOOD_INDEX_USED 16
56 #define SERVER_QUERY_NO_INDEX_USED 32
57
58
59
60
61
62 #define SERVER_STATUS_CURSOR_EXISTS 64
63
64
65
66
67 #define SERVER_STATUS_LAST_ROW_SENT 128
68 #define SERVER_STATUS_DB_DROPPED 256
69 #define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512
70 #define SERVER_QUERY_WAS_SLOW 2048
71 #define SERVER_PS_OUT_PARAMS 4096
72
73 #define MYSQLND_NO_DATA 100
74 #define MYSQLND_DATA_TRUNCATED 101
75
76 #define SHA1_MAX_LENGTH 20
77 #define SCRAMBLE_LENGTH 20
78 #define SCRAMBLE_LENGTH_323 8
79
80 #define CLIENT_LONG_PASSWORD 1
81 #define CLIENT_FOUND_ROWS 2
82 #define CLIENT_LONG_FLAG 4
83 #define CLIENT_CONNECT_WITH_DB 8
84 #define CLIENT_NO_SCHEMA 16
85 #define CLIENT_COMPRESS 32
86 #define CLIENT_ODBC 64
87 #define CLIENT_LOCAL_FILES 128
88 #define CLIENT_IGNORE_SPACE 256
89 #define CLIENT_PROTOCOL_41 512
90 #define CLIENT_INTERACTIVE 1024
91 #define CLIENT_SSL 2048
92 #define CLIENT_IGNORE_SIGPIPE 4096
93 #define CLIENT_TRANSACTIONS 8192
94 #define CLIENT_RESERVED 16384
95 #define CLIENT_SECURE_CONNECTION 32768
96 #define CLIENT_MULTI_STATEMENTS (1UL << 16)
97 #define CLIENT_MULTI_RESULTS (1UL << 17)
98 #define CLIENT_PS_MULTI_RESULTS (1UL << 18)
99 #define CLIENT_PLUGIN_AUTH (1UL << 19)
100 #define CLIENT_CONNECT_ATTRS (1UL << 20)
101 #define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21)
102 #define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22)
103 #define CLIENT_SESSION_TRACK (1UL << 23)
104
105
106
107 #define CLIENT_SSL_DONT_VERIFY_SERVER_CERT CLIENT_ODBC
108 #define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30)
109 #define CLIENT_REMEMBER_OPTIONS (1UL << 31)
110
111 #define MYSQLND_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | \
112 CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION | \
113 CLIENT_MULTI_RESULTS | CLIENT_LOCAL_FILES | CLIENT_PLUGIN_AUTH)
114
115 #define MYSQLND_NET_FLAG_USE_COMPRESSION 1
116
117
118 #define TRANS_START_NO_OPT 0
119 #define TRANS_START_WITH_CONSISTENT_SNAPSHOT 1
120 #define TRANS_START_READ_WRITE 2
121 #define TRANS_START_READ_ONLY 4
122
123 #define TRANS_COR_NO_OPT 0
124 #define TRANS_COR_AND_CHAIN 1
125 #define TRANS_COR_AND_NO_CHAIN 2
126 #define TRANS_COR_RELEASE 4
127 #define TRANS_COR_NO_RELEASE 8
128
129 typedef enum mysqlnd_extension
130 {
131 MYSQLND_MYSQL = 0,
132 MYSQLND_MYSQLI
133 } enum_mysqlnd_extension;
134
135 enum
136 {
137 MYSQLND_FETCH_ASSOC = 1,
138 MYSQLND_FETCH_NUM = 2,
139 MYSQLND_FETCH_BOTH = 1|2
140 };
141
142
143 typedef enum func_status
144 {
145 PASS = 0,
146 FAIL = 1
147 } enum_func_status;
148
149 typedef enum mysqlnd_query_type
150 {
151 QUERY_UPSERT,
152 QUERY_SELECT,
153 QUERY_LOAD_LOCAL
154 } enum_mysqlnd_query_type;
155
156 typedef enum mysqlnd_res_type
157 {
158 MYSQLND_RES_NORMAL = 1,
159 MYSQLND_RES_PS_BUF,
160 MYSQLND_RES_PS_UNBUF
161 } enum_mysqlnd_res_type;
162
163 typedef enum mysqlnd_send_query_type
164 {
165 MYSQLND_SEND_QUERY_IMPLICIT = 0,
166 MYSQLND_SEND_QUERY_EXPLICIT
167 } enum_mysqlnd_send_query_type;
168
169 typedef enum mysqlnd_reap_result_type
170 {
171 MYSQLND_REAP_RESULT_IMPLICIT = 0,
172 MYSQLND_REAP_RESULT_EXPLICIT
173 } enum_mysqlnd_reap_result_type;
174
175 typedef enum mysqlnd_send_execute_type
176 {
177 MYSQLND_SEND_EXECUTE_IMPLICIT = 0,
178 MYSQLND_SEND_EXECUTE_EXPLICIT
179 } enum_mysqlnd_send_execute_type;
180
181 typedef enum mysqlnd_parse_exec_response_type
182 {
183 MYSQLND_PARSE_EXEC_RESPONSE_IMPLICIT = 0,
184 MYSQLND_PARSE_EXEC_RESPONSE_IMPLICIT_NEXT_RESULT,
185 MYSQLND_PARSE_EXEC_RESPONSE_IMPLICIT_OUT_VARIABLES,
186 MYSQLND_PARSE_EXEC_RESPONSE_EXPLICIT,
187 } enum_mysqlnd_parse_exec_response_type;
188
189 typedef enum mysqlnd_option
190 {
191 MYSQL_OPT_CONNECT_TIMEOUT,
192 MYSQL_OPT_COMPRESS,
193 MYSQL_OPT_NAMED_PIPE,
194 MYSQL_INIT_COMMAND,
195 MYSQL_READ_DEFAULT_FILE,
196 MYSQL_READ_DEFAULT_GROUP,
197 MYSQL_SET_CHARSET_DIR,
198 MYSQL_SET_CHARSET_NAME,
199 MYSQL_OPT_LOCAL_INFILE,
200 MYSQL_OPT_PROTOCOL,
201 MYSQL_SHARED_MEMORY_BASE_NAME,
202 MYSQL_OPT_READ_TIMEOUT,
203 MYSQL_OPT_WRITE_TIMEOUT,
204 MYSQL_OPT_USE_RESULT,
205 MYSQL_OPT_USE_REMOTE_CONNECTION,
206 MYSQL_OPT_USE_EMBEDDED_CONNECTION,
207 MYSQL_OPT_GUESS_CONNECTION,
208 MYSQL_SET_CLIENT_IP,
209 MYSQL_SECURE_AUTH,
210 MYSQL_REPORT_DATA_TRUNCATION,
211 MYSQL_OPT_RECONNECT,
212 MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
213 MYSQL_PLUGIN_DIR,
214 MYSQL_DEFAULT_AUTH,
215 MYSQL_OPT_CONNECT_ATTR_RESET,
216 MYSQL_OPT_CONNECT_ATTR_ADD,
217 MYSQL_OPT_CONNECT_ATTR_DELETE,
218 MYSQL_SERVER_PUBLIC_KEY,
219 MYSQL_ENABLE_CLEARTEXT_PLUGIN,
220 MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS,
221 MYSQLND_DEPRECATED_ENUM1 = 200,
222 #ifdef MYSQLND_STRING_TO_INT_CONVERSION
223 MYSQLND_OPT_INT_AND_FLOAT_NATIVE = 201,
224 #endif
225 MYSQLND_OPT_NET_CMD_BUFFER_SIZE = 202,
226 MYSQLND_OPT_NET_READ_BUFFER_SIZE = 203,
227 MYSQLND_OPT_SSL_KEY = 204,
228 MYSQLND_OPT_SSL_CERT = 205,
229 MYSQLND_OPT_SSL_CA = 206,
230 MYSQLND_OPT_SSL_CAPATH = 207,
231 MYSQLND_OPT_SSL_CIPHER = 208,
232 MYSQLND_OPT_SSL_PASSPHRASE = 209,
233 MYSQLND_OPT_MAX_ALLOWED_PACKET = 210,
234 MYSQLND_OPT_AUTH_PROTOCOL = 211
235 } enum_mysqlnd_option;
236
237 typedef enum mysqlnd_protocol_type
238 {
239 MYSQL_PROTOCOL_DEFAULT = 0,
240 MYSQL_PROTOCOL_TCP,
241 MYSQL_PROTOCOL_SOCKET,
242 MYSQL_PROTOCOL_PIPE,
243 MYSQL_PROTOCOL_MEMORY,
244 MYSQL_PROTOCOL_LAST
245 } enum_mysqlnd_protocol_type;
246
247 typedef enum mysqlnd_field_types
248 {
249 MYSQL_TYPE_DECIMAL = 0,
250 MYSQL_TYPE_TINY = 1,
251 MYSQL_TYPE_SHORT = 2,
252 MYSQL_TYPE_LONG = 3,
253 MYSQL_TYPE_FLOAT = 4,
254 MYSQL_TYPE_DOUBLE = 5,
255 MYSQL_TYPE_NULL = 6,
256 MYSQL_TYPE_TIMESTAMP= 7,
257 MYSQL_TYPE_LONGLONG = 8,
258 MYSQL_TYPE_INT24 = 9,
259 MYSQL_TYPE_DATE = 10,
260 MYSQL_TYPE_TIME = 11,
261 MYSQL_TYPE_DATETIME = 12,
262 MYSQL_TYPE_YEAR = 13,
263 MYSQL_TYPE_NEWDATE = 14,
264 MYSQL_TYPE_VARCHAR = 15,
265 MYSQL_TYPE_BIT = 16,
266 MYSQL_TYPE_JSON=245,
267 MYSQL_TYPE_NEWDECIMAL=246,
268 MYSQL_TYPE_ENUM=247,
269 MYSQL_TYPE_SET=248,
270 MYSQL_TYPE_TINY_BLOB=249,
271 MYSQL_TYPE_MEDIUM_BLOB=250,
272 MYSQL_TYPE_LONG_BLOB=251,
273 MYSQL_TYPE_BLOB=252,
274 MYSQL_TYPE_VAR_STRING=253,
275 MYSQL_TYPE_STRING=254,
276 MYSQL_TYPE_GEOMETRY=255
277 } enum_mysqlnd_field_types;
278
279
280 #define MYSQL_TYPE_LAST MYSQL_TYPE_GEOMETRY
281
282
283 typedef enum mysqlnd_server_option
284 {
285 MYSQL_OPTION_MULTI_STATEMENTS_ON,
286 MYSQL_OPTION_MULTI_STATEMENTS_OFF
287 } enum_mysqlnd_server_option;
288
289
290 #define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL
291 #define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL
292 #define FIELD_TYPE_TINY MYSQL_TYPE_TINY
293 #define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT
294 #define FIELD_TYPE_LONG MYSQL_TYPE_LONG
295 #define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT
296 #define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE
297 #define FIELD_TYPE_NULL MYSQL_TYPE_NULL
298 #define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP
299 #define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG
300 #define FIELD_TYPE_INT24 MYSQL_TYPE_INT24
301 #define FIELD_TYPE_DATE MYSQL_TYPE_DATE
302 #define FIELD_TYPE_TIME MYSQL_TYPE_TIME
303 #define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME
304 #define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR
305 #define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE
306 #define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM
307 #define FIELD_TYPE_SET MYSQL_TYPE_SET
308 #define FIELD_TYPE_JSON MYSQL_TYPE_JSON
309 #define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB
310 #define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB
311 #define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB
312 #define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB
313 #define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING
314 #define FIELD_TYPE_STRING MYSQL_TYPE_STRING
315 #define FIELD_TYPE_CHAR MYSQL_TYPE_TINY
316 #define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM
317 #define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY
318 #define FIELD_TYPE_BIT MYSQL_TYPE_BIT
319
320 #define NOT_NULL_FLAG 1
321 #define PRI_KEY_FLAG 2
322 #define UNIQUE_KEY_FLAG 4
323 #define MULTIPLE_KEY_FLAG 8
324 #define BLOB_FLAG 16
325 #define UNSIGNED_FLAG 32
326 #define ZEROFILL_FLAG 64
327 #define BINARY_FLAG 128
328 #define ENUM_FLAG 256
329 #define AUTO_INCREMENT_FLAG 512
330 #define TIMESTAMP_FLAG 1024
331 #define SET_FLAG 2048
332 #define NO_DEFAULT_VALUE_FLAG 4096
333 #define ON_UPDATE_NOW_FLAG 8192
334 #define PART_KEY_FLAG 16384
335 #define GROUP_FLAG 32768
336 #define NUM_FLAG 32768
337
338 #define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG)
339 #define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG)
340 #define IS_BLOB(n) ((n) & BLOB_FLAG)
341 #define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL)
342
343
344
345 #define MYSQLND_BINARY_CHARSET_NR 63
346
347
348
349
350
351
352
353
354
355
356 typedef enum mysqlnd_connection_state
357 {
358 CONN_ALLOCED = 0,
359 CONN_READY = 1,
360 CONN_QUERY_SENT = 2,
361 CONN_SENDING_LOAD_DATA = 3,
362 CONN_FETCHING_DATA = 4,
363 CONN_NEXT_RESULT_PENDING = 5,
364 CONN_QUIT_SENT = 6
365 } enum_mysqlnd_connection_state;
366
367
368 typedef enum mysqlnd_stmt_state
369 {
370 MYSQLND_STMT_INITTED = 0,
371 MYSQLND_STMT_PREPARED = 1,
372 MYSQLND_STMT_EXECUTED = 2,
373 MYSQLND_STMT_WAITING_USE_OR_STORE = 3,
374 MYSQLND_STMT_USE_OR_STORE_CALLED = 4,
375 MYSQLND_STMT_USER_FETCHING = 5
376 } enum_mysqlnd_stmt_state;
377
378
379 typedef enum param_bind_flags
380 {
381 MYSQLND_PARAM_BIND_BLOB_USED = 1
382 } enum_param_bind_flags;
383
384
385
386 enum mysqlnd_stmt_attr
387 {
388 STMT_ATTR_UPDATE_MAX_LENGTH,
389 STMT_ATTR_CURSOR_TYPE,
390 STMT_ATTR_PREFETCH_ROWS
391 };
392
393 enum myslqnd_cursor_type
394 {
395 CURSOR_TYPE_NO_CURSOR= 0,
396 CURSOR_TYPE_READ_ONLY= 1,
397 CURSOR_TYPE_FOR_UPDATE= 2,
398 CURSOR_TYPE_SCROLLABLE= 4
399 };
400
401 typedef enum mysqlnd_connection_close_type
402 {
403 MYSQLND_CLOSE_EXPLICIT = 0,
404 MYSQLND_CLOSE_IMPLICIT,
405 MYSQLND_CLOSE_DISCONNECTED,
406 MYSQLND_CLOSE_LAST
407 } enum_connection_close_type;
408
409
410 typedef enum mysqlnd_collected_stats
411 {
412 STAT_BYTES_SENT,
413 STAT_BYTES_RECEIVED,
414 STAT_PACKETS_SENT,
415 STAT_PACKETS_RECEIVED,
416 STAT_PROTOCOL_OVERHEAD_IN,
417 STAT_PROTOCOL_OVERHEAD_OUT,
418 STAT_BYTES_RECEIVED_OK,
419 STAT_BYTES_RECEIVED_EOF,
420 STAT_BYTES_RECEIVED_RSET_HEADER,
421 STAT_BYTES_RECEIVED_RSET_FIELD_META,
422 STAT_BYTES_RECEIVED_RSET_ROW,
423 STAT_BYTES_RECEIVED_PREPARE_RESPONSE,
424 STAT_BYTES_RECEIVED_CHANGE_USER,
425 STAT_PACKETS_SENT_CMD,
426 STAT_PACKETS_RECEIVED_OK,
427 STAT_PACKETS_RECEIVED_EOF,
428 STAT_PACKETS_RECEIVED_RSET_HEADER,
429 STAT_PACKETS_RECEIVED_RSET_FIELD_META,
430 STAT_PACKETS_RECEIVED_RSET_ROW,
431 STAT_PACKETS_RECEIVED_PREPARE_RESPONSE,
432 STAT_PACKETS_RECEIVED_CHANGE_USER,
433 STAT_RSET_QUERY,
434 STAT_NON_RSET_QUERY,
435 STAT_NO_INDEX_USED,
436 STAT_BAD_INDEX_USED,
437 STAT_QUERY_WAS_SLOW,
438 STAT_BUFFERED_SETS,
439 STAT_UNBUFFERED_SETS,
440 STAT_PS_BUFFERED_SETS,
441 STAT_PS_UNBUFFERED_SETS,
442 STAT_FLUSHED_NORMAL_SETS,
443 STAT_FLUSHED_PS_SETS,
444 STAT_PS_PREPARED_NEVER_EXECUTED,
445 STAT_PS_PREPARED_ONCE_USED,
446 STAT_ROWS_FETCHED_FROM_SERVER_NORMAL,
447 STAT_ROWS_FETCHED_FROM_SERVER_PS,
448 STAT_ROWS_BUFFERED_FROM_CLIENT_NORMAL,
449 STAT_ROWS_BUFFERED_FROM_CLIENT_PS,
450 STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF,
451 STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_UNBUF,
452 STAT_ROWS_FETCHED_FROM_CLIENT_PS_BUF,
453 STAT_ROWS_FETCHED_FROM_CLIENT_PS_UNBUF,
454 STAT_ROWS_FETCHED_FROM_CLIENT_PS_CURSOR,
455 STAT_ROWS_AFFECTED_NORMAL,
456 STAT_ROWS_AFFECTED_PS,
457 STAT_ROWS_SKIPPED_NORMAL,
458 STAT_ROWS_SKIPPED_PS,
459 STAT_COPY_ON_WRITE_SAVED,
460 STAT_COPY_ON_WRITE_PERFORMED,
461 STAT_CMD_BUFFER_TOO_SMALL,
462 STAT_CONNECT_SUCCESS,
463 STAT_CONNECT_FAILURE,
464 STAT_CONNECT_REUSED,
465 STAT_RECONNECT,
466 STAT_PCONNECT_SUCCESS,
467 STAT_OPENED_CONNECTIONS,
468 STAT_OPENED_PERSISTENT_CONNECTIONS,
469 STAT_CLOSE_EXPLICIT,
470 STAT_CLOSE_IMPLICIT,
471 STAT_CLOSE_DISCONNECT,
472 STAT_CLOSE_IN_MIDDLE,
473 STAT_FREE_RESULT_EXPLICIT,
474 STAT_FREE_RESULT_IMPLICIT,
475 STAT_STMT_CLOSE_EXPLICIT,
476 STAT_STMT_CLOSE_IMPLICIT,
477 STAT_MEM_EMALLOC_COUNT,
478 STAT_MEM_EMALLOC_AMOUNT,
479 STAT_MEM_ECALLOC_COUNT,
480 STAT_MEM_ECALLOC_AMOUNT,
481 STAT_MEM_EREALLOC_COUNT,
482 STAT_MEM_EREALLOC_AMOUNT,
483 STAT_MEM_EFREE_COUNT,
484 STAT_MEM_EFREE_AMOUNT,
485 STAT_MEM_MALLOC_COUNT,
486 STAT_MEM_MALLOC_AMOUNT,
487 STAT_MEM_CALLOC_COUNT,
488 STAT_MEM_CALLOC_AMOUNT,
489 STAT_MEM_REALLOC_COUNT,
490 STAT_MEM_REALLOC_AMOUNT,
491 STAT_MEM_FREE_COUNT,
492 STAT_MEM_FREE_AMOUNT,
493 STAT_MEM_ESTRNDUP_COUNT,
494 STAT_MEM_STRNDUP_COUNT,
495 STAT_MEM_ESTRDUP_COUNT,
496 STAT_MEM_STRDUP_COUNT,
497 STAT_TEXT_TYPE_FETCHED_NULL,
498 STAT_TEXT_TYPE_FETCHED_BIT,
499 STAT_TEXT_TYPE_FETCHED_INT8,
500 STAT_TEXT_TYPE_FETCHED_INT16,
501 STAT_TEXT_TYPE_FETCHED_INT24,
502 STAT_TEXT_TYPE_FETCHED_INT32,
503 STAT_TEXT_TYPE_FETCHED_INT64,
504 STAT_TEXT_TYPE_FETCHED_DECIMAL,
505 STAT_TEXT_TYPE_FETCHED_FLOAT,
506 STAT_TEXT_TYPE_FETCHED_DOUBLE,
507 STAT_TEXT_TYPE_FETCHED_DATE,
508 STAT_TEXT_TYPE_FETCHED_YEAR,
509 STAT_TEXT_TYPE_FETCHED_TIME,
510 STAT_TEXT_TYPE_FETCHED_DATETIME,
511 STAT_TEXT_TYPE_FETCHED_TIMESTAMP,
512 STAT_TEXT_TYPE_FETCHED_STRING,
513 STAT_TEXT_TYPE_FETCHED_JSON,
514 STAT_TEXT_TYPE_FETCHED_BLOB,
515 STAT_TEXT_TYPE_FETCHED_ENUM,
516 STAT_TEXT_TYPE_FETCHED_SET,
517 STAT_TEXT_TYPE_FETCHED_GEOMETRY,
518 STAT_TEXT_TYPE_FETCHED_OTHER,
519 STAT_BINARY_TYPE_FETCHED_NULL,
520 STAT_BINARY_TYPE_FETCHED_BIT,
521 STAT_BINARY_TYPE_FETCHED_INT8,
522 STAT_BINARY_TYPE_FETCHED_INT16,
523 STAT_BINARY_TYPE_FETCHED_INT24,
524 STAT_BINARY_TYPE_FETCHED_INT32,
525 STAT_BINARY_TYPE_FETCHED_INT64,
526 STAT_BINARY_TYPE_FETCHED_DECIMAL,
527 STAT_BINARY_TYPE_FETCHED_FLOAT,
528 STAT_BINARY_TYPE_FETCHED_DOUBLE,
529 STAT_BINARY_TYPE_FETCHED_DATE,
530 STAT_BINARY_TYPE_FETCHED_YEAR,
531 STAT_BINARY_TYPE_FETCHED_TIME,
532 STAT_BINARY_TYPE_FETCHED_DATETIME,
533 STAT_BINARY_TYPE_FETCHED_TIMESTAMP,
534 STAT_BINARY_TYPE_FETCHED_STRING,
535 STAT_BINARY_TYPE_FETCHED_BLOB,
536 STAT_BINARY_TYPE_FETCHED_ENUM,
537 STAT_BINARY_TYPE_FETCHED_SET,
538 STAT_BINARY_TYPE_FETCHED_GEOMETRY,
539 STAT_BINARY_TYPE_FETCHED_OTHER,
540 STAT_INIT_COMMAND_EXECUTED_COUNT,
541 STAT_INIT_COMMAND_FAILED_COUNT,
542 STAT_COM_QUIT,
543 STAT_COM_INIT_DB,
544 STAT_COM_QUERY,
545 STAT_COM_FIELD_LIST,
546 STAT_COM_CREATE_DB,
547 STAT_COM_DROP_DB,
548 STAT_COM_REFRESH,
549 STAT_COM_SHUTDOWN,
550 STAT_COM_STATISTICS,
551 STAT_COM_PROCESS_INFO,
552 STAT_COM_CONNECT,
553 STAT_COM_PROCESS_KILL,
554 STAT_COM_DEBUG,
555 STAT_COM_PING,
556 STAT_COM_TIME,
557 STAT_COM_DELAYED_INSERT,
558 STAT_COM_CHANGE_USER,
559 STAT_COM_BINLOG_DUMP,
560 STAT_COM_TABLE_DUMP,
561 STAT_COM_CONNECT_OUT,
562 STAT_COM_REGISTER_SLAVE,
563 STAT_COM_STMT_PREPARE,
564 STAT_COM_STMT_EXECUTE,
565 STAT_COM_STMT_SEND_LONG_DATA,
566 STAT_COM_STMT_CLOSE,
567 STAT_COM_STMT_RESET,
568 STAT_COM_SET_OPTION,
569 STAT_COM_STMT_FETCH,
570 STAT_COM_DAEMON,
571 STAT_BYTES_RECEIVED_PURE_DATA_TEXT,
572 STAT_BYTES_RECEIVED_PURE_DATA_PS,
573 STAT_LAST
574 } enum_mysqlnd_collected_stats;
575
576
577
578 enum mysqlnd_packet_type
579 {
580 PROT_GREET_PACKET= 0,
581 PROT_AUTH_PACKET,
582 PROT_AUTH_RESP_PACKET,
583 PROT_CHANGE_AUTH_RESP_PACKET,
584 PROT_OK_PACKET,
585 PROT_EOF_PACKET,
586 PROT_CMD_PACKET,
587 PROT_RSET_HEADER_PACKET,
588 PROT_RSET_FLD_PACKET,
589 PROT_ROW_PACKET,
590 PROT_STATS_PACKET,
591 PROT_PREPARE_RESP_PACKET,
592 PROT_CHG_USER_RESP_PACKET,
593 PROT_SHA256_PK_REQUEST_PACKET,
594 PROT_SHA256_PK_REQUEST_RESPONSE_PACKET,
595 PROT_LAST
596 };
597
598
599
600
601
602
603 enum php_mysqlnd_server_command
604 {
605 COM_SLEEP = 0,
606 COM_QUIT,
607 COM_INIT_DB,
608 COM_QUERY,
609 COM_FIELD_LIST,
610 COM_CREATE_DB,
611 COM_DROP_DB,
612 COM_REFRESH,
613 COM_SHUTDOWN,
614 COM_STATISTICS,
615 COM_PROCESS_INFO,
616 COM_CONNECT,
617 COM_PROCESS_KILL,
618 COM_DEBUG,
619 COM_PING,
620 COM_TIME = 15,
621 COM_DELAYED_INSERT,
622 COM_CHANGE_USER,
623 COM_BINLOG_DUMP,
624 COM_TABLE_DUMP,
625 COM_CONNECT_OUT = 20,
626 COM_REGISTER_SLAVE,
627 COM_STMT_PREPARE = 22,
628 COM_STMT_EXECUTE = 23,
629 COM_STMT_SEND_LONG_DATA = 24,
630 COM_STMT_CLOSE = 25,
631 COM_STMT_RESET = 26,
632 COM_SET_OPTION = 27,
633 COM_STMT_FETCH = 28,
634 COM_DAEMON = 29,
635 COM_BINLOG_DUMP_GTID = 30,
636 COM_RESET_CONNECTION = 31,
637 COM_STMT_EXECUTE_BATCH = 32,
638 COM_END
639 };
640
641
642 #define MYSQLND_DEFAULT_PREFETCH_ROWS (zend_ulong) 1
643
644 #define MYSQLND_REFRESH_GRANT 1
645 #define MYSQLND_REFRESH_LOG 2
646 #define MYSQLND_REFRESH_TABLES 4
647 #define MYSQLND_REFRESH_HOSTS 8
648 #define MYSQLND_REFRESH_STATUS 16
649 #define MYSQLND_REFRESH_THREADS 32
650 #define MYSQLND_REFRESH_SLAVE 64
651 #define MYSQLND_REFRESH_MASTER 128
652 #define MYSQLND_REFRESH_BACKUP_LOG 0x200000L
653
654
655 #define MYSQLND_STORE_PS 1
656 #define MYSQLND_STORE_NO_COPY 2
657 #define MYSQLND_STORE_COPY 4
658
659 enum mysqlnd_buffered_type
660 {
661 MYSQLND_BUFFERED_TYPE_ZVAL = 1,
662 MYSQLND_BUFFERED_TYPE_C
663 };
664
665
666 #define MYSQLND_CLIENT_NO_FLAG 0
667 #define MYSQLND_CLIENT_KNOWS_RSET_COPY_DATA 1
668
669 #endif
670
671
672
673
674
675
676
677
678
679