Skip to content

Commit ab1c5fb

Browse files
committed
fix: do not add none_sources when column_name is None
1 parent 26f036c commit ab1c5fb

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

Diff for: pymysqlreplication/row_event.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ def __read_binary_slice(self, binary, start, size, data_length):
487487
def _get_none_sources(self, column_data):
488488
result = {}
489489
for column_name, value in column_data.items():
490-
if value is not None:
490+
if (column_name is None) or (value is not None):
491491
continue
492492

493493
source = self.__none_sources.get(column_name, "null")

Diff for: pymysqlreplication/tests/test_basic.py

+17-14
Original file line numberDiff line numberDiff line change
@@ -649,20 +649,23 @@ def test_get_none_invalid(self):
649649
else:
650650
self.assertEqual(event.event_type, UPDATE_ROWS_EVENT_V1)
651651
self.assertIsInstance(event, UpdateRowsEvent)
652-
653-
if event.rows[0].get("before_none_sources"):
654-
self.assertEqual(event.rows[0]["before_none_sources"]["col0"], "null")
655-
self.assertEqual(event.rows[0]["before_none_sources"]["col1"], "null")
656-
self.assertEqual(event.rows[0]["before_none_sources"]["col2"], "out of datetime2 range")
657-
self.assertEqual(event.rows[0]["before_none_sources"]["col3"], "null")
658-
self.assertEqual(event.rows[0]["before_none_sources"]["col4"], "null")
659-
660-
if event.rows[0].get("after_none_sources"):
661-
self.assertEqual(event.rows[0]["after_none_sources"]["col0"], "null")
662-
self.assertEqual(event.rows[0]["after_none_sources"]["col1"], "null")
663-
self.assertEqual(event.rows[0]["after_none_sources"]["col2"], "null")
664-
self.assertEqual(event.rows[0]["after_none_sources"]["col3"], "out of date range")
665-
self.assertEqual(event.rows[0]["after_none_sources"]["col4"], "empty set")
652+
653+
before_none_sources = event.rows[0].get("before_none_sources")
654+
after_none_sources = event.rows[0].get("after_none_sources")
655+
656+
if before_none_sources:
657+
self.assertEqual(before_none_sources["col0"], "null")
658+
self.assertEqual(before_none_sources["col1"], "null")
659+
self.assertEqual(before_none_sources["col2"], "out of datetime2 range")
660+
self.assertEqual(before_none_sources["col3"], "null")
661+
self.assertEqual(before_none_sources["col4"], "null")
662+
663+
if after_none_sources:
664+
self.assertEqual(after_none_sources["col0"], "null")
665+
self.assertEqual(after_none_sources["col1"], "null")
666+
self.assertEqual(after_none_sources["col2"], "null")
667+
self.assertEqual(after_none_sources["col3"], "out of date range")
668+
self.assertEqual(after_none_sources["col4"], "empty set")
666669

667670

668671
class TestMultipleRowBinLogStreamReader(base.PyMySQLReplicationTestCase):

0 commit comments

Comments
 (0)