<#1031 [Bug]: `batch_id` is not set in Sink contex...
# meltano-repo-activity
g
#1031 [Bug]: `batch_id` is not set in Sink context when processing batch messages Issue created by edgarrmondragon ### Singer SDK Version 0.11.1 ### Python Version NA ### Bug scope Targets (data type handling, batching, SQL object generation, etc.) ### Operating System Any ### Description
Target._process_record_message
initializes the target context by calling
Sink._get_context
, which in the
BatchSink
implementation sets the
batch_id
key to a UUID string.
Target._process_batch_message
should behave in a similar way. sdk/singer_sdk/target_base.py Lines 281 to 318 in</meltano/sdk/commit/5f9f70a99c6314d87ad91b7a2ad3ef7886483d6f|5f9f70a> | def _process_record_message(self, message_dict: dict) -> None: | | ------------------------------------------------------------------------ | | """Process a RECORD message. | | | | Args: | | message_dict: TODO | | """ | | self._assert_line_requires(message_dict, requires={"stream", "record"}) | | | | stream_name = message_dict["stream"] | | for stream_map in self.mapper.stream_maps[stream_name]: | | # new_schema = helpers._float_to_decimal(new_schema) | | raw_record = copy.copy(message_dict["record"]) | | transformed_record = stream_map.transform(raw_record) | | if transformed_record is None: | | # Record was filtered out by the map transform | | continue | | | | sink = self.get_sink(stream_map.stream_alias, record=transformed_record) | | context = sink._get_context(transformed_record) | | if sink.include_sdc_metadata_properties: | | sink._add_sdc_metadata_to_record( | | transformed_record, message_dict, context | | ) | | else: | | sink._remove_sdc_metadata_from_record(transformed_record) | | | | sink._validate_and_parse(transformed_record) | | | | sink.tally_record_read() | | transformed_record = sink.preprocess_record(transformed_record, context) | | sink.process_record(transformed_record, context) | | sink._after_process_record(context) | | | | if sink.is_full: | | self.logger.info( | | f"Target sink for '{sink.stream_name}' is full. Draining..." | | ) | | self.drain_one(sink) | ### Code No response meltano/sdk