From 9044e4cc5b24160cca93e80464575077a88a1e45 Mon Sep 17 00:00:00 2001 From: Michael Bensoussan Date: Mon, 8 Apr 2019 22:09:59 +0200 Subject: [PATCH] Insert NULL in a boolean column returns no rows #288 --- pymysqlreplication/row_event.py | 2 +- pymysqlreplication/tests/test_data_type.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pymysqlreplication/row_event.py b/pymysqlreplication/row_event.py index 2d5f73ea..a06fe0ec 100644 --- a/pymysqlreplication/row_event.py +++ b/pymysqlreplication/row_event.py @@ -418,7 +418,7 @@ def _fetch_rows(self): if not self.complete: return - while self.packet.read_bytes + 1 < self.event_size: + while self.packet.read_bytes < self.event_size: self.__rows.append(self._fetch_one_row()) @property diff --git a/pymysqlreplication/tests/test_data_type.py b/pymysqlreplication/tests/test_data_type.py index f7fdd504..8d222290 100644 --- a/pymysqlreplication/tests/test_data_type.py +++ b/pymysqlreplication/tests/test_data_type.py @@ -169,6 +169,12 @@ def test_tiny_maps_to_none(self): self.assertEqual(type(event.rows[0]["values"]["test"]), type(None)) self.assertEqual(event.rows[0]["values"]["test"], None) + def test_tiny_maps_to_none_2(self): + create_query = "CREATE TABLE test (test BOOLEAN)" + insert_query = "INSERT INTO test VALUES(NULL)" + event = self.create_and_insert_value(create_query, insert_query) + self.assertEqual(event.rows[0]["values"]["test"], None) + def test_short(self): create_query = "CREATE TABLE test (id SMALLINT UNSIGNED NOT NULL, test SMALLINT)" insert_query = "INSERT INTO test VALUES(65535, -32768)"