00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00016 #ifndef __DRIZZLE_CONSTANTS_H
00017 #define __DRIZZLE_CONSTANTS_H
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00028
00029 #define DRIZZLE_DEFAULT_TCP_HOST "127.0.0.1"
00030 #define DRIZZLE_DEFAULT_TCP_PORT 4427
00031 #define DRIZZLE_DEFAULT_TCP_PORT_MYSQL 3306
00032 #define DRIZZLE_DEFAULT_UDS "/tmp/mysql.sock"
00033 #define DRIZZLE_DEFAULT_USER "root"
00034 #define DRIZZLE_MAX_ERROR_SIZE 2048
00035 #define DRIZZLE_MAX_USER_SIZE 64
00036 #define DRIZZLE_MAX_PASSWORD_SIZE 32
00037 #define DRIZZLE_MAX_DB_SIZE 64
00038 #define DRIZZLE_MAX_INFO_SIZE 2048
00039 #define DRIZZLE_MAX_SQLSTATE_SIZE 5
00040 #define DRIZZLE_MAX_CATALOG_SIZE 128
00041 #define DRIZZLE_MAX_TABLE_SIZE 128
00042 #define DRIZZLE_MAX_COLUMN_NAME_SIZE 2048
00043 #define DRIZZLE_MAX_DEFAULT_VALUE_SIZE 2048
00044 #define DRIZZLE_MAX_PACKET_SIZE UINT32_MAX
00045 #define DRIZZLE_MAX_BUFFER_SIZE 32768
00046 #define DRIZZLE_BUFFER_COPY_THRESHOLD 8192
00047 #define DRIZZLE_MAX_SERVER_VERSION_SIZE 32
00048 #define DRIZZLE_MAX_SCRAMBLE_SIZE 20
00049 #define DRIZZLE_STATE_STACK_SIZE 8
00050 #define DRIZZLE_ROW_GROW_SIZE 8192
00051 #define DRIZZLE_DEFAULT_SOCKET_TIMEOUT 10
00052 #define DRIZZLE_DEFAULT_SOCKET_SEND_SIZE 32768
00053 #define DRIZZLE_DEFAULT_SOCKET_RECV_SIZE 32768
00054
00055
00056 typedef struct drizzle_st drizzle_st;
00057 typedef struct drizzle_con_st drizzle_con_st;
00058 typedef struct drizzle_query_st drizzle_query_st;
00059 typedef struct drizzle_result_st drizzle_result_st;
00060 typedef struct drizzle_column_st drizzle_column_st;
00061 typedef char *drizzle_field_t;
00062 typedef drizzle_field_t *drizzle_row_t;
00063 typedef uint8_t drizzle_charset_t;
00064
00068 typedef enum
00069 {
00070 DRIZZLE_RETURN_OK,
00071 DRIZZLE_RETURN_IO_WAIT,
00072 DRIZZLE_RETURN_PAUSE,
00073 DRIZZLE_RETURN_ROW_BREAK,
00074 DRIZZLE_RETURN_MEMORY,
00075 DRIZZLE_RETURN_ERRNO,
00076 DRIZZLE_RETURN_INTERNAL_ERROR,
00077 DRIZZLE_RETURN_GETADDRINFO,
00078 DRIZZLE_RETURN_NOT_READY,
00079 DRIZZLE_RETURN_BAD_PACKET_NUMBER,
00080 DRIZZLE_RETURN_BAD_HANDSHAKE_PACKET,
00081 DRIZZLE_RETURN_BAD_PACKET,
00082 DRIZZLE_RETURN_PROTOCOL_NOT_SUPPORTED,
00083 DRIZZLE_RETURN_UNEXPECTED_DATA,
00084 DRIZZLE_RETURN_NO_SCRAMBLE,
00085 DRIZZLE_RETURN_AUTH_FAILED,
00086 DRIZZLE_RETURN_NULL_SIZE,
00087 DRIZZLE_RETURN_ERROR_CODE,
00088 DRIZZLE_RETURN_TOO_MANY_COLUMNS,
00089 DRIZZLE_RETURN_ROW_END,
00090 DRIZZLE_RETURN_LOST_CONNECTION,
00091 DRIZZLE_RETURN_COULD_NOT_CONNECT,
00092 DRIZZLE_RETURN_NO_ACTIVE_CONNECTIONS,
00093 DRIZZLE_RETURN_HANDSHAKE_FAILED,
00094 DRIZZLE_RETURN_MAX
00095 } drizzle_return_t;
00096
00097
00098 #define DRIZZLE_RETURN_SERVER_GONE DRIZZLE_RETURN_LOST_CONNECTION
00099 #define DRIZZLE_RETURN_EOF DRIZZLE_RETURN_LOST_CONNECTION
00100 #define DRIZZLE_COLUMN_TYPE_VIRTUAL 17
00101
00102
00103 typedef drizzle_return_t (drizzle_state_fn)(drizzle_con_st *con);
00104 typedef void (drizzle_con_data_free_fn)(drizzle_con_st *con, void *data);
00105 typedef void (drizzle_query_data_free_fn)(drizzle_query_st *query, void *data);
00106 typedef drizzle_return_t (drizzle_event_watch_fn)(drizzle_con_st *con,
00107 short events, void *arg);
00108
00115 typedef enum
00116 {
00117 DRIZZLE_NONE= 0,
00118 DRIZZLE_ALLOCATED= (1 << 0),
00119 DRIZZLE_NON_BLOCKING= (1 << 1),
00120 DRIZZLE_AUTO_ALLOCATED= (1 << 2)
00121 } drizzle_options_t;
00122
00127 typedef enum
00128 {
00129 DRIZZLE_CON_NONE= 0,
00130 DRIZZLE_CON_ALLOCATED= (1 << 0),
00131 DRIZZLE_CON_MYSQL= (1 << 1),
00132 DRIZZLE_CON_RAW_PACKET= (1 << 2),
00133 DRIZZLE_CON_RAW_SCRAMBLE= (1 << 3),
00134 DRIZZLE_CON_READY= (1 << 4),
00135 DRIZZLE_CON_NO_RESULT_READ= (1 << 5),
00136 DRIZZLE_CON_IO_READY= (1 << 6)
00137 } drizzle_con_options_t;
00138
00143 typedef enum
00144 {
00145 DRIZZLE_CON_STATUS_NONE= 0,
00146 DRIZZLE_CON_STATUS_IN_TRANS= (1 << 0),
00147 DRIZZLE_CON_STATUS_AUTOCOMMIT= (1 << 1),
00148 DRIZZLE_CON_STATUS_MORE_RESULTS_EXISTS= (1 << 3),
00149 DRIZZLE_CON_STATUS_QUERY_NO_GOOD_INDEX_USED= (1 << 4),
00150 DRIZZLE_CON_STATUS_QUERY_NO_INDEX_USED= (1 << 5),
00151 DRIZZLE_CON_STATUS_CURSOR_EXISTS= (1 << 6),
00152 DRIZZLE_CON_STATUS_LAST_ROW_SENT= (1 << 7),
00153 DRIZZLE_CON_STATUS_DB_DROPPED= (1 << 8),
00154 DRIZZLE_CON_STATUS_NO_BACKSLASH_ESCAPES= (1 << 9),
00155 DRIZZLE_CON_STATUS_QUERY_WAS_SLOW= (1 << 10)
00156 } drizzle_con_status_t;
00157
00162 typedef enum
00163 {
00164 DRIZZLE_CAPABILITIES_NONE= 0,
00165 DRIZZLE_CAPABILITIES_LONG_PASSWORD= (1 << 0),
00166 DRIZZLE_CAPABILITIES_FOUND_ROWS= (1 << 1),
00167 DRIZZLE_CAPABILITIES_LONG_FLAG= (1 << 2),
00168 DRIZZLE_CAPABILITIES_CONNECT_WITH_DB= (1 << 3),
00169 DRIZZLE_CAPABILITIES_NO_SCHEMA= (1 << 4),
00170 DRIZZLE_CAPABILITIES_COMPRESS= (1 << 5),
00171 DRIZZLE_CAPABILITIES_ODBC= (1 << 6),
00172 DRIZZLE_CAPABILITIES_LOCAL_FILES= (1 << 7),
00173 DRIZZLE_CAPABILITIES_IGNORE_SPACE= (1 << 8),
00174 DRIZZLE_CAPABILITIES_PROTOCOL_41= (1 << 9),
00175 DRIZZLE_CAPABILITIES_INTERACTIVE= (1 << 10),
00176 DRIZZLE_CAPABILITIES_SSL= (1 << 11),
00177 DRIZZLE_CAPABILITIES_IGNORE_SIGPIPE= (1 << 12),
00178 DRIZZLE_CAPABILITIES_TRANSACTIONS= (1 << 13),
00179 DRIZZLE_CAPABILITIES_RESERVED= (1 << 14),
00180 DRIZZLE_CAPABILITIES_SECURE_CONNECTION= (1 << 15),
00181 DRIZZLE_CAPABILITIES_MULTI_STATEMENTS= (1 << 16),
00182 DRIZZLE_CAPABILITIES_MULTI_RESULTS= (1 << 17),
00183 DRIZZLE_CAPABILITIES_SSL_VERIFY_SERVER_CERT= (1 << 30),
00184 DRIZZLE_CAPABILITIES_REMEMBER_OPTIONS= (1 << 31),
00185 DRIZZLE_CAPABILITIES_CLIENT= (DRIZZLE_CAPABILITIES_LONG_PASSWORD |
00186 DRIZZLE_CAPABILITIES_LONG_FLAG |
00187 DRIZZLE_CAPABILITIES_CONNECT_WITH_DB |
00188 DRIZZLE_CAPABILITIES_TRANSACTIONS |
00189 DRIZZLE_CAPABILITIES_PROTOCOL_41 |
00190 DRIZZLE_CAPABILITIES_SECURE_CONNECTION)
00191 } drizzle_capabilities_t;
00192
00203 typedef enum
00204 {
00205 DRIZZLE_COMMAND_SLEEP,
00206 DRIZZLE_COMMAND_QUIT,
00207 DRIZZLE_COMMAND_INIT_DB,
00208 DRIZZLE_COMMAND_QUERY,
00209 DRIZZLE_COMMAND_FIELD_LIST,
00210 DRIZZLE_COMMAND_CREATE_DB,
00211 DRIZZLE_COMMAND_DROP_DB,
00212 DRIZZLE_COMMAND_REFRESH,
00213 DRIZZLE_COMMAND_SHUTDOWN,
00214 DRIZZLE_COMMAND_STATISTICS,
00215 DRIZZLE_COMMAND_PROCESS_INFO,
00216 DRIZZLE_COMMAND_CONNECT,
00217 DRIZZLE_COMMAND_PROCESS_KILL,
00218 DRIZZLE_COMMAND_DEBUG,
00219 DRIZZLE_COMMAND_PING,
00220 DRIZZLE_COMMAND_TIME,
00221 DRIZZLE_COMMAND_DELAYED_INSERT,
00222 DRIZZLE_COMMAND_CHANGE_USER,
00223 DRIZZLE_COMMAND_BINLOG_DUMP,
00224 DRIZZLE_COMMAND_TABLE_DUMP,
00225 DRIZZLE_COMMAND_CONNECT_OUT,
00226 DRIZZLE_COMMAND_REGISTER_SLAVE,
00227 DRIZZLE_COMMAND_STMT_PREPARE,
00228 DRIZZLE_COMMAND_STMT_EXECUTE,
00229 DRIZZLE_COMMAND_STMT_SEND_LONG_DATA,
00230 DRIZZLE_COMMAND_STMT_CLOSE,
00231 DRIZZLE_COMMAND_STMT_RESET,
00232 DRIZZLE_COMMAND_SET_OPTION,
00233 DRIZZLE_COMMAND_STMT_FETCH,
00234 DRIZZLE_COMMAND_DAEMON,
00235 DRIZZLE_COMMAND_END
00236 } drizzle_command_t;
00237
00241 typedef enum
00242 {
00243 DRIZZLE_COMMAND_DRIZZLE_SLEEP,
00244 DRIZZLE_COMMAND_DRIZZLE_QUIT,
00245 DRIZZLE_COMMAND_DRIZZLE_INIT_DB,
00246 DRIZZLE_COMMAND_DRIZZLE_QUERY,
00247 DRIZZLE_COMMAND_DRIZZLE_SHUTDOWN,
00248 DRIZZLE_COMMAND_DRIZZLE_CONNECT,
00249 DRIZZLE_COMMAND_DRIZZLE_PING,
00250 DRIZZLE_COMMAND_DRIZZLE_END
00251 } drizzle_command_drizzle_t;
00252
00256 typedef enum
00257 {
00258 DRIZZLE_REFRESH_GRANT= (1 << 0),
00259 DRIZZLE_REFRESH_LOG= (1 << 1),
00260 DRIZZLE_REFRESH_TABLES= (1 << 2),
00261 DRIZZLE_REFRESH_HOSTS= (1 << 3),
00262 DRIZZLE_REFRESH_STATUS= (1 << 4),
00263 DRIZZLE_REFRESH_THREADS= (1 << 5),
00264 DRIZZLE_REFRESH_SLAVE= (1 << 6),
00265 DRIZZLE_REFRESH_MASTER= (1 << 7)
00266 } drizzle_refresh_options_t;
00267
00271 typedef enum
00272 {
00273 DRIZZLE_SHUTDOWN_DEFAULT= 0,
00274 DRIZZLE_SHUTDOWN_WAIT_CONNECTIONS= (1 << 0),
00275 DRIZZLE_SHUTDOWN_WAIT_TRANSACTIONS= (1 << 1),
00276 DRIZZLE_SHUTDOWN_WAIT_UPDATES= (1 << 3),
00277 DRIZZLE_SHUTDOWN_WAIT_ALL_BUFFERS= (1 << 4),
00278 DRIZZLE_SHUTDOWN_WAIT_CRITICAL_BUFFERS= (1 << 4) + 1,
00279 DRIZZLE_SHUTDOWN_KILL_QUERY= 254,
00280 DRIZZLE_SHUTDOWN_KILL_CONNECTION= 255
00281 } drizzle_shutdown_level_t;
00282
00289 typedef enum
00290 {
00291 DRIZZLE_QUERY_ALLOCATED= (1 << 0)
00292 } drizzle_query_options_t;
00293
00298 typedef enum
00299 {
00300 DRIZZLE_QUERY_STATE_INIT,
00301 DRIZZLE_QUERY_STATE_QUERY,
00302 DRIZZLE_QUERY_STATE_RESULT,
00303 DRIZZLE_QUERY_STATE_DONE
00304 } drizzle_query_state_t;
00305
00310 typedef enum
00311 {
00312 DRIZZLE_RESULT_NONE= 0,
00313 DRIZZLE_RESULT_ALLOCATED= (1 << 0),
00314 DRIZZLE_RESULT_SKIP_COLUMN= (1 << 1),
00315 DRIZZLE_RESULT_BUFFER_COLUMN= (1 << 2),
00316 DRIZZLE_RESULT_BUFFER_ROW= (1 << 3),
00317 DRIZZLE_RESULT_EOF_PACKET= (1 << 4),
00318 DRIZZLE_RESULT_ROW_BREAK= (1 << 5)
00319 } drizzle_result_options_t;
00320
00325 typedef enum
00326 {
00327 DRIZZLE_COLUMN_ALLOCATED= (1 << 0)
00328 } drizzle_column_options_t;
00329
00334 typedef enum
00335 {
00336 DRIZZLE_COLUMN_TYPE_DECIMAL,
00337 DRIZZLE_COLUMN_TYPE_TINY,
00338 DRIZZLE_COLUMN_TYPE_SHORT,
00339 DRIZZLE_COLUMN_TYPE_LONG,
00340 DRIZZLE_COLUMN_TYPE_FLOAT,
00341 DRIZZLE_COLUMN_TYPE_DOUBLE,
00342 DRIZZLE_COLUMN_TYPE_NULL,
00343 DRIZZLE_COLUMN_TYPE_TIMESTAMP,
00344 DRIZZLE_COLUMN_TYPE_LONGLONG,
00345 DRIZZLE_COLUMN_TYPE_INT24,
00346 DRIZZLE_COLUMN_TYPE_DATE,
00347 DRIZZLE_COLUMN_TYPE_TIME,
00348 DRIZZLE_COLUMN_TYPE_DATETIME,
00349 DRIZZLE_COLUMN_TYPE_YEAR,
00350 DRIZZLE_COLUMN_TYPE_NEWDATE,
00351 DRIZZLE_COLUMN_TYPE_VARCHAR,
00352 DRIZZLE_COLUMN_TYPE_BIT,
00353 DRIZZLE_COLUMN_TYPE_NEWDECIMAL= 246,
00354 DRIZZLE_COLUMN_TYPE_ENUM= 247,
00355 DRIZZLE_COLUMN_TYPE_SET= 248,
00356 DRIZZLE_COLUMN_TYPE_TINY_BLOB= 249,
00357 DRIZZLE_COLUMN_TYPE_MEDIUM_BLOB= 250,
00358 DRIZZLE_COLUMN_TYPE_LONG_BLOB= 251,
00359 DRIZZLE_COLUMN_TYPE_BLOB= 252,
00360 DRIZZLE_COLUMN_TYPE_VAR_STRING= 253,
00361 DRIZZLE_COLUMN_TYPE_STRING= 254,
00362 DRIZZLE_COLUMN_TYPE_GEOMETRY= 255
00363 } drizzle_column_type_t;
00364
00369 typedef enum
00370 {
00371 DRIZZLE_COLUMN_TYPE_DRIZZLE_TINY,
00372 DRIZZLE_COLUMN_TYPE_DRIZZLE_LONG,
00373 DRIZZLE_COLUMN_TYPE_DRIZZLE_DOUBLE,
00374 DRIZZLE_COLUMN_TYPE_DRIZZLE_NULL,
00375 DRIZZLE_COLUMN_TYPE_DRIZZLE_TIMESTAMP,
00376 DRIZZLE_COLUMN_TYPE_DRIZZLE_LONGLONG,
00377 DRIZZLE_COLUMN_TYPE_DRIZZLE_DATETIME,
00378 DRIZZLE_COLUMN_TYPE_DRIZZLE_DATE,
00379 DRIZZLE_COLUMN_TYPE_DRIZZLE_VARCHAR,
00380 DRIZZLE_COLUMN_TYPE_DRIZZLE_NEWDECIMAL,
00381 DRIZZLE_COLUMN_TYPE_DRIZZLE_ENUM,
00382 DRIZZLE_COLUMN_TYPE_DRIZZLE_BLOB,
00383 DRIZZLE_COLUMN_TYPE_DRIZZLE_MAX=DRIZZLE_COLUMN_TYPE_DRIZZLE_BLOB
00384 } drizzle_column_type_drizzle_t;
00385
00390 typedef enum
00391 {
00392 DRIZZLE_COLUMN_FLAGS_NONE= 0,
00393 DRIZZLE_COLUMN_FLAGS_NOT_NULL= (1 << 0),
00394 DRIZZLE_COLUMN_FLAGS_PRI_KEY= (1 << 1),
00395 DRIZZLE_COLUMN_FLAGS_UNIQUE_KEY= (1 << 2),
00396 DRIZZLE_COLUMN_FLAGS_MULTIPLE_KEY= (1 << 3),
00397 DRIZZLE_COLUMN_FLAGS_BLOB= (1 << 4),
00398 DRIZZLE_COLUMN_FLAGS_UNSIGNED= (1 << 5),
00399 DRIZZLE_COLUMN_FLAGS_ZEROFILL= (1 << 6),
00400 DRIZZLE_COLUMN_FLAGS_BINARY= (1 << 7),
00401 DRIZZLE_COLUMN_FLAGS_ENUM= (1 << 8),
00402 DRIZZLE_COLUMN_FLAGS_AUTO_INCREMENT= (1 << 9),
00403 DRIZZLE_COLUMN_FLAGS_TIMESTAMP= (1 << 10),
00404 DRIZZLE_COLUMN_FLAGS_SET= (1 << 11),
00405 DRIZZLE_COLUMN_FLAGS_NO_DEFAULT_VALUE= (1 << 12),
00406 DRIZZLE_COLUMN_FLAGS_ON_UPDATE_NOW= (1 << 13),
00407 DRIZZLE_COLUMN_FLAGS_PART_KEY= (1 << 14),
00408 DRIZZLE_COLUMN_FLAGS_NUM= (1 << 15),
00409 DRIZZLE_COLUMN_FLAGS_GROUP= (1 << 15),
00410 DRIZZLE_COLUMN_FLAGS_UNIQUE= (1 << 16),
00411 DRIZZLE_COLUMN_FLAGS_BINCMP= (1 << 17),
00412 DRIZZLE_COLUMN_FLAGS_GET_FIXED_FIELDS= (1 << 18),
00413 DRIZZLE_COLUMN_FLAGS_IN_PART_FUNC= (1 << 19),
00414 DRIZZLE_COLUMN_FLAGS_IN_ADD_INDEX= (1 << 20),
00415 DRIZZLE_COLUMN_FLAGS_RENAMED= (1 << 21)
00416 } drizzle_column_flags_t;
00417
00418 #ifdef __cplusplus
00419 }
00420 #endif
00421
00422 #endif