@@ -140,7 +140,8 @@ def __init__(self, connection_settings, server_id,
140140 pymysql_wrapper = None ,
141141 fail_on_table_metadata_unavailable = False ,
142142 slave_heartbeat = None ,
143- is_mariadb = False ):
143+ is_mariadb = False ,
144+ ignore_decode_errors = False ):
144145 """
145146 Attributes:
146147 ctl_connection_settings: Connection settings for cluster holding
@@ -177,6 +178,8 @@ def __init__(self, connection_settings, server_id,
177178 for semantics
178179 is_mariadb: Flag to indicate it's a MariaDB server, used with auto_position
179180 to point to Mariadb specific GTID.
181+ ignore_decode_errors: If true, any decode errors encountered
182+ when reading column data will be ignored.
180183 """
181184
182185 self .__connection_settings = connection_settings
@@ -198,6 +201,7 @@ def __init__(self, connection_settings, server_id,
198201 self .__allowed_events = self ._allowed_event_list (
199202 only_events , ignored_events , filter_non_implemented_events )
200203 self .__fail_on_table_metadata_unavailable = fail_on_table_metadata_unavailable
204+ self .__ignore_decode_errors = ignore_decode_errors
201205
202206 # We can't filter on packet level TABLE_MAP and rotate event because
203207 # we need them for handling other operations
@@ -502,7 +506,8 @@ def fetchone(self):
502506 self .__only_schemas ,
503507 self .__ignored_schemas ,
504508 self .__freeze_schema ,
505- self .__fail_on_table_metadata_unavailable )
509+ self .__fail_on_table_metadata_unavailable ,
510+ self .__ignore_decode_errors )
506511
507512 if binlog_event .event_type == ROTATE_EVENT :
508513 self .log_pos = binlog_event .event .position
0 commit comments