Skip to content

Commit d57fc70

Browse files
committed
None figure out Not changed case, Null case
1 parent b15ba97 commit d57fc70

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

pymysqlreplication/constants/NONE_SOURCE.py

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
OUT_OF_DATETIME2_RANGE = "out of datetime2 range"
55
EMPTY_SET = "empty set"
66
COLS_BITMAP = "cols bitmap"
7+
JSON_PARTIAL_UPDATE = "same with before values"

pymysqlreplication/row_event.py

+7-10
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,10 @@ def __read_values_name(
289289
elif column.type == FIELD_TYPE.GEOMETRY:
290290
return self.packet.read_length_coded_pascal_string(column.length_size)
291291
elif column.type == FIELD_TYPE.JSON:
292-
return self.packet.read_binary_json(column.length_size, is_partial)
292+
value = self.packet.read_binary_json(column.length_size, is_partial)
293+
if not value and is_partial:
294+
self.__none_sources[column.name] = NONE_SOURCE.JSON_PARTIAL_UPDATE
295+
return value
293296
else:
294297
raise NotImplementedError(f"Unknown MySQL column type: {column.type}")
295298

@@ -1172,23 +1175,17 @@ def _fetch_one_row(self):
11721175
row["before_values"] = self._read_column_data(
11731176
self.columns_present_bitmap, row_image_type
11741177
)
1178+
row["before_none_sources"] = self._get_none_sources(row["before_values"])
11751179
row_image_type = EnumRowImageType.UpdateAI
11761180
row["after_values"] = self._read_column_data(
11771181
self.columns_present_bitmap2, row_image_type
11781182
)
1183+
row["after_none_sources"] = self._get_none_sources(row["after_values"])
11791184

11801185
return row
11811186

11821187
def _dump(self):
1183-
print("Values:")
1184-
for row in self.rows:
1185-
print("--")
1186-
for key in row["before_values"]:
1187-
print(
1188-
"*%s:%s=>%s"
1189-
% (key, row["before_values"][key], row["after_values"][key])
1190-
)
1191-
1188+
super()._dump()
11921189

11931190
def find_charset(charset_id, dbms="mysql"):
11941191
encode = None

0 commit comments

Comments
 (0)