root/ext/mysqlnd/mysqlnd_enum_n_def.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2   +----------------------------------------------------------------------+
   3   | PHP Version 7                                                        |
   4   +----------------------------------------------------------------------+
   5   | Copyright (c) 2006-2016 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_SESSION_TRACK                                    (1UL << 23) /* Extended OK */
 104 /*
 105   This is a mysqlnd extension. CLIENT_ODBC is not used anyway. We will reuse it for our case and translate it to not using SSL peer verification
 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 /* Follow libmysql convention */
 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,             /* all, supported */
 241         MYSQL_PROTOCOL_SOCKET,  /* unix, supported */
 242         MYSQL_PROTOCOL_PIPE,    /* win32, not-supported */
 243         MYSQL_PROTOCOL_MEMORY,  /* win32, not-supported */
 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 /* Please update this if there is a new type after MYSQL_TYPE_GEOMETRY */
 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 /* see mysqlnd_charset.c for more information */
 345 #define MYSQLND_BINARY_CHARSET_NR       63
 346 
 347 
 348 /*
 349                 /-----> CONN_CLOSE  <---------------\
 350                 |           ^                         \
 351                 |           |                         \
 352         CONN_READY -> CONN_QUERY_SENT -> CONN_FETCHING_DATA
 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 /* object is "destroyed" at this stage */
 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/* fetch_row_buff or fetch_row_unbuf */
 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 /* PS */
 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      /* for checking, should always be 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 /* Should be always the last */
 574 } enum_mysqlnd_collected_stats;
 575 
 576 
 577 /* Enums */
 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 /* should always be last */
 596 };
 597 
 598 
 599 /*
 600   After adding new elements please update
 601   `mysqlnd_command_to_text` in mysqlnd_wireprotocol.c
 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       /* Refresh grant tables */
 645 #define MYSQLND_REFRESH_LOG                     2       /* Start on new log file */
 646 #define MYSQLND_REFRESH_TABLES          4       /* close all tables */
 647 #define MYSQLND_REFRESH_HOSTS           8       /* Flush host cache */
 648 #define MYSQLND_REFRESH_STATUS          16      /* Flush status variables */
 649 #define MYSQLND_REFRESH_THREADS         32      /* Flush thread cache */
 650 #define MYSQLND_REFRESH_SLAVE           64      /* Reset master info and restart slave */
 651 #define MYSQLND_REFRESH_MASTER          128     /* Remove all bin logs in the index */
 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  /* MYSQLND_ENUM_N_DEF_H */
 670 
 671 
 672 /*
 673  * Local variables:
 674  * tab-width: 4
 675  * c-basic-offset: 4
 676  * End:
 677  * vim600: noet sw=4 ts=4 fdm=marker
 678  * vim<600: noet sw=4 ts=4
 679  */

/* [<][>][^][v][top][bottom][index][help] */