1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 5 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 2006-2015 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Andrey Hristov <andrey@mysql.com> | 16 | Ulf Wendel <uwendel@mysql.com> | 17 | Georg Richter <georg@mysql.com> | 18 +----------------------------------------------------------------------+ 19 */ 20 21 /* $Id$ */ 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 /* 63 char * 4byte . MySQL supports now only 16 char, but let it be forward compatible */ 47 #define MYSQLND_MAX_ALLOWED_DB_LEN 1024 /* 256 char * 4byte. MySQL supports now only 64 char in the tables, but on the FS could be different. Forward compatible. */ 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 /* Transaction has started */ 53 #define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ 54 #define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ 55 #define SERVER_QUERY_NO_GOOD_INDEX_USED 16 56 #define SERVER_QUERY_NO_INDEX_USED 32 57 /* 58 The server was able to fulfill the clients request and opened a 59 read-only non-scrollable cursor for a query. This flag comes 60 in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. 61 */ 62 #define SERVER_STATUS_CURSOR_EXISTS 64 63 /* 64 This flag is sent when a read-only cursor is exhausted, in reply to 65 COM_STMT_FETCH command. 66 */ 67 #define SERVER_STATUS_LAST_ROW_SENT 128 68 #define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ 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 /* new more secure passwords */ 81 #define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ 82 #define CLIENT_LONG_FLAG 4 /* Get all column flags */ 83 #define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ 84 #define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ 85 #define CLIENT_COMPRESS 32 /* Can use compression protocol */ 86 #define CLIENT_ODBC 64 /* Odbc client */ 87 #define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ 88 #define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ 89 #define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ 90 #define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ 91 #define CLIENT_SSL 2048 /* Switch to SSL after handshake */ 92 #define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ 93 #define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ 94 #define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ 95 #define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ 96 #define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */ 97 #define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */ 98 #define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */ 99 #define CLIENT_PLUGIN_AUTH (1UL << 19) /* Client supports plugin authentication */ 100 #define CLIENT_CONNECT_ATTRS (1UL << 20) /* Client supports connection attributes */ 101 #define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21) /* Enable authentication response packet to be larger than 255 bytes. */ 102 #define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22) /* Don't close the connection for a connection with expired password. */ 103 #define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30) 104 105 #define MYSQLND_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | \ 106 CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION | \ 107 CLIENT_MULTI_RESULTS | CLIENT_PS_MULTI_RESULTS | CLIENT_LOCAL_FILES | CLIENT_PLUGIN_AUTH) 108 109 #define MYSQLND_NET_FLAG_USE_COMPRESSION 1 110 111 112 #define TRANS_START_NO_OPT 0 113 #define TRANS_START_WITH_CONSISTENT_SNAPSHOT 1 114 #define TRANS_START_READ_WRITE 2 115 #define TRANS_START_READ_ONLY 4 116 117 #define TRANS_COR_NO_OPT 0 118 #define TRANS_COR_AND_CHAIN 1 119 #define TRANS_COR_AND_NO_CHAIN 2 120 #define TRANS_COR_RELEASE 4 121 #define TRANS_COR_NO_RELEASE 8 122 123 typedef enum mysqlnd_extension 124 { 125 MYSQLND_MYSQL = 0, 126 MYSQLND_MYSQLI 127 } enum_mysqlnd_extension; 128 129 enum 130 { 131 MYSQLND_FETCH_ASSOC = 1, 132 MYSQLND_FETCH_NUM = 2, 133 MYSQLND_FETCH_BOTH = 1|2 134 }; 135 136 /* Follow libmysql convention */ 137 typedef enum func_status 138 { 139 PASS = 0, 140 FAIL = 1 141 } enum_func_status; 142 143 typedef enum mysqlnd_query_type 144 { 145 QUERY_UPSERT, 146 QUERY_SELECT, 147 QUERY_LOAD_LOCAL 148 } enum_mysqlnd_query_type; 149 150 typedef enum mysqlnd_res_type 151 { 152 MYSQLND_RES_NORMAL = 1, 153 MYSQLND_RES_PS_BUF, 154 MYSQLND_RES_PS_UNBUF 155 } enum_mysqlnd_res_type; 156 157 typedef enum mysqlnd_option 158 { 159 MYSQL_OPT_CONNECT_TIMEOUT, 160 MYSQL_OPT_COMPRESS, 161 MYSQL_OPT_NAMED_PIPE, 162 MYSQL_INIT_COMMAND, 163 MYSQL_READ_DEFAULT_FILE, 164 MYSQL_READ_DEFAULT_GROUP, 165 MYSQL_SET_CHARSET_DIR, 166 MYSQL_SET_CHARSET_NAME, 167 MYSQL_OPT_LOCAL_INFILE, 168 MYSQL_OPT_PROTOCOL, 169 MYSQL_SHARED_MEMORY_BASE_NAME, 170 MYSQL_OPT_READ_TIMEOUT, 171 MYSQL_OPT_WRITE_TIMEOUT, 172 MYSQL_OPT_USE_RESULT, 173 MYSQL_OPT_USE_REMOTE_CONNECTION, 174 MYSQL_OPT_USE_EMBEDDED_CONNECTION, 175 MYSQL_OPT_GUESS_CONNECTION, 176 MYSQL_SET_CLIENT_IP, 177 MYSQL_SECURE_AUTH, 178 MYSQL_REPORT_DATA_TRUNCATION, 179 MYSQL_OPT_RECONNECT, 180 MYSQL_OPT_SSL_VERIFY_SERVER_CERT, 181 MYSQL_PLUGIN_DIR, 182 MYSQL_DEFAULT_AUTH, 183 MYSQL_OPT_CONNECT_ATTR_RESET, 184 MYSQL_OPT_CONNECT_ATTR_ADD, 185 MYSQL_OPT_CONNECT_ATTR_DELETE, 186 MYSQL_SERVER_PUBLIC_KEY, 187 MYSQL_ENABLE_CLEARTEXT_PLUGIN, 188 MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, 189 MYSQLND_DEPRECATED_ENUM1 = 200, 190 #ifdef MYSQLND_STRING_TO_INT_CONVERSION 191 MYSQLND_OPT_INT_AND_FLOAT_NATIVE = 201, 192 #endif 193 MYSQLND_OPT_NET_CMD_BUFFER_SIZE = 202, 194 MYSQLND_OPT_NET_READ_BUFFER_SIZE = 203, 195 MYSQLND_OPT_SSL_KEY = 204, 196 MYSQLND_OPT_SSL_CERT = 205, 197 MYSQLND_OPT_SSL_CA = 206, 198 MYSQLND_OPT_SSL_CAPATH = 207, 199 MYSQLND_OPT_SSL_CIPHER = 208, 200 MYSQLND_OPT_SSL_PASSPHRASE = 209, 201 MYSQLND_OPT_MAX_ALLOWED_PACKET = 210, 202 MYSQLND_OPT_AUTH_PROTOCOL = 211 203 } enum_mysqlnd_option; 204 205 typedef enum mysqlnd_protocol_type 206 { 207 MYSQL_PROTOCOL_DEFAULT = 0, 208 MYSQL_PROTOCOL_TCP, /* all, supported */ 209 MYSQL_PROTOCOL_SOCKET, /* unix, supported */ 210 MYSQL_PROTOCOL_PIPE, /* win32, not-supported */ 211 MYSQL_PROTOCOL_MEMORY, /* win32, not-supported */ 212 MYSQL_PROTOCOL_LAST 213 } enum_mysqlnd_protocol_type; 214 215 typedef enum mysqlnd_field_types 216 { 217 MYSQL_TYPE_DECIMAL, 218 MYSQL_TYPE_TINY, 219 MYSQL_TYPE_SHORT, 220 MYSQL_TYPE_LONG, 221 MYSQL_TYPE_FLOAT, 222 MYSQL_TYPE_DOUBLE, 223 MYSQL_TYPE_NULL, 224 MYSQL_TYPE_TIMESTAMP, 225 MYSQL_TYPE_LONGLONG, 226 MYSQL_TYPE_INT24, 227 MYSQL_TYPE_DATE, 228 MYSQL_TYPE_TIME, 229 MYSQL_TYPE_DATETIME, 230 MYSQL_TYPE_YEAR, 231 MYSQL_TYPE_NEWDATE, 232 MYSQL_TYPE_VARCHAR, 233 MYSQL_TYPE_BIT, 234 MYSQL_TYPE_NEWDECIMAL=246, 235 MYSQL_TYPE_ENUM=247, 236 MYSQL_TYPE_SET=248, 237 MYSQL_TYPE_TINY_BLOB=249, 238 MYSQL_TYPE_MEDIUM_BLOB=250, 239 MYSQL_TYPE_LONG_BLOB=251, 240 MYSQL_TYPE_BLOB=252, 241 MYSQL_TYPE_VAR_STRING=253, 242 MYSQL_TYPE_STRING=254, 243 MYSQL_TYPE_GEOMETRY=255 244 } enum_mysqlnd_field_types; 245 246 /* Please update this if there is a new type after MYSQL_TYPE_GEOMETRY */ 247 #define MYSQL_TYPE_LAST MYSQL_TYPE_GEOMETRY 248 249 250 typedef enum mysqlnd_server_option 251 { 252 MYSQL_OPTION_MULTI_STATEMENTS_ON, 253 MYSQL_OPTION_MULTI_STATEMENTS_OFF 254 } enum_mysqlnd_server_option; 255 256 257 #define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL 258 #define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL 259 #define FIELD_TYPE_TINY MYSQL_TYPE_TINY 260 #define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT 261 #define FIELD_TYPE_LONG MYSQL_TYPE_LONG 262 #define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT 263 #define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE 264 #define FIELD_TYPE_NULL MYSQL_TYPE_NULL 265 #define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP 266 #define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG 267 #define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 268 #define FIELD_TYPE_DATE MYSQL_TYPE_DATE 269 #define FIELD_TYPE_TIME MYSQL_TYPE_TIME 270 #define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME 271 #define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR 272 #define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE 273 #define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM 274 #define FIELD_TYPE_SET MYSQL_TYPE_SET 275 #define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB 276 #define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB 277 #define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB 278 #define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB 279 #define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING 280 #define FIELD_TYPE_STRING MYSQL_TYPE_STRING 281 #define FIELD_TYPE_CHAR MYSQL_TYPE_TINY 282 #define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM 283 #define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY 284 #define FIELD_TYPE_BIT MYSQL_TYPE_BIT 285 286 #define NOT_NULL_FLAG 1 287 #define PRI_KEY_FLAG 2 288 #define UNIQUE_KEY_FLAG 4 289 #define MULTIPLE_KEY_FLAG 8 290 #define BLOB_FLAG 16 291 #define UNSIGNED_FLAG 32 292 #define ZEROFILL_FLAG 64 293 #define BINARY_FLAG 128 294 #define ENUM_FLAG 256 295 #define AUTO_INCREMENT_FLAG 512 296 #define TIMESTAMP_FLAG 1024 297 #define SET_FLAG 2048 298 #define NO_DEFAULT_VALUE_FLAG 4096 299 #define ON_UPDATE_NOW_FLAG 8192 300 #define PART_KEY_FLAG 16384 301 #define GROUP_FLAG 32768 302 #define NUM_FLAG 32768 303 304 #define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) 305 #define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) 306 #define IS_BLOB(n) ((n) & BLOB_FLAG) 307 #define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL) 308 309 310 /* see mysqlnd_charset.c for more information */ 311 #define MYSQLND_BINARY_CHARSET_NR 63 312 313 314 /* 315 /-----> CONN_CLOSE <---------------\ 316 | ^ \ 317 | | \ 318 CONN_READY -> CONN_QUERY_SENT -> CONN_FETCHING_DATA 319 ^ | 320 \-------------------------------------/ 321 */ 322 typedef enum mysqlnd_connection_state 323 { 324 CONN_ALLOCED = 0, 325 CONN_READY, 326 CONN_QUERY_SENT, 327 CONN_SENDING_LOAD_DATA, 328 CONN_FETCHING_DATA, 329 CONN_NEXT_RESULT_PENDING, 330 CONN_QUIT_SENT /* object is "destroyed" at this stage */ 331 } enum_mysqlnd_connection_state; 332 333 334 typedef enum mysqlnd_stmt_state 335 { 336 MYSQLND_STMT_INITTED = 0, 337 MYSQLND_STMT_PREPARED, 338 MYSQLND_STMT_EXECUTED, 339 MYSQLND_STMT_WAITING_USE_OR_STORE, 340 MYSQLND_STMT_USE_OR_STORE_CALLED, 341 MYSQLND_STMT_USER_FETCHING /* fetch_row_buff or fetch_row_unbuf */ 342 } enum_mysqlnd_stmt_state; 343 344 345 typedef enum param_bind_flags 346 { 347 MYSQLND_PARAM_BIND_BLOB_USED = 1 348 } enum_param_bind_flags; 349 350 351 /* PS */ 352 enum mysqlnd_stmt_attr 353 { 354 STMT_ATTR_UPDATE_MAX_LENGTH, 355 STMT_ATTR_CURSOR_TYPE, 356 STMT_ATTR_PREFETCH_ROWS 357 }; 358 359 enum myslqnd_cursor_type 360 { 361 CURSOR_TYPE_NO_CURSOR= 0, 362 CURSOR_TYPE_READ_ONLY= 1, 363 CURSOR_TYPE_FOR_UPDATE= 2, 364 CURSOR_TYPE_SCROLLABLE= 4 365 }; 366 367 typedef enum mysqlnd_connection_close_type 368 { 369 MYSQLND_CLOSE_EXPLICIT = 0, 370 MYSQLND_CLOSE_IMPLICIT, 371 MYSQLND_CLOSE_DISCONNECTED, 372 MYSQLND_CLOSE_LAST /* for checking, should always be last */ 373 } enum_connection_close_type; 374 375 376 typedef enum mysqlnd_collected_stats 377 { 378 STAT_BYTES_SENT, 379 STAT_BYTES_RECEIVED, 380 STAT_PACKETS_SENT, 381 STAT_PACKETS_RECEIVED, 382 STAT_PROTOCOL_OVERHEAD_IN, 383 STAT_PROTOCOL_OVERHEAD_OUT, 384 STAT_BYTES_RECEIVED_OK, 385 STAT_BYTES_RECEIVED_EOF, 386 STAT_BYTES_RECEIVED_RSET_HEADER, 387 STAT_BYTES_RECEIVED_RSET_FIELD_META, 388 STAT_BYTES_RECEIVED_RSET_ROW, 389 STAT_BYTES_RECEIVED_PREPARE_RESPONSE, 390 STAT_BYTES_RECEIVED_CHANGE_USER, 391 STAT_PACKETS_SENT_CMD, 392 STAT_PACKETS_RECEIVED_OK, 393 STAT_PACKETS_RECEIVED_EOF, 394 STAT_PACKETS_RECEIVED_RSET_HEADER, 395 STAT_PACKETS_RECEIVED_RSET_FIELD_META, 396 STAT_PACKETS_RECEIVED_RSET_ROW, 397 STAT_PACKETS_RECEIVED_PREPARE_RESPONSE, 398 STAT_PACKETS_RECEIVED_CHANGE_USER, 399 STAT_RSET_QUERY, 400 STAT_NON_RSET_QUERY, 401 STAT_NO_INDEX_USED, 402 STAT_BAD_INDEX_USED, 403 STAT_QUERY_WAS_SLOW, 404 STAT_BUFFERED_SETS, 405 STAT_UNBUFFERED_SETS, 406 STAT_PS_BUFFERED_SETS, 407 STAT_PS_UNBUFFERED_SETS, 408 STAT_FLUSHED_NORMAL_SETS, 409 STAT_FLUSHED_PS_SETS, 410 STAT_PS_PREPARED_NEVER_EXECUTED, 411 STAT_PS_PREPARED_ONCE_USED, 412 STAT_ROWS_FETCHED_FROM_SERVER_NORMAL, 413 STAT_ROWS_FETCHED_FROM_SERVER_PS, 414 STAT_ROWS_BUFFERED_FROM_CLIENT_NORMAL, 415 STAT_ROWS_BUFFERED_FROM_CLIENT_PS, 416 STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF, 417 STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_UNBUF, 418 STAT_ROWS_FETCHED_FROM_CLIENT_PS_BUF, 419 STAT_ROWS_FETCHED_FROM_CLIENT_PS_UNBUF, 420 STAT_ROWS_FETCHED_FROM_CLIENT_PS_CURSOR, 421 STAT_ROWS_AFFECTED_NORMAL, 422 STAT_ROWS_AFFECTED_PS, 423 STAT_ROWS_SKIPPED_NORMAL, 424 STAT_ROWS_SKIPPED_PS, 425 STAT_COPY_ON_WRITE_SAVED, 426 STAT_COPY_ON_WRITE_PERFORMED, 427 STAT_CMD_BUFFER_TOO_SMALL, 428 STAT_CONNECT_SUCCESS, 429 STAT_CONNECT_FAILURE, 430 STAT_CONNECT_REUSED, 431 STAT_RECONNECT, 432 STAT_PCONNECT_SUCCESS, 433 STAT_OPENED_CONNECTIONS, 434 STAT_OPENED_PERSISTENT_CONNECTIONS, 435 STAT_CLOSE_EXPLICIT, 436 STAT_CLOSE_IMPLICIT, 437 STAT_CLOSE_DISCONNECT, 438 STAT_CLOSE_IN_MIDDLE, 439 STAT_FREE_RESULT_EXPLICIT, 440 STAT_FREE_RESULT_IMPLICIT, 441 STAT_STMT_CLOSE_EXPLICIT, 442 STAT_STMT_CLOSE_IMPLICIT, 443 STAT_MEM_EMALLOC_COUNT, 444 STAT_MEM_EMALLOC_AMOUNT, 445 STAT_MEM_ECALLOC_COUNT, 446 STAT_MEM_ECALLOC_AMOUNT, 447 STAT_MEM_EREALLOC_COUNT, 448 STAT_MEM_EREALLOC_AMOUNT, 449 STAT_MEM_EFREE_COUNT, 450 STAT_MEM_EFREE_AMOUNT, 451 STAT_MEM_MALLOC_COUNT, 452 STAT_MEM_MALLOC_AMOUNT, 453 STAT_MEM_CALLOC_COUNT, 454 STAT_MEM_CALLOC_AMOUNT, 455 STAT_MEM_REALLOC_COUNT, 456 STAT_MEM_REALLOC_AMOUNT, 457 STAT_MEM_FREE_COUNT, 458 STAT_MEM_FREE_AMOUNT, 459 STAT_MEM_ESTRNDUP_COUNT, 460 STAT_MEM_STRNDUP_COUNT, 461 STAT_MEM_ESTRDUP_COUNT, 462 STAT_MEM_STRDUP_COUNT, 463 STAT_TEXT_TYPE_FETCHED_NULL, 464 STAT_TEXT_TYPE_FETCHED_BIT, 465 STAT_TEXT_TYPE_FETCHED_INT8, 466 STAT_TEXT_TYPE_FETCHED_INT16, 467 STAT_TEXT_TYPE_FETCHED_INT24, 468 STAT_TEXT_TYPE_FETCHED_INT32, 469 STAT_TEXT_TYPE_FETCHED_INT64, 470 STAT_TEXT_TYPE_FETCHED_DECIMAL, 471 STAT_TEXT_TYPE_FETCHED_FLOAT, 472 STAT_TEXT_TYPE_FETCHED_DOUBLE, 473 STAT_TEXT_TYPE_FETCHED_DATE, 474 STAT_TEXT_TYPE_FETCHED_YEAR, 475 STAT_TEXT_TYPE_FETCHED_TIME, 476 STAT_TEXT_TYPE_FETCHED_DATETIME, 477 STAT_TEXT_TYPE_FETCHED_TIMESTAMP, 478 STAT_TEXT_TYPE_FETCHED_STRING, 479 STAT_TEXT_TYPE_FETCHED_BLOB, 480 STAT_TEXT_TYPE_FETCHED_ENUM, 481 STAT_TEXT_TYPE_FETCHED_SET, 482 STAT_TEXT_TYPE_FETCHED_GEOMETRY, 483 STAT_TEXT_TYPE_FETCHED_OTHER, 484 STAT_BINARY_TYPE_FETCHED_NULL, 485 STAT_BINARY_TYPE_FETCHED_BIT, 486 STAT_BINARY_TYPE_FETCHED_INT8, 487 STAT_BINARY_TYPE_FETCHED_INT16, 488 STAT_BINARY_TYPE_FETCHED_INT24, 489 STAT_BINARY_TYPE_FETCHED_INT32, 490 STAT_BINARY_TYPE_FETCHED_INT64, 491 STAT_BINARY_TYPE_FETCHED_DECIMAL, 492 STAT_BINARY_TYPE_FETCHED_FLOAT, 493 STAT_BINARY_TYPE_FETCHED_DOUBLE, 494 STAT_BINARY_TYPE_FETCHED_DATE, 495 STAT_BINARY_TYPE_FETCHED_YEAR, 496 STAT_BINARY_TYPE_FETCHED_TIME, 497 STAT_BINARY_TYPE_FETCHED_DATETIME, 498 STAT_BINARY_TYPE_FETCHED_TIMESTAMP, 499 STAT_BINARY_TYPE_FETCHED_STRING, 500 STAT_BINARY_TYPE_FETCHED_BLOB, 501 STAT_BINARY_TYPE_FETCHED_ENUM, 502 STAT_BINARY_TYPE_FETCHED_SET, 503 STAT_BINARY_TYPE_FETCHED_GEOMETRY, 504 STAT_BINARY_TYPE_FETCHED_OTHER, 505 STAT_INIT_COMMAND_EXECUTED_COUNT, 506 STAT_INIT_COMMAND_FAILED_COUNT, 507 STAT_COM_QUIT, 508 STAT_COM_INIT_DB, 509 STAT_COM_QUERY, 510 STAT_COM_FIELD_LIST, 511 STAT_COM_CREATE_DB, 512 STAT_COM_DROP_DB, 513 STAT_COM_REFRESH, 514 STAT_COM_SHUTDOWN, 515 STAT_COM_STATISTICS, 516 STAT_COM_PROCESS_INFO, 517 STAT_COM_CONNECT, 518 STAT_COM_PROCESS_KILL, 519 STAT_COM_DEBUG, 520 STAT_COM_PING, 521 STAT_COM_TIME, 522 STAT_COM_DELAYED_INSERT, 523 STAT_COM_CHANGE_USER, 524 STAT_COM_BINLOG_DUMP, 525 STAT_COM_TABLE_DUMP, 526 STAT_COM_CONNECT_OUT, 527 STAT_COM_REGISTER_SLAVE, 528 STAT_COM_STMT_PREPARE, 529 STAT_COM_STMT_EXECUTE, 530 STAT_COM_STMT_SEND_LONG_DATA, 531 STAT_COM_STMT_CLOSE, 532 STAT_COM_STMT_RESET, 533 STAT_COM_SET_OPTION, 534 STAT_COM_STMT_FETCH, 535 STAT_COM_DAEMON, 536 STAT_BYTES_RECEIVED_PURE_DATA_TEXT, 537 STAT_BYTES_RECEIVED_PURE_DATA_PS, 538 STAT_LAST /* Should be always the last */ 539 } enum_mysqlnd_collected_stats; 540 541 542 /* Enums */ 543 enum mysqlnd_packet_type 544 { 545 PROT_GREET_PACKET= 0, 546 PROT_AUTH_PACKET, 547 PROT_AUTH_RESP_PACKET, 548 PROT_CHANGE_AUTH_RESP_PACKET, 549 PROT_OK_PACKET, 550 PROT_EOF_PACKET, 551 PROT_CMD_PACKET, 552 PROT_RSET_HEADER_PACKET, 553 PROT_RSET_FLD_PACKET, 554 PROT_ROW_PACKET, 555 PROT_STATS_PACKET, 556 PROT_PREPARE_RESP_PACKET, 557 PROT_CHG_USER_RESP_PACKET, 558 PROT_SHA256_PK_REQUEST_PACKET, 559 PROT_SHA256_PK_REQUEST_RESPONSE_PACKET, 560 PROT_LAST /* should always be last */ 561 }; 562 563 564 /* 565 After adding new elements please update 566 `mysqlnd_command_to_text` in mysqlnd_wireprotocol.c 567 */ 568 enum php_mysqlnd_server_command 569 { 570 COM_SLEEP = 0, 571 COM_QUIT, 572 COM_INIT_DB, 573 COM_QUERY, 574 COM_FIELD_LIST, 575 COM_CREATE_DB, 576 COM_DROP_DB, 577 COM_REFRESH, 578 COM_SHUTDOWN, 579 COM_STATISTICS, 580 COM_PROCESS_INFO, 581 COM_CONNECT, 582 COM_PROCESS_KILL, 583 COM_DEBUG, 584 COM_PING, 585 COM_TIME = 15, 586 COM_DELAYED_INSERT, 587 COM_CHANGE_USER, 588 COM_BINLOG_DUMP, 589 COM_TABLE_DUMP, 590 COM_CONNECT_OUT = 20, 591 COM_REGISTER_SLAVE, 592 COM_STMT_PREPARE = 22, 593 COM_STMT_EXECUTE = 23, 594 COM_STMT_SEND_LONG_DATA = 24, 595 COM_STMT_CLOSE = 25, 596 COM_STMT_RESET = 26, 597 COM_SET_OPTION = 27, 598 COM_STMT_FETCH = 28, 599 COM_DAEMON, 600 COM_BINLOG_DUMP_GTID, 601 COM_RESET_CONNECTION, 602 COM_END 603 }; 604 605 606 #define MYSQLND_DEFAULT_PREFETCH_ROWS (ulong) 1 607 608 #define MYSQLND_REFRESH_GRANT 1 /* Refresh grant tables */ 609 #define MYSQLND_REFRESH_LOG 2 /* Start on new log file */ 610 #define MYSQLND_REFRESH_TABLES 4 /* close all tables */ 611 #define MYSQLND_REFRESH_HOSTS 8 /* Flush host cache */ 612 #define MYSQLND_REFRESH_STATUS 16 /* Flush status variables */ 613 #define MYSQLND_REFRESH_THREADS 32 /* Flush thread cache */ 614 #define MYSQLND_REFRESH_SLAVE 64 /* Reset master info and restart slave */ 615 #define MYSQLND_REFRESH_MASTER 128 /* Remove all bin logs in the index */ 616 #define MYSQLND_REFRESH_BACKUP_LOG 0x200000L 617 618 #endif /* MYSQLND_ENUM_N_DEF_H */ 619 620 621 /* 622 * Local variables: 623 * tab-width: 4 624 * c-basic-offset: 4 625 * End: 626 * vim600: noet sw=4 ts=4 fdm=marker 627 * vim<600: noet sw=4 ts=4 628 */ 629