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

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

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