本文整理汇总了Python中pymysql.util.byte2int函数的典型用法代码示例。如果您正苦于以下问题:Python byte2int函数的具体用法?Python byte2int怎么用?Python byte2int使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了byte2int函数的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection):
super(TableMapEvent, self).__init__(from_packet, event_size,
table_map, ctl_connection)
# Post-Header
self.table_id = self._read_table_id()
self.flags = struct.unpack('<H', self.packet.read(2))[0]
# Payload
self.schema_length = byte2int(self.packet.read(1))
self.schema = self.packet.read(self.schema_length).decode()
self.packet.advance(1)
self.table_length = byte2int(self.packet.read(1))
self.table = self.packet.read(self.table_length).decode()
self.packet.advance(1)
self.column_count = self.packet.read_length_coded_binary()
self.columns = []
if self.table_id in table_map:
self.column_schemas = table_map[self.table_id].column_schemas
else:
self.column_schemas = self._ctl_connection._get_table_information(self.schema, self.table)
# Read columns meta data
column_types = list(self.packet.read(self.column_count))
self.packet.read_length_coded_binary()
for i in range(0, len(column_types)):
column_type = column_types[i]
column_schema = self.column_schemas[i]
col = Column(byte2int(column_type), column_schema, from_packet)
self.columns.append(col)
self.table_obj = Table(self.column_schemas, self.table_id, self.schema,
self.table, self.columns)
开发者ID:Affirm,项目名称:python-mysql-replication,代码行数:35,代码来源:row_event.py
示例2: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection, **kwargs):
super(TableMapEvent, self).__init__(from_packet, event_size,
table_map, ctl_connection, **kwargs)
self.__only_tables = kwargs["only_tables"]
self.__only_schemas = kwargs["only_schemas"]
self.__freeze_schema = kwargs["freeze_schema"]
# Post-Header
self.table_id = self._read_table_id()
if self.table_id in table_map and self.__freeze_schema:
self._processed = False
return
self.flags = struct.unpack('<H', self.packet.read(2))[0]
# Payload
self.schema_length = byte2int(self.packet.read(1))
self.schema = self.packet.read(self.schema_length).decode()
self.packet.advance(1)
self.table_length = byte2int(self.packet.read(1))
self.table = self.packet.read(self.table_length).decode()
if self.__only_tables is not None and self.table not in self.__only_tables:
self._processed = False
return
if self.__only_schemas is not None and self.schema not in self.__only_schemas:
self._processed = False
return
self.packet.advance(1)
self.column_count = self.packet.read_length_coded_binary()
self.columns = []
if self.table_id in table_map:
self.column_schemas = table_map[self.table_id].column_schemas
else:
self.column_schemas = self._ctl_connection._get_table_information(self.schema, self.table)
# Read columns meta data
column_types = list(self.packet.read(self.column_count))
self.packet.read_length_coded_binary()
for i in range(0, len(column_types)):
column_type = column_types[i]
column_schema = self.column_schemas[i]
col = Column(byte2int(column_type), column_schema, from_packet)
self.columns.append(col)
self.table_obj = Table(self.column_schemas, self.table_id, self.schema,
self.table, self.columns)
开发者ID:0xcc,项目名称:python-mysql-replication,代码行数:51,代码来源:row_event.py
示例3: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection):
super(GtidEvent, self).__init__(from_packet, event_size, table_map,
ctl_connection)
self.commit_flag = byte2int(self.packet.read(1)) == 1
self.sid = self.packet.read(16)
self.gno = struct.unpack('<Q', self.packet.read(8))[0]
开发者ID:AaronLaw,项目名称:python-mysql-replication,代码行数:7,代码来源:event.py
示例4: __init__
def __init__(self, from_packet, table_map, ctl_connection, use_checksum):
if not from_packet.is_ok_packet():
raise ValueError("Cannot create %s object from invalid packet type" % self.__class__.__name__)
# -1 because we ignore the ok byte
self.read_bytes = 0
# Used when we want to override a value in the data buffer
self.__data_buffer = b""
# Ok Value
self.packet = from_packet
self.packet.advance(1)
self.charset = ctl_connection.charset
# Header
self.timestamp = struct.unpack("<I", self.packet.read(4))[0]
self.event_type = byte2int(self.packet.read(1))
self.server_id = struct.unpack("<I", self.packet.read(4))[0]
self.event_size = struct.unpack("<I", self.packet.read(4))[0]
# position of the next event
self.log_pos = struct.unpack("<I", self.packet.read(4))[0]
self.flags = struct.unpack("<H", self.packet.read(2))[0]
# MySQL 5.6 and more if binlog-checksum = CRC32
if use_checksum:
event_size_without_header = self.event_size - 23
else:
event_size_without_header = self.event_size - 19
event_class = self.__event_map.get(self.event_type, event.NotImplementedEvent)
self.event = event_class(self, event_size_without_header, table_map, ctl_connection)
开发者ID:huangzhiyong,项目名称:python-mysql-replication,代码行数:31,代码来源:packet.py
示例5: __init__
def __init__(self, from_packet, table_map, ctl_connection):
if not from_packet.is_ok_packet():
raise ValueError('Cannot create ' + str(self.__class__.__name__)
+ ' object from invalid packet type')
self.read_bytes = 0 #-1 because we ignore the ok byte
self.__data_buffer = b'' #Used when we want to override a value in the data buffer
# Ok Value
self.packet = from_packet
self.packet.advance(1)
self.charset = ctl_connection.charset
# Header
self.timestamp = struct.unpack('<I', self.packet.read(4))[0]
self.event_type = byte2int(self.packet.read(1))
self.server_id = struct.unpack('<I', self.packet.read(4))[0]
self.event_size = struct.unpack('<I', self.packet.read(4))[0]
# position of the next event
self.log_pos = struct.unpack('<I', self.packet.read(4))[0]
self.flags = self.flags = struct.unpack('<H', self.packet.read(2))[0]
event_size_without_header = self.event_size - 19
try:
event_class = self.__event_map[self.event_type]
except KeyError:
raise NotImplementedError("Unknown MySQL bin log event type: " + hex(self.event_type))
self.event = event_class(self, event_size_without_header, table_map, ctl_connection)
开发者ID:memsql,项目名称:ditto,代码行数:29,代码来源:packet.py
示例6: _get_server_information
def _get_server_information(self):
i = 0
packet = yield from self._read_packet()
data = packet.get_all_data()
# logger.debug(dump_packet(data))
self.protocol_version = byte2int(data[i:i + 1])
i += 1
server_end = data.find(b'\0', i)
self.server_version = data[i:server_end].decode('latin1')
i = server_end + 1
self.server_thread_id = struct.unpack('<I', data[i:i + 4])
i += 4
self.salt = data[i:i + 8]
i += 9 # 8 + 1(filler)
self.server_capabilities = struct.unpack('<H', data[i:i + 2])[0]
i += 2
if len(data) >= i + 6:
lang, stat, cap_h, salt_len = struct.unpack('<BHHB', data[i:i + 6])
i += 6
self.server_language = lang
self.server_charset = charset_by_id(lang).name
self.server_status = stat
# logger.debug("server_status: %s" % _convert_to_str(stat))
self.server_capabilities |= cap_h << 16
# logger.debug("salt_len: %s" % _convert_to_str(salt_len))
salt_len = max(12, salt_len - 9)
# reserved
i += 10
if len(data) >= i + salt_len:
# salt_len includes auth_plugin_data_part_1 and filler
self.salt += data[i:i + salt_len]
i += salt_len
i += 1
# AUTH PLUGIN NAME may appear here.
if self.server_capabilities & CLIENT.PLUGIN_AUTH and len(data) >= i:
# Due to Bug#59453 the auth-plugin-name is missing the terminating
# NUL-char in versions prior to 5.5.10 and 5.6.2.
# ref: https://dev.mysql.com/doc/internals/en/
# connection-phase-packets.html#packet-Protocol::Handshake
# didn't use version checks as mariadb is corrected and reports
# earlier than those two.
server_end = data.find(b'\0', i)
if server_end < 0: # pragma: no cover - very specific upstream bug
# not found \0 and last field so take it all
self._auth_plugin_name = data[i:].decode('latin1')
else:
self._auth_plugin_name = data[i:server_end].decode('latin1')
开发者ID:AlexLisovoy,项目名称:aiomysql,代码行数:57,代码来源:connection.py
示例7: __parse_field_descriptor
def __parse_field_descriptor(self, encoding):
"""Parse the 'Field Descriptor' (Metadata) packet.
This is compatible with MySQL 4.1+ (not compatible with MySQL 4.0).
"""
self.catalog = self.read_length_coded_string()
self.db = self.read_length_coded_string()
self.table_name = self.read_length_coded_string().decode(encoding)
self.org_table = self.read_length_coded_string().decode(encoding)
self.name = self.read_length_coded_string().decode(encoding)
self.org_name = self.read_length_coded_string().decode(encoding)
self.advance(1) # non-null filler
self.charsetnr = struct.unpack('<H', self.read(2))[0]
self.length = struct.unpack('<I', self.read(4))[0]
self.type_code = byte2int(self.read(1))
self.flags = struct.unpack('<H', self.read(2))[0]
self.scale = byte2int(self.read(1)) # "decimals"
self.advance(2) # filler (always 0x00)
开发者ID:huangdehui2013,项目名称:mysqlproxy,代码行数:18,代码来源:client.py
示例8: __init__
def __init__(self, from_packet, table_map, ctl_connection, use_checksum,
allowed_events,
only_tables,
ignored_tables,
only_schemas,
ignored_schemas,
freeze_schema,
fail_on_table_metadata_unavailable):
# -1 because we ignore the ok byte
self.read_bytes = 0
# Used when we want to override a value in the data buffer
self.__data_buffer = b''
self.packet = from_packet
self.charset = ctl_connection.charset
# OK value
# timestamp
# event_type
# server_id
# log_pos
# flags
unpack = struct.unpack('<cIcIIIH', self.packet.read(20))
# Header
self.timestamp = unpack[1]
self.event_type = byte2int(unpack[2])
self.server_id = unpack[3]
self.event_size = unpack[4]
# position of the next event
self.log_pos = unpack[5]
self.flags = unpack[6]
# MySQL 5.6 and more if binlog-checksum = CRC32
if use_checksum:
event_size_without_header = self.event_size - 23
else:
event_size_without_header = self.event_size - 19
self.event = None
event_class = self.__event_map.get(self.event_type, event.NotImplementedEvent)
if event_class not in allowed_events:
return
self.event = event_class(self, event_size_without_header, table_map,
ctl_connection,
only_tables=only_tables,
ignored_tables=ignored_tables,
only_schemas=only_schemas,
ignored_schemas=ignored_schemas,
freeze_schema=freeze_schema,
fail_on_table_metadata_unavailable=fail_on_table_metadata_unavailable)
if self.event._processed == False:
self.event = None
开发者ID:26fe,项目名称:python-mysql-replication,代码行数:54,代码来源:packet.py
示例9: __init__
def __init__(self, header):
'''Initialize the Event with the event header'''
unpacked = struct.unpack('<IcIIIH', header)
self.timestamp = unpacked[0]
self.event_type = byte2int(unpacked[1])
self.server_id = unpacked[2]
self.event_size = unpacked[3]
self.log_pos = unpacked[4]
self.flags = unpacked[5]
self.body = None
self.pos = None
开发者ID:26fe,项目名称:python-mysql-replication,代码行数:12,代码来源:binlogfilereader.py
示例10: read_variable_length_string
def read_variable_length_string(self):
"""Read a variable length string where the first 1-5 bytes stores the
length of the string.
For each byte, the first bit being high indicates another byte must be
read.
"""
byte = 0x80
length = 0
bits_read = 0
while byte & 0x80 != 0:
byte = byte2int(self.read(1))
length = length | ((byte & 0x7f) << bits_read)
bits_read = bits_read + 7
return self.read(length)
开发者ID:26fe,项目名称:python-mysql-replication,代码行数:15,代码来源:packet.py
示例11: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection):
super(QueryEvent, self).__init__(from_packet, event_size, table_map, ctl_connection)
# Post-header
self.slave_proxy_id = self.packet.read_uint32()
self.execution_time = self.packet.read_uint32()
self.schema_length = byte2int(self.packet.read(1))
self.error_code = self.packet.read_uint16()
self.status_vars_length = self.packet.read_uint16()
# Payload
self.status_vars = self.packet.read(self.status_vars_length)
self.schema = self.packet.read(self.schema_length)
self.packet.advance(1)
self.query = self.packet.read(event_size - 13 - self.status_vars_length - self.schema_length - 1).decode()
开发者ID:memsql,项目名称:ditto,代码行数:16,代码来源:event.py
示例12: read_length_coded_binary
def read_length_coded_binary(self):
"""Read a 'Length Coded Binary' number from the data buffer.
Length coded numbers can be anywhere from 1 to 9 bytes depending
on the value of the first byte.
From PyMYSQL source code
"""
c = byte2int(self.read(1))
if c == NULL_COLUMN:
return None
if c < UNSIGNED_CHAR_COLUMN:
return c
elif c == UNSIGNED_SHORT_COLUMN:
return self.unpack_uint16(self.read(UNSIGNED_SHORT_LENGTH))
elif c == UNSIGNED_INT24_COLUMN:
return self.unpack_int24(self.read(UNSIGNED_INT24_LENGTH))
elif c == UNSIGNED_INT64_COLUMN:
return self.unpack_int64(self.read(UNSIGNED_INT64_LENGTH))
开发者ID:alex,项目名称:python-mysql-replication,代码行数:19,代码来源:packet.py
示例13: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection, **kwargs):
super(QueryEvent, self).__init__(from_packet, event_size, table_map, ctl_connection, **kwargs)
# Post-header
self.slave_proxy_id = self.packet.read_uint32()
self.execution_time = self.packet.read_uint32()
self.schema_length = byte2int(self.packet.read(1))
self.error_code = self.packet.read_uint16()
self.status_vars_length = self.packet.read_uint16()
# Payload
self.status_vars = self.packet.read(self.status_vars_length)
self.schema = self.packet.read(self.schema_length)
self.packet.advance(1)
self.query = self.packet.read(event_size - 13 - self.status_vars_length - self.schema_length - 1)
try:
self.query = self.query.decode("utf-8")
except UnicodeDecodeError:
self.query = self.query.decode("latin-1")
开发者ID:mastak,项目名称:python-mysql-replication,代码行数:21,代码来源:event.py
示例14: _get_server_information
def _get_server_information(self):
i = 0
packet = yield from self._read_packet()
data = packet.get_all_data()
# logger.debug(dump_packet(data))
self.protocol_version = byte2int(data[i:i + 1])
i += 1
server_end = data.find(int2byte(0), i)
self.server_version = data[i:server_end].decode('latin1')
i = server_end + 1
self.server_thread_id = struct.unpack('<I', data[i:i + 4])
i += 4
self.salt = data[i:i + 8]
i += 9 # 8 + 1(filler)
self.server_capabilities = struct.unpack('<H', data[i:i + 2])[0]
i += 2
if len(data) >= i + 6:
lang, stat, cap_h, salt_len = struct.unpack('<BHHB', data[i:i + 6])
i += 6
self.server_language = lang
self.server_charset = charset_by_id(lang).name
self.server_status = stat
# logger.debug("server_status: %s" % _convert_to_str(stat))
self.server_capabilities |= cap_h << 16
# logger.debug("salt_len: %s" % _convert_to_str(salt_len))
salt_len = max(12, salt_len - 9)
# reserved
i += 10
if len(data) >= i + salt_len:
# salt_len includes auth_plugin_data_part_1 and filler
self.salt += data[i:i + salt_len]
开发者ID:Drizzt1991,项目名称:aiomysql,代码行数:39,代码来源:connection.py
示例15: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection, **kwargs):
super(QueryEvent, self).__init__(from_packet, event_size, table_map,
ctl_connection, **kwargs)
self.__only_schemas = kwargs["only_schemas"]
# Post-header
self.slave_proxy_id = self.packet.read_uint32()
self.execution_time = self.packet.read_uint32()
self.schema_length = byte2int(self.packet.read(1))
self.error_code = self.packet.read_uint16()
self.status_vars_length = self.packet.read_uint16()
# Payload
self.status_vars = self.packet.read(self.status_vars_length)
self.schema = self.packet.read(self.schema_length)
self.packet.advance(1)
self.query = self.packet.read(event_size - 13 - self.status_vars_length
- self.schema_length - 1).decode("utf-8")
#string[EOF] query
self.__hashes = {}
开发者ID:byte8,项目名称:python-mysql-replication,代码行数:22,代码来源:event.py
示例16: __init__
def __init__(self, from_packet, event_size, table_map, ctl_connection, **kwargs):
super(TableMapEvent, self).__init__(from_packet, event_size,
table_map, ctl_connection, **kwargs)
self.__only_tables = kwargs["only_tables"]
self.__ignored_tables = kwargs["ignored_tables"]
self.__only_schemas = kwargs["only_schemas"]
self.__ignored_schemas = kwargs["ignored_schemas"]
self.__freeze_schema = kwargs["freeze_schema"]
# Post-Header
self.table_id = self._read_table_id()
if self.table_id in table_map and self.__freeze_schema:
self._processed = False
return
self.flags = struct.unpack('<H', self.packet.read(2))[0]
# Payload
self.schema_length = byte2int(self.packet.read(1))
self.schema = self.packet.read(self.schema_length).decode()
self.packet.advance(1)
self.table_length = byte2int(self.packet.read(1))
self.table = self.packet.read(self.table_length).decode()
if self.__only_tables is not None and self.table not in self.__only_tables:
self._processed = False
return
elif self.__ignored_tables is not None and self.table in self.__ignored_tables:
self._processed = False
return
if self.__only_schemas is not None and self.schema not in self.__only_schemas:
self._processed = False
return
elif self.__ignored_schemas is not None and self.schema in self.__ignored_schemas:
self._processed = False
return
self.packet.advance(1)
self.column_count = self.packet.read_length_coded_binary()
self.columns = []
if self.table_id in table_map:
self.column_schemas = table_map[self.table_id].column_schemas
else:
self.column_schemas = self._ctl_connection._get_table_information(self.schema, self.table)
if len(self.column_schemas) != 0:
# Read columns meta data
column_types = list(self.packet.read(self.column_count))
self.packet.read_length_coded_binary()
for i in range(0, len(column_types)):
column_type = column_types[i]
try:
column_schema = self.column_schemas[i]
except IndexError:
# this a dirty hack to prevent row events containing columns which have been dropped prior
# to pymysqlreplication start, but replayed from binlog from blowing up the service.
# TODO: this does not address the issue if the column other than the last one is dropped
column_schema = {
'COLUMN_NAME': '__dropped_col_{i}__'.format(i=i),
'COLLATION_NAME': None,
'CHARACTER_SET_NAME': None,
'COLUMN_COMMENT': None,
'COLUMN_TYPE': 'BLOB', # we don't know what it is, so let's not do anything with it.
'COLUMN_KEY': '',
}
col = Column(byte2int(column_type), column_schema, from_packet)
self.columns.append(col)
self.table_obj = Table(self.column_schemas, self.table_id, self.schema,
self.table, self.columns)
开发者ID:26fe,项目名称:python-mysql-replication,代码行数:74,代码来源:row_event.py
注:本文中的pymysql.util.byte2int函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论