Skip to content

Commit 9d72858

Browse files
committed
enum catch out of index
enum when Mysql 5.7 case error enum and set BINLOG_IMAGE = MINIMAL
1 parent 6a03460 commit 9d72858

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

pymysqlreplication/row_event.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -207,17 +207,19 @@ def __read_values_name(
207207
elif column.type == FIELD_TYPE.YEAR:
208208
return self.packet.read_uint8() + 1900
209209
elif column.type == FIELD_TYPE.ENUM:
210-
return column.enum_values[self.packet.read_uint_by_size(column.size)]
210+
if column.enum_values:
211+
return column.enum_values[self.packet.read_uint_by_size(column.size)]
212+
self.packet.read_uint_by_size(column.size)
213+
return None
211214
elif column.type == FIELD_TYPE.SET:
212215
bit_mask = self.packet.read_uint_by_size(column.size)
213-
return (
214-
set(
216+
if column.set_values:
217+
return {
215218
val
216219
for idx, val in enumerate(column.set_values)
217-
if bit_mask & 2**idx
218-
)
219-
or None
220-
)
220+
if bit_mask & (1 << idx)
221+
} or None
222+
return None
221223
elif column.type == FIELD_TYPE.BIT:
222224
return self.__read_bit(column)
223225
elif column.type == FIELD_TYPE.GEOMETRY:
@@ -873,6 +875,7 @@ def _sync_column_info(self):
873875
self.table_obj = Table(
874876
self.table_id, self.schema, self.table, self.columns, column_name_flag=True
875877
)
878+
print(self.table_obj.data)
876879

877880
def _convert_include_non_numeric_column(self, signedness_bool_list):
878881
# The incoming order of columns in the packet represents the indices of the numeric columns.

0 commit comments

Comments
 (0)