202 lines
7.3 KiB
Ruby
202 lines
7.3 KiB
Ruby
# coding: ascii-8bit
|
|
# Copyright (C) 2003-2008 TOMITA Masahiro
|
|
# mailto:tommy@tmtm.org
|
|
|
|
class RbMysql
|
|
# Command
|
|
COM_SLEEP = 0
|
|
COM_QUIT = 1
|
|
COM_INIT_DB = 2
|
|
COM_QUERY = 3
|
|
COM_FIELD_LIST = 4
|
|
COM_CREATE_DB = 5
|
|
COM_DROP_DB = 6
|
|
COM_REFRESH = 7
|
|
COM_SHUTDOWN = 8
|
|
COM_STATISTICS = 9
|
|
COM_PROCESS_INFO = 10
|
|
COM_CONNECT = 11
|
|
COM_PROCESS_KILL = 12
|
|
COM_DEBUG = 13
|
|
COM_PING = 14
|
|
COM_TIME = 15
|
|
COM_DELAYED_INSERT = 16
|
|
COM_CHANGE_USER = 17
|
|
COM_BINLOG_DUMP = 18
|
|
COM_TABLE_DUMP = 19
|
|
COM_CONNECT_OUT = 20
|
|
COM_REGISTER_SLAVE = 21
|
|
COM_STMT_PREPARE = 22
|
|
COM_STMT_EXECUTE = 23
|
|
COM_STMT_SEND_LONG_DATA = 24
|
|
COM_STMT_CLOSE = 25
|
|
COM_STMT_RESET = 26
|
|
COM_SET_OPTION = 27
|
|
COM_STMT_FETCH = 28
|
|
COM_DAEMON = 29
|
|
COM_BINLOG_DUMP_GTID = 30
|
|
COM_RESET_CONNECTION = 31
|
|
|
|
# Client flag
|
|
CLIENT_LONG_PASSWORD = 1 # new more secure passwords
|
|
CLIENT_FOUND_ROWS = 1 << 1 # Found instead of affected rows
|
|
CLIENT_LONG_FLAG = 1 << 2 # Get all column flags
|
|
CLIENT_CONNECT_WITH_DB = 1 << 3 # One can specify db on connect
|
|
CLIENT_NO_SCHEMA = 1 << 4 # Don't allow database.table.column
|
|
CLIENT_COMPRESS = 1 << 5 # Can use compression protocol
|
|
CLIENT_ODBC = 1 << 6 # Odbc client
|
|
CLIENT_LOCAL_FILES = 1 << 7 # Can use LOAD DATA LOCAL
|
|
CLIENT_IGNORE_SPACE = 1 << 8 # Ignore spaces before '('
|
|
CLIENT_PROTOCOL_41 = 1 << 9 # New 4.1 protocol
|
|
CLIENT_INTERACTIVE = 1 << 10 # This is an interactive client
|
|
CLIENT_SSL = 1 << 11 # Switch to SSL after handshake
|
|
CLIENT_IGNORE_SIGPIPE = 1 << 12 # IGNORE sigpipes
|
|
CLIENT_TRANSACTIONS = 1 << 13 # Client knows about transactions
|
|
CLIENT_RESERVED = 1 << 14 # Old flag for 4.1 protocol
|
|
CLIENT_SECURE_CONNECTION = 1 << 15 # New 4.1 authentication
|
|
CLIENT_MULTI_STATEMENTS = 1 << 16 # Enable/disable multi-stmt support
|
|
CLIENT_MULTI_RESULTS = 1 << 17 # Enable/disable multi-results
|
|
CLIENT_PS_MULTI_RESULTS = 1 << 18 # Multi-results in PS-protocol
|
|
CLIENT_PLUGIN_AUTH = 1 << 19 # Client supports plugin authentication
|
|
CLIENT_CONNECT_ATTRS = 1 << 20 # Client supports connection attribute
|
|
CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA = 1 << 21 # Enable authentication response packet to be larger than 255 bytes.
|
|
CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS = 1 << 22 # Don't close the connection for a connection with expired password.
|
|
CLIENT_SESSION_TRACK = 1 << 23 # Capable of handling server state change information. Its a hint to the server to include the state change information in Ok packet.
|
|
CLIENT_DEPRECATE_EOF = 1 << 24 # Client no longer needs EOF packet
|
|
CLIENT_SSL_VERIFY_SERVER_CERT = 1 << 30
|
|
CLIENT_REMEMBER_OPTIONS = 1 << 31
|
|
|
|
# Connection Option
|
|
OPT_CONNECT_TIMEOUT = 0
|
|
OPT_COMPRESS = 1
|
|
OPT_NAMED_PIPE = 2
|
|
INIT_COMMAND = 3
|
|
READ_DEFAULT_FILE = 4
|
|
READ_DEFAULT_GROUP = 5
|
|
SET_CHARSET_DIR = 6
|
|
SET_CHARSET_NAME = 7
|
|
OPT_LOCAL_INFILE = 8
|
|
OPT_PROTOCOL = 9
|
|
SHARED_MEMORY_BASE_NAME = 10
|
|
OPT_READ_TIMEOUT = 11
|
|
OPT_WRITE_TIMEOUT = 12
|
|
OPT_USE_RESULT = 13
|
|
OPT_USE_REMOTE_CONNECTION = 14
|
|
OPT_USE_EMBEDDED_CONNECTION = 15
|
|
OPT_GUESS_CONNECTION = 16
|
|
SET_CLIENT_IP = 17
|
|
SECURE_AUTH = 18
|
|
REPORT_DATA_TRUNCATION = 19
|
|
OPT_RECONNECT = 20
|
|
OPT_SSL_VERIFY_SERVER_CERT = 21
|
|
|
|
# Server Option
|
|
OPTION_MULTI_STATEMENTS_ON = 0
|
|
OPTION_MULTI_STATEMENTS_OFF = 1
|
|
|
|
# Server Status
|
|
SERVER_STATUS_IN_TRANS = 1
|
|
SERVER_STATUS_AUTOCOMMIT = 1 << 1
|
|
SERVER_MORE_RESULTS_EXISTS = 1 << 3
|
|
SERVER_QUERY_NO_GOOD_INDEX_USED = 1 << 4
|
|
SERVER_QUERY_NO_INDEX_USED = 1 << 5
|
|
SERVER_STATUS_CURSOR_EXISTS = 1 << 6
|
|
SERVER_STATUS_LAST_ROW_SENT = 1 << 7
|
|
SERVER_STATUS_DB_DROPPED = 1 << 8
|
|
SERVER_STATUS_NO_BACKSLASH_ESCAPES = 1 << 9
|
|
SERVER_STATUS_METADATA_CHANGED = 1 << 10
|
|
SERVER_QUERY_WAS_SLOW = 1 << 11
|
|
SERVER_PS_OUT_PARAMS = 1 << 12
|
|
SERVER_STATUS_IN_TRANS_READONLY = 1 << 13
|
|
SERVER_SESSION_STATE_CHANGED = 1 << 14
|
|
|
|
# Refresh parameter
|
|
REFRESH_GRANT = 1
|
|
REFRESH_LOG = 1 << 1
|
|
REFRESH_TABLES = 1 << 2
|
|
REFRESH_HOSTS = 1 << 3
|
|
REFRESH_STATUS = 1 << 4
|
|
REFRESH_THREADS = 1 << 5
|
|
REFRESH_SLAVE = 1 << 6
|
|
REFRESH_MASTER = 1 << 7
|
|
REFRESH_ERROR_LOG = 1 << 8
|
|
REFRESH_ENGINE_LOG = 1 << 9
|
|
REFRESH_BINARY_LOG = 1 << 10
|
|
REFRESH_RELAY_LOG = 1 << 11
|
|
REFRESH_GENERAL_LOG = 1 << 12
|
|
REFRESH_SLOW_LOG = 1 << 13
|
|
REFRESH_READ_LOCK = 1 << 14
|
|
REFRESH_FAST = 1 << 15
|
|
REFRESH_QUERY_CACHE = 1 << 16
|
|
REFRESH_QUERY_CACHE_FREE = 1 << 17
|
|
REFRESH_DES_KEY_FILE = 1 << 18
|
|
REFRESH_USER_RESOURCES = 1 << 19
|
|
REFRESH_FOR_EXPORT = 1 << 20
|
|
REFRESH_OPTIMIZER_COSTS = 1 << 21
|
|
|
|
class Field
|
|
# Field type
|
|
TYPE_DECIMAL = 0
|
|
TYPE_TINY = 1
|
|
TYPE_SHORT = 2
|
|
TYPE_LONG = 3
|
|
TYPE_FLOAT = 4
|
|
TYPE_DOUBLE = 5
|
|
TYPE_NULL = 6
|
|
TYPE_TIMESTAMP = 7
|
|
TYPE_LONGLONG = 8
|
|
TYPE_INT24 = 9
|
|
TYPE_DATE = 10
|
|
TYPE_TIME = 11
|
|
TYPE_DATETIME = 12
|
|
TYPE_YEAR = 13
|
|
TYPE_NEWDATE = 14
|
|
TYPE_VARCHAR = 15
|
|
TYPE_BIT = 16
|
|
TYPE_TIMESTAMP2 = 17
|
|
TYPE_DATETIME2 = 18
|
|
TYPE_TIME2 = 19
|
|
TYPE_JSON = 245
|
|
TYPE_NEWDECIMAL = 246
|
|
TYPE_ENUM = 247
|
|
TYPE_SET = 248
|
|
TYPE_TINY_BLOB = 249
|
|
TYPE_MEDIUM_BLOB = 250
|
|
TYPE_LONG_BLOB = 251
|
|
TYPE_BLOB = 252
|
|
TYPE_VAR_STRING = 253
|
|
TYPE_STRING = 254
|
|
TYPE_GEOMETRY = 255
|
|
TYPE_CHAR = TYPE_TINY
|
|
TYPE_INTERVAL = TYPE_ENUM
|
|
|
|
# Flag
|
|
NOT_NULL_FLAG = 1
|
|
PRI_KEY_FLAG = 2
|
|
UNIQUE_KEY_FLAG = 4
|
|
MULTIPLE_KEY_FLAG = 8
|
|
BLOB_FLAG = 16
|
|
UNSIGNED_FLAG = 32
|
|
ZEROFILL_FLAG = 64
|
|
BINARY_FLAG = 128
|
|
ENUM_FLAG = 256
|
|
AUTO_INCREMENT_FLAG = 512
|
|
TIMESTAMP_FLAG = 1024
|
|
SET_FLAG = 2048
|
|
NO_DEFAULT_VALUE_FLAG = 4096
|
|
ON_UPDATE_NOW_FLAG = 8192
|
|
NUM_FLAG = 32768
|
|
PART_KEY_FLAG = 16384
|
|
GROUP_FLAG = 32768
|
|
UNIQUE_FLAG = 65536
|
|
BINCMP_FLAG = 131072
|
|
end
|
|
|
|
class Stmt
|
|
# Cursor type
|
|
CURSOR_TYPE_NO_CURSOR = 0
|
|
CURSOR_TYPE_READ_ONLY = 1
|
|
CURSOR_TYPE_FOR_UPDATE = 2
|
|
CURSOR_TYPE_SCROLLABLE = 4
|
|
end
|
|
end |