Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix read column Info from table map event (#440)
fix: #439 Here is how the scenario Goes: 1. There is a time difference between the event and the actual state of the database. 2. The actual database is dropped. 3. The python-replication-mysql application receives a table map event. 4. Since there is no cached result for the table_id, it tries to retrieve the database's column schema. 5. There are no column schema results from the database. 6. Packets containing information about the table map event's columns are still present. 7. The application exits the if statement, and the packets remain untouched. 8. Incorrect packets are inserted into the null_bitmask. ``` if self.table_id in table_map: self.column_schemas = table_map[self.table_id].column_schemas else: self.column_schemas = self._ctl_connection._get_table_information(self.schema, self.table) ordinal_pos_loc = 0 if len(self.column_schemas) != 0: # Read columns meta data column_types = bytearray(self.packet.read(self.column_count)) self.null_bitmask = self.packet.read((self.column_count + 7) / 8) #error packet goes here! ```
- Loading branch information