@@ -95,7 +95,8 @@ class BinLogPacketWrapper(object):
95
95
constants .MARIADB_START_ENCRYPTION_EVENT : event .MariadbStartEncryptionEvent
96
96
}
97
97
98
- def __init__ (self , from_packet , table_map ,
98
+ def __init__ (self , from_packet ,
99
+ table_map ,
99
100
ctl_connection ,
100
101
mysql_version ,
101
102
use_checksum ,
@@ -108,9 +109,9 @@ def __init__(self, from_packet, table_map,
108
109
fail_on_table_metadata_unavailable ,
109
110
ignore_decode_errors ):
110
111
# -1 because we ignore the ok byte
111
- self .read_bytes = 0
112
+ self .read_bytes : int = 0
112
113
# Used when we want to override a value in the data buffer
113
- self .__data_buffer = b''
114
+ self .__data_buffer : bytes = b''
114
115
115
116
self .packet = from_packet
116
117
self .charset = ctl_connection .charset
@@ -187,7 +188,7 @@ def advance(self, size: int):
187
188
else :
188
189
self .packet .advance (size )
189
190
190
- def read_length_coded_binary (self ) -> Optional [str ]:
191
+ def read_length_coded_binary (self ) -> Optional [int ]:
191
192
"""
192
193
Read a 'Length Coded Binary' number from the data buffer.
193
194
Length coded numbers can be anywhere from 1 to 9 bytes depending
@@ -241,7 +242,7 @@ def read_int_be_by_size(self, size: int):
241
242
elif size == 8 :
242
243
return struct .unpack ('>l' , self .read (size ))[0 ]
243
244
244
- def read_uint_by_size (self , size : int ) -> str :
245
+ def read_uint_by_size (self , size : int ) -> int :
245
246
"""
246
247
Read a little endian integer values based on byte number
247
248
"""
@@ -284,73 +285,73 @@ def read_variable_length_string(self) -> Union[int, bytes]:
284
285
bits_read = bits_read + 7
285
286
return self .read (length )
286
287
287
- def read_int24 (self ) -> str :
288
+ def read_int24 (self ) -> int :
288
289
a , b , c = struct .unpack ("BBB" , self .read (3 ))
289
290
res = a | (b << 8 ) | (c << 16 )
290
291
if res >= 0x800000 :
291
292
res -= 0x1000000
292
293
return res
293
294
294
- def read_int24_be (self ) -> str :
295
+ def read_int24_be (self ) -> int :
295
296
a , b , c = struct .unpack ('BBB' , self .read (3 ))
296
297
res = (a << 16 ) | (b << 8 ) | c
297
298
if res >= 0x800000 :
298
299
res -= 0x1000000
299
300
return res
300
301
301
- def read_uint8 (self ) -> str :
302
+ def read_uint8 (self ) -> int :
302
303
return struct .unpack ('<B' , self .read (1 ))[0 ]
303
304
304
- def read_int16 (self ) -> str :
305
+ def read_int16 (self ) -> int :
305
306
return struct .unpack ('<h' , self .read (2 ))[0 ]
306
307
307
- def read_uint16 (self ) -> str :
308
+ def read_uint16 (self ) -> int :
308
309
return struct .unpack ('<H' , self .read (2 ))[0 ]
309
310
310
- def read_uint24 (self ) -> str :
311
+ def read_uint24 (self ) -> int :
311
312
a , b , c = struct .unpack ("<BBB" , self .read (3 ))
312
313
return a + (b << 8 ) + (c << 16 )
313
314
314
- def read_uint32 (self ) -> str :
315
+ def read_uint32 (self ) -> int :
315
316
return struct .unpack ('<I' , self .read (4 ))[0 ]
316
317
317
- def read_int32 (self ) -> str :
318
+ def read_int32 (self ) -> int :
318
319
return struct .unpack ('<i' , self .read (4 ))[0 ]
319
320
320
- def read_uint40 (self ) -> str :
321
+ def read_uint40 (self ) -> int :
321
322
a , b = struct .unpack ("<BI" , self .read (5 ))
322
323
return a + (b << 8 )
323
324
324
- def read_int40_be (self ) -> str :
325
+ def read_int40_be (self ) -> int :
325
326
a , b = struct .unpack (">IB" , self .read (5 ))
326
327
return b + (a << 8 )
327
328
328
- def read_uint48 (self ) -> str :
329
+ def read_uint48 (self ) -> int :
329
330
a , b , c = struct .unpack ("<HHH" , self .read (6 ))
330
331
return a + (b << 16 ) + (c << 32 )
331
332
332
- def read_uint56 (self ) -> str :
333
+ def read_uint56 (self ) -> int :
333
334
a , b , c = struct .unpack ("<BHI" , self .read (7 ))
334
335
return a + (b << 8 ) + (c << 24 )
335
336
336
- def read_uint64 (self ) -> str :
337
+ def read_uint64 (self ) -> int :
337
338
return struct .unpack ('<Q' , self .read (8 ))[0 ]
338
339
339
- def read_int64 (self ) -> str :
340
+ def read_int64 (self ) -> int :
340
341
return struct .unpack ('<q' , self .read (8 ))[0 ]
341
342
342
- def unpack_uint16 (self , n : bytes ) -> str :
343
+ def unpack_uint16 (self , n : bytes ) -> int :
343
344
return struct .unpack ('<H' , n [0 :2 ])[0 ]
344
345
345
- def unpack_int24 (self , n : bytes ) -> Optional [str , int ]:
346
+ def unpack_int24 (self , n : bytes ) -> Optional [str , Tuple [ str , int ] ]:
346
347
try :
347
348
return struct .unpack ('B' , n [0 ])[0 ] \
348
349
+ (struct .unpack ('B' , n [1 ])[0 ] << 8 ) \
349
350
+ (struct .unpack ('B' , n [2 ])[0 ] << 16 )
350
351
except TypeError :
351
352
return n [0 ] + (n [1 ] << 8 ) + (n [2 ] << 16 )
352
353
353
- def unpack_int32 (self , n ) :
354
+ def unpack_int32 (self , n : bytes ) -> Optional [ str , Tuple [ str , int ]] :
354
355
try :
355
356
return struct .unpack ('B' , n [0 ])[0 ] \
356
357
+ (struct .unpack ('B' , n [1 ])[0 ] << 8 ) \
@@ -370,7 +371,7 @@ def read_binary_json(self, size: int) -> Optional[str]:
370
371
371
372
return self .read_binary_json_type (t , length )
372
373
373
- def read_binary_json_type (self , t : bytes , length : int ) -> Optional [bool , str ]:
374
+ def read_binary_json_type (self , t : int , length : int ) -> Optional [bool , str ]:
374
375
large = (t in (JSONB_TYPE_LARGE_OBJECT , JSONB_TYPE_LARGE_ARRAY ))
375
376
if t in (JSONB_TYPE_SMALL_OBJECT , JSONB_TYPE_LARGE_OBJECT ):
376
377
return self .read_binary_json_object (length - 1 , large )
0 commit comments