Annotation of embedaddon/php/ext/mysqlnd/mysqlnd_enum_n_def.h, revision 1.1.1.3

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>