def _encode_one_row_to_stream(self, value: Row, out_stream, nested): field_coders = self._field_coders self._write_mask(value, out_stream, value.get_row_kind().value) for i in range(self._field_count): item = value[i] if item is not None: field_coders[i].encode_to_stream(item, out_stream, nested)
def to_external(self, value: Row) -> OUT: if value is None: return None values = value._values fields = tuple([self._field_data_converters[i].to_external(values[i]) for i in range(len(values))]) return value.get_row_kind().value, fields
def encode_to_stream(self, value: Row, out_stream): # encode mask value self._mask_utils.write_mask(value._values, value.get_row_kind().value, out_stream) # encode every field value for i in range(self._field_count): item = value[i] if item is not None: self._field_coders[i].encode_to_stream(item, out_stream)
def to_external(self, value: Row) -> OUT: if value is None: return None self._reuse_external_row[0] = value.get_row_kind().value values = value._values for i in range(len(values)): self._reuse_external_row_data[i] = self._field_data_converters[ i].to_external(values[i]) return self._reuse_external_row
def is_accumulate_msg(data: Row): return data.get_row_kind( ) == RowKind.UPDATE_AFTER or data.get_row_kind() == RowKind.INSERT
def is_retract_msg(data: Row): return data.get_row_kind( ) == RowKind.UPDATE_BEFORE or data.get_row_kind() == RowKind.DELETE